Vega
Vega Capability Protocol

Core concepts

Concepts that exist in the current VCP manifest and Python SDK. Network registration, protocol events, and transport heartbeats are not current public VCP features.

Concepts

ConceptDefinitionRelationship & lifecycle
CapabilityA versioned package with one Provider and one or more Actions.Defined by capability.yaml; validated before load.
ProviderA Python implementation of required lifecycle methods.Moves through new, initializing, ready, stopping, stopped, or failed.
ActionA versioned operation with schemas and a self-description contract.Invoked through a Provider execution.
ExecutionOne Provider invocation identified by execution_id.Receives request/context and returns result or raises error.
Initialization contextRead-only identity, configuration, secrets, clock, logger, and optional Artifact service.Passed to initialize.
Execution contextRestricted services for one execution.Cancellation, progress, deadline, logger, clock, trace, artifacts, leases.
ProgressJSON-compatible payload emitted during execution.Reporter assigns sequence, timestamp, execution, and trace data.
ArtifactBinary or large output written through an Artifact service.Returned as ArtifactReference, not a local path.
Healthhealthy, degraded, unhealthy, or unknown Provider result.Obtained through health_check.
Recovery probeOptional Provider observation after Runtime restart.Reports facts; Runtime decides retry or replanning.

Relationships

Capability  (metadata · provider · actions)
Provider (initialize · execute · health_check · shutdown)
Action (input · output · execution props)
ExecutionRequest
ExecutionContext
ExecutionResult

Provider lifecycle

BaseCapabilityProvider accepts initialization from new, stopped, or failed. It may execute only in ready. Initialization failure clears the initialization context and produces failed. Shutdown is idempotent after stopped and cancels base-managed background tasks.

New
Initializing
Ready
Stopping
Stopped
Initializing → Failed on exception; Stopped / Failed → Initializing on re-init.

Execution semantics

An execution request has nonblank execution, capability, Provider, Action, and Action-version identifiers; immutable JSON-compatible inputs; and optional deadline, idempotency key, Runtime correlation hints, trace ID, and metadata. The context validates that its execution ID matches the request. A Provider returns CapabilityExecutionResult on success or raises CapabilityError.

Example

python
class EchoProvider(BaseCapabilityProvider):
async def on_execute(self, request, context):
context.validate_request(request)
context.cancellation.raise_if_cancelled()
await context.progress.report({"phase": "working"})
return CapabilityExecutionResult(output={"echo": request.inputs})

Mission, task-graph, and node identifiers may be attached as optional Runtime correlation fields. They are not a VCP session or task protocol.