definitions

package
v0.0.21 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Overview

Package definitions owns immutable versioned lifecycle documents. Documents are constructed by their typed owners, never by accepting arbitrary JSON.

Index

Constants

View Source
const EpochCohort = "1"

EpochCohort is the DBOS recovery cohort marker this binary executes. It is stated as a literal so the epoch document never imports the durable engine; the cohort agreement check proves it still equals the engine owner.

View Source
const EpochDocumentID model.DefinitionID = "pasture.epoch.implementation"

EpochDocumentID is the stable definition identity of the epoch implementation document. It does not change across versions and never carries an actor, epoch/task ID, timestamp, local path, or assignment.

View Source
const EpochDocumentVersion uint32 = 1

EpochDocumentVersion is the explicit format/content revision of the epoch implementation document. It is tracked independently of the DBOS recovery cohort the document carries: ordinary manifest changes never bump the cohort, and a cohort bump never silently rides a manifest change.

View Source
const EvidenceKind = provenance.EvidenceKind("pasture.lifecycle.definition.v2")
View Source
const InterpreterDocumentID model.DefinitionID = "pasture.lifecycle.interpreter"

InterpreterDocumentID is the stable definition identity of the interpreter document. It does not change across versions and never selects whatever interpreter happens to be marked active in a store.

View Source
const InterpreterDocumentVersion uint32 = 1

InterpreterDocumentVersion is the explicit format/content revision of the interpreter document. A body change for the stable interpreter ID requires a bump, enforced by the committed version ledger fixture.

View Source
const RetentionDocumentID model.DefinitionID = "pasture.lifecycle.retention.store-all"

RetentionDocumentID is the stable definition identity of the store-all retention policy document. It does not change across versions, and no alternate retention mode exists.

View Source
const RetentionDocumentVersion uint32 = 1

RetentionDocumentVersion is the explicit format/content revision of the retention policy document. A body change for the stable store-all ID requires a bump, enforced by the committed version ledger fixture.

View Source
const RuntimeDocumentVersion uint32 = 1
View Source
const SchemaDocumentID model.DefinitionID = "pasture.lifecycle.occurrence-schema"

SchemaDocumentID is the stable definition identity of the lifecycle schema document. It does not change across versions.

View Source
const SchemaDocumentVersion uint32 = 1

SchemaDocumentVersion is the explicit format/content revision of the lifecycle schema document. It is not the host version, the release number, or any store version. A body change for the stable schema ID requires a bump, enforced by the committed version ledger fixture.

Variables

This section is empty.

Functions

func AssembleEpochBody

func AssembleEpochBody(spec EpochSpecification) ([]byte, error)

AssembleEpochBody encodes one epoch specification as the canonical owner body. The generator and the round-trip checks share this assembler.

func AssembleInterpreterBody

func AssembleInterpreterBody(spec InterpreterSpecification) ([]byte, error)

AssembleInterpreterBody encodes one interpreter specification as the canonical owner body. The generator and the round-trip checks share this assembler.

func AssembleRetentionBody

func AssembleRetentionBody(spec RetentionSpecification) ([]byte, error)

AssembleRetentionBody encodes one retention specification as the canonical owner body. The generator and the round-trip checks share this assembler.

func AssembleSchemaBody

func AssembleSchemaBody(spec SchemaSpecification) ([]byte, error)

AssembleSchemaBody encodes one schema specification as the canonical owner body. The generator and the round-trip checks share this assembler so the committed bytes are always exactly what the descriptor describes.

func GenerateEpochBody

func GenerateEpochBody() ([]byte, error)

GenerateEpochBody is the production owner codec used by explicit generation. It never reads source files or a store at runtime: the source manifest travels in the committed generated inventory.

func GenerateInterpreterBody

func GenerateInterpreterBody() ([]byte, error)

GenerateInterpreterBody is the production owner codec used by explicit generation. It never reads source files or a store at runtime.

func GenerateRetentionBody

func GenerateRetentionBody() ([]byte, error)

GenerateRetentionBody is the production owner codec used by explicit generation. It never reads a store at runtime.

func GenerateRuntimeBody

func GenerateRuntimeBody(contract ir.RuntimeContractID) ([]byte, error)

GenerateRuntimeBody is the production owner codec used by explicit generation. It never reads source files or a store at runtime.

func GenerateSchemaBody

func GenerateSchemaBody() ([]byte, error)

GenerateSchemaBody is the production owner codec used by explicit generation. It never reads a store at runtime.

func NormalizePayload

func NormalizePayload(kind provenance.EvidenceKind, payload []byte) ([]byte, error)

NormalizePayload uses exactly the public journal codec used at commit. It performs no journal I/O, invents no result IDs and has no authority input.

func RuntimeContractForDelivery

func RuntimeContractForDelivery(delivery ir.RuntimeContractID) (ir.RuntimeContractID, error)

RuntimeContractForDelivery resolves one delivery (registration-spelled) contract to the runtime-spelled contract whose compiled owner document was built for it. The match is by the registration coordinate the runtime owner stamps into its specification, never by string surgery on either spelling: a delivery names the wire profile, the runtime document names the versioned execution profile compiled for that wire, and this function proves they are the same profile. An unregistered delivery contract is refused, not guessed.

func RuntimeContracts

func RuntimeContracts() []ir.RuntimeContractID

RuntimeContracts includes the historical OpenCode dispatcher still supported by this binary, not just the three installation defaults.

Types

type ActiveDocuments

type ActiveDocuments struct {
	Runtime             Document
	Schema              Document
	EpochImplementation Document
	Retention           Document
	Interpreter         Document
}

ActiveDocuments is the complete immutable owner document set one runtime contract activates against: the contract's own runtime document plus the shared schema, epoch implementation, retention, and interpreter documents. Every document is owner-built from its generated authority; none is an unavailable-body placeholder.

func ActiveForContract

func ActiveForContract(contract ir.RuntimeContractID) (ActiveDocuments, error)

ActiveForContract returns the complete owner document set for one runtime contract. The runtime document is selected by contract; the remaining four are the shared compiled documents. All five are independently activatable through the same gated writer the runtime document uses.

func (ActiveDocuments) Validate

func (d ActiveDocuments) Validate() error

Validate proves every document in the set is owner-built and distinct. It reports which slot fails so a partial set can never be mistaken for the complete contract documents.

type ByteBounds

type ByteBounds struct {
	Min int `json:"min"`
	Max int `json:"max"`
}

ByteBounds is an inclusive byte-length bound for codec-validated text.

type Document

type Document struct {
	// contains filtered or unexported fields
}

func Decode

func Decode(payload []byte) (Document, error)

Decode validates historical documents using their versioned owner codec, not the currently generated content. Other body owners extend this closed dispatch.

func NewEpochImplementation

func NewEpochImplementation() (Document, error)

NewEpochImplementation returns the compiled epoch owner document from its generated body. Historical bodies remain decodable; only this constructor provides a document the activation writer accepts.

func NewInterpreter

func NewInterpreter() (Document, error)

NewInterpreter returns the compiled interpreter owner document from its generated body. Historical bodies remain decodable; only this constructor provides a document the activation writer accepts.

func NewLifecycleSchema

func NewLifecycleSchema() (Document, error)

NewLifecycleSchema returns the compiled schema owner document from its generated body. Historical bodies remain decodable; only this constructor provides a document the activation writer accepts.

func NewRetentionPolicy

func NewRetentionPolicy() (Document, error)

NewRetentionPolicy returns the compiled retention owner document from its generated body. Historical bodies remain decodable; only this constructor provides a document the activation writer accepts.

func NewRuntimeContract

func NewRuntimeContract(contract ir.RuntimeContractID) (Document, error)

func (Document) Body

func (d Document) Body() []byte

func (Document) Codec

func (d Document) Codec() model.DefinitionCodec

func (Document) Content

func (d Document) Content() model.ContentIdentity

func (Document) Coordinate

func (d Document) Coordinate() []byte

Coordinate is the shared owner encoding used by both operation and command domains. Body content is already normalized; it is not re-hashed differently.

func (Document) ID

func (d Document) ID() model.DefinitionID

func (Document) IsValid

func (d Document) IsValid() bool

func (Document) Kind

func (d Document) Kind() model.DefinitionKind

func (Document) Version

func (d Document) Version() uint32

type EpochPhase

type EpochPhase struct {
	ID          string            `json:"id"`
	Number      int               `json:"number"`
	OwnerRoles  []string          `json:"owner_roles"`
	Transitions []EpochTransition `json:"transitions"`
}

EpochPhase records the execution shape of one protocol phase: its identity, number, owner roles, and valid transitions with their gate conditions. prose such as phase names and narratives is not execution shape and is excluded.

type EpochQueue

type EpochQueue struct {
	Name        string `json:"name"`
	Concurrency string `json:"concurrency"`
}

EpochQueue names one durable work queue and its concurrency bound.

type EpochRole

type EpochRole struct {
	ID string `json:"id"`
}

EpochRole records one protocol role by its wire identity.

type EpochSpecification

type EpochSpecification struct {
	// Cohort is the DBOS recovery cohort marker. Recovery filters in-flight
	// epochs by executor and cohort, so a rebuilt binary with this marker
	// still recovers epochs an earlier build left in flight.
	Cohort string `json:"cohort"`
	// ProtocolTransitions are the canonical protocol reachability table:
	// every phase with the phases directly reachable from it.
	ProtocolTransitions map[string][]string `json:"protocol_transitions"`
	// ConsensusGated are the protocol transitions requiring all-ACCEPT
	// consensus, as from/to pairs.
	ConsensusGated [][2]string `json:"consensus_gated"`
	// BlockerGated are the protocol transitions blocked while blockers stand.
	BlockerGated [][2]string `json:"blocker_gated"`
	// ReviseDrivesBack are the review phases where a REVISE vote forces only
	// the backward transition.
	ReviseDrivesBack []string `json:"revise_drives_back"`
	// Phases are the codegen phase inventory with owner roles and gated
	// transitions, sorted by phase number.
	Phases []EpochPhase `json:"phases"`
	// Roles are the codegen role inventory by wire identity, sorted.
	Roles []EpochRole `json:"roles"`
	// Workflows are the codegen workflow inventory with execution stages,
	// sorted by workflow identity.
	Workflows []EpochWorkflow `json:"workflows"`
	// WriteClasses are the closed lifecycle write classes the gate admits,
	// in class order.
	WriteClasses []string `json:"write_classes"`
	// SignalTopics are the durable epoch signal topics, sorted.
	SignalTopics []string `json:"signal_topics"`
	// QueryNames are the read-only epoch state queries, sorted.
	QueryNames []string `json:"query_names"`
	// Queues are the durable work queues with their concurrency discipline.
	Queues []EpochQueue `json:"queues"`
	// Sources is the engine execution source manifest: every production epoch
	// execution source with its generation-time content hash, sorted by path.
	Sources []SourceEntry `json:"sources"`
}

EpochSpecification is the shared pure descriptor of the binary's compiled epoch implementation: the typed protocol state machine plus the generated engine execution source manifest. It describes the binary, not any epoch instance.

func AssembleEpochSpecification

func AssembleEpochSpecification(sources []SourceEntry) (EpochSpecification, error)

AssembleEpochSpecification builds the epoch specification around one source manifest. Explicit generation supplies the freshly hashed manifest; the binary variant supplies the committed embedded one. Both paths share this assembler so the committed bytes always match the hashed sources.

func EpochSpecificationForBinary

func EpochSpecificationForBinary() (EpochSpecification, error)

EpochSpecificationForBinary is the pure owner descriptor used by both the document generator and the epoch agreement checks. The source manifest comes from the committed generated inventory, never from a runtime filesystem read; every other literal names a value the protocol, gate, engine, or codegen owners enforce.

func ParseEpochSpecification

func ParseEpochSpecification(body []byte) (EpochSpecification, error)

ParseEpochSpecification strictly decodes one schema owner body and returns its shared specification. Readers and agreement checks consume the specification through this parser, never by reimplementing the codec.

type EpochStage

type EpochStage struct {
	ID        string `json:"id"`
	Order     int    `json:"order"`
	Execution string `json:"execution"`
	Phase     string `json:"phase,omitempty"`
}

EpochStage is one workflow stage with its execution mode and optional phase mapping.

type EpochTransition

type EpochTransition struct {
	To        string `json:"to"`
	Condition string `json:"condition"`
	Action    string `json:"action,omitempty"`
}

EpochTransition is one valid phase transition with its gate condition and optional action on transition.

type EpochWorkflow

type EpochWorkflow struct {
	ID     string       `json:"id"`
	Role   string       `json:"role"`
	Stages []EpochStage `json:"stages"`
}

EpochWorkflow records the execution shape of one protocol workflow: its identity, owning role, and stages with their execution mode and phase mapping. Stage prose and action detail are not execution shape.

type IdentityDescriptor

type IdentityDescriptor struct {
	Kind     pastureruntime.NativeIdentityKind `json:"kind"`
	Name     string                            `json:"name"`
	Required bool                              `json:"required"`
}

type InterpreterSpecification

type InterpreterSpecification struct {
	// Pipeline is the ordered interpretation contract from verified event to
	// durable record.
	Pipeline []InterpreterStage `json:"pipeline"`
	// Semantics are the closed event meanings the transform discriminates.
	Semantics []string `json:"semantics"`
	// Terminals maps each non-observation semantic to the legalization
	// terminal the transform produces. Observation needs no terminal.
	Terminals map[string]string `json:"terminals"`
	// UnresolvedReasons are the closed correlation-gap reasons.
	UnresolvedReasons []string `json:"unresolved_reasons"`
	// IdentityKinds are the native correlation kinds interpretation may
	// carry, in canonical order.
	IdentityKinds []string `json:"identity_kinds"`
	// IdentityBounds bounds interpretation identity values.
	IdentityBounds ByteBounds `json:"identity_bounds"`
	// DecisionKinds are the consultation decision vocabulary shared by the
	// evaluator, the durable consultation, and the backend.
	DecisionKinds []string `json:"decision_kinds"`
	// RecordKinds are the durable interpreted evidence kinds: v1 is read-only
	// legacy without a coordinate, v2 carries the producing manifest, and v3
	// carries the complete five-reference semantic envelope.
	RecordKinds []string `json:"record_kinds"`
	// VocabularyRule states how the interpretation vocabulary travels: every
	// produced record stamps the manifest coordinate it was interpreted
	// against; readers resolve meaning to the journaled vocabulary, never to
	// the current binary's belief.
	VocabularyRule string `json:"vocabulary_rule"`
	// Sources is the compiled interpretation source manifest: every
	// production interpretation source with its generation-time content hash,
	// sorted by path.
	Sources []SourceEntry `json:"sources"`
}

InterpreterSpecification is the shared pure descriptor of the compiled interpretation contract: the verified-L2/transform/record pipeline, the closed semantic enums with their identity bounds, and the explicit source inventory the producing entry is compiled from. It is not the metamodel vocabulary: the vocabulary is an input coordinate the pipeline stamps, and its owner tracks it separately.

func AssembleInterpreterSpecification

func AssembleInterpreterSpecification(sources []SourceEntry) (InterpreterSpecification, error)

AssembleInterpreterSpecification builds the interpreter specification around one source manifest. Explicit generation supplies the freshly hashed manifest; the binary variant supplies the committed embedded one.

func InterpreterSpecificationForBinary

func InterpreterSpecificationForBinary() (InterpreterSpecification, error)

InterpreterSpecificationForBinary is the pure owner descriptor used by both the document generator and the interpretation agreement checks. The source manifest comes from the committed generated inventory, never from a runtime filesystem read.

func ParseInterpreterSpecification

func ParseInterpreterSpecification(body []byte) (InterpreterSpecification, error)

ParseInterpreterSpecification strictly decodes one schema owner body and returns its shared specification. Readers and agreement checks consume the specification through this parser, never by reimplementing the codec.

type InterpreterStage

type InterpreterStage struct {
	Stage  string `json:"stage"`
	Owner  string `json:"owner"`
	Entry  string `json:"entry"`
	Input  string `json:"input"`
	Output string `json:"output"`
}

InterpreterStage is one stage of the verified interpretation contract: the owning package, its entry symbol, and the value it produces. The stages run in order; no stage reads the journal and no stage invents journal refs.

type LifecycleDescriptor

type LifecycleDescriptor struct {
	Name                 string                              `json:"name"`
	Semantic             pastureruntime.EventSemantic        `json:"semantic"`
	Surface              pastureruntime.HookSurface          `json:"surface"`
	Blocking             pastureruntime.BlockingMode         `json:"blocking"`
	Mutation             pastureruntime.MutationMode         `json:"mutation"`
	Order                pastureruntime.HandlerOrder         `json:"order"`
	Reconciliation       pastureruntime.ReconciliationMode   `json:"reconciliation"`
	Failure              pastureruntime.FailureMode          `json:"failure"`
	DeclaredFailure      pastureruntime.FailureMode          `json:"declared_failure"`
	Evidence             pastureruntime.FailureEvidence      `json:"evidence"`
	AskEvidence          pastureruntime.FailureEvidence      `json:"ask_evidence"`
	PreAction            bool                                `json:"pre_action"`
	Response             pastureruntime.ResponseCapability   `json:"response"`
	StopLoop             pastureruntime.StopLoopPolicy       `json:"stop_loop"`
	IdentityPolicy       pastureruntime.IdentityPolicy       `json:"identity_policy"`
	Identities           []IdentityDescriptor                `json:"identities"`
	UnresolvedIdentities []pastureruntime.NativeIdentityKind `json:"unresolved_identities"`
}

type RetentionSpecification

type RetentionSpecification struct {
	// Policy names the single retention mode. Committed named bodies are
	// retained; there is no age- or size-bounded dropping of journal rows.
	Policy string `json:"policy"`
	// CommittedNamedBodies states the fate of payload blobs a recorded
	// occurrence names: retained, never reclaimed.
	CommittedNamedBodies string `json:"committed_named_bodies"`
	// OrphanEligibility states when an unnamed payload blob may be reclaimed:
	// unreferenced by any recorded occurrence, strictly older than the snapshot
	// instant minus the writer window, and of known age.
	OrphanEligibility string `json:"orphan_eligibility"`
	// UnknownAge states the fate of a blob with an unknown written-at stamp:
	// never eligible, whatever the snapshot instant.
	UnknownAge string `json:"unknown_age"`
	// ReadCap bounds how many orphan blobs one projection rebuild reclaims. It
	// sizes a read command's added latency, not a host budget.
	ReadCap int `json:"read_cap"`
	// PruneBatchCap bounds how many orphan blobs one operator prune batch
	// deletes. Each batch is its own short write transaction.
	PruneBatchCap int `json:"prune_batch_cap"`
	// WindowRule names the writer window the reclaim ages against: the
	// WorkflowResult tier of the injected timeout profile, or the operator's
	// retention age when larger. The window is a floor and never a ceiling.
	WindowRule string `json:"window_rule"`
	// WriteOrder states the deliberate blob/journal order: the payload blob is
	// written before the journal row that names it, so an orphan blob is
	// reclaimable while a journal row naming an absent blob is corruption.
	WriteOrder string `json:"write_order"`
	// Digest names the content-address algorithm for payload blobs.
	Digest string `json:"digest"`
	// NewestRow states the operator prune's one exclusion: the row at the
	// greatest written-at is never deleted.
	NewestRow string `json:"newest_row"`
}

RetentionSpecification is the shared pure descriptor of the store-all SQLite retention policy. It is consumed by the document generator and the owner agreement checks; the injected writer window is described by its timeout-tier rule, never by a guessed wall-clock value.

func ParseRetentionSpecification

func ParseRetentionSpecification(body []byte) (RetentionSpecification, error)

ParseRetentionSpecification strictly decodes one schema owner body and returns its shared specification. Readers and agreement checks consume the specification through this parser, never by reimplementing the codec.

func RetentionSpecificationForBinary

func RetentionSpecificationForBinary() (RetentionSpecification, error)

RetentionSpecificationForBinary is the pure owner descriptor used by both the document generator and the reclaim-policy agreement checks.

type RuntimeSpecification

type RuntimeSpecification struct {
	Contract            ir.RuntimeContractID                  `json:"contract"`
	Harness             ir.HarnessID                          `json:"harness"`
	Minimum             string                                `json:"minimum"`
	Maximum             string                                `json:"maximum"`
	HasUpperBound       bool                                  `json:"has_upper_bound"`
	IncludesPrereleases bool                                  `json:"includes_prereleases"`
	NativeTransport     string                                `json:"native_transport"`
	Operations          []pastureruntime.BindingDescriptor    `json:"operations"`
	Effects             []pastureruntime.BindingDescriptor    `json:"effects"`
	Capabilities        []pastureruntime.CapabilityDescriptor `json:"capabilities"`
	Registration        registration.Manifest                 `json:"registration"`
	Lifecycle           []LifecycleDescriptor                 `json:"lifecycle"`
}

RuntimeSpecification joins the complete compiled runtime classification and native lifecycle catalogs. It contains no host instance, payload or authority.

func ParseRuntimeSpecification

func ParseRuntimeSpecification(body []byte) (RuntimeSpecification, error)

ParseRuntimeSpecification strictly decodes one runtime owner body and returns its shared specification. Readers consume the specification through this parser, never by reimplementing the codec. The specification carries both the runtime-spelled contract and the registration coordinate it was compiled for, which is the owner pairing the receipt boundary enforces.

func RuntimeSpecificationForContract

func RuntimeSpecificationForContract(id ir.RuntimeContractID) (RuntimeSpecification, error)

RuntimeSpecificationForContract is the pure owner descriptor used by both the document generator and compiled-profile agreement checks.

type SchemaSpecification

type SchemaSpecification struct {
	// OccurrenceKinds are the durable occurrence evidence kinds the receipt
	// writer emits. v1 is read-only legacy without refs; v2 carries the
	// complete four-reference envelope and is the only kind new writes emit.
	OccurrenceKinds []string `json:"occurrence_kinds"`
	// InterpretedKinds are the durable interpreted evidence kinds. v1 is
	// read-only legacy without a metamodel coordinate; v2 carries one; v3
	// carries the complete five-reference semantic envelope.
	InterpretedKinds []string `json:"interpreted_kinds"`
	// DefinitionKinds are the durable definition snapshot evidence kinds for
	// the legacy metamodel writer (v1) and the five-kind writer (v2).
	DefinitionKinds []string `json:"definition_kinds"`
	// DefinitionStateKinds are the durable activation-state evidence kinds
	// paired with the snapshot kinds above.
	DefinitionStateKinds []string `json:"definition_state_kinds"`
	// DefinitionSlots are the ordered result slots every definition activation
	// commits, in commit order.
	DefinitionSlots []string `json:"definition_slots"`
	// OccurrenceEnvelope is the complete four-reference occurrence envelope:
	// definition kind per slot name.
	OccurrenceEnvelope map[string]model.DefinitionKind `json:"occurrence_envelope"`
	// SemanticEnvelope is the complete five-reference semantic envelope:
	// definition kind per slot name. The runtime, schema and implementation
	// slots are shared with the occurrence envelope and must be exactly equal
	// across the pair; no ref may be zero, dangling, or content-mismatched.
	SemanticEnvelope map[string]model.DefinitionKind `json:"semantic_envelope"`
	// SharedEnvelopeSlots names the slots the two envelopes share. A paired
	// occurrence/interpretation is admitted only when these refs are exactly
	// equal; refs that each resolve separately but differ fail the pair.
	SharedEnvelopeSlots []string `json:"shared_envelope_slots"`
	// BindingKinds are the native correlation binding kinds an occurrence may
	// carry, in canonical order.
	BindingKinds []string `json:"binding_kinds"`
	// BindingValueBytes bounds occurrence binding text: 1 through 512 bytes of
	// valid UTF-8 with no surrounding padding and no control characters.
	BindingValueBytes ByteBounds `json:"binding_value_bytes"`
	// IdentityValueBytes bounds interpretation identity values: at most 512
	// bytes with the same text discipline as bindings.
	IdentityValueBytes ByteBounds `json:"identity_value_bytes"`
	// PayloadDigest names the content-address algorithm for evidence payload
	// blobs. The blob write precedes the journal append, so an orphan blob is
	// reclaimable while a journal row naming an absent blob is corruption.
	PayloadDigest string `json:"payload_digest"`
	// CaptureDispositions are the numeric capture dispositions a receipt may
	// record: valid plus every non-valid path, all of which still journal a
	// complete occurrence envelope and never fabricate an interpretation.
	CaptureDispositions []uint8 `json:"capture_dispositions"`
	// CaptureOrigins are the provenance origins an envelope may record. Origin
	// is provenance-only; the write gate never observes it.
	CaptureOrigins []string `json:"capture_origins"`
	// HostVersionSources are the closed provenance sources for the observed
	// host version, which is provenance rather than an admission check.
	HostVersionSources []string `json:"host_version_sources"`
	// RuntimeContractRule states the contract pairing the codecs enforce: the
	// envelope runtime ref resolves to the runtime body whose contract equals
	// the delivery contract and the occurrence codec's contract.
	RuntimeContractRule string `json:"runtime_contract_rule"`
}

SchemaSpecification is the shared pure descriptor of the durable lifecycle codec contract. It is consumed by the document generator, the owner agreement checks, and the dual-envelope readers; no caller invokes generation at runtime to obtain it.

The contract covers the wire evidence kinds the journal actually emits, the two envelope reference sets with their pairing rule, and the value bounds the codecs enforce. Host payload field catalogs remain runtime-contract data; this is not a host JSON schema and not the interpretation vocabulary.

func ParseSchemaSpecification

func ParseSchemaSpecification(body []byte) (SchemaSpecification, error)

ParseSchemaSpecification strictly decodes one schema owner body and returns its shared specification. Readers and agreement checks consume the specification through this parser, never by reimplementing the codec.

func SchemaSpecificationForBinary

func SchemaSpecificationForBinary() (SchemaSpecification, error)

SchemaSpecificationForBinary is the pure owner descriptor used by both the document generator and the compiled-codec agreement checks. Every literal below names a value the production codecs enforce; the agreement checks prove each one against its live owner, so drift fails loudly instead of rotting.

type SourceEntry

type SourceEntry struct {
	Path   string `json:"path"`
	SHA256 string `json:"sha256"`
}

SourceEntry is one generation-time engine/interpreter source with its content hash. Paths are repository-relative with forward slashes; hashes are lowercase hex over the exact file bytes the generator read.

func EpochSourceInventory

func EpochSourceInventory() ([]SourceEntry, error)

EpochSourceInventory returns the committed generation-time engine execution source manifest. It reads the checked-in inventory, never the filesystem.

func InterpreterSourceInventory

func InterpreterSourceInventory() ([]SourceEntry, error)

InterpreterSourceInventory returns the committed generation-time interpretation source manifest. It reads the checked-in inventory, never the filesystem.

Directories

Path Synopsis
cmd
docgen command
Command docgen regenerates the remaining lifecycle definition owner bodies: schema, retention, epoch implementation, and interpreter, plus the engine execution and interpretation source inventories the epoch and interpreter documents embed.
Command docgen regenerates the remaining lifecycle definition owner bodies: schema, retention, epoch implementation, and interpreter, plus the engine execution and interpretation source inventories the epoch and interpreter documents embed.
runtimedocgen command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL