diff options
| author | soryu <soryu@soryu.co> | 2026-01-14 21:38:29 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-01-15 01:30:02 +0000 |
| commit | 3d7a4e64a6c9dfaaf715993d23ea7c93c1094b9d (patch) | |
| tree | eefe02d38861bec0c7af60f929e422683b2510c6 /makima/src/server/mod.rs | |
| parent | f1a15be70b176f80536d4a6764bd2c09861593ef (diff) | |
| download | soryu-3d7a4e64a6c9dfaaf715993d23ea7c93c1094b9d.tar.gz soryu-3d7a4e64a6c9dfaaf715993d23ea7c93c1094b9d.zip | |
feat(listen): add transcript analysis API endpoints
Adds three new endpoints under /api/v1/listen/:
- POST /analyze - Analyze a file's transcript for requirements, decisions, action items
- POST /create-contract - Create a new contract from analyzed transcript
- POST /update-contract - Update an existing contract with extracted information
These endpoints bridge the Listen (voice transcription) system with the Contract
system, enabling voice-to-contract workflows.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'makima/src/server/mod.rs')
| -rw-r--r-- | makima/src/server/mod.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/makima/src/server/mod.rs b/makima/src/server/mod.rs index 568b287..a4a01e0 100644 --- a/makima/src/server/mod.rs +++ b/makima/src/server/mod.rs @@ -18,7 +18,7 @@ use tower_http::trace::TraceLayer; use utoipa::OpenApi; use utoipa_swagger_ui::SwaggerUi; -use crate::server::handlers::{api_keys, chat, contract_chat, contract_daemon, contracts, file_ws, files, listen, mesh, mesh_chat, mesh_daemon, mesh_merge, mesh_supervisor, mesh_ws, templates, users, versions}; +use crate::server::handlers::{api_keys, chat, contract_chat, contract_daemon, contracts, file_ws, files, listen, mesh, mesh_chat, mesh_daemon, mesh_merge, mesh_supervisor, mesh_ws, templates, transcript_analysis, users, versions}; use crate::server::openapi::ApiDoc; use crate::server::state::SharedState; @@ -44,6 +44,10 @@ pub fn make_router(state: SharedState) -> Router { // API v1 routes let api_v1 = Router::new() .route("/listen", get(listen::websocket_handler)) + // Listen/transcript analysis endpoints + .route("/listen/analyze", post(transcript_analysis::analyze_transcript)) + .route("/listen/create-contract", post(transcript_analysis::create_contract_from_analysis)) + .route("/listen/update-contract", post(transcript_analysis::update_contract_from_analysis)) .route("/files/subscribe", get(file_ws::file_subscription_handler)) .route("/files", get(files::list_files).post(files::create_file)) .route( |
