Implement Phase 4: tools, God Mode, and missing features
Backend: - Add Tavily web search tool wrapper (tools/web_search.py) - Add PDF reader + ChromaDB vector store tool (tools/pdf_reader.py) - Bind tools to LLM calls via .bind_tools() in dynamic_graph_builder - Implement God Mode using LangGraph interrupt_before + MemorySaver - Add approve/reject/modify API endpoints for God Mode - Add PDF upload endpoint with ingestion pipeline - Add persistent run history (CouncilRun model + run_service + API) - Add Alembic migration for council_runs table - Enhance WebSocket to emit run_paused and run_resumed events - Add tests for tools, God Mode, and run history Frontend: - Add God Mode approval UI (GodModePanel component) - Add Auto-Pilot / God Mode toggle in Konferenzzimmer - Add functional PDF upload handler - Add Conditional Edge editor (EdgeSettingsPanel component) - Add edge click selection in ArchitectCanvas - Update Zustand store with edge selection and update actions - Update types for God Mode, execution modes, and WS events - Update API client with God Mode, PDF upload, and blueprint run endpoints - Update WebSocket hook for paused/resumed events - Add Vitest config and frontend tests (store, parser, types, API) https://claude.ai/code/session_017U6idFgaqnYTXzPxA7mxMv
This commit is contained in:
parent
c6d0c4a636
commit
001649a364
31 changed files with 2502 additions and 81 deletions
|
|
@ -51,7 +51,9 @@ export interface CouncilBlueprint {
|
|||
}
|
||||
|
||||
// Council run (execution)
|
||||
export type RunStatus = "pending" | "running" | "completed" | "failed";
|
||||
export type RunStatus = "pending" | "running" | "completed" | "failed" | "paused";
|
||||
|
||||
export type ExecutionMode = "auto-pilot" | "god-mode";
|
||||
|
||||
export interface CouncilRun {
|
||||
run_id: string;
|
||||
|
|
@ -61,13 +63,43 @@ export interface CouncilRun {
|
|||
error?: string;
|
||||
}
|
||||
|
||||
// God Mode state from the backend
|
||||
export interface GodModeState {
|
||||
run_id: string;
|
||||
paused: boolean;
|
||||
next_nodes: string[];
|
||||
current_state: {
|
||||
current_draft?: string;
|
||||
critic_score?: number;
|
||||
iteration_count?: number;
|
||||
feedback_history?: string[];
|
||||
};
|
||||
}
|
||||
|
||||
export type GodModeAction = "approve" | "reject" | "modify";
|
||||
|
||||
// WebSocket messages from backend
|
||||
export type WSMessageType = "node_enter" | "node_exit" | "run_complete" | "run_error";
|
||||
export type WSEventType =
|
||||
| "connected"
|
||||
| "node_active"
|
||||
| "run_paused"
|
||||
| "run_resumed"
|
||||
| "run_complete"
|
||||
| "run_failed";
|
||||
|
||||
export interface WSMessage {
|
||||
type: WSMessageType;
|
||||
node_id?: string;
|
||||
node_name?: string;
|
||||
result?: string;
|
||||
event: WSEventType;
|
||||
run_id: string;
|
||||
// node_active
|
||||
node?: string;
|
||||
iteration?: number;
|
||||
// run_paused
|
||||
next_nodes?: string[];
|
||||
current_draft?: string;
|
||||
critic_score?: number;
|
||||
iteration_count?: number;
|
||||
// run_complete
|
||||
final_draft?: string;
|
||||
// run_failed
|
||||
error?: string;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue