Skip to Content
Numinance
Protocol

Shared types

The enums, Digest and Reference of numinance.types.v1, with exact names and numbers for every value.

View as .mdUpdated
Available in public spec
numinance.types.v1 is part of the Apache-2.0 numinance-spec protocol. Enum numbers are fixed identifiers of the Numinance runtime.

One wire definition per shared value. Plugin, evidence, event, port and kind packages import these types and must not copy them.

When to use this page

Use it as the lookup for an enum value you see in a policy file, a protobuf message, an evidence record or a log line. The tables below were generated from types.proto by script, so names and numbers are exact.

Closed enums

The package has no services. Every element is since: "1.0.0"; enum values cannot carry the field option.

Enums are closed. A consumer must reject the zero value and any number it does not recognise, before any comparison, exactly as it rejects a missing value. A value added in a minor release therefore fails closed at an older consumer instead of being misread. The zero member of each enum is *_UNSPECIFIED and is never valid input.

In YAML, enum values are spelled by their full proto name, for example AUTONOMY_LEVEL_PR or RISK_CLASS_HIGH. Words like HIGH or PR in explanatory text elsewhere on this site are display text; the full names below are the real values. The risk and execution-mode enums are on Governance annotations.

EnumUsed for
PrincipalKindWhich identity an actor acts as.
ResidencyClassWhere compute and inference run.
TrustClassHow far a piece of content is trusted.
AutonomyLevelThe autonomy ladder.
ChangeStateThe states of a Change.
FindingSeverityVerifier finding severity.
DecisionOutcomeResult of a policy decision.
BreakerPositionCircuit breaker positions.
ExecutorCapabilityWhat an author executor can do.

Enums

PrincipalKind

PrincipalKind is the identity an actor acts as. It is a claim, not an authentication: the host sets it from the verified transport identity.

NumberValueMeaning
0PRINCIPAL_KIND_UNSPECIFIEDThe zero value; it is rejected by the host.
1PRINCIPAL_KIND_AUTHOR_AGENTWrites in a sandbox and opens PRs.
2PRINCIPAL_KIND_REVIEWER_AGENTRead-only and runs on a different model vendor.
3PRINCIPAL_KIND_RELEASE_PIPELINEThe only identity that invokes CD or merges when policy allows.
4PRINCIPAL_KIND_HUMAN_APPROVERA customer OIDC principal.
5PRINCIPAL_KIND_RUNNERWrites evidence and holds no customer credentials.
6PRINCIPAL_KIND_BREAK_GLASSA named human, time-boxed, impossible for any agent identity to invoke.
7PRINCIPAL_KIND_ENGINEProducer of Engine facts on the event transport. Valid only as an event envelope producer; never an actor. A consumer that reads an actor must reject it.
8PRINCIPAL_KIND_BROKERThe capability broker, as author of its own evidence receipts. Valid only as the actor_kind of a broker receipt record; a consumer that reads an actor for any other purpose must reject it.
9PRINCIPAL_KIND_EGRESS_PROXYThe egress proxy, as author of its own evidence receipts. The same receipt-only rule as BROKER applies.

ResidencyClass

ResidencyClass is the data-residency class of an executor and model combination. It is derived from manifest dimensions, never declared. It is unordered: a number never implies strictness, and a residency floor is compared through an explicit order table, never through the numbers.

NumberValueMeaning
0RESIDENCY_CLASS_UNSPECIFIEDThe zero value; it is rejected by the host.
1RESIDENCY_CLASS_IN_ACCOUNTRuns compute and inference in the customer account.
2RESIDENCY_CLASS_PRIVATE_ENDPOINTReaches a vendor model over a private network path.
3RESIDENCY_CLASS_VENDOR_ZDRA vendor endpoint with zero data retention.
4RESIDENCY_CLASS_VENDOR_STANDARDA vendor endpoint with standard retention.
5RESIDENCY_CLASS_AIRGAPPEDHas no external network path.

TrustClass

TrustClass is the trust class of an input the Engine reasons over. Numbers are an enumeration, not a lattice; only SIGNED_POLICY and KERNEL may create enforceable authority.

NumberValueMeaning
0TRUST_CLASS_UNSPECIFIEDThe zero value; it is rejected by the host.
1TRUST_CLASS_UNTRUSTED_RETRIEVEDKnowledge, tool output, tickets and comments.
2TRUST_CLASS_REPOSITORY_AUTHOREDA file in the worktree.
3TRUST_CLASS_SIGNED_SKILLA signed skill; it may advise and never widen a grant.
4TRUST_CLASS_SIGNED_POLICYA pack, a profile or a floor.
5TRUST_CLASS_KERNELThe kernel itself.

AutonomyLevel

AutonomyLevel is a rung of the autonomy ladder; ordered by number, higher is more autonomy. A consumer compares levels only after rejecting unknown numbers, so a rung it does not know never counts as more autonomy than OPERATE. A rung added in a minor takes the next number above all existing rungs; any other change of order is a new major.

NumberValueMeaning
0AUTONOMY_LEVEL_UNSPECIFIEDThe zero value; it is rejected by the host.
1AUTONOMY_LEVEL_OBSERVEReads only.
2AUTONOMY_LEVEL_SUGGESTProposes and writes nothing.
3AUTONOMY_LEVEL_IMPLEMENTWrites in a sandbox.
4AUTONOMY_LEVEL_PROpens pull requests.
5AUTONOMY_LEVEL_MERGEMerges when policy allows.
6AUTONOMY_LEVEL_STAGEDeploys to pre-production.
7AUTONOMY_LEVEL_RELEASEDeploys to production.
8AUTONOMY_LEVEL_OPERATERuns operations against production.

ChangeState

ChangeState is the state of a Change; numbers are identifiers, not an order. The state machine fixes the allowed transitions. PAUSED is an overlay on an active state, so a consumer also carries the previous state.

NumberValueMeaning
0CHANGE_STATE_UNSPECIFIEDThe zero value; it is rejected by the host.
1CHANGE_STATE_OPENEDEntered when intake accepted a ticket, incident or intent.
2CHANGE_STATE_UNDERSTOODEntered when the code graph, repository docs and knowledge bundle are resolved.
3CHANGE_STATE_CLASSIFIEDEntered when the playbook and risk class are fixed and the initial grant is derived.
4CHANGE_STATE_PLANNEDEntered when the plan with work units, risk per step and required evidence is produced.
5CHANGE_STATE_PLAN_GATEEntered when policy is evaluated on the plan.
6CHANGE_STATE_IMPLEMENTINGEntered when work units run under author grants.
7CHANGE_STATE_INTEGRATEDEntered when the candidate is assembled from work units.
8CHANGE_STATE_VERIFYINGEntered when the verifier pipeline runs.
9CHANGE_STATE_REPAIRINGEntered for the bounded repair loop (max max_repair_attempts).
10CHANGE_STATE_REHEARSINGEntered when migrations or infra are applied to a disposable environment.
11CHANGE_STATE_RELEASE_GATEEntered when policy is evaluated on all evidence.
12CHANGE_STATE_MERGINGEntered when the PR is opened, or merged when autonomy allows.
13CHANGE_STATE_RELEASINGEntered when the customer pipeline is invoked under the release identity.
14CHANGE_STATE_OBSERVINGEntered for the canary window against SLOs and invariants.
15CHANGE_STATE_RECOVERINGEntered for rollback through the CD provider; a corrective Change is opened.
16CHANGE_STATE_ESCALATEDEntered when a human is required; it waits on a signal.
17CHANGE_STATE_PAUSEDEntered when the circuit breaker trips (overlay on any active state).
18CHANGE_STATE_CLOSEDTerminal; the evidence is sealed.
19CHANGE_STATE_ABANDONEDTerminal; the evidence is sealed.
20CHANGE_STATE_ROLLED_BACKTerminal; the evidence is sealed.

FindingSeverity

FindingSeverity is the severity of a verifier finding and of the rule that produces it; higher is more severe, and a value added in a minor takes the next number. What a severity blocks is policy, not this enum.

NumberValueMeaning
0FINDING_SEVERITY_UNSPECIFIEDThe zero value; it is rejected by the host.
1FINDING_SEVERITY_INFOAdvisory.
2FINDING_SEVERITY_LOWA minor deviation.
3FINDING_SEVERITY_MEDIUMA deviation that needs a fix.
4FINDING_SEVERITY_HIGHA deviation that risks correctness or security.
5FINDING_SEVERITY_CRITICALA deviation that risks a security escape or data loss.

DecisionOutcome

DecisionOutcome is the result of one policy decision.

NumberValueMeaning
0DECISION_OUTCOME_UNSPECIFIEDThe zero value; it is rejected.
1DECISION_OUTCOME_ALLOWLets the action proceed.
2DECISION_OUTCOME_DENYRefuses the action; the denial is recorded like an allow.
3DECISION_OUTCOME_REQUIRE_APPROVALHolds the action until the named approvers decide.

BreakerPosition

BreakerPosition is a position of the circuit breaker. Order from least to most restrictive: FULL_AUTO, PR_ONLY, READ_ONLY, STOPPED. A value added in a minor states its place in this order in its comment; consumers compare positions by that order, never by number alone.

NumberValueMeaning
0BREAKER_POSITION_UNSPECIFIEDThe zero value; it is rejected.
1BREAKER_POSITION_FULL_AUTOCaps nothing beyond the autonomy policy.
2BREAKER_POSITION_PR_ONLYCaps effective autonomy at PR.
3BREAKER_POSITION_READ_ONLYAllows no write.
4BREAKER_POSITION_STOPPEDPauses every run.

ExecutorCapability

ExecutorCapability is one capability an author executor declares. Playbooks require capabilities by name, never vendors; a declared capability grants nothing, since the sandbox, egress proxy and broker enforce every request.

NumberValueMeaning
0EXECUTOR_CAPABILITY_UNSPECIFIEDThe zero value; it is rejected by the host.
1EXECUTOR_CAPABILITY_FILESYSTEM_READReads files of the worktree.
2EXECUTOR_CAPABILITY_FILESYSTEM_WRITEWrites files of the worktree.
3EXECUTOR_CAPABILITY_SHELLRuns commands.
4EXECUTOR_CAPABILITY_NETWORKMakes network requests through the egress proxy.
5EXECUTOR_CAPABILITY_SUBAGENTSStarts subagents of its own.
6EXECUTOR_CAPABILITY_BROWSERDrives a browser.
7EXECUTOR_CAPABILITY_MCPCalls MCP tools attached by the adapter.
8EXECUTOR_CAPABILITY_CHECKPOINTEmits checkpoints it can resume from.
9EXECUTOR_CAPABILITY_STRUCTURED_PLANReturns a structured plan before acting.
10EXECUTOR_CAPABILITY_APPROVAL_CALLBACKSAsks the host before a tool call.
11EXECUTOR_CAPABILITY_NATIVE_SANDBOXHas a sandbox of its own inside the work-unit sandbox.
12EXECUTOR_CAPABILITY_CONTEXT_PERSISTENCEKeeps context across runs.

Digest

proto/numinance/types/v1/types.proto
message Digest {
  string value = 1;
}

value is exactly sha256: plus 64 lowercase hex characters. Any other length, case or prefix, and an empty value in a present message, is rejected. Absence is the unset message.

Reference

proto/numinance/types/v1/types.proto
message Reference {
  string artifact_ref = 1;
  Digest sha256 = 2;
  string artifact_type = 3;
}

A Reference is a claim-check pointer to content in the artifact store. It carries a store key and a digest, never content.

FieldRule
artifact_refRequired. An opaque store key matching ^[A-Za-z0-9][A-Za-z0-9._/-]{0,1023}$ with no .. segment. Resolved only through the artifact store, never as a URL or a filesystem path.
sha256Required. The digest of the artifact content.
artifact_typeRequired. A token matching ^[a-z0-9][a-z0-9._-]{0,127}$ that names the kind of content, checked against the host's allow-list.

References are how orchestration payloads stay free of content. A plugin reads the bytes only through HostService.ResolveReference, which verifies the digest first. Evidence records use Reference and Digest in their inputs and outputs; see Record chain.

Failure modes

SituationResult
Zero or unknown enum numberRejected by the consumer.
Digest.value with uppercase hex, a missing prefix or the wrong lengthRejected.
Reference with .. in artifact_ref, or a URL where a key belongsRejected.
PRINCIPAL_KIND_ENGINE as an actorRejected by any consumer that reads an actor.

Next steps

On this page