Implements the complete AI flow builder feature using a guided 4-stage wizard (Foundation → Scaffold → Branch Detail → Review & Assemble). AI assists at bounded points using Claude Haiku for cost-efficient structured JSON generation (~$0.01-0.03/flow). Backend: new models (ai_conversations, ai_usage), Alembic migration, quota enforcement with billing anchor, Anthropic API integration with prompt caching, tree validation, conversation CRUD with 24h TTL, APScheduler cleanup job, 5 API endpoints, Pydantic schemas. Frontend: TypeScript types, API client, Zustand store for wizard state, 7 components (modal, step indicator, foundation form, branch selector, branch detail view, tree preview, quota display), MyTreesPage integration with "Build with AI" button (hidden when AI not configured). Tests: 14 validator unit tests + 11 endpoint integration tests with mocked Anthropic (zero real API spend). All 25 tests passing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
34 lines
1.6 KiB
Python
34 lines
1.6 KiB
Python
from .user import UserCreate, UserUpdate, UserResponse, UserLogin
|
|
from .token import Token, TokenPayload
|
|
from .tree import TreeCreate, TreeUpdate, TreeResponse, TreeListResponse
|
|
from .session import SessionCreate, SessionUpdate, SessionResponse, SessionExport, DecisionRecord
|
|
from .category import CategoryCreate, CategoryUpdate, CategoryResponse, CategoryListResponse
|
|
from .tag import TagCreate, TagResponse, TagListResponse, TagAssignment
|
|
from .folder import FolderCreate, FolderUpdate, FolderResponse, FolderListResponse, FolderReorderRequest, FolderTreeRequest
|
|
from .ai_builder import (
|
|
AIStartRequest, AIScaffoldRequest, AIBranchDetailRequest, AIAssembleRequest,
|
|
AIStartResponse, AIScaffoldResponse, AIBranchDetailResponse, AIAssembleResponse,
|
|
AIQuotaStatusResponse,
|
|
)
|
|
|
|
__all__ = [
|
|
# User
|
|
"UserCreate", "UserUpdate", "UserResponse", "UserLogin",
|
|
# Token
|
|
"Token", "TokenPayload",
|
|
# Tree
|
|
"TreeCreate", "TreeUpdate", "TreeResponse", "TreeListResponse",
|
|
# Session
|
|
"SessionCreate", "SessionUpdate", "SessionResponse", "SessionExport", "DecisionRecord",
|
|
# Category
|
|
"CategoryCreate", "CategoryUpdate", "CategoryResponse", "CategoryListResponse",
|
|
# Tag
|
|
"TagCreate", "TagResponse", "TagListResponse", "TagAssignment",
|
|
# Folder
|
|
"FolderCreate", "FolderUpdate", "FolderResponse", "FolderListResponse", "FolderReorderRequest", "FolderTreeRequest",
|
|
# AI Builder
|
|
"AIStartRequest", "AIScaffoldRequest", "AIBranchDetailRequest", "AIAssembleRequest",
|
|
"AIStartResponse", "AIScaffoldResponse", "AIBranchDetailResponse", "AIAssembleResponse",
|
|
"AIQuotaStatusResponse",
|
|
]
|