{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://cowbay.org/schemas/reporting-governance/adapter-capabilities.schema.json", "title": "Reporting Governance Adapter Capabilities", "description": "Machine-readable capability descriptor for reporting-governance runtime adapters.", "type": "object", "additionalProperties": false, "required": [ "apiVersion", "kind", "metadata", "runtime", "compatibility", "capabilities" ], "properties": { "apiVersion": { "type": "string", "const": "reporting-governance/v1alpha1" }, "kind": { "type": "string", "const": "AdapterCapabilities" }, "metadata": { "$ref": "#/$defs/metadata" }, "runtime": { "$ref": "#/$defs/runtime" }, "compatibility": { "$ref": "#/$defs/compatibility" }, "capabilities": { "$ref": "#/$defs/capabilities" }, "defaults": { "$ref": "#/$defs/defaults" }, "notes": { "type": "array", "items": { "type": "string", "minLength": 1 } } }, "$defs": { "nonEmptyString": { "type": "string", "minLength": 1 }, "stringArray": { "type": "array", "items": { "$ref": "#/$defs/nonEmptyString" } }, "metadata": { "type": "object", "additionalProperties": false, "required": [ "id", "title", "version" ], "properties": { "id": { "$ref": "#/$defs/nonEmptyString" }, "title": { "$ref": "#/$defs/nonEmptyString" }, "version": { "$ref": "#/$defs/nonEmptyString" }, "owner": { "$ref": "#/$defs/nonEmptyString" }, "summary": { "$ref": "#/$defs/nonEmptyString" }, "tags": { "$ref": "#/$defs/stringArray" } } }, "runtime": { "type": "object", "additionalProperties": false, "required": [ "name", "mode" ], "properties": { "name": { "$ref": "#/$defs/nonEmptyString" }, "mode": { "type": "string", "enum": [ "hook", "watchdog", "queue", "bridge", "sender_binding", "orchestrator", "hybrid" ] }, "surfaces": { "type": "array", "minItems": 1, "items": { "type": "string", "enum": [ "hook", "watchdog", "queue", "dispatcher", "bridge", "sender_binding", "orchestrator", "scheduler", "storage" ] }, "uniqueItems": true }, "entrypoint": { "$ref": "#/$defs/nonEmptyString" } } }, "compatibility": { "type": "object", "additionalProperties": false, "required": [ "plugin_spec_versions" ], "properties": { "plugin_spec_versions": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/nonEmptyString" } }, "event_schema": { "$ref": "#/$defs/nonEmptyString" }, "evidence_schema": { "$ref": "#/$defs/nonEmptyString" }, "decision_schema": { "$ref": "#/$defs/nonEmptyString" }, "capabilities_schema": { "$ref": "#/$defs/nonEmptyString" } } }, "supportLevel": { "type": "string", "enum": [ "none", "partial", "full" ] }, "truthState": { "type": "string", "enum": [ "prepared", "queued", "dispatched", "pending_external_send", "acked", "blocked" ] }, "ioSupport": { "type": "object", "additionalProperties": false, "required": [ "supported" ], "properties": { "supported": { "type": "boolean" }, "level": { "$ref": "#/$defs/supportLevel" }, "notes": { "$ref": "#/$defs/stringArray" } } }, "truthModel": { "type": "object", "additionalProperties": false, "required": [ "delivery_states", "ack_requires_proven_send" ], "properties": { "delivery_states": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/truthState" }, "uniqueItems": true }, "ack_requires_proven_send": { "type": "boolean" }, "pending_external_send_supported": { "type": "boolean" } } }, "observationCapabilities": { "type": "object", "additionalProperties": false, "required": [ "task_lifecycle", "subagent_lifecycle", "checkpoint_obligations", "outgoing_report_attempts", "watchdog_state", "queue_spool_receipts" ], "properties": { "task_lifecycle": { "$ref": "#/$defs/ioSupport" }, "subagent_lifecycle": { "$ref": "#/$defs/ioSupport" }, "checkpoint_obligations": { "$ref": "#/$defs/ioSupport" }, "outgoing_report_attempts": { "$ref": "#/$defs/ioSupport" }, "watchdog_state": { "$ref": "#/$defs/ioSupport" }, "queue_spool_receipts": { "$ref": "#/$defs/ioSupport" } } }, "normalizationCapabilities": { "type": "object", "additionalProperties": false, "required": [ "canonical_events", "canonical_evidence", "decision_inputs", "correlation_propagation" ], "properties": { "canonical_events": { "$ref": "#/$defs/ioSupport" }, "canonical_evidence": { "$ref": "#/$defs/ioSupport" }, "decision_inputs": { "$ref": "#/$defs/ioSupport" }, "correlation_propagation": { "$ref": "#/$defs/ioSupport" } } }, "enforcementCapabilities": { "type": "object", "additionalProperties": false, "required": [ "block_transition", "rewrite_message", "annotate_placeholder", "force_checkpoint", "request_review", "downgrade_status", "escalate" ], "properties": { "block_transition": { "$ref": "#/$defs/ioSupport" }, "rewrite_message": { "$ref": "#/$defs/ioSupport" }, "annotate_placeholder": { "$ref": "#/$defs/ioSupport" }, "force_checkpoint": { "$ref": "#/$defs/ioSupport" }, "request_review": { "$ref": "#/$defs/ioSupport" }, "downgrade_status": { "$ref": "#/$defs/ioSupport" }, "escalate": { "$ref": "#/$defs/ioSupport" } } }, "notificationCapabilities": { "type": "object", "additionalProperties": false, "required": [ "queue_items", "spool_handoff", "sender_binding", "direct_send", "receipts", "final_delivery_proof", "truth_model" ], "properties": { "queue_items": { "$ref": "#/$defs/ioSupport" }, "spool_handoff": { "$ref": "#/$defs/ioSupport" }, "sender_binding": { "$ref": "#/$defs/ioSupport" }, "direct_send": { "$ref": "#/$defs/ioSupport" }, "receipts": { "$ref": "#/$defs/ioSupport" }, "final_delivery_proof": { "$ref": "#/$defs/ioSupport" }, "truth_model": { "$ref": "#/$defs/truthModel" } } }, "watchdogCapabilities": { "type": "object", "additionalProperties": false, "required": [ "scheduler_installation", "watchdog_evaluation", "watchdog_event_emission", "operator_recovery_path", "watchdog_closure" ], "properties": { "scheduler_installation": { "$ref": "#/$defs/ioSupport" }, "watchdog_evaluation": { "$ref": "#/$defs/ioSupport" }, "watchdog_event_emission": { "$ref": "#/$defs/ioSupport" }, "operator_recovery_path": { "$ref": "#/$defs/ioSupport" }, "watchdog_closure": { "$ref": "#/$defs/ioSupport" } } }, "storageCapabilities": { "type": "object", "additionalProperties": false, "required": [ "persist_events", "persist_evidence", "persist_decisions", "persist_receipts", "preserve_original_attempted_message" ], "properties": { "persist_events": { "$ref": "#/$defs/ioSupport" }, "persist_evidence": { "$ref": "#/$defs/ioSupport" }, "persist_decisions": { "$ref": "#/$defs/ioSupport" }, "persist_receipts": { "$ref": "#/$defs/ioSupport" }, "preserve_original_attempted_message": { "$ref": "#/$defs/ioSupport" } } }, "capabilities": { "type": "object", "additionalProperties": false, "required": [ "observation", "normalization", "enforcement", "notification_path", "watchdog", "storage" ], "properties": { "observation": { "$ref": "#/$defs/observationCapabilities" }, "normalization": { "$ref": "#/$defs/normalizationCapabilities" }, "enforcement": { "$ref": "#/$defs/enforcementCapabilities" }, "notification_path": { "$ref": "#/$defs/notificationCapabilities" }, "watchdog": { "$ref": "#/$defs/watchdogCapabilities" }, "storage": { "$ref": "#/$defs/storageCapabilities" } } }, "defaults": { "type": "object", "additionalProperties": false, "properties": { "reporting_mode": { "$ref": "#/$defs/nonEmptyString" }, "channel": { "$ref": "#/$defs/nonEmptyString" }, "policy_ids": { "$ref": "#/$defs/stringArray" }, "watchdog_policy_id": { "$ref": "#/$defs/nonEmptyString" } } } } }