schema

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2026 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package schema defines AgentAPI Doctor's stable, provider-neutral public contracts. The package deliberately contains data types and validation only; transports, drivers, storage, and policy live behind internal boundaries.

Index

Constants

View Source
const (
	SchemaNamespace = "urn:agentapi-doctor:"
	ExtensionPrefix = "x-"
)

Variables

View Source
var (
	// ErrDuplicateJSONKey is returned before canonicalization if an object
	// contains a repeated member name.  encoding/json otherwise accepts the
	// last occurrence, which would make a signed input ambiguous.
	ErrDuplicateJSONKey = errors.New("duplicate JSON object key")
	// ErrTrailingJSONValue rejects concatenated or trailing JSON values.
	ErrTrailingJSONValue = errors.New("trailing JSON value")
)

Functions

func CanonicalMarshal

func CanonicalMarshal(value any) ([]byte, error)

CanonicalMarshal marshals a typed value and canonicalizes the result. Typed values cannot carry duplicate member names; custom MarshalJSON implementations are still subjected to strict validation.

func CanonicalizeJSON

func CanonicalizeJSON(raw []byte) ([]byte, error)

CanonicalizeJSON validates a single UTF-8 JSON value, rejects duplicate object keys and non-finite/ambiguous numbers, and returns RFC 8785 JCS bytes.

Types

type ArtifactPin

type ArtifactPin struct {
	Kind    string `json:"kind"`
	Name    string `json:"name"`
	Version string `json:"version"`
	Digest  Digest `json:"digest"`
}

ArtifactPin identifies an exact executable or declarative artifact. Tags and floating versions are discovery aids and never satisfy a run lock.

func (ArtifactPin) Validate

func (pin ArtifactPin) Validate() error

type ArtifactSelector

type ArtifactSelector struct {
	Kind       string   `json:"kind"`
	Name       string   `json:"name"`
	Constraint string   `json:"constraint"`
	Allowed    []Digest `json:"allowed_digests"`
}

type AssertionResult

type AssertionResult struct {
	AssertionResultID InstanceID           `json:"assertion_result_id"`
	AssertionID       string               `json:"assertion_id"`
	RequirementID     string               `json:"requirement_id,omitempty"`
	Role              AssertionRole        `json:"assertion_role"`
	Oracle            ArtifactPin          `json:"oracle"`
	Verdict           Verdict              `json:"verdict"`
	ReasonCode        ReasonCode           `json:"reason_code,omitempty"`
	Expected          any                  `json:"expected,omitempty"`
	Observed          any                  `json:"observed,omitempty"`
	EvidenceRefs      []ObjectRef          `json:"evidence_refs"`
	Deterministic     bool                 `json:"deterministic"`
	Statistical       *StatisticalEstimate `json:"statistical,omitempty"`
	EvaluatorDigest   Digest               `json:"evaluator_digest"`
}

func (AssertionResult) Validate

func (result AssertionResult) Validate() error

type AssertionRole

type AssertionRole string
const (
	AssertionPrecondition    AssertionRole = "precondition"
	AssertionNormative       AssertionRole = "normative"
	AssertionConsumerProfile AssertionRole = "consumer_profile"
	AssertionBehavioral      AssertionRole = "behavioral"
	AssertionAdvisory        AssertionRole = "advisory"
)

type Attempt

type Attempt struct {
	AttemptID             InstanceID        `json:"attempt_id"`
	InvocationID          InstanceID        `json:"invocation_id"`
	ExecutionStatus       ExecutionStatus   `json:"execution_status"`
	ReasonCode            ReasonCode        `json:"reason_code,omitempty"`
	RequestRef            *ObjectRef        `json:"request_ref,omitempty"`
	EvidenceRefs          []ObjectRef       `json:"evidence_refs,omitempty"`
	Driver                ArtifactPin       `json:"driver"`
	ClientObservationRefs []ObjectRef       `json:"client_observation_refs,omitempty"`
	ConsumedBudget        BudgetConsumption `json:"consumed_budget"`
	ResidualLeaseRefs     []ObjectRef       `json:"residual_lease_refs,omitempty"`
}

type BudgetConsumption

type BudgetConsumption struct {
	Requests      int64    `json:"requests"`
	RequestBytes  int64    `json:"request_bytes"`
	ResponseBytes int64    `json:"response_bytes"`
	ArtifactBytes int64    `json:"artifact_bytes"`
	InputTokens   *int64   `json:"input_tokens,omitempty"`
	OutputTokens  *int64   `json:"output_tokens,omitempty"`
	Unknown       []string `json:"unknown,omitempty"`
}

type BudgetPolicy

type BudgetPolicy struct {
	Hard        HardBudget  `json:"hard"`
	Reservation TokenBudget `json:"reservation"`
	Cleanup     HardBudget  `json:"cleanup"`
}

func (BudgetPolicy) Validate

func (budget BudgetPolicy) Validate() error

type CapabilityFact

type CapabilityFact struct {
	Capability string           `json:"capability"`
	Status     CapabilityStatus `json:"status"`
	Evidence   []ObjectRef      `json:"evidence"`
}

type CapabilityObservation

type CapabilityObservation struct {
	EnvelopeMeta
	ObservationID   InstanceID       `json:"capability_observation_id"`
	IntentPlanRef   ObjectRef        `json:"intent_plan_ref"`
	ProbePolicyHash Digest           `json:"probe_policy_digest"`
	Facts           []CapabilityFact `json:"facts"`
	ConsumedBudget  HardBudget       `json:"consumed_budget"`
}

type CapabilityStatus

type CapabilityStatus string
const (
	CapabilitySupported   CapabilityStatus = "supported"
	CapabilityUnsupported CapabilityStatus = "unsupported"
	CapabilityUnknown     CapabilityStatus = "unknown"
)

type CaptureLayer

type CaptureLayer string
const (
	LayerUpstreamApplication CaptureLayer = "upstream_application_observation"
	LayerProxyForwarded      CaptureLayer = "proxy_forwarded_observation"
	LayerClientSDK           CaptureLayer = "client_sdk_observation"
	LayerSanitizedPersisted  CaptureLayer = "sanitized_persisted_evidence"
)

type CaptureMode

type CaptureMode string
const (
	CaptureMetadataOnly CaptureMode = "metadata_only"
	CaptureSynthetic    CaptureMode = "synthetic_content"
	CaptureStandard     CaptureMode = "standard_fixture_only"
	CaptureLocalPrivate CaptureMode = "local_private_encrypted"
)

type CaseResult

type CaseResult struct {
	ScenarioID         string            `json:"scenario_id"`
	PlanDisposition    PlanDisposition   `json:"plan_disposition"`
	AttemptIDs         []InstanceID      `json:"attempt_ids,omitempty"`
	ExecutionStatus    ExecutionStatus   `json:"execution_status,omitempty"`
	Verdict            *Verdict          `json:"verdict,omitempty"`
	ReasonCode         ReasonCode        `json:"reason_code,omitempty"`
	EvidenceRefs       []ObjectRef       `json:"evidence_refs,omitempty"`
	AssertionResults   []AssertionResult `json:"assertion_results,omitempty"`
	Findings           []Finding         `json:"findings,omitempty"`
	CandidateMember    bool              `json:"candidate_member"`
	ApplicableMember   bool              `json:"applicable_member"`
	ExecutedMember     bool              `json:"executed_member"`
	AttemptAggregation string            `json:"attempt_aggregation"`
}

func (CaseResult) Validate

func (result CaseResult) Validate() error

type ConditionalBranch

type ConditionalBranch struct {
	Capability string   `json:"capability"`
	Scenarios  []string `json:"scenarios"`
}

type DenominatorSummary

type DenominatorSummary struct {
	CandidateDigest  Digest `json:"candidate_digest"`
	CandidateCount   int64  `json:"candidate_count"`
	ApplicableDigest Digest `json:"applicable_digest"`
	ApplicableCount  int64  `json:"applicable_count"`
	ExecutedDigest   Digest `json:"executed_digest"`
	ExecutedCount    int64  `json:"executed_count"`
}

type Digest

type Digest string

Digest is a lowercase, algorithm-qualified content digest.

func CanonicalDigest

func CanonicalDigest(value any) (Digest, error)

CanonicalDigest hashes the RFC 8785 representation of value.

func NewDigest

func NewDigest(data []byte) Digest

NewDigest computes a SHA-256 digest over bytes that are already in their immutable projection. Callers that start from JSON should use CanonicalDigest instead.

func ParseDigest

func ParseDigest(value string) (Digest, error)

ParseDigest validates and returns a supported digest.

func (Digest) Validate

func (d Digest) Validate() error

Validate checks the digest syntax and supported algorithm.

type DimensionOutcome

type DimensionOutcome string
const (
	DimensionPass         DimensionOutcome = "pass"
	DimensionFail         DimensionOutcome = "fail"
	DimensionDegraded     DimensionOutcome = "degraded"
	DimensionInconclusive DimensionOutcome = "inconclusive"
	DimensionNotRun       DimensionOutcome = "not_run"
)

type Direction

type Direction string
const (
	DirectionCoreToTarget  Direction = "core_to_target"
	DirectionTargetToCore  Direction = "target_to_core"
	DirectionProxyToClient Direction = "proxy_to_client"
	DirectionClientToProxy Direction = "client_to_proxy"
	DirectionDriverToCore  Direction = "driver_to_core"
)

type Duration

type Duration time.Duration

Duration is a positive, canonical Go-style duration used by authored and resolved plans. It serializes as a string (for example, "15m0s").

func NewDuration

func NewDuration(value time.Duration) Duration

func (Duration) Duration

func (value Duration) Duration() time.Duration

func (Duration) MarshalJSON

func (value Duration) MarshalJSON() ([]byte, error)

func (Duration) MarshalText

func (value Duration) MarshalText() ([]byte, error)

func (Duration) String

func (value Duration) String() string

func (*Duration) UnmarshalJSON

func (value *Duration) UnmarshalJSON(raw []byte) error

func (*Duration) UnmarshalText

func (value *Duration) UnmarshalText(raw []byte) error

func (Duration) Validate

func (value Duration) Validate() error

type EnvelopeMeta

type EnvelopeMeta struct {
	SchemaVersion string                     `json:"schema_version"`
	Kind          string                     `json:"kind"`
	InstanceID    InstanceID                 `json:"instance_id,omitempty"`
	ContentDigest Digest                     `json:"content_digest"`
	ObjectRef     ObjectRef                  `json:"object_ref"`
	Producer      Producer                   `json:"producer"`
	CreatedAt     UTCTime                    `json:"created_at"`
	Extensions    map[string]json.RawMessage `json:"extensions,omitempty"`
}

EnvelopeMeta is embedded by immutable public objects. JSON public contracts use snake_case; authored YAML resources use apiVersion/kind.

func SealMeta

func SealMeta(schemaVersion, kind string, id InstanceID, producer Producer, createdAt UTCTime, projection any) (EnvelopeMeta, error)

SealMeta computes an object's content digest over a caller-supplied, explicitly versioned immutable projection and returns matching envelope identity. The projection must not contain content_digest, object_ref, signatures, or Registry-derived fields.

func (EnvelopeMeta) Validate

func (meta EnvelopeMeta) Validate() error

type Evidence

type Evidence struct {
	EnvelopeMeta
	EvidenceID          Digest              `json:"evidence_id"`
	RunID               InstanceID          `json:"run_id"`
	InvocationID        InstanceID          `json:"invocation_id"`
	AttemptID           InstanceID          `json:"attempt_id"`
	Sequence            uint64              `json:"sequence"`
	CaptureLayer        CaptureLayer        `json:"capture_layer"`
	InstrumentationMode InstrumentationMode `json:"instrumentation_mode"`
	Direction           Direction           `json:"direction"`
	EvidenceKind        string              `json:"evidence_kind"`
	MonotonicOffsetNS   int64               `json:"monotonic_offset_ns"`
	ByteOffset          *int64              `json:"byte_offset,omitempty"`
	EventOffset         *int64              `json:"event_offset,omitempty"`
	PayloadRef          *ObjectRef          `json:"payload_ref,omitempty"`
	PayloadDigest       *Digest             `json:"payload_digest,omitempty"`
	UnavailableReason   string              `json:"unavailable_reason,omitempty"`
	Redactions          []RedactionRecord   `json:"redactions"`
	Relations           []EvidenceRelation  `json:"relations,omitempty"`
}

Evidence is the sanitized persisted projection for one capture layer. It never claims transport bytes or another layer's chunk boundaries.

func (Evidence) Validate

func (evidence Evidence) Validate() error

type EvidencePolicy

type EvidencePolicy struct {
	Capture     CaptureMode `json:"capture"`
	Redaction   string      `json:"redaction"`
	Publication string      `json:"publication"`
}

type EvidenceRelation

type EvidenceRelation struct {
	Relation string    `json:"relation"`
	Target   ObjectRef `json:"target"`
}

type ExecutionStatus

type ExecutionStatus string
const (
	ExecutionPlanned   ExecutionStatus = "planned"
	ExecutionRunning   ExecutionStatus = "running"
	ExecutionCompleted ExecutionStatus = "completed"
	ExecutionSkipped   ExecutionStatus = "skipped"
	ExecutionCancelled ExecutionStatus = "cancelled"
	ExecutionErrored   ExecutionStatus = "errored"
)

type FaultFamily

type FaultFamily string
const (
	FaultTransport FaultFamily = "transport"
	FaultWire      FaultFamily = "wire"
	FaultProtocol  FaultFamily = "protocol"
	FaultModel     FaultFamily = "model"
	FaultClient    FaultFamily = "client"
	FaultHarness   FaultFamily = "harness"
	FaultUnknown   FaultFamily = "unknown"
)

type FinalizerPlan

type FinalizerPlan struct {
	LeaseID       string     `json:"lease_id"`
	ResourceType  string     `json:"resource_type"`
	Operation     string     `json:"operation"`
	CleanupBudget HardBudget `json:"cleanup_budget"`
}

type Finding

type Finding struct {
	FindingID           InstanceID  `json:"finding_id"`
	AssertionResultID   InstanceID  `json:"assertion_result_id"`
	FaultDomain         string      `json:"fault_domain"`
	FaultFamily         FaultFamily `json:"fault_family"`
	Category            string      `json:"category"`
	Severity            string      `json:"severity"`
	Confidence          float64     `json:"confidence"`
	CalibrationVersion  string      `json:"calibration_version"`
	AlternativeDomains  []string    `json:"alternative_domains,omitempty"`
	MinimalEvidenceRefs []ObjectRef `json:"minimal_evidence_refs"`
	ReproRefs           []ObjectRef `json:"repro_refs,omitempty"`
	RequirementID       string      `json:"requirement_id,omitempty"`
	AmbiguityID         string      `json:"ambiguity_id,omitempty"`
	RemediationHint     string      `json:"remediation_hint"`
	UpstreamRoutingHint string      `json:"upstream_routing_hint,omitempty"`
	FingerprintVersion  string      `json:"fingerprint_version"`
	Fingerprint         Digest      `json:"fingerprint"`
}

type HardBudget

type HardBudget struct {
	MaxRequests      int64    `json:"max_requests"`
	MaxRequestBytes  int64    `json:"max_request_bytes"`
	MaxResponseBytes int64    `json:"max_response_bytes"`
	MaxArtifactBytes int64    `json:"max_artifact_bytes"`
	MaxProcesses     int64    `json:"max_processes"`
	MaxDuration      Duration `json:"max_duration"`
}

func (HardBudget) Validate

func (budget HardBudget) Validate() error

type IRItem

type IRItem struct {
	ItemID           string          `json:"item_id"`
	IRType           IRType          `json:"ir_type"`
	SourceProtocol   string          `json:"source_protocol"`
	SourceType       string          `json:"source_type"`
	InteractionID    string          `json:"interaction_id"`
	ParentItemID     string          `json:"parent_item_id,omitempty"`
	CallID           string          `json:"call_id,omitempty"`
	NativeValue      json.RawMessage `json:"native_value"`
	NormalizedValue  json.RawMessage `json:"normalized_value,omitempty"`
	EvidenceRefs     []ObjectRef     `json:"evidence_refs"`
	Extension        string          `json:"extension_namespace,omitempty"`
	TransformID      string          `json:"normalization_transform_id"`
	TransformVersion string          `json:"normalization_transform_version"`
	LossMarkers      []LossMarker    `json:"loss_markers,omitempty"`
	Unavailable      []string        `json:"unavailable,omitempty"`
}

IRItem preserves the provider-native JSON type alongside its normalized form and exact evidence references. Normalization never overwrites raw evidence.

func (IRItem) Validate

func (item IRItem) Validate() error

type IRType

type IRType string
const (
	IRMessage           IRType = "message"
	IRContentPart       IRType = "content_part"
	IRToolCall          IRType = "tool_call"
	IRToolResult        IRType = "tool_result"
	IRReasoningArtifact IRType = "reasoning_artifact"
	IRUsage             IRType = "usage"
	IRError             IRType = "error"
	IRLifecycleEvent    IRType = "lifecycle_event"
	IRProviderExtension IRType = "provider_extension"
)

type InstanceID

type InstanceID string

InstanceID is a UUIDv7 used for Run, Invocation, Attempt, and other event instances. Content-addressed objects additionally carry a Digest.

func NewInstanceID

func NewInstanceID(now func() time.Time, random io.Reader) (InstanceID, error)

NewInstanceID creates a UUIDv7 using the supplied wall clock and CSPRNG. Passing nil selects time.Now and crypto/rand.Reader.

func ParseInstanceID

func ParseInstanceID(value string) (InstanceID, error)

ParseInstanceID accepts a canonical lowercase UUIDv7. The reserved run reference "latest" is intentionally not an InstanceID.

func (InstanceID) Validate

func (id InstanceID) Validate() error

type InstrumentationMode

type InstrumentationMode string
const (
	InstrumentationDirect  InstrumentationMode = "direct_transport"
	InstrumentationProxy   InstrumentationMode = "recording_proxy"
	InstrumentationFixture InstrumentationMode = "fixture_replay"
	InstrumentationClient  InstrumentationMode = "client_native"
)

type IntentPlan

type IntentPlan struct {
	EnvelopeMeta
	IntentPlanID               InstanceID          `json:"intent_plan_id"`
	ConfigDigest               Digest              `json:"config_digest"`
	Target                     TargetIntent        `json:"target"`
	Selectors                  []ArtifactSelector  `json:"selectors"`
	SupportManifestDigest      Digest              `json:"support_manifest_digest"`
	CandidateDenominatorDigest Digest              `json:"candidate_denominator_digest"`
	Probe                      ProbePolicy         `json:"probe"`
	ConditionalBranches        []ConditionalBranch `json:"conditional_branches"`
	Budget                     BudgetPolicy        `json:"budget"`
	Evidence                   EvidencePolicy      `json:"evidence"`
	Safety                     SafetyPolicy        `json:"safety"`
	Author                     string              `json:"author"`
	ApprovalRequirements       []string            `json:"approval_requirements"`
}

IntentPlan is created offline. It describes the maximum authorized scope; it never includes capability probe results.

func (IntentPlan) Validate

func (plan IntentPlan) Validate() error

type Interaction

type Interaction struct {
	EnvelopeMeta
	InteractionID string   `json:"interaction_id"`
	Items         []IRItem `json:"items"`
}

type LossMarker

type LossMarker struct {
	TransformID string `json:"transform_id"`
	Reason      string `json:"reason"`
}

type NetworkPolicy

type NetworkPolicy string
const (
	NetworkOffline    NetworkPolicy = "offline"
	NetworkTargetOnly NetworkPolicy = "target_only"
)

type ObjectRef

type ObjectRef struct {
	Kind          string     `json:"kind"`
	InstanceID    InstanceID `json:"instance_id,omitempty"`
	ContentDigest Digest     `json:"content_digest"`
}

ObjectRef prevents an instance identifier from being rebound to different content. Content-addressed objects omit InstanceID.

func (ObjectRef) Validate

func (ref ObjectRef) Validate() error

type PlanDisposition

type PlanDisposition string
const (
	DispositionExecute       PlanDisposition = "execute"
	DispositionSkip          PlanDisposition = "skip"
	DispositionNotApplicable PlanDisposition = "not_applicable"
)

type ProbePolicy

type ProbePolicy struct {
	Operations []string      `json:"operations"`
	Budget     HardBudget    `json:"budget"`
	Network    NetworkPolicy `json:"network"`
}

type Producer

type Producer struct {
	Name           string `json:"name"`
	Version        string `json:"version"`
	ArtifactDigest Digest `json:"artifact_digest"`
}

Producer identifies the exact software artifact that emitted an object.

func (Producer) Validate

func (producer Producer) Validate() error

type ProfileOutcome

type ProfileOutcome string
const (
	ProfileCompatible   ProfileOutcome = "compatible"
	ProfileDegraded     ProfileOutcome = "degraded"
	ProfileIncompatible ProfileOutcome = "incompatible"
	ProfileInconclusive ProfileOutcome = "inconclusive"
)

type ProfileResult

type ProfileResult struct {
	EnvelopeMeta
	ProfileResultID   InstanceID                  `json:"profile_result_id"`
	Profile           ArtifactPin                 `json:"profile"`
	SupportLockDigest Digest                      `json:"support_lock_digest"`
	Denominators      DenominatorSummary          `json:"denominators"`
	Outcome           ProfileOutcome              `json:"profile_outcome"`
	Dimensions        map[string]DimensionOutcome `json:"dimension_outcomes"`
	Cases             []CaseResult                `json:"cases"`
	HardGates         []AssertionResult           `json:"hard_gates"`
	KnownGaps         []string                    `json:"known_gaps,omitempty"`
	Waivers           []ObjectRef                 `json:"waivers,omitempty"`
	SampleMetadata    map[string]any              `json:"sample_metadata,omitempty"`
}

type ReasonCode

type ReasonCode string
const (
	ReasonUnsupportedCapability ReasonCode = "unsupported_capability"
	ReasonAuthenticationFailed  ReasonCode = "authentication_failed"
	ReasonPermissionDenied      ReasonCode = "permission_denied"
	ReasonTransientError        ReasonCode = "transient_error"
	ReasonSpecAmbiguity         ReasonCode = "spec_ambiguity"
	ReasonBudgetExhausted       ReasonCode = "budget_exhausted"
	ReasonCostLimit             ReasonCode = "cost_limit"
	ReasonUnsafeOperation       ReasonCode = "unsafe_operation"
	ReasonHarnessError          ReasonCode = "harness_error"
	ReasonDriverError           ReasonCode = "driver_error"
	ReasonCancelledByUser       ReasonCode = "cancelled_by_user"
	ReasonFlakyDetected         ReasonCode = "flaky_detected"
	ReasonInsufficientSamples   ReasonCode = "insufficient_samples"
	ReasonNotObserved           ReasonCode = "not_observed"
)

type RedactionRecord

type RedactionRecord struct {
	RuleID     string `json:"rule_id"`
	FieldClass string `json:"field_class"`
	Count      int64  `json:"count"`
}

type ResolvedRunPlan

type ResolvedRunPlan struct {
	EnvelopeMeta
	ResolvedPlanID            InstanceID         `json:"resolved_plan_id"`
	IntentPlanRef             ObjectRef          `json:"intent_plan_ref"`
	Resolver                  ArtifactPin        `json:"resolver"`
	CapabilityObservationRefs []ObjectRef        `json:"capability_observation_refs"`
	SupportLockDigest         Digest             `json:"support_lock_digest"`
	Artifacts                 []ArtifactPin      `json:"artifacts"`
	Target                    TargetResolution   `json:"target"`
	Scenarios                 []ScenarioDecision `json:"scenarios"`
	DenominatorDigest         Digest             `json:"denominator_digest"`
	Budget                    BudgetPolicy       `json:"budget"`
	Runtime                   RuntimePolicy      `json:"runtime"`
	Finalizers                []FinalizerPlan    `json:"finalizers,omitempty"`
}

ResolvedRunPlan is the only plan accepted by the executor. Every artifact, branch, scenario, denominator, permission, and budget is exact.

func (ResolvedRunPlan) Validate

func (plan ResolvedRunPlan) Validate() error

type RuntimePolicy

type RuntimePolicy struct {
	Concurrency int64         `json:"concurrency"`
	Retries     int64         `json:"retries"`
	Timeout     Duration      `json:"timeout"`
	Capture     CaptureMode   `json:"capture"`
	Sandbox     string        `json:"sandbox"`
	Network     NetworkPolicy `json:"network"`
}

type SafetyPolicy

type SafetyPolicy struct {
	Network           NetworkPolicy    `json:"network"`
	Redirects         string           `json:"redirects"`
	ToolSideEffects   SideEffectPolicy `json:"tool_side_effects"`
	DriverPermissions []string         `json:"driver_permissions"`
}

type ScenarioDecision

type ScenarioDecision struct {
	ScenarioID  string          `json:"scenario_id"`
	Disposition PlanDisposition `json:"disposition"`
	ReasonCode  string          `json:"reason_code,omitempty"`
	Driver      ArtifactPin     `json:"driver"`
	DependsOn   []string        `json:"depends_on,omitempty"`
}

type SideEffectPolicy

type SideEffectPolicy string
const (
	SideEffectsNone       SideEffectPolicy = "none"
	SideEffectsReversible SideEffectPolicy = "reversible_only"
)

type StatisticalEstimate

type StatisticalEstimate struct {
	SampleCount int64   `json:"sample_count"`
	Estimate    float64 `json:"estimate"`
	LowerBound  float64 `json:"lower_bound"`
	UpperBound  float64 `json:"upper_bound"`
	Method      string  `json:"method"`
}

type TargetIntent

type TargetIntent struct {
	LogicalRef          string `json:"logical_ref"`
	ProtocolFamily      string `json:"protocol_family"`
	IdentityExpectation string `json:"identity_expectation"`
	AllowedOrigin       string `json:"allowed_origin"`
}

func (TargetIntent) Validate

func (target TargetIntent) Validate() error

type TargetResolution

type TargetResolution struct {
	IdentityLevel       string `json:"identity_level"`
	ObservedFingerprint Digest `json:"observed_fingerprint"`
	Version             string `json:"version,omitempty"`
	ConfigurationDigest Digest `json:"configuration_digest,omitempty"`
	Model               string `json:"model,omitempty"`
	Region              string `json:"region,omitempty"`
}

type TokenBudget

type TokenBudget struct {
	MaxInputTokens  int64 `json:"max_input_tokens"`
	MaxOutputTokens int64 `json:"max_output_tokens"`
}

func (TokenBudget) Validate

func (budget TokenBudget) Validate() error

type UTCTime

type UTCTime struct {
	time.Time
}

UTCTime is a canonical RFC 3339 timestamp. JSON accepts only a Z suffix and rejects equivalent-but-noncanonical offsets or fractional padding.

func NewUTCTime

func NewUTCTime(value time.Time) UTCTime

func (UTCTime) IsZero

func (value UTCTime) IsZero() bool

func (UTCTime) MarshalJSON

func (value UTCTime) MarshalJSON() ([]byte, error)

func (UTCTime) String

func (value UTCTime) String() string

func (*UTCTime) UnmarshalJSON

func (value *UTCTime) UnmarshalJSON(raw []byte) error

type Verdict

type Verdict string
const (
	VerdictPass         Verdict = "pass"
	VerdictFail         Verdict = "fail"
	VerdictWarn         Verdict = "warn"
	VerdictInconclusive Verdict = "inconclusive"
)

Jump to

Keyboard shortcuts

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