Backend: - Skill model + migration (with FK on chats.skill_id) - Personal + general skill CRUD services with access isolation - Admin skill CRUD endpoints (POST/GET/PATCH/DELETE /admin/skills) - User skill CRUD endpoints (POST/GET/PATCH/DELETE /skills/) - Personal context GET/PUT at /users/me/context - Extended context assembly: primary + personal context + skill prompt - Chat creation/update now accepts skill_id with validation Frontend: - Skill selector dropdown in chat header (grouped: general + personal) - Reusable skill editor form component - Admin skills management page (/admin/skills) - Personal skills page (/skills) - Personal context editor page (/profile/context) - Updated sidebar: Skills, My Context nav items + admin skills link - English + Russian translations for all skill/context UI Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
21 lines
632 B
Python
21 lines
632 B
Python
from fastapi import APIRouter
|
|
|
|
from app.api.v1.auth import router as auth_router
|
|
from app.api.v1.chats import router as chats_router
|
|
from app.api.v1.admin import router as admin_router
|
|
from app.api.v1.skills import router as skills_router
|
|
from app.api.v1.users import router as users_router
|
|
|
|
api_v1_router = APIRouter(prefix="/api/v1")
|
|
|
|
api_v1_router.include_router(auth_router)
|
|
api_v1_router.include_router(chats_router)
|
|
api_v1_router.include_router(admin_router)
|
|
api_v1_router.include_router(skills_router)
|
|
api_v1_router.include_router(users_router)
|
|
|
|
|
|
@api_v1_router.get("/health")
|
|
async def health():
|
|
return {"status": "ok"}
|