decision.inspect

Live

Inspect any decision across triage, action_proposed, rule_fired, trust_transition.

CategoryDecision
JSON-RPCtools/call
EndpointPOST /mcp
Sourcepackages/mcp-tools/src/tools/decision-inspect.ts

Description

Generalized decision inspection — returns the decision class, payload summary, reasoning (same shape as CortexTriggerEnvelope.reasoning), ledger linkage, and occurred_at. Per ADR-0021 §read-API Family A.

Input schema

FieldTypeRequiredDescription
decision_idstringyesThe decision id.

Output shape

typescript
{
  decision_id: string;
  decision_class: 'triage' | 'action_proposed' | 'rule_fired' | 'trust_transition' | string;
  payload_summary: string;
  reasoning: {
    rule_id?: string;
    rule_summary?: string;
    confidence: 'strong_pattern' | 'pretty_sure' | 'just_guessing';
    trace_id: string;
    source_episode_ids?: string[];
  };
  ledger_entry_id?: string;
  triage_decision_id?: string;
  occurred_at: string;
  world_version: string;
}

Example call

JSON-RPC tools/call request body (omit the JSON-RPC envelope when using an SDK; the SDK adds it for you):

jsontools/call params
{ "name": "decision.inspect", "arguments": { "decision_id": "dec_01HX..." } }

Example response

Tool results are always wrapped as content[0].text with a stringified JSON body. The shape below is what you get back from JSON.parse(result.content[0].text):

jsonparsed result body
{
  "decision_id": "dec_01HX...",
  "decision_class": "action_proposed",
  "payload_summary": "Propose reply to Marcus about project timeline.",
  "reasoning": {
    "rule_id": "rul_01HX...",
    "rule_summary": "Reply quickly to Marcus on Tuesdays.",
    "confidence": "strong_pattern",
    "trace_id": "trc_01HX...",
    "source_episode_ids": ["ep_01H..."]
  },
  "ledger_entry_id": "led_01HX...",
  "occurred_at": "2026-06-10T14:32:00Z",
  "world_version": "wv_01HXR4WORLD"
}

Errors this tool can return

CodeMeaning
invalid_argumentsTool input failed Zod validation.
unauthorizedMissing or invalid bearer token.
quota_exceededPer-minute, daily call, or daily inference budget exceeded.
not_foundThe requested resource (action_id, decision_id, counterparty_id, etc.) was not found.

See the full error catalog for resolution steps on each code, plus the standard transport-layer responses (401, 429).