Documentos de Decision Gate

Evaluación de puertas determinista, reproducible con decisiones auditables.

Documentación de Asset Core

Herramientas de Puerta de Decisión MCP

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

Páginas de detalles de herramientas

  • scenario_define - Registrar un ScenarioSpec, validarlo y devolver el hash canónico utilizado para las verificaciones de integridad.
  • scenario_start - Crear un nuevo estado de ejecución para un escenario y, opcionalmente, emitir paquetes de entrada.
  • scenario_status - Obtén una instantánea de ejecución de solo lectura y un resumen seguro sin cambiar el estado.
  • scenario_next - Evaluar puertas en respuesta a una solicitud siguiente impulsada por un agente.
  • scenario_submit - Enviar artefactos externos al estado de ejecución para auditoría y evaluación posterior.
  • scenario_trigger - Enviar un evento de activación (programador/externo) y evaluar la ejecución.
  • evidence_query - Consultar a un proveedor de evidencia con el contexto completo de ejecución y la política de divulgación.
  • runpack_export - Exportar artefactos de runpack deterministas para verificación offline.
  • runpack_verify - Verificar un manifiesto de runpack y artefactos sin conexión.
  • providers_list - Lista de proveedores de evidencia registrados y resumen de capacidades.
  • provider_contract_get - Obtener el JSON del contrato del proveedor canónico y el hash para un proveedor.
  • provider_check_schema_get - Obtener detalles del esquema de verificación (parámetros/resultados/comparadores) para un proveedor.
  • schemas_register - Registrar un esquema de forma de datos para un inquilino y un espacio de nombres.
  • schemas_list - Lista de formas de datos registradas para un inquilino y un espacio de nombres.
  • schemas_get - Recuperar una forma de datos específica por identificador y versión.
  • scenarios_list - Lista de escenarios registrados para un inquilino y un espacio de nombres.
  • precheck - Evaluar un escenario contra datos afirmados sin mutar el estado.
  • decision_gate_docs_search - Buscar documentación de Decision Gate para orientación en tiempo de ejecución.

Este documento resume la superficie de la herramienta MCP y el uso esperado. Los esquemas completos están en tooling.json, con los esquemas de soporte en schemas/ y ejemplos en examples/.

Inicio rápido del ciclo de vida

  • scenario_define registra y valida un ScenarioSpec.
  • scenario_start crea una ejecución y opcionalmente emite paquetes de entrada.
  • scenario_next avanza una ejecución impulsada por un agente; scenario_trigger avanza el tiempo/disparadores externos.
  • scenario_status consulta el estado de ejecución sin mutarlo.
  • scenario_submit añade artefactos externos para auditoría y verificaciones posteriores.
  • runpack_export y runpack_verify admiten verificación fuera de línea.

Referencias de artefactos

  • authoring.md: formatos de autoría y guía de normalización.
  • [scenario.json](/downloads/decision-gate/examples/scenario.json): ejemplo completo de ScenarioSpec.
  • examples/scenario.ron: ejemplo de ScenarioSpec amigable para la autoría.
  • [run-config.json](/downloads/decision-gate/examples/run-config.json): ejemplo de configuración de ejecución para scenario_start.
  • [decision-gate.toml](/downloads/decision-gate/examples/decision-gate.toml): ejemplo de configuración de MCP para proveedores.
HerramientaDescripción
scenario_defineRegistrar un ScenarioSpec, validarlo y devolver el hash canónico utilizado para verificaciones de integridad.
scenario_startCrear un nuevo estado de ejecución para un escenario y, opcionalmente, emitir paquetes de entrada.
scenario_statusObtener una instantánea de ejecución de solo lectura y un resumen seguro sin cambiar el estado.
scenario_nextEvaluar puertas en respuesta a una solicitud de siguiente impulsada por un agente.
scenario_submitEnviar artefactos externos al estado de ejecución para auditoría y evaluación posterior.
scenario_triggerEnviar un evento de activación (programador/externo) y evaluar la ejecución.
evidence_queryConsultar a un proveedor de evidencia con el contexto completo de ejecución y la política de divulgación.
runpack_exportExportar artefactos de runpack deterministas para verificación fuera de línea.
runpack_verifyVerificar un manifiesto de runpack y artefactos fuera de línea.
providers_listListar proveedores de evidencia registrados y resumen de capacidades.
provider_contract_getObtener el JSON del contrato canónico del proveedor y el hash para un proveedor.
provider_check_schema_getObtener detalles del esquema de verificación (parámetros/resultados/comparadores) para un proveedor.
schemas_registerRegistrar un esquema de forma de datos para un inquilino y un espacio de nombres.
schemas_listListar formas de datos registradas para un inquilino y un espacio de nombres.
schemas_getObtener una forma de datos específica por identificador y versión.
scenarios_listListar escenarios registrados para un inquilino y un espacio de nombres.
precheckEvaluar un escenario contra datos afirmados sin mutar el estado.
decision_gate_docs_searchBuscar documentación de Decision Gate para orientación en tiempo de ejecución.

escenario_definir

Registra un ScenarioSpec, valídalo y devuelve el hash canónico utilizado para las verificaciones de integridad.

Entradas

  • spec (requerido): Especificación del escenario a registrar.

Salidas

  • scenario_id (requerido): Identificador del escenario.
  • spec_hash (requerido): Tipo: object.

Notas

  • Usar antes de comenzar las ejecuciones; scenario_id se convierte en el identificador estable para llamadas posteriores.
  • Valida los IDs de etapa/puerta/condición, los árboles RET y las referencias de condición.
  • El hash de especificación es determinista; guárdalo para auditoría e integridad de descompresión.
  • Falla al cerrarse en especificaciones inválidas o IDs de escenario duplicados.

Ejemplo

Registra la especificación del escenario de ejemplo.

Entrada:

{
  "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"
  }
}

iniciodelescenario

Crea un nuevo estado de ejecución para un escenario y opcionalmente emite paquetes de entrada.

Entradas

  • issue_entry_packets (required): Emita paquetes de entrada de inmediato.
  • run_config (requerido): Configuración de ejecución y destinos de despacho.
  • scenario_id (requerido): Identificador del escenario.
  • started_at (requerido): Marca de tiempo de inicio de ejecución proporcionada por el llamador.

Salidas

  • current_stage_id (required): Identificador de la etapa actual.
  • decisiones (requerido): Tipo: array.
  • dispatch_targets (requerido): Tipo: array.
  • gate_evals (requerido): Tipo: array.
  • namespace_id (requerido): Identificador de espacio de nombres.
  • paquetes (requerido): Tipo: array.
  • run_id (requerido): Identificador de ejecución.
  • scenario_id (requerido): Identificador del escenario.
  • spec_hash (requerido): Tipo: object.
  • stage_entered_at (requerido): Uno de: objeto, objeto.
  • estado (requerido): Tipo: string.
  • envíos (requerido): Tipo: array.
  • tenant_id (required): Identificador del inquilino.
  • tool_calls (requerido): Tipo: array.
  • triggers (requerido): Tipo: array.

Notas

  • Requiere RunConfig (tenant_id, run_id, scenario_id, dispatch_targets).
  • Utilice started_at para registrar la marca de tiempo de inicio proporcionada por el llamador.
  • Si issue_entry_packets es verdadero, los paquetes de entrada se divulgan inmediatamente.
  • Falla cerrada si run_id ya existe o scenario_id es unknown.

Ejemplo

Inicie una ejecución para el escenario de ejemplo y emita paquetes de entrada.

Entrada:

{
  "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": []
}

estadodelescenario

Obtén una instantánea de ejecución de solo lectura y un resumen seguro sin cambiar el estado.

Entradas

  • request (required): Carga útil de solicitud de estado.
  • scenario_id (requerido): Identificador del escenario.

Salidas

  • current_stage_id (required): Identificador de la etapa actual.
  • issued_packet_ids (requerido): Tipo: array.
  • last_decision (requerido, nullable): Uno de: null, objeto.
  • namespace_id (opcional): Identificador de espacio de nombres.
  • run_id (requerido): Identificador de ejecución.
  • safe_summary (requerido, nullable): Uno de: null, objeto.
  • scenario_id (requerido): Identificador del escenario.
  • estado (requerido): Tipo: string.

Notas

  • Usar para encuestas o estado de UI; no evalúa puertas.
  • Los resúmenes seguros omiten los valores de evidencia y pueden incluir sugerencias de reintento.
  • Devuelve los IDs de paquetes emitidos para ayudar a rastrear divulgaciones.

Ejemplo

Estado de ejecución de la encuesta sin avanzar la ejecución.

Entrada:

{
  "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"
}

escenario_siguiente

Evalúa las puertas en respuesta a una solicitud siguiente impulsada por un agente.

Entradas

  • feedback (opcional, nulo): Nivel de retroalimentación opcional para el escenario_siguiente.
  • request (required): Siguiente carga útil de solicitud de un agente.
  • scenario_id (requerido): Identificador del escenario.

Salidas

  • decisión (requerido): Tipo: object.
  • feedback (opcional, nullable): Uno de: null, objeto.
  • paquetes (requerido): Tipo: array.
  • estado (requerido): Tipo: string.

Notas

  • Idempotente por trigger_id; las llamadas repetidas devuelven la misma decisión.
  • Registra decisiones, evidencia y divulgaciones de paquetes en estado de ejecución.
  • Requiere una ejecución activa; las ejecuciones completadas o fallidas no avanzan.
  • La retroalimentación opcional puede incluir el rastro de la puerta o evidencia cuando lo permita la política de retroalimentación del servidor.

Ejemplo

Ejemplo 1: Evalúe el siguiente paso impulsado por el agente para una ejecución.

Entrada:

{
  "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"
}

Ejemplo 2: Evalúe una ejecución y solicite comentarios sobre el seguimiento.

Entrada:

{
  "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"
}

escenario_enviar

Enviar artefactos externos al estado de ejecución para auditoría y evaluación posterior.

Entradas

  • request (requerido): Carga útil de envío y metadatos.
  • scenario_id (requerido): Identificador del escenario.

Salidas

  • registro (requerido): Tipo: object.

Notas

  • La carga útil se hash y se almacena como un registro de envío.
  • No avanza la ejecución por sí mismo.
  • Utilice para los artefactos el modelo o el operador proporciona.

Ejemplo

Enviar un artefacto externo para auditoría y evaluación posterior.

Entrada:

{
  "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
    }
  }
}

escenario_disparador

Envía un evento de activación (programador/externo) y evalúa la ejecución.

Entradas

  • scenario_id (requerido): Identificador del escenario.
  • trigger (requerido): Carga útil del evento de activación.

Salidas

  • decisión (requerido): Tipo: object.
  • paquetes (requerido): Tipo: array.
  • estado (requerido): Tipo: string.

Notas

  • El tiempo de activación es proporcionado por el llamador; no se leen relojes de pared.
  • Registra el evento desencadenante y la decisión resultante.
  • Usar para desencadenadores basados en el tiempo o en sistemas externos.

Ejemplo

Avance una ejecución desde un programador o un desencadenador externo.

Entrada:

{
  "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"
}

consultadeevidencia

Consulta a un proveedor de evidencia con el contexto completo de ejecución y la política de divulgación.

Entradas

  • contexto (requerido): Contexto de evidencia utilizado para la evaluación.
  • query (required): Carga útil de consulta de evidencia.

Salidas

  • resultado (requerido): Tipo: object.

Notas

  • La política de divulgación puede redactar valores en bruto; hashes/anclas aún se devuelven.
  • Utilizar para diagnósticos o verificaciones previas al vuelo; el tiempo de ejecución utiliza la misma lógica del proveedor.
  • Requiere provider_id, check_id y EvidenceContext completo.

Ejemplo

Consulta a un proveedor de evidencia utilizando el contexto de ejecución.

Entrada:

{
  "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

Exportar artefactos de runpack deterministas para verificación offline.

Entradas

  • generated_at (requerido): Marca de tiempo registrada en el manifiesto.
  • include_verification (requerido): Generar un artefacto de informe de verificación.
  • manifest_name (opcional, nullable): Sobrescritura opcional para el nombre del archivo de manifiesto.
  • namespace_id (requerido): Identificador de espacio de nombres.
  • output_dir (opcional, anulable): Directorio de salida opcional (requerido para la exportación del sistema de archivos).
  • run_id (requerido): Identificador de ejecución.
  • scenario_id (requerido): Identificador del escenario.
  • tenant_id (required): Identificador del inquilino.

Salidas

  • manifest (requerido): Tipo: object.
  • report (requerido, nullable): Uno de: null, objeto.
  • storage_uri (opcional, anulable): URI de almacenamiento opcional para backends de almacenamiento de runpack gestionados.

Notas

  • Escribe el manifiesto y los registros en output_dir; generated_at se registra en el manifiesto.
  • include_verification agrega un artefacto de informe de verificación.
  • Utilice después de que las ejecuciones se completen o para instantáneas de auditoría.

Ejemplo

Exportar un runpack con metadatos de manifiesto.

Entrada:

{
  "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

Verifique un manifiesto de runpack y artefactos sin conexión.

Entradas

  • manifest_path (requerido): Ruta del manifiesto relativa a la raíz de runpack.
  • runpack_dir (requerido): Directorio raíz de Runpack.

Salidas

  • informe (requerido): Tipo: object.
  • estado (requerido): Estado de verificación de Runpack.

Notas

  • Valida hashes, raíz de integridad y estructura del registro de decisiones.
  • Falla al cerrarse en archivos faltantes o manipulados.
  • Usar en CI o en auditorías fuera de línea.

Ejemplo

Verifique un manifiesto de runpack y artefactos sin conexión.

Entrada:

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

Output:

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

providers_list

Lista de proveedores de evidencia registrados y resumen de capacidades.

Entradas

Salidas

  • proveedores (requerido): Tipo: array.

Notas

  • Devuelve identificadores de proveedores y metadatos de transporte.
  • Los resultados están limitados por la política de autenticación.

Ejemplo

Listar proveedores de evidencia registrados.

Entrada:

{}

Output:

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

providercontractget

Obtén el JSON del contrato del proveedor canónico y el hash para un proveedor.

Entradas

  • provider_id (required): Identificador del proveedor.

Salidas

  • contrato (requerido): Tipo: object.
  • contract_hash (requerido): Tipo: object.
  • provider_id (required): Identificador del proveedor.
  • source (required): Origen de la fuente del contrato.
  • version (requerido, nullable): Etiqueta de versión de contrato opcional.

Notas

  • Devuelve el contrato del proveedor tal como lo carga el servidor MCP.
  • Incluye un hash canónico para auditoría y reproducibilidad.
  • Sujeto a la política de divulgación del proveedor y autorización.

Ejemplo

Obtén el JSON del contrato para un proveedor.

Entrada:

{
  "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
}

providercheckschema_get

Obtener detalles del esquema de verificación (parámetros/resultados/comparadores) para un proveedor.

Entradas

  • check_id (required): Identificador de verificación del proveedor.
  • provider_id (required): Identificador del proveedor.

Salidas

  • allowed_comparators (requerido): Lista de permitidos de comparadores para esta verificación.
  • anchor_types (requerido): Tipos de anclaje emitidos por esta verificación.
  • check_id (required): Identificador de verificación.
  • content_types (requerido): Tipos de contenido para la salida de verificación.
  • contract_hash (requerido): Tipo: object.
  • determinismo (requerido): Clasificación de determinismo para verificaciones de proveedor.
  • ejemplos (requerido): Tipo: array.
  • params_required (required): Si se requieren parámetros para esta verificación.
  • params_schema (requerido): esquema JSON para verificar parámetros.
  • provider_id (required): Identificador del proveedor.
  • result_schema (requerido): esquema JSON para el valor del resultado de la verificación.

Notas

  • Devuelve metadatos de esquema compilados para una única verificación.
  • Incluye listas de permitidos de comparadores y ejemplos de verificación.
  • Sujeto a la política de divulgación del proveedor y autorización.

Ejemplo

Obtén detalles del esquema de verificación para un proveedor.

Entrada:

{
  "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"
    ]
  }
}

schemas_register

Registra un esquema de forma de datos para un inquilino y un espacio de nombres.

Entradas

  • registro (requerido): Tipo: object.

Salidas

  • registro (requerido): Tipo: object.

Notas

  • Los esquemas son inmutables; registrar la misma versión dos veces falla.
  • Proporcione created_at para registrar cuándo se creó el esquema.

Ejemplo

Registrar un esquema de forma de datos.

Entrada:

{
  "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"
  }
}

listasdeesquemas

Lista de formas de datos registradas para un inquilino y un espacio de nombres.

Entradas

  • cursor (opcional, nullable): Uno de: null, string.
  • límite (opcional): Número máximo de registros a devolver.
  • namespace_id (requerido): Identificador de espacio de nombres.
  • tenant_id (required): Identificador del inquilino.

Salidas

  • items (requerido): Tipo: array.
  • next_token (requerido, nullable): Uno de: null, string.

Notas

  • Requiere tenant_id y namespace_id.
  • Soporta la paginación a través de cursor + límite.

Ejemplo

Lista las formas de datos para un espacio de nombres.

Entrada:

{
  "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_get

Obtén una forma de datos específica por identificador y versión.

Entradas

  • namespace_id (requerido): Identificador de espacio de nombres.
  • schema_id (requerido): Identificador de forma de datos.
  • tenant_id (required): Identificador del inquilino.
  • version (requerido): Identificador de versión de la forma de datos.

Salidas

  • registro (requerido): Tipo: object.

Notas

  • Requiere tenant_id, namespace_id, schema_id y version.
  • Falla al cerrarse cuando falta el esquema.

Ejemplo

Obtén una forma de datos por identificador y versión.

Entrada:

{
  "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"
  }
}

listadeescenarios

Lista de escenarios registrados para un inquilino y un espacio de nombres.

Entradas

  • cursor (opcional, nullable): Uno de: null, string.
  • límite (opcional): Número máximo de registros a devolver.
  • namespace_id (requerido): Identificador de espacio de nombres.
  • tenant_id (required): Identificador del inquilino.

Salidas

  • items (requerido): Tipo: array.
  • next_token (requerido, nullable): Uno de: null, string.

Notas

  • Requiere tenant_id y namespace_id.
  • Devuelve identificadores de escenario y hashes.

Ejemplo

Enumera los escenarios para un espacio de nombres.

Entrada:

{
  "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
}

preverificación

Evalúa un escenario contra datos afirmados sin mutar el estado.

Entradas

  • data_shape (requerido): Tipo: object.
  • namespace_id (requerido): Identificador de espacio de nombres.
  • payload (requerido): Carga de datos afirmada.
  • scenario_id (opcional, nullable): Uno de: null, string.
  • spec (opcional, nullable): Uno de: null, ref decision-gate://contract/schemas/scenario.schema.json.
  • stage_id (opcional, nullable): Uno de: null, string.
  • tenant_id (required): Identificador del inquilino.

Salidas

  • decision (requerido): Uno de: objeto, objeto, objeto, objeto, objeto.
  • evaluaciones_de_puerta (requerido): Tipo: array.

Notas

  • Valida los datos afirmados contra una forma registrada.
  • No muta el estado de ejecución; destinado a simulación.

Ejemplo

Prever un escenario con datos afirmados.

Entrada:

{
  "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": []
}

Busque la documentación de Decision Gate para obtener orientación en tiempo de ejecución.

Entradas

  • max_sections (opcional): Número máximo de secciones a devolver (por defecto 3, límite máximo 10).
  • query (required): Consulta de búsqueda para secciones de documentación.

Salidas

  • docs_covered (required): Tipo: array.
  • secciones (requerido): Tipo: array.
  • sugerencias_de_seguimiento (requerido): Indicaciones de seguimiento conscientes del rol.

Notas

  • Utilice para búsquedas rápidas sobre el flujo de evidencia, comparadores y semántica del proveedor.
  • Devuelve secciones clasificadas con etiquetas de rol y seguimientos sugeridos.
  • La búsqueda es determinista y está limitada al catálogo de documentos configurado.

Ejemplo

Busca evidencia de flujo y orientación de carriles de confianza.

Entrada:

{
  "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."
  ]
}