Initial commit: Agent Governance System Phase 8
Phase 8 Production Hardening with complete governance infrastructure: - Vault integration with tiered policies (T0-T4) - DragonflyDB state management - SQLite audit ledger - Pipeline DSL and templates - Promotion/revocation engine - Checkpoint system for session persistence - Health manager and circuit breaker for fault tolerance - GitHub/Slack integrations - Architectural test pipeline with bug watcher, suggestion engine, council review - Multi-agent chaos testing framework Test Results: - Governance tests: 68/68 passing - E2E workflow: 16/16 passing - Phase 2 Vault: 14/14 passing - Integration tests: 27/27 passing Coverage: 57.6% average across 12 phases Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://agent-governance/schemas/pipeline.schema.json",
|
||||
"title": "Agent Pipeline Definition",
|
||||
"description": "Schema for defining composable agent pipelines",
|
||||
"type": "object",
|
||||
"required": ["name", "version", "stages"],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z][a-z0-9-]*$",
|
||||
"description": "Pipeline name (lowercase, alphanumeric with dashes)"
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
||||
"description": "Pipeline version (semver)"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "Human-readable description of the pipeline"
|
||||
},
|
||||
"metadata": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"author": { "type": "string" },
|
||||
"created_at": { "type": "string", "format": "date-time" },
|
||||
"tags": { "type": "array", "items": { "type": "string" } }
|
||||
}
|
||||
},
|
||||
"inputs": {
|
||||
"type": "object",
|
||||
"description": "Pipeline input parameters",
|
||||
"additionalProperties": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": { "enum": ["string", "number", "boolean", "array", "object"] },
|
||||
"required": { "type": "boolean", "default": false },
|
||||
"default": {},
|
||||
"description": { "type": "string" }
|
||||
},
|
||||
"required": ["type"]
|
||||
}
|
||||
},
|
||||
"stages": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"$ref": "#/$defs/stage"
|
||||
}
|
||||
},
|
||||
"on_failure": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"action": { "enum": ["rollback", "notify", "pause", "continue"] },
|
||||
"notify": { "type": "array", "items": { "type": "string" } },
|
||||
"rollback_to": { "type": "string" }
|
||||
}
|
||||
},
|
||||
"timeout": {
|
||||
"type": "string",
|
||||
"pattern": "^\\d+[smh]$",
|
||||
"description": "Pipeline timeout (e.g., 30m, 2h)"
|
||||
}
|
||||
},
|
||||
"$defs": {
|
||||
"stage": {
|
||||
"type": "object",
|
||||
"required": ["name", "type"],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Stage name"
|
||||
},
|
||||
"type": {
|
||||
"enum": ["agent", "gate", "parallel", "condition"],
|
||||
"description": "Stage type"
|
||||
},
|
||||
"agent": {
|
||||
"type": "object",
|
||||
"description": "Agent configuration (for type: agent)",
|
||||
"properties": {
|
||||
"template": { "type": "string" },
|
||||
"tier": { "type": "integer", "minimum": 0, "maximum": 4 },
|
||||
"config": { "type": "object" }
|
||||
}
|
||||
},
|
||||
"gate": {
|
||||
"type": "object",
|
||||
"description": "Gate configuration (for type: gate)",
|
||||
"properties": {
|
||||
"approval": { "enum": ["human", "auto", "consensus"] },
|
||||
"timeout": { "type": "string" },
|
||||
"approvers": { "type": "array", "items": { "type": "string" } }
|
||||
}
|
||||
},
|
||||
"parallel": {
|
||||
"type": "object",
|
||||
"description": "Parallel execution (for type: parallel)",
|
||||
"properties": {
|
||||
"branches": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/$defs/stage" }
|
||||
},
|
||||
"wait": { "enum": ["all", "any", "none"] }
|
||||
}
|
||||
},
|
||||
"condition": {
|
||||
"type": "object",
|
||||
"description": "Conditional execution (for type: condition)",
|
||||
"properties": {
|
||||
"if": { "type": "string" },
|
||||
"then": { "$ref": "#/$defs/stage" },
|
||||
"else": { "$ref": "#/$defs/stage" }
|
||||
}
|
||||
},
|
||||
"requires": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" },
|
||||
"description": "Stage dependencies (stage names)"
|
||||
},
|
||||
"artifacts": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"inputs": { "type": "array", "items": { "type": "string" } },
|
||||
"outputs": { "type": "array", "items": { "type": "string" } }
|
||||
}
|
||||
},
|
||||
"on_failure": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"action": { "enum": ["fail", "skip", "retry", "rollback"] },
|
||||
"retries": { "type": "integer", "minimum": 0, "maximum": 5 },
|
||||
"retry_delay": { "type": "string" }
|
||||
}
|
||||
},
|
||||
"timeout": {
|
||||
"type": "string",
|
||||
"pattern": "^\\d+[smh]$"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user