from __future__ import annotations from datetime import datetime from io import BytesIO from typing import Any, Optional from uuid import uuid4 from fastapi import APIRouter, BackgroundTasks, Body, Depends, File, HTTPException, Query, UploadFile from fastapi.responses import StreamingResponse from pydantic import BaseModel from sqlalchemy import and_, delete, select from sqlalchemy.ext.asyncio import AsyncSession from ...core.response import success_response from ...database import get_db from ...dependencies import get_current_user, require_project_member_or_manager from ...models import ( AICallLog, AlignmentRecord, Integration, ModelRequirementBinding, ModelVersion, ProjectSignalLink, Signal, Task, TruthNode, User, UserProject, ) from ...schemas.sstc import ( AlignmentConfirmRequest, AlignmentStartRequest, CharterUpdateRequest, ReleaseCreateRequest, ReleaseStatusPatchRequest, ReleaseVerificationItemPatchRequest, ReviewArchiveRequest, ReviewContentPatchRequest, ReviewCreateRequest, ReviewImprovementToTaskRequest, TaskStatusPatchRequest, WorkloadOptimizeRequest, ) from ...services import skill_score_service, workload_service from ...services.ai_pmo_kernel_service import AIPMOKernelService from ...services.ai_service import AIService from ...services.auth import has_any_role from ...services.budget_enforcement_service import BudgetEnforcementService from ...services.feishu_integration import get_feishu_service from ...services.llm import llm_service from ...services.operation_log_service import log_operation from ...services.skill_service import recommend_personnel from ...services.sstc_service import ALIGNED_STATUSES, DONE_STATUSES, RELEASE_VERIFIED_STATUSES, SSTCService from ...services.task_persistence import build_task_create_draft, persist_task from ...utils.title import compact_title from ...utils.timezone import CN_TZ, now_cn_aware, now_cn_naive