JSON Schema
The canonical schema for an ECP Context is generated from the TypeScript types and emitted as:packages/spec/dist/ecp-context.schema.json
Generate it from the repo root (after a build):
spec.yaml) with the spec package validator:
ECPContext and all nested types: metadata, inputs, outputs, schemas, triggers, orchestration, orchestrator, executors, plugins, and policy/mount/schema definition shapes.
System configuration
The host system config file is usually namedecp.config.yaml (YAML or JSON). It is not part of the Context JSON Schema above. It is documented in the protocol spec and enforced by the reference runtime’s loader and structural validation.
Authoritative references
- SPEC.md — Host system configuration (
ecp.config.yaml) — Full normative description:version, configure vssecuritymirror, MCPtoolkind, A2A endpoints. - config/ecp.config.example.yaml — Annotated example file (validated in CI against the enforced shape).
- TypeScript:
ECPSystemConfigandSecurityConfiginpackages/runtime/src/engine/types.ts.
ECPSystemConfig as the source of truth.
TypeScript types
The single source of truth for the schema is:packages/spec/src/types/ecp.ts
All types are exported from @executioncontrolprotocol/spec (or packages/spec/src/types/index.ts). Key exports include:
- ECPContext — Root manifest interface
- Metadata, InputDefinition, OutputDefinition — Context-level fields
- SchemaDefinition, SchemaProperty — JSON Schema-aligned definitions
- Trigger, Orchestration, Orchestrator, Executor — Execution model
- Mount, ToolAccessPolicy, BudgetsPolicy, WriteControlsPolicy — Per-executor configuration
- Plugins, PluginReference — Declared plugins (
provider,executor,logger,memory, …)
"controller-specialist", "propose-only"), PascalCase for types and schema names.
TypeDoc (API docs)
For full JSDoc and category-based API documentation of every type and property, the repo can generate TypeDoc output. From the repo root:packages/docs/dist (when using the existing TypeDoc config). TypeDoc is useful for a browsable programmatic API reference of the TypeScript types. If you publish TypeDoc elsewhere (e.g. GitHub Pages), link to it from this page or the footer.
Example: minimal Context
A minimal valid Context in YAML:See also
- spec.yaml — Canonical example Context
- SPEC.md — Full protocol specification (includes host system configuration)
- CLI reference —
ecp run,ecp validate, andecp trace - Security — Context policies,
securitymirror, secret namespaces