Decision Gate Docs

Avaluació de portes determinista, reproduïble amb decisions auditable.

Asset Core docs

Eines del Decision Gate MCP

Descarregar: tooling.json (268 KB) Descarregar: openapi/decision-gate.json (343 KB)

Pàgines de detall de l’eina

  • scenario_define - Registra un ScenarioSpec, valida’l i retorna el hash canònic utilitzat per a les comprovacions d’integritat.
  • scenario_start - Crea un nou estat d’execució per a un escenari i, opcionalment, emet paquets d’entrada.
  • scenario_status - Obteniu una instantània de lectura només i un resum segur sense canviar l’estat.
  • scenario_next - Avaluar les portes en resposta a una sol·licitud següent impulsada per un agent.
  • scenario_submit - Enviar artefactes externs a l’estat d’execució per a auditoria i avaluació posterior.
  • scenario_trigger - Enviar un esdeveniment de desencadenament (programador/external) i avaluar l’execució.
  • evidence_query - Consultar un proveïdor d’evidències amb el context d’execució complet i la política de divulgació.
  • runpack_export - Exporta artefactes de runpack deterministes per a la verificació fora de línia.
  • runpack_verify - Verifica un manifest de runpack i artefactes fora de línia.
  • providers_list - Llista de proveïdors d’evidències registrats i resum de capacitats.
  • provider_contract_get - Obtenir el contracte canònic del proveïdor en format JSON i el seu hash per a un proveïdor.
  • provider_check_schema_get - Obtenir detalls de l’esquema de comprovació (params/resultat/comparadors) per a un proveïdor.
  • schemas_register - Registra un esquema de forma de dades per a un inquilí i un espai de noms.
  • schemas_list - Llista de formes de dades registrades per a un inquilí i un espai de noms.
  • schemas_get - Obtenir una forma de dades específica mitjançant l’identificador i la versió.
  • scenarios_list - Llista de scenarios registrats per a un llogater i un espai de noms.
  • precheck - Avaluar un escenari contra dades afirmades sense mutar l’estat.
  • decision_gate_docs_search - Cerqueu la documentació de Decision Gate per a orientació en temps d’execució.

Aquest document resumeix la superfície de l’eina MCP i l’ús esperat. Els esquemes complets es troben a tooling.json, amb esquemes de suport sota schemas/ i exemples sota examples/.

Inici ràpid del cicle de vida

  • scenario_define registra i valida un ScenarioSpec.
  • scenario_start crea una execució i opcionalment emet paquets d’entrada.
  • scenario_next avança una execució impulsada per agents; scenario_trigger avança el temps/activadors externs.
  • scenario_status consulta l’estat d’execució sense modificar-lo.
  • scenario_submit afegeix artefactes externs per a auditoria i verificacions posteriors.
  • runpack_export i runpack_verify suporten la verificació fora de línia.

Referències d’artefactes

  • authoring.md: formats d’autoria i orientació sobre normalització.
  • [scenario.json](/downloads/decision-gate/examples/scenario.json): exemple complet de ScenarioSpec.
  • examples/scenario.ron: exemple de ScenarioSpec amigable per a l’autoria.
  • [run-config.json](/downloads/decision-gate/examples/run-config.json): exemple de configuració d’execució per a scenario_start.
  • [decision-gate.toml](/downloads/decision-gate/examples/decision-gate.toml): exemple de configuració MCP per a proveïdors.
EinaDescripció
scenario_defineRegistrar un ScenarioSpec, validar-lo i retornar el hash canònic utilitzat per a les comprovacions d’integritat.
scenario_startCrear un nou estat d’execució per a un escenari i opcionalment emetre paquets d’entrada.
scenario_statusObtenir una instantània d’execució de només lectura i un resum segur sense canviar l’estat.
scenario_nextAvaluar portes en resposta a una sol·licitud següent impulsada per un agent.
scenario_submitPresentar artefactes externs a l’estat d’execució per a auditoria i avaluació posterior.
scenario_triggerPresentar un esdeveniment de desencadenament (programador/extern) i avaluar l’execució.
evidence_queryConsultar un proveïdor d’evidències amb el context complet de l’execució i la política de divulgació.
runpack_exportExportar artefactes de runpack deterministes per a verificació fora de línia.
runpack_verifyVerificar un manifest de runpack i artefactes fora de línia.
providers_listLlistar proveïdors d’evidències registrats i resum de capacitats.
provider_contract_getObtenir el JSON del contracte canònic del proveïdor i el hash per a un proveïdor.
provider_check_schema_getObtenir detalls del esquema de comprovació (params/result/comparadors) per a un proveïdor.
schemas_registerRegistrar un esquema de forma de dades per a un llogater i un espai de noms.
schemas_listLlistar formes de dades registrades per a un llogater i un espai de noms.
schemas_getObtenir una forma de dades específica per identificador i versió.
scenarios_listLlistar escenaris registrats per a un llogater i un espai de noms.
precheckAvaluar un escenari contra dades afirmades sense mutar l’estat.
decision_gate_docs_searchCercar documentació de Decision Gate per a orientació en temps d’execució.

escenari_definir

Registra un ScenarioSpec, valida’l i retorna el hash canònic utilitzat per a les comprovacions d’integritat.

Inputs

  • spec (requerit): Especificació de l’escenari per registrar.

Sortides

  • scenario_id (required): Identificador de l’escenari.
  • spec_hash (requerit): Tipus: object.

Notes

  • Utilitzeu abans d’iniciar les curses; scenario_id es converteix en el controlador estable per a les crides posteriors.
  • Valida els IDs d’etapa/port/condició, arbres RET i referències de condició.
  • El hash de l’especificació és determinista; emmagatzema-ho per a l’auditoria i la integritat del paquet.
  • Els errors es tanquen en especificacions no vàlides o IDs de scenario duplicats.

Exemple

Registra l’especificació de l’escenari d’exemple.

Input:

{
  "spec": {
    "conditions": [
      {
        "comparator": "equals",
        "condition_id": "env_is_prod",
        "expected": "production",
        "policy_tags": [],
        "query": {
          "check_id": "get",
          "params": {
            "key": "DEPLOY_ENV"
          },
          "provider_id": "env"
        }
      },
      {
        "comparator": "equals",
        "condition_id": "after_freeze",
        "expected": true,
        "policy_tags": [],
        "query": {
          "check_id": "after",
          "params": {
            "timestamp": 1710000000000
          },
          "provider_id": "time"
        }
      }
    ],
    "default_tenant_id": null,
    "namespace_id": 1,
    "policies": [],
    "scenario_id": "example-scenario",
    "schemas": [],
    "spec_version": "v1",
    "stages": [
      {
        "advance_to": {
          "kind": "terminal"
        },
        "entry_packets": [
          {
            "content_type": "application/json",
            "expiry": null,
            "packet_id": "packet-hello",
            "payload": {
              "kind": "json",
              "value": {
                "message": "hello",
                "purpose": "scenario entry packet"
              }
            },
            "policy_tags": [],
            "schema_id": "schema-hello",
            "visibility_labels": [
              "public"
            ]
          }
        ],
        "gates": [
          {
            "gate_id": "env_gate",
            "requirement": {
              "Condition": "env_is_prod"
            }
          },
          {
            "gate_id": "time_gate",
            "requirement": {
              "Condition": "after_freeze"
            }
          }
        ],
        "on_timeout": "fail",
        "stage_id": "main",
        "timeout": null
      }
    ]
  }
}

Output:

{
  "scenario_id": "example-scenario",
  "spec_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  }
}

escenari_inici

Crea un nou estat d’execució per a un escenari i opcionalment emet paquets d’entrada.

Inputs

  • issue_entry_packets (required): Emetre paquets d’entrada immediatament.
  • run_config (requerit): Configuració d’execució i objectius de despach.
  • scenario_id (required): Identificador de l’escenari.
  • started_at (requerit): Timestamp d’inici de la execució proporcionat pel cridant.

Sortides

  • current_stage_id (required): Identificador de l’etapa actual.
  • decisions (requerit): Tipus: array.
  • dispatch_targets (required): Tipus: array.
  • gate_evals (requerit): Tipus: array.
  • namespace_id (requerit): Identificador de l’espai de noms.
  • paquets (requerit): Tipus: array.
  • run_id (requerit): Identificador de la execució.
  • scenario_id (required): Identificador de l’escenari.
  • spec_hash (requerit): Tipus: object.
  • stage_entered_at (requerit): Un dels: objecte, objecte.
  • status (requerit): Tipus: string.
  • submissions (requerit): Tipus: array.
  • tenant_id (required): Identificador del llogater.
  • tool_calls (required): Tipus: array.
  • triggers (requerit): Tipus: array.

Notes

  • Requereix RunConfig (tenant_id, run_id, scenario_id, dispatch_targets).
  • Utilitzeu started_at per enregistrar la marca de temps d’inici proporcionada pel que truca.
  • Si issue_entry_packets és cert, els paquets d’entrada es revelen immediatament.
  • Tanca si run_id ja existeix o scenario_id és desconegut.

Exemple

Inicieu una execució per a l’escenari d’exemple i emeteu paquets d’entrada.

Input:

{
  "issue_entry_packets": true,
  "run_config": {
    "dispatch_targets": [
      {
        "agent_id": "agent-alpha",
        "kind": "agent"
      }
    ],
    "namespace_id": 1,
    "policy_tags": [],
    "run_id": "run-0001",
    "scenario_id": "example-scenario",
    "tenant_id": 1
  },
  "scenario_id": "example-scenario",
  "started_at": {
    "kind": "unix_millis",
    "value": 1710000000000
  }
}

Output:

{
  "current_stage_id": "main",
  "decisions": [],
  "dispatch_targets": [
    {
      "agent_id": "agent-alpha",
      "kind": "agent"
    }
  ],
  "gate_evals": [],
  "namespace_id": 1,
  "packets": [],
  "run_id": "run-0001",
  "scenario_id": "example-scenario",
  "spec_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "stage_entered_at": {
    "kind": "unix_millis",
    "value": 1710000000000
  },
  "status": "active",
  "submissions": [],
  "tenant_id": 1,
  "tool_calls": [],
  "triggers": []
}

estat_escenari

Obteniu una instantània de lectura només i un resum segur sense canviar l’estat.

Inputs

  • request (required): Càrrega útil de la sol·licitud d’estat.
  • scenario_id (required): Identificador de l’escenari.

Sortides

  • current_stage_id (required): Identificador de l’etapa actual.
  • issued_packet_ids (required): Tipus: array.
  • last_decision (requerit, nullable): Un dels següents: null, objecte.
  • namespace_id (opcional): Identificador de l’espai de noms.
  • run_id (requerit): Identificador de la execució.
  • safe_summary (requerit, nullable): Un dels següents: null, objecte.
  • scenario_id (required): Identificador de l’escenari.
  • status (requerit): Tipus: string.

Notes

  • S’utilitza per a enquestes o estat de la interfície d’usuari; no avalua portes.
  • Els resums segurs ometen els valors d’evidència i poden incloure pistes de reintents.
  • Retorna els IDs de paquet emesos per ajudar a rastrejar les divulgacions.

Exemple

Estat de l’execució de la consulta sense avançar l’execució.

Input:

{
  "request": {
    "correlation_id": null,
    "namespace_id": 1,
    "requested_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "run_id": "run-0001",
    "tenant_id": 1
  },
  "scenario_id": "example-scenario"
}

Output:

{
  "current_stage_id": "main",
  "issued_packet_ids": [],
  "last_decision": null,
  "run_id": "run-0001",
  "safe_summary": null,
  "scenario_id": "example-scenario",
  "status": "active"
}

escenari_seguent

Avalua les portes en resposta a una sol·licitud següent impulsada per un agent.

Inputs

  • feedback (opcional, nul·la): Nivell de retroalimentació opcional per sobreescriure per a scenario_next.
  • request (required): Proper següent del payload d’una agent.
  • scenario_id (required): Identificador de l’escenari.

Sortides

  • decisió (requerit): Tipus: objecte.
  • feedback (opcional, nul·la): Un dels següents: null, objecte.
  • paquets (requerit): Tipus: array.
  • status (requerit): Tipus: string.

Notes

  • Idempotent per trigger_id; les trucades repetides retornen la mateixa decisió.
  • Registres de decisió, proves i divulgacions de paquets en estat d’execució.
  • Requereix una execució activa; les execucions completades o fallides no avancen.
  • El comentari opcional pot incloure el rastreig de la porta o proves quan ho permeti la política de comentaris del servidor.

Exemple

Exemple 1: Avaluar el següent pas impulsat per agents per a una execució.

Input:

{
  "request": {
    "agent_id": "agent-alpha",
    "correlation_id": null,
    "namespace_id": 1,
    "run_id": "run-0001",
    "tenant_id": 1,
    "time": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "trigger_id": "trigger-0001"
  },
  "scenario_id": "example-scenario"
}

Output:

{
  "decision": {
    "correlation_id": null,
    "decided_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "decision_id": "decision-0001",
    "outcome": {
      "kind": "complete",
      "stage_id": "main"
    },
    "seq": 0,
    "stage_id": "main",
    "trigger_id": "trigger-0001"
  },
  "packets": [],
  "status": "completed"
}

Exemple 2: Avaluar una execució i sol·licitar comentaris sobre el rastreig.

Input:

{
  "feedback": "trace",
  "request": {
    "agent_id": "agent-alpha",
    "correlation_id": null,
    "namespace_id": 1,
    "run_id": "run-0001",
    "tenant_id": 1,
    "time": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "trigger_id": "trigger-0001"
  },
  "scenario_id": "example-scenario"
}

Output:

{
  "decision": {
    "correlation_id": null,
    "decided_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "decision_id": "decision-0001",
    "outcome": {
      "kind": "complete",
      "stage_id": "main"
    },
    "seq": 0,
    "stage_id": "main",
    "trigger_id": "trigger-0001"
  },
  "feedback": {
    "gate_evaluations": [],
    "level": "trace"
  },
  "packets": [],
  "status": "completed"
}

escenari_enviar

Presentar artefactes externs en l’estat d’execució per a auditoria i avaluació posterior.

Inputs

  • request (obligatori): Càrrega de la sol·licitud i metadades.
  • scenario_id (required): Identificador de l’escenari.

Sortides

  • registre (requerit): Tipus: objecte.

Notes

  • El payload es fa un hash i es desa com un registre de presentació.
  • No avança la carrera per si mateix.
  • Utilitzeu per als artefactes el model o operador subministrat.

Exemple

Presenta un artefacte extern per a auditoria i avaluació posterior.

Input:

{
  "request": {
    "content_type": "application/json",
    "correlation_id": null,
    "namespace_id": 1,
    "payload": {
      "kind": "json",
      "value": {
        "artifact": "attestation",
        "status": "approved"
      }
    },
    "run_id": "run-0001",
    "submission_id": "submission-0001",
    "submitted_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "tenant_id": 1
  },
  "scenario_id": "example-scenario"
}

Output:

{
  "record": {
    "content_hash": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    },
    "content_type": "application/json",
    "correlation_id": null,
    "payload": {
      "kind": "json",
      "value": {
        "artifact": "attestation",
        "status": "approved"
      }
    },
    "run_id": "run-0001",
    "submission_id": "submission-0001",
    "submitted_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    }
  }
}

escenari_disparador

Envia un esdeveniment de desencadenament (programador/external) i avalua l’execució.

Inputs

  • scenario_id (required): Identificador de l’escenari.
  • trigger (requerit): Payload de l’esdeveniment de desencadenament.

Sortides

  • decisió (requerit): Tipus: objecte.
  • paquets (requerit): Tipus: array.
  • status (requerit): Tipus: string.

Notes

  • El temps d’activació és subministrat pel qui crida; no es fan lectures del rellotge de paret.
  • Registra l’esdeveniment de desencadenament i la decisió resultant.
  • Utilitzeu per a desencadenants basats en el temps o sistemes externs.

Exemple

Avança una execució des d’un programador o un desencadenant extern.

Input:

{
  "scenario_id": "example-scenario",
  "trigger": {
    "correlation_id": null,
    "kind": "tick",
    "namespace_id": 1,
    "payload": null,
    "run_id": "run-0001",
    "source_id": "scheduler-01",
    "tenant_id": 1,
    "time": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "trigger_id": "trigger-0001"
  }
}

Output:

{
  "decision": {
    "correlation_id": null,
    "decided_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "decision_id": "decision-0001",
    "outcome": {
      "kind": "complete",
      "stage_id": "main"
    },
    "seq": 0,
    "stage_id": "main",
    "trigger_id": "trigger-0001"
  },
  "packets": [],
  "status": "completed"
}

evidència_consulta

Consulta un proveïdor d’evidències amb el context complet d’execució i la política de divulgació.

Inputs

  • context (required): Context de l’evidència utilitzat per a l’avaluació.
  • query (required): Càrrega de consulta d’evidències.

Sortides

  • result (required): Tipus: object.

Notes

  • La política de divulgació pot redactar valors en brut; els hashes/ancres encara es retornen.
  • Utilitzeu per a diagnòstics o comprovacions abans del vol; el temps d’execució utilitza la mateixa lògica del proveïdor.
  • Requereix provider_id, check_id i EvidenceContext complet.

Exemple

Consulta un proveïdor d’evidències utilitzant el context d’execució.

Input:

{
  "context": {
    "correlation_id": null,
    "namespace_id": 1,
    "run_id": "run-0001",
    "scenario_id": "example-scenario",
    "stage_id": "main",
    "tenant_id": 1,
    "trigger_id": "trigger-0001",
    "trigger_time": {
      "kind": "unix_millis",
      "value": 1710000000000
    }
  },
  "query": {
    "check_id": "get",
    "params": {
      "key": "DEPLOY_ENV"
    },
    "provider_id": "env"
  }
}

Output:

{
  "result": {
    "content_type": "text/plain",
    "error": null,
    "evidence_anchor": {
      "anchor_type": "env",
      "anchor_value": "DEPLOY_ENV"
    },
    "evidence_hash": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    },
    "evidence_ref": null,
    "lane": "verified",
    "signature": null,
    "value": {
      "kind": "json",
      "value": "production"
    }
  }
}

runpack_export

Exporta artefactes de runpack deterministes per a la verificació fora de línia.

Inputs

  • generated_at (requerit): Timestamp enregistrat al manifest.
  • include_verification (requerit): Generar un artefacte de informe de verificació.
  • manifest_name (opcional, nul): Substitució opcional per al nom del fitxer manifest.
  • namespace_id (requerit): Identificador de l’espai de noms.
  • output_dir (opcional, nul·la): Directori de sortida opcional (requerit per a l’exportació del sistema de fitxers).
  • run_id (requerit): Identificador de la execució.
  • scenario_id (required): Identificador de l’escenari.
  • tenant_id (required): Identificador del llogater.

Sortides

  • manifest (requerit): Tipus: object.
  • report (requerit, nullable): Un dels següents: null, objecte.
  • storage_uri (opcional, nul): URI d’emmagatzematge opcional per a backend d’emmagatzematge de runpack gestionats.

Notes

  • Escriu el manifest i els registres a output_dir; generated_at es registra al manifest.
  • include_verification afegeix un artefacte de informe de verificació.
  • Utilitzeu després que les execucions es completin o per a instantànies d’auditoria.

Exemple

Exporta un runpack amb metadades del manifest.

Input:

{
  "generated_at": {
    "kind": "unix_millis",
    "value": 1710000000000
  },
  "include_verification": false,
  "manifest_name": "manifest.json",
  "namespace_id": 1,
  "output_dir": "/var/lib/decision-gate/runpacks/run-0001",
  "run_id": "run-0001",
  "scenario_id": "example-scenario",
  "tenant_id": 1
}

Output:

{
  "manifest": {
    "artifacts": [
      {
        "artifact_id": "decision_log",
        "content_type": "application/json",
        "hash": {
          "algorithm": "sha256",
          "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
        },
        "kind": "decision_log",
        "path": "decision_log.json",
        "required": true
      }
    ],
    "generated_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "hash_algorithm": "sha256",
    "integrity": {
      "file_hashes": [
        {
          "hash": {
            "algorithm": "sha256",
            "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
          },
          "path": "decision_log.json"
        }
      ],
      "root_hash": {
        "algorithm": "sha256",
        "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
      }
    },
    "manifest_version": "v1",
    "namespace_id": 1,
    "run_id": "run-0001",
    "scenario_id": "example-scenario",
    "spec_hash": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    },
    "tenant_id": 1,
    "verifier_mode": "offline_strict"
  },
  "report": null,
  "storage_uri": null
}

runpack_verify

Verifiqueu un manifest de runpack i artefactes fora de línia.

Inputs

  • manifest_path (required): Ruta del manifest relativa a la carpeta arrel de runpack.
  • runpack_dir (requerit): Directori arrel de Runpack.

Sortides

  • informe (requerit): Tipus: objecte.
  • estat (requerit): Estat de verificació de Runpack.

Notes

  • Valida els hashes, l’arrel d’integritat i l’estructura del registre de decisions.
  • Els fallos es tanquen en cas de fitxers perduts o manipulats.
  • Utilitzeu en CI o en canals d’auditoria fora de línia.

Exemple

Verifiqueu un manifest de runpack i artefactes fora de línia.

Input:

{
  "manifest_path": "manifest.json",
  "runpack_dir": "/var/lib/decision-gate/runpacks/run-0001"
}

Output:

{
  "report": {
    "checked_files": 12,
    "errors": [],
    "status": "pass"
  },
  "status": "pass"
}

llista_proveïdors

Llista de proveïdors d’evidències registrades i resum de capacitats.

Inputs

Sortides

  • proveïdors (requerit): Tipus: array.

Notes

  • Retorna identificadors de proveïdors i metadades de transport.
  • Els resultats estan limitats per la política d’autenticació.

Exemple

Llista de proveïdors d’evidència registrats.

Input:

{}

Output:

{
  "providers": [
    {
      "checks": [
        "get"
      ],
      "provider_id": "env",
      "transport": "builtin"
    }
  ]
}

proveedorcontracteobtenir

Obteniu el JSON del contracte del proveïdor canònic i el hash per a un proveïdor.

Inputs

  • provider_id (required): Identificador del proveïdor.

Sortides

  • contracte (requerit): Tipus: objecte.
  • contract_hash (requerit): Tipus: object.
  • provider_id (required): Identificador del proveïdor.
  • source (required): Origen de la font del contracte.
  • versió (requerida, nullable): Etiqueta de versió de contracte opcional.

Notes

  • Retorna el contracte del proveïdor tal com ha estat carregat pel servidor MCP.
  • Inclou un hash canònic per a l’auditoria i la reproductibilitat.
  • Sota la política de divulgació del proveïdor i l’autorització.

Exemple

Obteniu el JSON del contracte per a un proveïdor.

Input:

{
  "provider_id": "json"
}

Output:

{
  "contract": {
    "checks": [],
    "config_schema": {
      "additionalProperties": false,
      "type": "object"
    },
    "description": "Reads JSON or YAML files and evaluates JSONPath.",
    "name": "JSON Provider",
    "notes": [],
    "provider_id": "json",
    "transport": "builtin"
  },
  "contract_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "provider_id": "json",
  "source": "builtin",
  "version": null
}

proveidorcomprovaresquema_obtenir

Obteniu detalls de l’esquema de comprovació (paràmetres/resultat/comparadors) per a un proveïdor.

Inputs

  • check_id (required): Identificador de comprovació del proveïdor.
  • provider_id (required): Identificador del proveïdor.

Sortides

  • allowed_comparators (requerit): Llista blanca de comparadors per a aquesta comprovació.
  • anchor_types (required): Tipus d’ancora emesos per aquesta comprovació.
  • check_id (required): Identificador de comprovació.
  • content_types (required): Tipus de contingut per a la sortida de comprovació.
  • contract_hash (requerit): Tipus: object.
  • determinisme (requerit): Classificació del determinisme per a les comprovacions del proveïdor.
  • exemples (requerit): Tipus: array.
  • params_required (required): Si es requereixen paràmetres per a aquesta comprovació.
  • params_schema (required): esquema JSON per a comprovar els paràmetres.
  • provider_id (required): Identificador del proveïdor.
  • result_schema (requerit): esquema JSON per al valor del resultat de la comprovació.

Notes

  • Retorna metadades de l’esquema compilades per a una única comprovació.
  • Inclou llistes d’allow-list de comparadors i exemples de comprovació.
  • Sota la política de divulgació del proveïdor i l’autorització.

Exemple

Obteniu detalls de l’esquema de verificació per a un proveïdor.

Input:

{
  "check_id": "path",
  "provider_id": "json"
}

Output:

{
  "allowed_comparators": [
    "equals",
    "in_set",
    "exists",
    "not_exists"
  ],
  "anchor_types": [],
  "check_id": "path",
  "content_types": [
    "application/json"
  ],
  "contract_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "determinism": "external",
  "examples": [],
  "params_required": true,
  "params_schema": {
    "properties": {
      "file": {
        "type": "string"
      },
      "jsonpath": {
        "type": "string"
      }
    },
    "required": [
      "file"
    ],
    "type": "object"
  },
  "provider_id": "json",
  "result_schema": {
    "type": [
      "null",
      "string",
      "number",
      "boolean",
      "array",
      "object"
    ]
  }
}

esquemes_registre

Registreu un esquema de forma de dades per a un llogater i un espai de noms.

Inputs

  • registre (requerit): Tipus: objecte.

Sortides

  • registre (requerit): Tipus: objecte.

Notes

  • Els esquemes són immutables; registrar la mateixa versió dues vegades falla.
  • Proporciona created_at per enregistrar quan es va redactar l’esquema.

Exemple

Registra un esquema de forma de dades.

Input:

{
  "record": {
    "created_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "description": "Asserted payload schema.",
    "namespace_id": 1,
    "schema": {
      "additionalProperties": false,
      "properties": {
        "deploy_env": {
          "type": "string"
        }
      },
      "required": [
        "deploy_env"
      ],
      "type": "object"
    },
    "schema_id": "asserted_payload",
    "tenant_id": 1,
    "version": "v1"
  }
}

Output:

{
  "record": {
    "created_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "description": "Asserted payload schema.",
    "namespace_id": 1,
    "schema": {
      "additionalProperties": false,
      "properties": {
        "deploy_env": {
          "type": "string"
        }
      },
      "required": [
        "deploy_env"
      ],
      "type": "object"
    },
    "schema_id": "asserted_payload",
    "tenant_id": 1,
    "version": "v1"
  }
}

esquemes_llista

Llista de formes de dades registrades per a un llogater i un espai de noms.

Inputs

  • cursor (opcional, nul·la): Un dels: null, string.
  • limit (opcional): Nombre màxim de registres a retornar.
  • namespace_id (requerit): Identificador de l’espai de noms.
  • tenant_id (required): Identificador del llogater.

Sortides

  • elements (requerit): Tipus: array.
  • next_token (requerit, nullable): Un d’aquests: null, string.

Notes

  • Requereix tenant_id i namespace_id.
  • Admet la paginació mitjançant cursor + límit.

Exemple

Llista de formes de dades per a un espai de noms.

Input:

{
  "cursor": null,
  "limit": 50,
  "namespace_id": 1,
  "tenant_id": 1
}

Output:

{
  "items": [
    {
      "created_at": {
        "kind": "unix_millis",
        "value": 1710000000000
      },
      "description": "Asserted payload schema.",
      "namespace_id": 1,
      "schema": {
        "additionalProperties": false,
        "properties": {
          "deploy_env": {
            "type": "string"
          }
        },
        "required": [
          "deploy_env"
        ],
        "type": "object"
      },
      "schema_id": "asserted_payload",
      "tenant_id": 1,
      "version": "v1"
    }
  ],
  "next_token": null
}

schemas_obtenir

Obteniu una forma de dades específica per identificador i versió.

Inputs

  • namespace_id (requerit): Identificador de l’espai de noms.
  • schema_id (requerit): Identificador de la forma de dades.
  • tenant_id (required): Identificador del llogater.
  • versió (requerida): Identificador de versió de la forma de dades.

Sortides

  • registre (requerit): Tipus: objecte.

Notes

  • Requereix tenant_id, namespace_id, schema_id i version.
  • Falla tancada quan falta l’esquema.

Exemple

Obteniu una forma de dades per identificador i versió.

Input:

{
  "namespace_id": 1,
  "schema_id": "asserted_payload",
  "tenant_id": 1,
  "version": "v1"
}

Output:

{
  "record": {
    "created_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "description": "Asserted payload schema.",
    "namespace_id": 1,
    "schema": {
      "additionalProperties": false,
      "properties": {
        "deploy_env": {
          "type": "string"
        }
      },
      "required": [
        "deploy_env"
      ],
      "type": "object"
    },
    "schema_id": "asserted_payload",
    "tenant_id": 1,
    "version": "v1"
  }
}

escenaris_llista

Llista d’escenaris registrats per a un llogater i un espai de noms.

Inputs

  • cursor (opcional, nul·la): Un dels: null, string.
  • limit (opcional): Nombre màxim de registres a retornar.
  • namespace_id (requerit): Identificador de l’espai de noms.
  • tenant_id (required): Identificador del llogater.

Sortides

  • elements (requerit): Tipus: array.
  • next_token (requerit, nullable): Un d’aquests: null, string.

Notes

  • Requereix tenant_id i namespace_id.
  • Retorna identificadors de scenario i hashes.

Exemple

Llista d’escenaris per a un espai de noms.

Input:

{
  "cursor": null,
  "limit": 50,
  "namespace_id": 1,
  "tenant_id": 1
}

Output:

{
  "items": [
    {
      "namespace_id": 1,
      "scenario_id": "example-scenario",
      "spec_hash": {
        "algorithm": "sha256",
        "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
      }
    }
  ],
  "next_token": null
}

precomprovació

Avaluar un escenari contra dades afirmades sense mutar l’estat.

Inputs

  • data_shape (requerit): Tipus: object.
  • namespace_id (requerit): Identificador de l’espai de noms.
  • payload (requerit): Dades de càrrega afirmades.
  • scenario_id (opcional, nul·la): Un dels següents: null, cadena.
  • spec (opcional, nul·la): Un dels següents: null, ref decision-gate://contract/schemas/scenario.schema.json.
  • stage_id (opcional, nul·la): Un dels següents: nul, cadena.
  • tenant_id (required): Identificador del llogater.

Sortides

  • decisió (requerit): Un dels: objecte, objecte, objecte, objecte, objecte.
  • gate_evaluations (requerit): Tipus: array.

Notes

  • Valida les dades afirmades contra una forma registrada.
  • No muta l’estat d’execució; destinat a la simulació.

Exemple

Precomprovar un escenari amb dades afirmades.

Input:

{
  "data_shape": {
    "schema_id": "asserted_payload",
    "version": "v1"
  },
  "namespace_id": 1,
  "payload": {
    "deploy_env": "production"
  },
  "scenario_id": "example-scenario",
  "spec": null,
  "stage_id": null,
  "tenant_id": 1
}

Output:

{
  "decision": {
    "kind": "hold",
    "summary": {
      "policy_tags": [],
      "retry_hint": "await_evidence",
      "status": "hold",
      "unmet_gates": [
        "ready"
      ]
    }
  },
  "gate_evaluations": []
}

Cerca la documentació de Decision Gate per a orientació en temps d’execució.

Inputs

  • max_sections (opcional): Nombre màxim de seccions a retornar (per defecte 3, límit màxim 10).
  • query (required): Consulta de cerca per a seccions de documentació.

Sortides

  • docs_covered (requerit): Tipus: array.
  • seccions (requerit): Tipus: array.
  • suggested_followups (required): Suggeriments de seguiment conscients del rol.

Notes

  • Utilitzeu per a consultes ràpides sobre el flux d’evidències, comparadors i semàntica dels proveïdors.
  • Retorna seccions classificades amb etiquetes de rol i suggeriments de seguiment.
  • La cerca és determinista i està limitada al catàleg de documents configurat.

Exemple

Cerca evidències del flux i orientació del carril de confiança.

Input:

{
  "max_sections": 2,
  "query": "precheck vs live run trust lanes"
}

Output:

{
  "docs_covered": [
    {
      "doc_id": "evidence_flow_and_execution_model",
      "doc_role": "reasoning",
      "doc_title": "Evidence Flow + Execution Model"
    }
  ],
  "sections": [
    {
      "content": "...",
      "doc_id": "evidence_flow_and_execution_model",
      "doc_role": "reasoning",
      "doc_title": "Evidence Flow + Execution Model",
      "heading": "Core Data Flow",
      "rank": 0
    }
  ],
  "suggested_followups": [
    "Refine the query with comparator or provider keywords for targeted guidance."
  ]
}