summaryrefslogtreecommitdiff
path: root/makima/src/server/mod.rs
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-14 21:38:29 +0000
committersoryu <soryu@soryu.co>2026-01-15 01:30:02 +0000
commit3d7a4e64a6c9dfaaf715993d23ea7c93c1094b9d (patch)
treeeefe02d38861bec0c7af60f929e422683b2510c6 /makima/src/server/mod.rs
parentf1a15be70b176f80536d4a6764bd2c09861593ef (diff)
downloadsoryu-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.rs6
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(