Skip to main content

engram_core/
dispatch.rs

1use std::sync::Arc;
2
3use serde_json::Value;
4
5use crate::config_handler;
6use crate::consolidate_handler;
7use crate::error::CoreError;
8use crate::export_handler;
9use crate::import_handler;
10use crate::insights_handler;
11use crate::judge_handler;
12use crate::migrate_handler;
13use crate::search_handler;
14use crate::server::ServerState;
15use crate::status_handler;
16use crate::store_handler;
17use crate::train_handler;
18
19pub async fn route(
20    method: &str,
21    state: &Arc<ServerState>,
22    params: Value,
23) -> Result<Value, CoreError> {
24    match method {
25        "memory_store" => store_handler::handle(state, params).await,
26        "memory_search" => search_handler::handle(state, params).await,
27        "memory_judge" => judge_handler::handle(state, params).await,
28        "memory_status" => status_handler::handle(state, params).await,
29        "memory_consolidate_preview" => consolidate_handler::handle_preview(state, params).await,
30        "memory_consolidate" => consolidate_handler::handle_analyze(state, params).await,
31        "memory_consolidate_apply" => consolidate_handler::handle_apply(state, params).await,
32        "memory_config" => config_handler::handle(state, params).await,
33        "memory_export" => export_handler::handle(state, params).await,
34        "memory_import" => import_handler::handle(state, params).await,
35        "memory_insights" => insights_handler::handle(state, params).await,
36        "memory_migrate_preview" => migrate_handler::handle_preview(state, params).await,
37        "memory_migrate_apply" => migrate_handler::handle_apply(state, params).await,
38        "memory_train_generate" => train_handler::handle_generate(state, params).await,
39        "memory_train_list" => train_handler::handle_list(state, params).await,
40        "memory_train_delete" => train_handler::handle_delete(state, params).await,
41        unknown => Err(CoreError::DispatchError(format!(
42            "unknown method: {unknown}"
43        ))),
44    }
45}