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}