Vega
Vega Capability Protocol

Reference

Public manifest and Python SDK contract surface that exists in the repository. This is not a network API reference — no canonical message envelope or transport endpoint is currently published.

Concepts

  • Manifest reference: the currently supported package declarations and validation constraints.
  • SDK reference: the public Python Provider types and enumerations.
  • Reference implementation: the behavior defined by the published SDK code and its tests, rather than an unpublished transport protocol.

Manifest constants and fields

ItemCurrent value or rule
Manifest filenamecapability.yaml
Supported API versionvcp.shyda.ai/v1alpha1
Required kindCapability
Provider runtimepython only
Provider entrypointmodule:Class
Metadata IDlowercase pattern [a-z0-9][a-z0-9._-]*
Action IDdot-separated lowercase components, each beginning with a letter
Versionsemantic version text
capability.yaml
metadata
provider
actions
resources
compatibility
configuration & secrets

Required top-level manifest fields are apiVersion, kind, metadata, vega, provider, and actions. vega.sdkVersion is required. Optional sections include compatibility, dependencies, resources, configuration, and secrets.

Action execution declarations

FieldValues or default
defaultTimeoutSeconds30.0 by default; may be null
cancellation, pause, resume, progressboolean; false by default
idempotencyidempotent, non_idempotent, conditional
restartRecoveryrestart, resume, re_evaluate, manual_confirmation, not_recoverable

resume: true requires pause: true. restartRecovery: resume requires resume: true. progress: true requires a progress schema.

Python Provider contract

python
async def initialize(context: ProviderInitializationContext) -> None: ...
async def execute(
request: CapabilityExecutionRequest,
context: CapabilityExecutionContext,
) -> CapabilityExecutionResult: ...
async def health_check() -> CapabilityHealthResult: ...
async def shutdown() -> None: ...

Optional protocols are CancellableProvider, PausableProvider, ResumableProvider, ReloadableProvider, and RecoveryCapableProvider.

Execution request and result

Request fieldRequirement
execution_id, capability_id, provider_id, action_id, action_versionnonblank strings
inputs, metadatadeeply immutable JSON-compatible values
deadlineoptional timezone-aware UTC datetime
idempotency_key, mission_id, task_graph_id, node_id, trace_idoptional strings
Result fieldRequirement
output, diagnosticsdeeply immutable JSON-compatible values
artifact_referencesstrings or ArtifactReference values
physical_terminationoptional termination-status enumeration

Enumerations

EnumerationValues
Healthhealthy, degraded, unhealthy, unknown
Cancellation reasonuser_request, mission_cancelled, timeout, task_timeout, runtime_shutdown, safety_stop, operator_request, parent_cancelled
Physical terminationnot_applicable, unknown, confirmed, failed_to_confirm
Resource modeexclusive, shared
Recovery probeactive, succeeded, failed, cancelled, not_found, unknown, unavailable
Recovery safety classpure, idempotent, retry_safe, status_query_required, non_idempotent, human_confirmation_required

Standard error categories

CapabilityError.to_dict() produces error_code, category, message, retryable, severity, and details. Categories are invalid_input, precondition_failed, dependency_unavailable, resource_unavailable, hardware_error, communication_error, timeout, cancelled, safety_rejection, unsupported_operation, provider_internal_error, and output_validation_failed.

Recovery constraints

ProviderProbeResult rejects contradictory state: succeeded cannot include an error; failed cannot include a successful result; and not-found, unknown, or unavailable cannot include either result or error.

Example package validation

bash
vega-capability validate /path/to/capability
vega-capability validate . --json

The validator does not import the Provider, install dependencies, determine live hardware compatibility, or start Vega Runtime.