Files
ECC/schemas/capsule-envelope.schema.json
T
f8640355e4 Consolidate recovered eval framework and operator workflows (#3040)
* feat: consolidate offline eval and operator workflows

Compose the retained framework, operator skill, roadmap and cleanup ranges on current main. Preserve current release dependencies and keep candidate execution disabled pending OS containment. Repair draft/DOCX behavior, obligation uniqueness, trusted send and audience guidance, runner provenance and eval diagnostics.

Source-PR: 2930 0abe3727d2b500c6e4830bdeb47ed67cae3f4785
Source-PR: 2931 992b49c44ed872def49675b791168b8fcd091df6
Source-PR: 2932 4a193dd13041cb7a6bebf4d2e910a0cd32bcc797
Source-PR: 2933 59cdfe500a91949ba1415f1edd7279620f21e804
Source-Base: ca185ef5f7

* fix: repair foundation CI and update js-yaml

* fix: reconcile pending-delete capsule locks after close

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 13:20:52 +01:00

80 lines
3.4 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://ecc.tools/schemas/capsule-envelope.schema.json",
"title": "Capsule Envelope v1",
"description": "One append-only journal entry recorded by the ECC eval-harness capsule. Mirrors scripts/lib/eval-harness/envelope.js, which is the enforcing implementation.",
"type": "object",
"additionalProperties": false,
"required": [
"schema",
"run_id",
"capsule_id",
"seq",
"ts",
"lineage",
"kind",
"effect_class",
"harness_version",
"task_family",
"parent_hash",
"entry_hash",
"payload"
],
"properties": {
"schema": { "const": "capsule-envelope/v1" },
"run_id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$" },
"capsule_id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$" },
"seq": { "type": "integer", "minimum": 0, "description": "Zero-based position in the journal. Must equal the line index." },
"ts": { "type": "string", "format": "date-time" },
"lineage": { "type": "string", "enum": ["plan", "attempt", "interaction", "environment", "strategy"] },
"kind": { "type": "string", "pattern": "^[a-z][a-z0-9_.-]{0,63}$" },
"effect_class": {
"type": "string",
"enum": ["SE0", "SE1", "SE2", "SE3", "SE4"],
"description": "SE0 read-only; SE1 reversible local write in the capsule root; SE2 sandboxed mutation, no live network writes; SE3 append-only remote evidence; SE4 economic or external effect."
},
"harness_version": { "type": "string", "minLength": 1 },
"task_family": { "type": "string", "minLength": 1 },
"parent_hash": { "type": "string", "pattern": "^[0-9a-f]{64}$", "description": "entry_hash of the previous entry, or 64 zeros for the first entry." },
"entry_hash": { "type": "string", "pattern": "^[0-9a-f]{64}$", "description": "sha256 of the canonical JSON of this entry with entry_hash removed." },
"payload": {
"type": "object",
"description": "Default-deny allowlisted properties only. No secrets, credentials, or raw reasoning text.",
"additionalProperties": false,
"properties": {
"task_id": { "type": "string" },
"task_family": { "type": "string" },
"tool": { "type": "string" },
"tool_call_id": { "type": "string" },
"args_hash": { "type": "string" },
"response_hash": { "type": "string" },
"status": { "type": "string" },
"exit_code": { "type": ["integer", "null"] },
"duration_ms": { "type": "number" },
"tokens_in": { "type": "integer" },
"tokens_out": { "type": "integer" },
"cost_usd": { "type": "number" },
"model": { "type": "string" },
"message": { "type": "string" },
"note": { "type": "string" },
"decision": { "type": "string" },
"reason": { "type": "string" },
"score": { "type": "number" },
"passed": { "type": "integer" },
"failed": { "type": "integer" },
"total": { "type": "integer" },
"variant": { "type": "string" },
"digest": { "type": "string" },
"path": { "type": "string" },
"fixture_key": { "type": "string" },
"stage": { "type": "string" },
"verdict": { "type": "string" },
"hits": { "type": "integer" },
"branch_id": { "type": "string" },
"parent_branch_id": { "type": "string" },
"summary": { "type": "string" }
}
}
}
}