decision_cockpit 0.1.0

Layer — product decision memory with MCP tools and an embedded review dashboard
Documentation
//! Flat list endpoints for canonical entities, used by the UI to pick an item
//! when linking it to a decision.

use axum::extract::{Query, State};
use axum::Json;
use serde::Deserialize;

use crate::domain::actions::Action;
use crate::domain::assumptions::Assumption;
use crate::domain::evidence::Evidence;
use crate::error::AppResult;
use crate::services::graph as svc;
use crate::state::AppState;

#[derive(Debug, Deserialize)]
pub struct ListQuery {
    pub limit: Option<i64>,
}

pub async fn list_assumptions(
    State(state): State<AppState>,
    Query(q): Query<ListQuery>,
) -> AppResult<Json<Vec<Assumption>>> {
    Ok(Json(svc::list_assumptions(&state.pool, q.limit).await?))
}

pub async fn list_actions(
    State(state): State<AppState>,
    Query(q): Query<ListQuery>,
) -> AppResult<Json<Vec<Action>>> {
    Ok(Json(svc::list_actions(&state.pool, q.limit).await?))
}

pub async fn list_evidence(
    State(state): State<AppState>,
    Query(q): Query<ListQuery>,
) -> AppResult<Json<Vec<Evidence>>> {
    Ok(Json(svc::list_evidence(&state.pool, q.limit).await?))
}