0.7.28
This commit is contained in:
@@ -10,6 +10,34 @@
|
||||
use tauri::Manager;
|
||||
use ts_rs::TS;
|
||||
|
||||
|
||||
/// Request payload for protocol candidate summary diagnostics.
|
||||
#[derive(Clone, Debug, serde::Deserialize, ts_rs::TS)]
|
||||
#[ts(
|
||||
export,
|
||||
export_to = "../frontend/ts/bindings/DemoPipeline2ProtocolCandidateSummaryRequest.ts"
|
||||
)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub(crate) struct DemoPipeline2ProtocolCandidateSummaryRequest {
|
||||
/// Maximum number of summary rows to return.
|
||||
pub limit: u32,
|
||||
}
|
||||
|
||||
/// Response payload for protocol candidate summary diagnostics.
|
||||
#[derive(Clone, Debug, serde::Serialize, ts_rs::TS)]
|
||||
#[ts(
|
||||
export,
|
||||
export_to = "../frontend/ts/bindings/DemoPipeline2ProtocolCandidateSummaryPayload.ts"
|
||||
)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub(crate) struct DemoPipeline2ProtocolCandidateSummaryPayload {
|
||||
/// Pretty JSON summary rows.
|
||||
pub summaries_json: std::string::String,
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// Local diagnostics payload returned to the UI.
|
||||
#[derive(Clone, Debug, serde::Serialize, TS)]
|
||||
#[ts(
|
||||
@@ -690,6 +718,42 @@ pub(crate) struct DemoPipeline2PairCandlesPayload {
|
||||
pub candles_json: std::string::String,
|
||||
}
|
||||
|
||||
/// Lists protocol candidate summaries ordered by investigation priority.
|
||||
#[tauri::command]
|
||||
pub(crate) async fn demo_pipeline2_get_protocol_candidate_summaries(
|
||||
state: tauri::State<'_, crate::AppState>,
|
||||
request: DemoPipeline2ProtocolCandidateSummaryRequest,
|
||||
) -> Result<DemoPipeline2ProtocolCandidateSummaryPayload, std::string::String> {
|
||||
if request.limit == 0 {
|
||||
return Err("protocol candidate summary limit must be > 0".to_string());
|
||||
}
|
||||
let summaries_result = kb_lib::query_protocol_candidate_summaries_list_by_priority(
|
||||
state.database.as_ref(),
|
||||
request.limit,
|
||||
)
|
||||
.await;
|
||||
let summaries = match summaries_result {
|
||||
Ok(summaries) => summaries,
|
||||
Err(error) => {
|
||||
return Err(format!(
|
||||
"cannot list protocol candidate summaries with limit '{}': {}",
|
||||
request.limit, error
|
||||
));
|
||||
},
|
||||
};
|
||||
let summaries_json_result = serde_json::to_string_pretty(&summaries);
|
||||
let summaries_json = match summaries_json_result {
|
||||
Ok(summaries_json) => summaries_json,
|
||||
Err(error) => {
|
||||
return Err(format!(
|
||||
"cannot serialize protocol candidate summaries: {}",
|
||||
error
|
||||
));
|
||||
},
|
||||
};
|
||||
return Ok(DemoPipeline2ProtocolCandidateSummaryPayload { summaries_json });
|
||||
}
|
||||
|
||||
/// Runs local pipeline diagnostics from persisted data only.
|
||||
#[tauri::command]
|
||||
pub(crate) async fn demo_pipeline2_diagnose_local_pipeline(
|
||||
|
||||
Reference in New Issue
Block a user