feat(reporting-governance): add package-first portability smoke

This commit is contained in:
Eve
2026-05-08 15:39:56 +08:00
parent 2eaa6e3bb3
commit 54ad955ac2
20 changed files with 2195 additions and 32 deletions

View File

@@ -0,0 +1,11 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://cowbay.org/schemas/reporting-governance/capability-descriptor.schema.json",
"title": "Reporting Governance Capability Descriptor",
"description": "Canonical package-level capability descriptor for reporting-governance runtime compositions.",
"allOf": [
{
"$ref": "./adapter-capabilities.schema.json"
}
]
}

View File

@@ -0,0 +1,197 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://cowbay.org/schemas/reporting-governance/deployment-profile.schema.json",
"title": "Reporting Governance Deployment Profile",
"type": "object",
"additionalProperties": false,
"required": ["apiVersion", "kind", "metadata", "spec"],
"properties": {
"apiVersion": {
"type": "string",
"const": "reporting-governance/v1alpha1"
},
"kind": {
"type": "string",
"const": "DeploymentProfile"
},
"metadata": {
"type": "object",
"additionalProperties": true,
"required": ["id", "version", "runtime"],
"properties": {
"id": { "type": "string", "minLength": 1 },
"title": { "type": "string", "minLength": 1 },
"version": { "type": "string", "minLength": 1 },
"runtime": { "type": "string", "minLength": 1 },
"summary": { "type": "string", "minLength": 1 }
}
},
"spec": {
"type": "object",
"additionalProperties": true,
"required": ["package", "adapters", "notifications", "audit", "capability_expectations"],
"properties": {
"package": {
"type": "object",
"additionalProperties": true,
"required": ["pluginVersion"],
"properties": {
"pluginVersion": { "type": "string", "minLength": 1 }
}
},
"adapters": {
"type": "object",
"additionalProperties": true,
"required": ["hook", "watchdog", "queue", "dispatcher", "bridge", "sender", "orchestrator"],
"properties": {
"hook": {
"type": "object",
"additionalProperties": true,
"required": ["enabled"],
"properties": {
"enabled": { "type": "boolean" }
}
},
"watchdog": {
"type": "object",
"additionalProperties": true,
"required": ["enabled"],
"properties": {
"enabled": { "type": "boolean" }
}
},
"queue": {
"type": "object",
"additionalProperties": true,
"required": ["enabled"],
"properties": {
"enabled": { "type": "boolean" }
}
},
"dispatcher": {
"type": "object",
"additionalProperties": true,
"required": ["enabled"],
"properties": {
"enabled": { "type": "boolean" }
}
},
"bridge": {
"type": "object",
"additionalProperties": true,
"required": ["enabled"],
"properties": {
"enabled": { "type": "boolean" }
}
},
"sender": {
"type": "object",
"additionalProperties": true,
"required": ["mode"],
"properties": {
"mode": {
"type": "string",
"enum": ["openclaw-cli", "shim_or_openclaw_cli", "dry-run_or_external"]
},
"enabled": { "type": "boolean" }
}
},
"orchestrator": {
"type": "object",
"additionalProperties": true,
"required": ["enabled"],
"properties": {
"enabled": { "type": "boolean" }
}
}
}
},
"notifications": {
"type": "object",
"additionalProperties": true,
"required": ["operatorVisibleRecoveryRequired", "allowedTerminalStates"],
"properties": {
"operatorVisibleRecoveryRequired": { "type": "boolean" },
"allowedTerminalStates": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"enum": ["acked", "blocked", "pending_external_send"]
}
}
}
},
"audit": {
"type": "object",
"additionalProperties": true,
"required": ["portableArtifactsRequired", "requiredArtifacts"],
"properties": {
"portableArtifactsRequired": { "type": "boolean" },
"requiredArtifacts": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"canonical_events",
"evidence_records",
"decision_records",
"queue_items",
"spool_artifacts",
"bridge_receipts",
"capability_descriptor",
"profile_snapshot"
]
}
}
},
"allOf": [
{
"if": {
"properties": {
"portableArtifactsRequired": { "const": true }
},
"required": ["portableArtifactsRequired"]
},
"then": {
"properties": {
"requiredArtifacts": {
"allOf": [
{
"contains": { "const": "canonical_events" }
},
{
"contains": { "const": "queue_items" }
},
{
"contains": { "const": "bridge_receipts" }
}
]
}
}
}
}
]
},
"capability_expectations": {
"type": "object",
"additionalProperties": true,
"required": ["required"],
"properties": {
"required": {
"type": "array",
"items": { "type": "string", "minLength": 1 }
},
"preferred": {
"type": "array",
"items": { "type": "string", "minLength": 1 }
}
}
}
}
}
}
}