* fix(mcp): name the close_binary retry for retained cleanup A close_binary that retired its target but could not confirm cleanup returned cleanup_incomplete with retryable: false and only the generic "Review the reported local resources" remediation, although the session keeps every failed owner and the next close_binary on the same connection retries them. Agents could abandon the connection that owns the only retry. The MCP close tool now passes its retry operation to the session. The session binds that typed AnalysisCleanupRetry to a failed retirement only while it retains the cleanup for its next close; the close tool binds it to process-capture failures its own scope retains and to compositions whose session part was offered. Projection then reports recovery.kind=retry_cleanup and appends a conditional instruction: keep the connection, let the condition settle or resolve it, call close_binary without snapshot_path and check the result. The hint disappears once that cleanup resolves. retryable keeps describing the failed operation. One-shot CLI closes, open_binary, analysis tools and failed snapshot saves (which keep the target open) offer no retry. Cleanup composition copies the owner's remediation without a retry offer, so the text appears once. Fixes #8211 Co-Authored-By: Claude Opus 5.5 <[email protected]> * test: derive close retry guidance from its owning formatters The new close_binary retry assertions froze ProviderCleanupError's explanatory sentence, so a harmless wording edit would break them. The MCP test now compares delivered remediation with analysisErrorRemediationAction applied to the delivered typed error plus cleanupRetryRemediation. The domain tests use the same formatters, check that unbound and released errors carry no retry text, and check that a bound composition adds the offer once. Recovery fields, cleanup state and retry behavior keep separate assertions. Co-Authored-By: Claude Opus 5.5 <[email protected]> --------- Co-authored-by: Claude Opus 5.5 <[email protected]>
1520 lines
49 KiB
JSON
1520 lines
49 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "invalid_request" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "access_denied" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "artifact_changed" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "unreadable_output" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "capability_unavailable" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "unsupported_target" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "provider_unavailable" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "provider_timeout" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "resource_constraint" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "cancelled" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "artifact_integrity_mismatch" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"logical_path": { "type": "string" },
|
|
"declared_sha256": { "type": ["string", "null"] },
|
|
"calculated_sha256": { "type": ["string", "null"] },
|
|
"unpacked": { "type": "boolean" }
|
|
},
|
|
"required": [
|
|
"logical_path",
|
|
"declared_sha256",
|
|
"calculated_sha256",
|
|
"unpacked"
|
|
],
|
|
"additionalProperties": {}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"logical_path": { "type": "string" },
|
|
"algorithm": { "type": "string", "const": "md5" },
|
|
"declared_md5": {
|
|
"type": "string",
|
|
"pattern": "^[a-f0-9]{32}$"
|
|
},
|
|
"calculated_md5": {
|
|
"anyOf": [
|
|
{ "type": "string", "pattern": "^[a-f0-9]{32}$" },
|
|
{ "type": "null" }
|
|
]
|
|
},
|
|
"unpacked": { "type": "boolean" }
|
|
},
|
|
"required": [
|
|
"logical_path",
|
|
"algorithm",
|
|
"declared_md5",
|
|
"calculated_md5",
|
|
"unpacked"
|
|
],
|
|
"additionalProperties": {}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"logical_path": { "type": "string" },
|
|
"algorithm": { "type": "string", "const": "dfu-crc32" },
|
|
"declared_crc32": {
|
|
"type": "string",
|
|
"pattern": "^[a-f0-9]{8}$"
|
|
},
|
|
"calculated_crc32": {
|
|
"anyOf": [
|
|
{ "type": "string", "pattern": "^[a-f0-9]{8}$" },
|
|
{ "type": "null" }
|
|
]
|
|
},
|
|
"unpacked": { "type": "boolean" }
|
|
},
|
|
"required": [
|
|
"logical_path",
|
|
"algorithm",
|
|
"declared_crc32",
|
|
"calculated_crc32",
|
|
"unpacked"
|
|
],
|
|
"additionalProperties": {}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"code",
|
|
"category",
|
|
"message",
|
|
"retryable",
|
|
"remediation",
|
|
"details"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "artifact_operation_failed" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "evidence_integrity_mismatch" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "truncated" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "process_capture_failed" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "cleanup_incomplete" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "revision_conflict" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "configuration_invalid" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "target_unavailable" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "execution_failure" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"recovery": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_input_contract" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "inspect_timeout_state" },
|
|
"operation": { "type": "string", "minLength": 1 },
|
|
"timeout_ms": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["kind", "operation", "timeout_ms"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": { "type": "string", "const": "retry_cleanup" },
|
|
"operation": { "type": "string", "minLength": 1 }
|
|
},
|
|
"required": ["kind", "operation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|