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