PMFlow/backend/app/api/ai_steward_api/shared.py

38 lines
1.7 KiB
Python

from __future__ import annotations
import json
from datetime import datetime, timedelta, timezone
from typing import Any, Dict, List, Literal, Optional
from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException
from pydantic import BaseModel, Field
from sqlalchemy import and_, select
from sqlalchemy.ext.asyncio import AsyncSession
from ...core.response import success_response
from ...core.database import get_db
from ...dependencies.auth import get_current_user
from ...dependencies.permissions import require_manager_user
from ...dependencies.tenant import get_tenant_id
from ...models import ProjectSignalLink, Signal, User
from ...schemas.rag import RAGAskRequest
from ...services.adaptive_rag_service import AdaptiveRAGService
from ...services.ai_orchestration_run import AIOrchestrationRunService
from ...services.ai_steward_service import AIStewardService, get_ai_steward_service
from ...services.blocker_detection_core import get_blocker_detection_service
from ...services.cognitive_conflict_core import get_cognitive_conflict_service
from ...services.daily_briefing_core import get_daily_briefing_service
from ...services.event_workflow_core import WorkflowEventType, get_event_workflow_engine
from ...services.feishu_outbox import FeishuOutboxService
from ...services.signal_capture_service import ProactiveSignalCaptureService
from ...services.signal_source_orchestration import SignalSourceOrchestrationService
from ...services.signal_source_repair import (
SignalSourceRepairMissingSignalError,
SignalSourceRepairService,
SignalSourceRepairTimeoutError,
)
from ...utils.audited_write import audited_write
from ...utils.timezone import now_cn_aware, now_cn_naive
router = APIRouter(prefix="/ai-steward", tags=["AI Steward"])