Versions in this module Expand all Collapse all v0 v0.14.0 Sep 4, 2026 Changes in this version + const DefaultAttemptPageSize + const MaxAttemptCallerBytes + const MaxAttemptClaimDuration + const MaxAttemptDeleteBatch + const MaxAttemptIDBytes + const MaxAttemptLinkIDBytes + const MaxAttemptPageSize + const MaxAttemptRetentionAge + const MaxAttemptVersionBytes + const MaxAttemptWorkBatch + const MaxAttemptsPerPartition + const MaxAutomaticReservationDiscoveryBatch + const MaxAutomaticReservationIDBytes + const MaxAutomaticReservationRecords + const MaxAutomaticReservationRecordsPerPrincipal + const MaxDurableRunIDBytes + var ErrAttemptClaimConflict = errors.New("learning: attempt has a live claim") + var ErrAttemptClaimLost = errors.New("learning: attempt claim expired or superseded") + var ErrAttemptCreateConflict = errors.New("learning: attempt create conflict") + var ErrAttemptNotFound = errors.New("learning: attempt not found") + var ErrAttemptQuotaExceeded = errors.New("learning: attempt partition quota exceeded") + var ErrAttemptTransition = errors.New("learning: invalid attempt transition") + var ErrAttemptVersionConflict = errors.New("learning: attempt version conflict") + var ErrAutomaticAdmissionCooldown = errors.New("learning: automatic admission cooldown") + var ErrAutomaticAdmissionDuplicate = errors.New("learning: automatic admission duplicate") + var ErrAutomaticAdmissionLimit = errors.New("learning: automatic admission limit") + var ErrAutomaticReservationConflict = errors.New("learning: automatic reservation identity conflict") + var ErrAutomaticReservationFence = errors.New("learning: automatic reservation fence lost") + var ErrAutomaticReservationNotFound = errors.New("learning: automatic reservation not found") + var ErrAutomaticReservationState = errors.New("learning: invalid automatic reservation transition") + var ErrAutomaticReservationVersion = errors.New("learning: automatic reservation version conflict") + var ErrInvalidAttempt = errors.New("learning: invalid attempt") + var ErrInvalidAutomaticReservation = errors.New("learning: invalid automatic reservation") + func ValidAttemptTransition(from, to AttemptState) bool + func ValidateAttemptRecord(record AttemptRecord) error + type AdmissionProvenance struct + Binding ProvenanceBinding + Class AdmissionClass + CurrentPrompt CurrentPromptBinding + Source AttemptSource + func NewAdmissionProvenance(class AdmissionClass, source AttemptSource, prompt CurrentPromptBinding) (AdmissionProvenance, error) + func (p AdmissionProvenance) Validate(expected AttemptSource, expectedPrompt CurrentPromptBinding) error + type AttemptCheckpoint struct + ProposalID ProposalID + SkillID SkillID + Stage AttemptCheckpointStage + func (c AttemptCheckpoint) Validate() error + type AttemptCheckpointStage string + const AttemptCheckpointEvidenceVerified + const AttemptCheckpointNone + const AttemptCheckpointProposalLinked + const AttemptCheckpointReflectionComplete + const AttemptCheckpointSkillLinked + func (s AttemptCheckpointStage) CanAdvanceTo(next AttemptCheckpointStage) bool + func (s AttemptCheckpointStage) Valid() bool + type AttemptClaim struct + ExpiresAt time.Time + Generation ClaimGeneration + func (c AttemptClaim) Valid() bool + func (c AttemptClaim) ValidAt(now time.Time) bool + type AttemptCreate struct + ID AttemptID + Provenance AdmissionProvenance + func (c AttemptCreate) Validate() error + type AttemptFailureCode string + const FailureClaimExpired + const FailureEvaluationRejected + const FailureEvidenceUnavailable + const FailureInternal + const FailureNone + const FailurePublicationFailed + const FailureRetryExhausted + const FailureUnavailable + func (c AttemptFailureCode) Valid() bool + type AttemptFinalization struct + FailureCode AttemptFailureCode + Outcome AttemptOutcome + State AttemptState + func (f AttemptFinalization) Validate() error + type AttemptGeneration uint64 + type AttemptID string + func DeterministicAttemptID(caller string, source AttemptSource) (AttemptID, error) + type AttemptList struct + After AttemptID + Limit int + State AttemptState + func (q AttemptList) Validate() error + type AttemptOutcome string + const AttemptOutcomeAbandoned + const AttemptOutcomeAbstained + const AttemptOutcomeFailed + const AttemptOutcomeNone + const AttemptOutcomeSucceeded + func (o AttemptOutcome) Valid() bool + type AttemptPage struct + Next AttemptID + Records []AttemptRecord + type AttemptPartition string + func DeriveAttemptPartition(identity string) (AttemptPartition, error) + type AttemptProjection struct + AttemptGeneration AttemptGeneration + CheckpointStage AttemptCheckpointStage + ClaimExpiresAt time.Time + ClaimGeneration ClaimGeneration + CreatedAt time.Time + FailureCode AttemptFailureCode + ID AttemptID + Outcome AttemptOutcome + ProposalID ProposalID + SkillID SkillID + Source AttemptSource + State AttemptState + UpdatedAt time.Time + Version AttemptVersion + func ProjectAttempt(record AttemptRecord) (AttemptProjection, error) + type AttemptRecord struct + AttemptGeneration AttemptGeneration + CheckpointStage AttemptCheckpointStage + ClaimExpiresAt time.Time + ClaimGeneration ClaimGeneration + CreatedAt time.Time + FailureCode AttemptFailureCode + ID AttemptID + Outcome AttemptOutcome + ProposalID ProposalID + Provenance AdmissionProvenance + SkillID SkillID + State AttemptState + UpdatedAt time.Time + Version AttemptVersion + type AttemptRepository interface + Abandon func(context.Context, AttemptPartition, AttemptID, AttemptVersion) (AttemptRecord, error) + AcquireClaim func(context.Context, AttemptPartition, AttemptID, AttemptVersion, time.Duration) (AttemptRecord, AttemptClaim, error) + Checkpoint func(context.Context, AttemptPartition, AttemptID, AttemptVersion, AttemptClaim, ...) (AttemptRecord, error) + Create func(context.Context, AttemptPartition, AttemptCreate) (AttemptRecord, error) + Delete func(context.Context, AttemptPartition, AttemptID, AttemptVersion) error + DeleteTerminalOlderThan func(context.Context, AttemptPartition, time.Duration, int) (int, error) + DiscoverWork func(context.Context, AttemptWorkList) (AttemptWorkPage, error) + Finalize func(context.Context, AttemptPartition, AttemptID, AttemptVersion, AttemptClaim, ...) (AttemptRecord, error) + Get func(context.Context, AttemptPartition, AttemptID) (AttemptRecord, bool, error) + List func(context.Context, AttemptPartition, AttemptList) (AttemptPage, error) + ReleaseClaim func(context.Context, AttemptPartition, AttemptID, AttemptVersion, AttemptClaim) (AttemptRecord, error) + RenewClaim func(context.Context, AttemptPartition, AttemptID, AttemptVersion, AttemptClaim, ...) (AttemptRecord, AttemptClaim, error) + Retry func(context.Context, AttemptPartition, AttemptID, AttemptVersion) (AttemptRecord, error) + type AttemptSource struct + CanonicalDigest CanonicalDigest + RunID DurableRunID + SessionID session.SessionID + func (s AttemptSource) Valid() bool + type AttemptState string + const AttemptAbandoned + const AttemptCompleted + const AttemptFailed + const AttemptQueued + const AttemptRunning + func (s AttemptState) Terminal() bool + func (s AttemptState) Valid() bool + type AttemptVersion string + type AttemptWork struct + Partition AttemptPartition + Record AttemptRecord + type AttemptWorkCursor struct + ID AttemptID + Partition AttemptPartition + type AttemptWorkList struct + After AttemptWorkCursor + Limit int + func (q AttemptWorkList) Validate() error + type AttemptWorkPage struct + Next AttemptWorkCursor + Work []AttemptWork + type AutomaticAdmissionLedger interface + DiscoverExpired func(context.Context, uint32) ([]AutomaticReservation, error) + Get func(context.Context, AutomaticReservationID) (AutomaticReservation, bool, error) + Reassign func(context.Context, AutomaticReservationID, AutomaticReservationVersion) (AutomaticReservation, error) + Reclaim func(context.Context, AutomaticReservationID, AutomaticReservationVersion, ...) (AutomaticReservation, error) + Reserve func(context.Context, AutomaticReservationRequest) (AutomaticReservation, error) + Retain func(context.Context, AutomaticReservationID, AutomaticReservationVersion, ...) (AutomaticReservation, error) + type AutomaticAdmissionPolicy struct + Cooldown time.Duration + DedupeWindow time.Duration + MaxCount uint64 + MaxCountPerPrincipal uint64 + MaxTokens uint64 + MaxTokensPerPrincipal uint64 + ReservationClaimDuration time.Duration + Window time.Duration + func (p AutomaticAdmissionPolicy) Validate() error + type AutomaticAdmissionPolicyRevision string + func AutomaticAdmissionPolicyRevisionFor(p AutomaticAdmissionPolicy) (AutomaticAdmissionPolicyRevision, error) + type AutomaticChargeDisposition string + const AutomaticChargeHeld + const AutomaticChargeReclaimed + const AutomaticChargeRetained + func (d AutomaticChargeDisposition) Valid() bool + type AutomaticReservation struct + AttemptCreated bool + AttemptID AttemptID + Charge AutomaticChargeDisposition + ChargeExpiresAt time.Time + ClaimDuration time.Duration + Class AdmissionClass + DedupeExpiresAt time.Time + Digest CanonicalDigest + Fence AutomaticReservationFence + ID AutomaticReservationID + PolicyRevision AutomaticAdmissionPolicyRevision + Principal AttemptPartition + ReservedAt time.Time + Tokens uint64 + Version AutomaticReservationVersion + func (r AutomaticReservation) Validate() error + type AutomaticReservationFence struct + ExpiresAt time.Time + Generation AutomaticReservationGeneration + func (f AutomaticReservationFence) Valid() bool + func (f AutomaticReservationFence) ValidAt(now time.Time) bool + type AutomaticReservationGeneration uint64 + type AutomaticReservationID string + func AutomaticReservationIDForAttempt(attemptID AttemptID) (AutomaticReservationID, error) + type AutomaticReservationRequest struct + AttemptID AttemptID + Class AdmissionClass + Digest CanonicalDigest + ExpectedPolicyRevision AutomaticAdmissionPolicyRevision + ID AutomaticReservationID + Principal AttemptPartition + Tokens uint64 + func (r AutomaticReservationRequest) Validate() error + type AutomaticReservationVersion string + type CanonicalDigest string + type ClaimGeneration uint64 + type CurrentPromptBinding struct + Digest CanonicalDigest + Ordinal int + Origin PromptOrigin + type DurableRunID string + type PromptOrigin string + const PromptOriginCurrentPrincipal + const PromptOriginSynthetic + func (o PromptOrigin) Valid() bool + type ProvenanceBinding string + type SkillGeneration uint64 type SkillPage + Generation SkillGeneration type SkillRepository + Generation func(context.Context, SkillPartition) (SkillGeneration, error) type Trajectory + RunID string v0.13.0 Sep 4, 2026 v0.12.0 Sep 1, 2026 Changes in this version + const DefaultProposalPageSize + const DefaultSkillPageSize + const MaxCandidateBodyBytes + const MaxCandidateDescriptionBytes + const MaxCandidateEvidence + const MaxCandidateKeyBytes + const MaxCandidateTitleBytes + const MaxCandidateValueBytes + const MaxCandidates + const MaxExistingFacts + const MaxInputEvents + const MaxInputMessages + const MaxInputSignals + const MaxProposalActorBytes + const MaxProposalDecisions + const MaxProposalPageSize + const MaxProposalReasonBytes + const MaxProposalsPerPartition + const MaxSkillBodyBytes + const MaxSkillDescriptionBytes + const MaxSkillEvaluationTextBytes + const MaxSkillEvaluations + const MaxSkillEvidence + const MaxSkillFixtures + const MaxSkillOwnerBytes + const MaxSkillPageSize + const MaxSkillProposals + const MaxSkillReceiptHistory + const MaxSkillReceipts + const MaxSkillSignals + const MaxSkillVersionsPerSkill + const MaxSkillsPerPartition + var ErrInvalidCandidate = errors.New("learning: invalid candidate") + var ErrInvalidEvidence = errors.New("learning: invalid evidence reference") + var ErrInvalidInput = errors.New("learning: invalid reflection input") + var ErrInvalidOutcome = errors.New("learning: invalid reflection outcome") + var ErrInvalidProposal = errors.New("learning: invalid proposal") + var ErrInvalidSkill = errors.New("learning: invalid skill") + var ErrProposalLimit = errors.New("learning: proposal limit exceeded") + var ErrProposalNotFound = errors.New("learning: proposal not found") + var ErrProposalTransition = errors.New("learning: invalid proposal transition") + var ErrProposalVersionConflict = errors.New("learning: proposal version conflict") + var ErrSkillConflict = errors.New("learning: skill revision conflict") + var ErrSkillCursor = errors.New("learning: invalid or stale skill cursor") + var ErrSkillLimit = errors.New("learning: skill limit exceeded") + var ErrSkillNameCollision = errors.New("learning: skill name collision") + var ErrSkillNotFound = errors.New("learning: skill not found") + var ErrSkillOwnerMismatch = errors.New("learning: skill owner mismatch") + var ErrSkillTransition = errors.New("learning: invalid skill transition") + func EvidenceHandle(ref EvidenceRef) string + func EvidencePreview(in Input, ref EvidenceRef) (string, error) + func ResolveEvidence(in Input, ref EvidenceRef) error + func ValidLearnedSkillName(name string) bool + func ValidateCandidate(in Input, candidate Candidate) error + func ValidateDecision(d Decision) error + func ValidateInput(in Input) error + func ValidateOutcome(in Input, out Outcome) error + func ValidateProposalMaterial(p ProposalPartition, input string, c Candidate, signals []Signal) error + func ValidateSkillBundle(bundle SkillBundle) error + func ValidateSkillCandidate(in Input, candidate Candidate) error + func ValidateSkillEvaluation(e SkillEvaluation) error + func ValidateSkillPartition(partition SkillPartition, ownerAgent string) error + func ValidateSkillProvenance(p SkillProvenance) error + type Activity struct + Count int64 + Kind ActivityKind + Reason AdmissionReason + Sensitivity Sensitivity + type ActivityKind string + const ActivityAbstained + const ActivityAdmitted + const ActivityClosed + const ActivityConflicted + const ActivityDuplicate + const ActivityFailed + const ActivityPromoted + const ActivityQueueFull + const ActivityRateLimited + const ActivityReservedTokens + const ActivitySkillActivatedEvaluated + const ActivitySkillActivatedValidated + const ActivitySkillRejected + const ActivitySkillStaged + const ActivitySkipped + const ActivityStaged + const ActivityTimedOut + func (k ActivityKind) Valid() bool + type AdmissionClass string + const AdmissionHard + const AdmissionHostRequested + const AdmissionSkipped + const AdmissionWeighted + func (c AdmissionClass) Valid() bool + type AdmissionDecision struct + Admitted bool + Class AdmissionClass + Reasons []AdmissionReason + Score int + Signals []Signal + Threshold int + type AdmissionPolicy interface + Decide func(AdmissionRequest) AdmissionDecision + type AdmissionReason string + const ReasonAbstained + const ReasonBelowThreshold + const ReasonConflicted + const ReasonCoordinatorClosed + const ReasonDuplicate + const ReasonExplicitLearnProcedure + const ReasonExplicitRemember + const ReasonFailureRecovery + const ReasonHardTrigger + const ReasonHostRequested + const ReasonIneligibleStop + const ReasonInvalidCurrentSpan + const ReasonModelTurnsModifier + const ReasonNonMainSession + const ReasonPolicyAlways + const ReasonPolicyNever + const ReasonPromoted + const ReasonQueueFull + const ReasonRateLimit + const ReasonReflectionFailed + const ReasonRepeatedCorrection + const ReasonRepeatedToolSequence + const ReasonRunTokensModifier + const ReasonStaged + const ReasonSubstantialSuccess + const ReasonSuccessfulToolsModifier + const ReasonTimeout + const ReasonTrivialRun + const ReasonTrustedHostContradiction + const ReasonWeightedThreshold + func (r AdmissionReason) Valid() bool + type AdmissionRequest struct + Input Input + type AlwaysPolicy struct + func (AlwaysPolicy) Decide(req AdmissionRequest) AdmissionDecision + type Candidate struct + Body string + Description string + Evidence []EvidenceRef + Key string + Kind CandidateKind + Name string + Title string + Value string + func NewCandidate(in Input, candidate Candidate) (Candidate, error) + type CandidateKind string + const CandidateOperatorFact + const CandidateProcedure + const CandidateProjectFact + func (k CandidateKind) Valid() bool + type Decision struct + Actor string + At time.Time + Kind DecisionKind + Reason string + type DecisionKind string + const DecisionApprove + const DecisionDefer + const DecisionReject + type DetectionScope struct + Current MessageSpan + type EvaluationVerdict string + const EvaluationAbstain + const EvaluationError + const EvaluationFail + const EvaluationPass + func (v EvaluationVerdict) Valid() bool + type EventProjection struct + Evidence *EvidenceProjection + Seq int64 + Stop session.StopReason + Text string + ToolCall *ToolProjection + ToolResult *ResultProjection + Turn int + Type session.EventType + type EvidenceEventData struct + Seq int64 + Stop session.StopReason + Text string + ToolCall *ToolProjection + ToolResult *ResultProjection + Turn int + Type session.EventType + type EvidenceLocator string + const EvidenceEvent + const EvidenceMessage + type EvidenceProjection struct + Digest string + EventSeq *int64 + Handle string + ToolCallID session.ToolCallID + type EvidenceRef struct + Digest string + EventSeq *int64 + Locator EvidenceLocator + Ordinal int + SessionID session.SessionID + ToolCallID session.ToolCallID + func EventEvidenceRef(in Input, ordinal int, callID session.ToolCallID) (EvidenceRef, error) + func MessageEvidenceRef(in Input, ordinal int, callID session.ToolCallID) (EvidenceRef, error) + func ResolveEvidenceHandle(in Input, handle string) (EvidenceRef, error) + type ExistingFact struct + Description string + Key string + Kind CandidateKind + Value string + type Input struct + Events []EvidenceEventData + Existing []ExistingFact + Signals []Signal + Trajectory Trajectory + func NewInput(trajectory Trajectory, events []session.Event, signals []Signal, ...) Input + type MessageProjection struct + Evidence *EvidenceProjection + Parts []PartProjection + Role session.Role + Text string + ToolCalls []ToolProjection + ToolResult *ResultProjection + type MessageSpan struct + End int + Start int + func (s MessageSpan) Contains(ordinal int) bool + func (s MessageSpan) Valid(messageCount int) bool + type Mode uint8 + const Auto + const Off + const Review + func ParseMode(s string) (Mode, error) + func (m Mode) Next() Mode + func (m Mode) String() string + type NeverPolicy struct + func (NeverPolicy) Decide(AdmissionRequest) AdmissionDecision + type Observer interface + Observe func(context.Context, Trajectory) error + type Outcome struct + Candidates []Candidate + Kind OutcomeKind + type OutcomeKind string + const OutcomeAbstained + const OutcomeProposed + func (k OutcomeKind) Valid() bool + type PartProjection struct + Binary bool + Description string + Kind string + MIMEType string + Name string + Text string + Title string + type Projection struct + Events []EventProjection + Existing []ExistingFact + Messages []MessageProjection + SessionID session.SessionID + Signals []SignalProjection + Stop session.StopReason + func ProjectInput(in Input) (Projection, error) + type PromotionReceipt struct + MemoryKey string + PreviousExists bool + PreviousVersion string + ResultVersion string + type ProposalID string + func DeterministicProposalID(p ProposalPartition, input string, c Candidate) (ProposalID, error) + type ProposalList struct + After ProposalID + Limit int + Status ProposalStatus + type ProposalPage struct + Next ProposalID + Records []ProposalRecord + type ProposalPartition struct + Principal string + Project string + type ProposalRecord struct + Candidate Candidate + CreatedAt time.Time + Decisions []Decision + ID ProposalID + InputDigest string + Partition ProposalPartition + Receipt *PromotionReceipt + Signals []Signal + SkillID SkillID + Status ProposalStatus + UpdatedAt time.Time + Version ProposalVersion + type ProposalRepository interface + ClaimDecision func(context.Context, ProposalPartition, ProposalID, ProposalVersion, Decision) (ProposalRecord, error) + ClaimPromotion func(context.Context, ProposalPartition, ProposalID, ProposalVersion) (ProposalRecord, error) + Finalize func(context.Context, ProposalPartition, ProposalID, ProposalVersion, ...) (ProposalRecord, error) + Get func(context.Context, ProposalPartition, ProposalID) (ProposalRecord, bool, error) + LinkSkillDraft func(context.Context, ProposalPartition, ProposalID, ProposalVersion, SkillID, ...) (ProposalRecord, error) + List func(context.Context, ProposalPartition, ProposalList) (ProposalPage, error) + StageBatch func(context.Context, ProposalPartition, string, []Candidate, []Signal) ([]ProposalRecord, error) + type ProposalStatus string + const ProposalConflicted + const ProposalDeferredUnsupported + const ProposalPromoted + const ProposalPromoting + const ProposalRejected + const ProposalSkillMaterialized + const ProposalStaged + const ProposalUndone + func (s ProposalStatus) Valid() bool + type ProposalVersion string + type Reflector interface + Reflect func(context.Context, Input) (Outcome, error) + type ResultProjection struct + CallID session.ToolCallID + Content string + IsError bool + Parts []PartProjection + type Revision string + type Sensitivity uint8 + const Balanced + const Conservative + const Eager + const SensitivityUnset + func ParseSensitivity(value string) (Sensitivity, error) + func (s Sensitivity) Next() Sensitivity + func (s Sensitivity) String() string + func (s Sensitivity) Threshold() int + type Signal struct + Evidence []EvidenceRef + Kind SignalKind + func DetectSignals(in Input) []Signal + func DetectSignalsScoped(in Input, scope DetectionScope) []Signal + type SignalKind string + const SignalContradiction + const SignalExplicitLearnProcedure + const SignalExplicitRemember + const SignalFailureRecovery + const SignalHostRequested + const SignalRepeatedCorrection + const SignalRepeatedToolSequence + const SignalSubstantialSuccess + func (k SignalKind) Valid() bool + type SignalProjection struct + Evidence []string + Kind SignalKind + type SkillActivationPolicy string + const SkillActivationEvaluated + const SkillActivationValidated + func ParseSkillActivationPolicy(value string) (SkillActivationPolicy, error) + func (p SkillActivationPolicy) Effective() SkillActivationPolicy + func (p SkillActivationPolicy) String() string + func (p SkillActivationPolicy) Valid() bool + type SkillBundle struct + Body string + Description string + Name string + type SkillDraftInput struct + Bundle SkillBundle + OwnerAgent string + Partition SkillPartition + Provenance SkillProvenance + type SkillEvaluation struct + At time.Time + Baseline string + FixtureIDs []string + Reason string + Treatment string + Verdict EvaluationVerdict + type SkillEvaluationRequest struct + OwnerAgent string + Partition SkillPartition + Version SkillVersion + type SkillEvaluator interface + Evaluate func(context.Context, SkillEvaluationRequest) (SkillEvaluation, error) + type SkillID string + type SkillInventoryItem struct + AgentOwned bool + Bundle SkillBundle + Name string + OwnerAgent string + SkillID SkillID + Version VersionID + type SkillList struct + After SkillID + Limit int + Name string + OwnerAgent string + State SkillState + type SkillPage struct + Next SkillID + Versions []SkillVersion + type SkillPartition struct + Principal string + Project string + type SkillProvenance struct + EvidenceRefs []EvidenceRef + Origin SkillProvenanceOrigin + ProposalIDs []ProposalID + Signals []Signal + ValidationDisposition ValidationDisposition + type SkillProvenanceOrigin string + const SkillProvenanceLegacyModel + type SkillReceipt struct + At time.Time + From SkillState + Operation string + To SkillState + Version VersionID + type SkillReceiptList struct + After string + Limit int + type SkillReceiptPage struct + Next string + Records []SkillReceiptRecord + type SkillReceiptRecord struct + ID string + Name string + OwnerAgent string + Receipt SkillReceipt + SkillID SkillID + Version VersionID + type SkillReceiptRepository interface + ListSkillReceipts func(context.Context, SkillPartition, SkillReceiptList) (SkillReceiptPage, error) + type SkillRepository interface + Activate func(context.Context, SkillPartition, string, SkillID, VersionID, Revision) (SkillVersion, error) + Archive func(context.Context, SkillPartition, string, SkillID, VersionID, Revision) (SkillVersion, error) + CreateDraft func(context.Context, SkillPartition, string, SkillBundle, SkillProvenance) (SkillVersion, error) + Get func(context.Context, SkillPartition, string, SkillID, VersionID) (SkillVersion, bool, error) + List func(context.Context, SkillPartition, SkillList) (SkillPage, error) + RecordEvaluation func(context.Context, SkillPartition, string, SkillID, VersionID, Revision, ...) (SkillVersion, error) + Reject func(context.Context, SkillPartition, string, SkillID, VersionID, Revision) (SkillVersion, error) + Rollback func(context.Context, SkillPartition, string, SkillID, Revision, VersionID) (SkillVersion, error) + Stage func(context.Context, SkillPartition, string, SkillID, VersionID, Revision) (SkillVersion, error) + type SkillState string + const SkillActive + const SkillArchived + const SkillDraft + const SkillEvaluated + const SkillRejected + const SkillStaged + func (s SkillState) Valid() bool + type SkillValidation struct + Disposition ValidationDisposition + Duplicate *SkillInventoryItem + Similar []SkillInventoryItem + type SkillValidationRequest struct + Assets []string + Bundle SkillBundle + Inventory []SkillInventoryItem + OwnerAgent string + Partition SkillPartition + Provenance SkillProvenance + type SkillValidator interface + Validate func(context.Context, SkillValidationRequest) (SkillValidation, error) + type SkillVersion struct + Bundle SkillBundle + CreatedAt time.Time + Disposition ValidationDisposition + Evaluations []SkillEvaluation + ID SkillID + OwnerAgent string + Partition SkillPartition + Provenance SkillProvenance + Receipts []SkillReceipt + Revision Revision + State SkillState + Supersedes VersionID + UpdatedAt time.Time + Version VersionID + type ThresholdPolicy struct + Sensitivity Sensitivity + func (p ThresholdPolicy) Decide(req AdmissionRequest) AdmissionDecision + type ToolProjection struct + ID session.ToolCallID + Name string + type Trajectory struct + Counters session.Counters + Current MessageSpan + Kind session.SessionKind + Messages []session.Message + Principal *session.Principal + SessionID session.SessionID + Stop session.StopReason + Usage session.Usage + Workspace string + func NewTrajectory(id session.SessionID, workspace string, stop session.StopReason, ...) Trajectory + type ValidatedSkillActivator interface + ActivateValidated func(context.Context, SkillPartition, string, SkillID, VersionID, Revision) (SkillVersion, error) + type ValidationDisposition string + const ValidationAccept + const ValidationExactDuplicate + const ValidationSimilarStageHint + func (d ValidationDisposition) Valid() bool + type VersionID string + func SkillVersionID(bundle SkillBundle) (VersionID, error) v0.11.0 Aug 14, 2026