Files
ss-tools/specs/050-mcp-interface/contracts/tool-contracts.schema.json
busya 605c5d0552 docs(specs): refresh 017/036/037/038/039 production contracts
Add production contract refresh sections and normative contracts: 017/050
capture-reuse trust, 036 evidence promotion, 037 catalog lifecycle/revision,
038 browser actions/decision policy, 044-047 production chain/evidence/atomic
triage, and 050 MCP interface artifacts. Requirements marked OPEN pending
executable evidence.
2026-09-11 17:27:48 +03:00

386 lines
8.5 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Audited MCP operation inputs 050.2.0",
"description": "Normative additions, implemented=false. Server derives principal, digests and pin. Does not replace unaffected legacy catalog tool schemas.",
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"idempotency_key",
"tool",
"environment_id",
"release_id",
"source_response_handle",
"coordinate_handle",
"capture_profile_id"
],
"properties": {
"schema_version": {
"const": "050.2.0"
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"tool": {
"enum": [
"capture_baseline",
"capture_visual_baseline"
]
},
"environment_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"release_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"source_response_handle": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"coordinate_handle": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"capture_profile_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"idempotency_key",
"tool",
"candidate_id",
"capture_artifact_id",
"capture_sha256",
"disposition",
"reason"
],
"properties": {
"schema_version": {
"const": "050.2.0"
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"tool": {
"const": "review_visual_baseline"
},
"candidate_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"capture_artifact_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"capture_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"disposition": {
"enum": [
"approve",
"reject",
"inconclusive"
]
},
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 2000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"idempotency_key",
"tool",
"candidate_id",
"baseline_id",
"expected_catalog_revision_id",
"release_id",
"gate_id",
"reason"
],
"properties": {
"schema_version": {
"const": "050.2.0"
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"tool": {
"enum": [
"request_baseline_approval",
"consume_baseline_approval",
"publish_baseline_catalog",
"rebaseline",
"retire_baseline",
"invalidate_baseline"
]
},
"candidate_id": {
"type": [
"string",
"null"
],
"maxLength": 256
},
"baseline_id": {
"type": [
"string",
"null"
],
"maxLength": 256
},
"expected_catalog_revision_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"release_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"gate_id": {
"type": [
"string",
"null"
],
"maxLength": 256
},
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 2000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"idempotency_key",
"tool",
"scenario_id",
"revision_id",
"environment_id",
"baseline_set_id",
"baseline_set_version",
"parameters"
],
"properties": {
"schema_version": {
"const": "050.2.0"
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"tool": {
"const": "start_scenario_run"
},
"scenario_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"revision_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"environment_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"baseline_set_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"baseline_set_version": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"parameters": {
"type": "object",
"maxProperties": 100,
"additionalProperties": {
"type": [
"string",
"number",
"boolean",
"null"
]
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"tool",
"run_id"
],
"properties": {
"schema_version": {
"const": "050.2.0"
},
"tool": {
"enum": [
"get_scenario_run",
"get_scenario_run_result"
]
},
"run_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"tool",
"run_id",
"artifact_id"
],
"properties": {
"schema_version": {
"const": "050.2.0"
},
"tool": {
"const": "get_scenario_artifact"
},
"run_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"artifact_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
}
],
"$defs": {
"error": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"message",
"retryable",
"correlation_id"
],
"properties": {
"code": {
"enum": [
"invalid_arguments",
"unauthenticated",
"permission_denied",
"not_found",
"conflict",
"gone",
"limit_exceeded",
"precondition_required",
"provider_unavailable"
]
},
"message": {
"type": "string",
"maxLength": 2000
},
"retryable": {
"type": "boolean"
},
"correlation_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
},
"result": {
"type": "object",
"additionalProperties": false,
"required": [
"status",
"operation_id",
"resource_id",
"gate_id",
"baseline_pin"
],
"properties": {
"status": {
"enum": [
"completed",
"approval_required",
"pending",
"failed"
]
},
"operation_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"resource_id": {
"type": [
"string",
"null"
]
},
"gate_id": {
"type": [
"string",
"null"
]
},
"baseline_pin": {
"$ref": "../../037-superset-baseline-engine/contracts/baseline-pin.schema.json"
}
}
}
},
"$id": "https://superset-tools.local/specs/050-mcp-interface/contracts/tool-contracts.schema.json"
}