feat: enhance agent orchestration, knowledge flow and UI refinements

This commit is contained in:
2026-03-29 20:31:13 +08:00
parent d85cb9cf35
commit e0fe3ca623
301 changed files with 1197804 additions and 7863 deletions

View File

@@ -1,11 +1,13 @@
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.ext.asyncio import AsyncSession
from fastapi import APIRouter, Depends, HTTPException, Query
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from app.database import get_db
from app.models.skill import Skill
from app.models.user import User
from app.routers.auth import get_current_user
from app.schemas.skill import SkillCreate, SkillOut, SkillUpdate
from app.services.admin_bootstrap_service import ensure_builtin_skills
from app.services.skill_service import SkillService
router = APIRouter(prefix="/api/skills", tags=["Skill"])
@@ -37,13 +39,23 @@ async def create_skill(
@router.get("", response_model=list[SkillOut])
async def list_skills(
agent_type: str | None = Query(default=None),
visibility: str | None = Query(default=None),
current_user: User = Depends(get_current_user),
db: AsyncSession = Depends(get_db),
):
result = await db.execute(
select(Skill).where(Skill.owner_id == current_user.id).order_by(Skill.created_at.desc())
)
return result.scalars().all()
service = SkillService(db)
return await service.list_for_user(current_user.id, agent_type=agent_type, visibility=visibility)
@router.post("/bootstrap-builtin", response_model=list[SkillOut])
async def bootstrap_builtin_skills(
current_user: User = Depends(get_current_user),
db: AsyncSession = Depends(get_db),
):
await ensure_builtin_skills(db, preferred_owner_id=current_user.id)
service = SkillService(db)
return await service.list_for_user(current_user.id)
@router.get("/{skill_id}", response_model=SkillOut)