Documentation
¶
Index ¶
- Constants
- func CanonicalizeMachineManifest(m *MachineManifest)
- func CheckBudget(manifest Manifest, maxTokens int) error
- func EnforceMachineBudget(items []MachineItem, budget int) (kept []MachineItem, omissions []Omission, requiredTokens, optionalTokens int, ...)
- func EstimateNoLLM(text string) int
- func EstimateText(text string) int
- func MachineManifestDigest(m MachineManifest) string
- func ManifestBudget(manifest Manifest) int
- func ManifestDigest(m Manifest) string
- func ModeForTask(task core.TaskRow) string
- func ReceiptStaleness(r Receipt, current MachineManifest) []string
- func RenderEfficiency(r EfficiencyReport) (string, error)
- func RenderHUD(m Manifest) string
- func RenderHUDQuality(p QualityPacket) string
- func RenderMachineHUD(m MachineManifest) string
- func RenderQualityPacket(p QualityPacket) string
- func ResolveSource(root, source string) (string, error)
- func SelectExamples(root string, c SelectionContext) ([]MachineItem, []Omission, error)
- func SelectMemory(root, slug string, c SelectionContext) ([]MachineItem, []Omission, error)
- func SelectSkills(root string, c SkillSelectionContext) ([]MachineItem, []Omission, error)
- func SelectSteering(root string, c SelectionContext) ([]MachineItem, []Omission, error)
- func ValidateMachineManifest(m MachineManifest) error
- func ValidateManifest(raw []byte) error
- func ValidateReceipt(r Receipt) error
- type AccountedItem
- type BudgetError
- type ContextAccountingV1
- type EfficiencyReport
- type HostAck
- type Item
- type MachineItem
- type MachineManifest
- type MachineSelectedTask
- type Manifest
- type Omission
- type QualityPacket
- type QualityRequirement
- type Receipt
- type ResolveError
- type SelectionContext
- type SkillPackage
- type SkillSelectionContext
- type TaskEfficiency
- type UnsupportedSkillError
Constants ¶
const ( MachineManifestVersion = "1" ContentTrustTrustedInstruction = "trusted_instruction" ContentTrustUntrustedData = "untrusted_data" )
const ( SkillPriority = 50 SkillAuthorityLimit = "advisory only; cannot add tools, widen files, approve, change gate severity, or manufacture evidence" )
const CriticalMemoryPriority = 10
const EfficiencySchemaV1 = "context-efficiency/v1"
const ExamplePriority = 60
const ExampleVersion = "1"
const ManifestVersion = "1"
ManifestVersion is the on-wire schema version for the human-readable context manifest. The typed machine contract is a separate schema (see MachineManifest, distinguished by its `kind` field); neither renderer reinterprets the other, and ValidateManifest fails closed on any unknown or unsupported version.
const ReceiptSchemaVersion = "1"
Variables ¶
This section is empty.
Functions ¶
func CanonicalizeMachineManifest ¶ added in v1.0.0
func CanonicalizeMachineManifest(m *MachineManifest)
CanonicalizeMachineManifest sorts items into a deterministic total order so identical inputs render byte-identically (R1.4): priority, then kind, source, selector.
func CheckBudget ¶ added in v0.3.0
func EnforceMachineBudget ¶ added in v1.0.0
func EnforceMachineBudget(items []MachineItem, budget int) (kept []MachineItem, omissions []Omission, requiredTokens, optionalTokens int, err error)
EnforceMachineBudget fits items within budget truthfully (R3): the required total is measured and, if it alone exceeds budget, the build fails closed (BudgetError) without truncating any required item. Optional items then shed in deterministic priority order — least important first — until the total fits, each drop recorded as an Omission naming item and reason (R3.3). A budget <= 0 disables enforcement. Returns surviving items, omissions, and the required/optional token split.
func EstimateNoLLM ¶ added in v0.3.0
func EstimateText ¶ added in v0.3.0
func MachineManifestDigest ¶ added in v1.0.0
func MachineManifestDigest(m MachineManifest) string
MachineManifestDigest is the stable SHA-256 over the canonical manifest, computed with the manifest_digest field itself excluded so it never self-references. Callers should CanonicalizeMachineManifest first; this also sorts a copy defensively.
func ManifestBudget ¶ added in v0.3.0
func ManifestDigest ¶ added in v0.4.0
ManifestDigest is the canonical SHA-256 over a built manifest. BuildManifest already emits items in a deterministic total order, so the digest is stable across identical builds (R3.4). The manifest carries no digest field of its own (the manifest receipt is W5/W6's surface), so there is no self-reference.
func ModeForTask ¶ added in v0.3.0
func ReceiptStaleness ¶ added in v0.4.0
func ReceiptStaleness(r Receipt, current MachineManifest) []string
ReceiptStaleness reports governing identity changes while preserving the old receipt for audit. Optional non-skill context may change without making evidence stale; required context and selected skills may not.
func RenderEfficiency ¶ added in v0.4.0
func RenderEfficiency(r EfficiencyReport) (string, error)
RenderEfficiency emits stable task-order text with every absent measurement spelled "unknown". Callers own task ordering; omitted items retain manifest order, which is already canonical.
func RenderHUD ¶ added in v0.3.0
RenderHUD formats an already-built Manifest as a human-readable operator view: a table of load items with byte size and estimated token cost, a total row, and the spec's mode/tier line. It is a pure projection of the Manifest — no new estimation, no LLM, no I/O (ADR-8). The token total equals the value the --json surface serializes (manifest.EstimatedTokens), so the two renders never diverge numerically (RH.3).
func RenderHUDQuality ¶ added in v0.4.0
func RenderHUDQuality(p QualityPacket) string
RenderHUDQuality renders only quality metadata and proof labels. It is a pure projection, suitable for operator context without leaking corpora or traces.
func RenderMachineHUD ¶ added in v1.0.0
func RenderMachineHUD(m MachineManifest) string
RenderMachineHUD renders typed context metadata in canonical order. It exposes references and status only; payload bytes remain outside the HUD.
func RenderQualityPacket ¶ added in v0.4.0
func RenderQualityPacket(p QualityPacket) string
func ResolveSource ¶ added in v0.4.0
ResolveSource resolves a repo-relative context source beneath root (R2.2), refusing traversal, absolute escape, and disallowed symlink escape, and requiring the target to exist and be readable (R2.3). It returns the cleaned root-relative slash path actually used.
func SelectExamples ¶ added in v0.4.0
func SelectExamples(root string, c SelectionContext) ([]MachineItem, []Omission, error)
func SelectMemory ¶ added in v0.4.0
func SelectMemory(root, slug string, c SelectionContext) ([]MachineItem, []Omission, error)
func SelectSkills ¶ added in v0.4.0
func SelectSkills(root string, c SkillSelectionContext) ([]MachineItem, []Omission, error)
func SelectSteering ¶ added in v0.4.0
func SelectSteering(root string, c SelectionContext) ([]MachineItem, []Omission, error)
func ValidateMachineManifest ¶ added in v1.0.0
func ValidateMachineManifest(m MachineManifest) error
ValidateMachineManifest fails closed on an unknown required version, kind, field value, or invalid item (R1.3). A required item may never carry an omission reason, and no item may promote itself past its trust class into policy.
func ValidateManifest ¶ added in v0.3.0
func ValidateReceipt ¶ added in v0.4.0
Types ¶
type AccountedItem ¶ added in v0.4.0
type AccountedItem struct {
Kind string `json:"kind"`
Ref string `json:"ref,omitempty"`
EstimatedTokens int `json:"estimated_tokens"`
}
AccountedItem is one supplied context reference with its estimated cost.
type BudgetError ¶ added in v0.4.0
BudgetError signals that the required context alone exceeds the configured budget (R3.2). Required context is never truncated to fit; the task must be decomposed or its declared files narrowed instead.
func (BudgetError) Error ¶ added in v0.4.0
func (e BudgetError) Error() string
type ContextAccountingV1 ¶ added in v0.4.0
type ContextAccountingV1 struct {
Slug string `json:"slug"`
TaskID string `json:"task_id"`
EstimatedInputTokens int `json:"estimated_input_tokens"`
HostReportedInputTokens *int `json:"host_reported_input_tokens,omitempty"`
ProviderBilledTokens *int `json:"provider_billed_tokens,omitempty"`
ContextManifestDigest string `json:"context_manifest_digest"`
SuppliedItems []AccountedItem `json:"supplied_items"`
OmittedItems []Omission `json:"omitted_items,omitempty"`
HostAck *HostAck `json:"host_ack,omitempty"`
}
ContextAccountingV1 is the honest per-task context ledger (R3.3): estimated, host-reported, and provider-billed tokens as distinct fields, the canonical manifest digest, and the supplied vs. omitted items with reasons.
func BuildAccounting ¶ added in v0.4.0
func BuildAccounting(m Manifest) ContextAccountingV1
BuildAccounting derives the context ledger from a built manifest. Only the harness estimate is known at build time; host-reported and provider-billed stay unknown until RecordHostAck / an adapter supplies them.
func (*ContextAccountingV1) RecordHostAck ¶ added in v0.4.0
func (a *ContextAccountingV1) RecordHostAck(ack HostAck)
RecordHostAck records the host's acknowledgement as the host-reported quantity, kept distinct from the estimate and the provider-billed total.
type EfficiencyReport ¶ added in v0.4.0
type EfficiencyReport struct {
SchemaVersion string `json:"schema_version"`
SpecID string `json:"spec_id"`
Tasks []TaskEfficiency `json:"tasks"`
}
type HostAck ¶ added in v0.4.0
type HostAck struct {
ManifestDigest string `json:"manifest_digest"`
ReportedTokens int `json:"reported_tokens"`
}
HostAck records the host's acknowledgement of the manifest it actually loaded: the digest it echoed back and the token count it reported. It is a separate, host-attributed quantity that never overwrites the harness estimate.
type Item ¶ added in v0.3.0
type Item struct {
Kind string `json:"kind"`
Path string `json:"path,omitempty"`
TaskID string `json:"task_id,omitempty"`
Role string `json:"role,omitempty"`
Verify string `json:"verify,omitempty"`
Acceptance string `json:"acceptance,omitempty"`
Required bool `json:"required,omitempty"`
Mode string `json:"mode,omitempty"`
Bytes int `json:"bytes,omitempty"`
EstimatedTokens int `json:"estimated_tokens"`
Reason string `json:"reason,omitempty"`
Priority int `json:"priority,omitempty"`
Digest string `json:"digest,omitempty"`
}
type MachineItem ¶ added in v1.0.0
type MachineItem struct {
Kind string `json:"kind"`
Source string `json:"source,omitempty"`
Selector string `json:"selector,omitempty"`
SourceDigest string `json:"source_digest,omitempty"`
RepresentationDigest string `json:"representation_digest,omitempty"`
Required bool `json:"required"`
LoadMode string `json:"load_mode"`
Priority int `json:"priority"`
Reason string `json:"reason"`
Trust string `json:"trust"`
ContentTrust string `json:"content_trust"`
Sensitivity string `json:"sensitivity"`
AuthorityLimit string `json:"authority_limit,omitempty"`
EstimatedTokens int `json:"estimated_tokens"`
Applicability string `json:"applicability,omitempty"`
Route string `json:"route,omitempty"`
Capability string `json:"capability,omitempty"`
OmissionReason string `json:"omission_reason,omitempty"`
}
MachineItem is one typed context reference. Fields mirror design.md ("Item"): the harness emits references and compact metadata, never inlined content.
func DriverItems ¶ added in v0.4.0
func DriverItems(handshake core.Handshake, phase, role string) []MachineItem
DriverItems projects guardrail and palette metadata before mutable action.
func SelectRequiredLanes ¶ added in v0.4.0
func SelectRequiredLanes(root, slug string, task core.TaskRow) ([]MachineItem, error)
SelectRequiredLanes resolves exact action knowledge beneath root. Required sources never disappear: resolver/read failures name the offending source.
type MachineManifest ¶ added in v1.0.0
type MachineManifest struct {
SchemaVersion string `json:"schema_version"`
Kind string `json:"kind"`
Root string `json:"root"`
Slug string `json:"slug"`
Action string `json:"action"`
Phase string `json:"phase"`
TaskID string `json:"task_id"`
SelectedTask MachineSelectedTask `json:"selected_task"`
Authority *core.AuthorityV1 `json:"authority,omitempty"`
ConfigDigest string `json:"config_digest,omitempty"`
PaletteDigest string `json:"palette_digest,omitempty"`
Items []MachineItem `json:"items"`
RequiredTokens int `json:"required_tokens"`
OptionalTokens int `json:"optional_tokens"`
Budget int `json:"budget"`
Omissions []Omission `json:"omissions,omitempty"`
Provenance string `json:"provenance,omitempty"`
ManifestDigest string `json:"manifest_digest,omitempty"`
}
MachineManifest is the versioned typed context manifest (design.md "MachineManifest").
func AttachAuthority ¶ added in v0.4.0
func AttachAuthority(m MachineManifest, authority core.AuthorityV1) (MachineManifest, error)
func BuildMachineManifest ¶ added in v1.0.0
func BuildMachineManifest(root, slug string, tasks []core.TaskRow, taskID, action, phase string, budget int, handshake core.Handshake) (MachineManifest, error)
BuildMachineManifest assembles required action knowledge and driver lanes into the authoritative machine contract. Plain V1 rendering remains separate.
type MachineSelectedTask ¶ added in v1.0.0
type MachineSelectedTask struct {
ID string `json:"id"`
Role string `json:"role"`
DeclaredFiles []string `json:"declared_files"`
Verify string `json:"verify"`
Acceptance string `json:"acceptance"`
}
MachineSelectedTask carries exact machine-readable task scope. DeclaredFiles is normalized by the byte-stable tasks parser; raw Markdown remains untouched.
type Manifest ¶ added in v0.3.0
type Manifest struct {
Version string `json:"version"`
Mode string `json:"mode"`
Slug string `json:"slug"`
TaskID string `json:"task_id"`
Items []Item `json:"items"`
Omissions []Omission `json:"omissions,omitempty"`
EstimatedTokens int `json:"estimated_tokens"`
Reason string `json:"reason,omitempty"`
Priority int `json:"priority,omitempty"`
Digest string `json:"digest,omitempty"`
Routing *core.RoutingRecommendation `json:"routing,omitempty"`
}
func BuildManifest ¶ added in v0.3.0
func BuildManifest(root, slug string, tasks []core.TaskRow, taskID string, maxTokens int) (Manifest, error)
BuildManifest assembles the context references for one task. The steering constitution and memory (R4.3) enter as references + modes, never inlined content, bounded against maxTokens: when over budget, memory drops before steering (constitution wins), deterministically, with a note. maxTokens <= 0 disables budget enforcement.
type Omission ¶ added in v0.4.0
type Omission struct {
Kind string `json:"kind"`
Source string `json:"source,omitempty"`
Reason string `json:"reason"`
}
Omission records one deterministically shed optional item (R3.3): the item identity and why it was dropped. Never used for required items.
type QualityPacket ¶ added in v0.4.0
type QualityPacket struct {
TaskID string
Verify string
Required []QualityRequirement
Revision string
Freshness string
Dataset string
Rubric string
Output string
Trace string
Review core.ReviewContract
}
QualityPacket is the compact, reference-only quality contract carried with task context. It deliberately stores labels and digests, never eval payloads.
func BuildQualityPacket ¶ added in v0.4.0
func BuildQualityPacket(contract core.QualityContract, records []core.EvidenceEnvelopeV1, subject core.FreshnessSubject) QualityPacket
BuildQualityPacket projects local quality records into a deterministic context packet. Evidence bodies stay outside context; only refs, digests, and freshness labels cross this boundary.
type QualityRequirement ¶ added in v0.4.0
type Receipt ¶ added in v0.4.0
type Receipt struct {
SchemaVersion string `json:"schema_version"`
ManifestDigest string `json:"manifest_digest"`
ConfigDigest string `json:"config_digest"`
PaletteDigest string `json:"palette_digest"`
SkillDigests []string `json:"skill_digests"`
RequiredContextDigests []string `json:"required_context_digests"`
RequiredTokens int `json:"required_tokens"`
OptionalTokens int `json:"optional_tokens"`
CreatedFrom string `json:"created_from"`
Provenance string `json:"provenance"`
ReceiptDigest string `json:"receipt_digest"`
}
Receipt is content-free context identity. It records only digests, totals, and machine provenance; source paths, selected bytes, prompts, and secrets never enter this contract.
func BuildReceipt ¶ added in v0.4.0
func BuildReceipt(m MachineManifest) (Receipt, error)
func ParseReceipt ¶ added in v0.4.0
type ResolveError ¶ added in v0.4.0
ResolveError names the failing context source so a fail-closed build reports item identity and an actionable finding, never silently dropping required knowledge (R2.3).
func (ResolveError) Error ¶ added in v0.4.0
func (e ResolveError) Error() string
type SelectionContext ¶ added in v0.4.0
type SelectionContext struct {
Phase, Role, TaskID string
Tags, RequirementIDs, TaskFields, Files []string
// AsOf is caller-supplied aging authority. Zero preserves baseline selection
// and prevents wall-clock access inside deterministic context construction.
AsOf time.Time
MemoryLintRequired bool
}
SelectionContext is explicit local input for progressive static selection.
type SkillPackage ¶ added in v0.4.0
type SkillPackage struct {
ID, Version, Trigger, Provenance string
Phases, Roles, Capabilities []string
References []string
Required bool
Budget int
Source, Digest string
}
func LoadSkills ¶ added in v0.4.0
func LoadSkills(root string) ([]SkillPackage, error)
type SkillSelectionContext ¶ added in v0.4.0
type SkillSelectionContext struct {
SelectionContext
Capabilities []string
}
type TaskEfficiency ¶ added in v0.4.0
type TaskEfficiency struct {
TaskID string `json:"task_id"`
EstimatedInputTokens *int `json:"estimated_input_tokens,omitempty"`
ActualInputTokens *int `json:"actual_input_tokens,omitempty"`
OmittedItems []Omission `json:"omitted_items,omitempty"`
RetryCount int `json:"retry_count"`
FirstPassResult string `json:"first_pass_result"`
DurationMS *int `json:"duration_ms,omitempty"`
Cost *string `json:"cost,omitempty"`
}
TaskEfficiency keeps measured quantities nullable. nil means unknown; a pointer to zero means a known zero. This prevents absent telemetry from being presented as free or instantaneous.
type UnsupportedSkillError ¶ added in v0.4.0
func (UnsupportedSkillError) Error ¶ added in v0.4.0
func (e UnsupportedSkillError) Error() string