Documentation
¶
Index ¶
- Constants
- func ArtifactSchemaCatalogSpecJSONSchema() ([]byte, error)
- func CapabilityCatalogSpecJSONSchema() ([]byte, error)
- func MarshalPlanEvent(event *PlanEvent) ([]byte, error)
- func PlanDeltaSpecJSONSchema() ([]byte, error)
- func PlanJSONSchema(kind PlanSchemaKind) ([]byte, error)
- func RunPlanSpecJSONSchema() ([]byte, error)
- type ArtifactSchema
- type ArtifactSchemaCatalogSpec
- type ArtifactSpec
- type BackendKind
- type BackendRef
- type Capability
- type CapabilityCatalogSpec
- type CapabilityLimits
- type EdgeTrigger
- type InputMapping
- type NodePolicy
- type PlanArtifactScope
- type PlanAuditAction
- type PlanAuditRecord
- type PlanAuditScope
- type PlanBudgetUsage
- type PlanCapabilityTrace
- type PlanConditionTrace
- type PlanDebugTrace
- type PlanDebugTraceScope
- type PlanDeltaSpec
- type PlanEdgeSpec
- type PlanEvent
- type PlanEventScope
- type PlanInputMappingTrace
- type PlanInputResolutionTrace
- type PlanJoinStrategy
- type PlanNodeSpec
- type PlanNodeStatus
- type PlanPolicy
- type PlanRef
- type PlanRuntime
- type PlanSchemaKind
- type PlanStateTransition
- type PlanStreamScope
- type PlanTopology
- type PlanTopologyEdge
- type PlanTopologyNode
- type RunBackendOwnership
- type RunPlanDescription
- type RunPlanSpec
- type RunPlanStatus
- type RunSpec
- type RunStatus
- type Runtime
Constants ¶
const ( PlanLifecyclePending = "pending" PlanLifecycleRunning = "running" PlanLifecycleBlocked = "blocked" PlanLifecycleSucceeded = "succeeded" PlanLifecycleFailed = "failed" PlanLifecycleCanceled = "canceled" )
Plan lifecycle constants.
const ( PlanNodePending = "pending" PlanNodeReady = "ready" PlanNodeRunning = "running" PlanNodeBlocked = "blocked" PlanNodeSkipped = "skipped" PlanNodeSucceeded = "succeeded" PlanNodeFailed = "failed" PlanNodeCanceled = "canceled" )
Plan node lifecycle constants.
const ( // CapabilityRun is the standard capability for starting one backend-owned run. CapabilityRun = "run" // CapabilityRunBatch is the standard capability for starting one backend-owned // run that internally owns a bounded batch. CapabilityRunBatch = "run.batch" )
const (
// BackendNameGoAgentNative is the built-in GoAgent native backend.
BackendNameGoAgentNative = "goagent-native"
)
Variables ¶
This section is empty.
Functions ¶
func ArtifactSchemaCatalogSpecJSONSchema ¶
ArtifactSchemaCatalogSpecJSONSchema returns a JSON Schema inferred from ArtifactSchemaCatalogSpec.
func CapabilityCatalogSpecJSONSchema ¶
CapabilityCatalogSpecJSONSchema returns a JSON Schema inferred from CapabilityCatalogSpec.
func MarshalPlanEvent ¶
MarshalPlanEvent serializes the public RunPlan event envelope.
func PlanDeltaSpecJSONSchema ¶
PlanDeltaSpecJSONSchema returns a JSON Schema inferred from PlanDeltaSpec.
func PlanJSONSchema ¶
func PlanJSONSchema(kind PlanSchemaKind) ([]byte, error)
PlanJSONSchema returns the public JSON Schema for one RunPlan authoring contract.
func RunPlanSpecJSONSchema ¶
RunPlanSpecJSONSchema returns a JSON Schema inferred from RunPlanSpec.
Types ¶
type ArtifactSchema ¶
type ArtifactSchema struct {
Ref string `json:"ref"`
Description string `json:"description,omitempty"`
Schema json.RawMessage `json:"schema"`
}
ArtifactSchema declares a JSON Schema document addressable by ArtifactSpec.SchemaRef.
type ArtifactSchemaCatalogSpec ¶
type ArtifactSchemaCatalogSpec struct {
ArtifactSchemas []ArtifactSchema `json:"artifact_schemas"`
}
ArtifactSchemaCatalogSpec is the public wire format for schema declarations referenced by ArtifactSpec.SchemaRef.
type ArtifactSpec ¶
type ArtifactSpec struct {
Name string `json:"name"`
Kind core.ArtifactKind `json:"kind"`
MediaType string `json:"media_type,omitempty"`
SchemaRef string `json:"schema_ref,omitempty"`
Required bool `json:"required,omitempty"`
}
ArtifactSpec describes an output artifact contract for a plan node.
type BackendKind ¶
type BackendKind string
BackendKind identifies the execution substrate used by an agent backend.
const ( BackendKindNative BackendKind = "native" BackendKindTemporalExternal BackendKind = "temporal_external" BackendKindHTTP BackendKind = "http" BackendKindGRPC BackendKind = "grpc" )
type BackendRef ¶
type BackendRef struct {
Kind BackendKind `json:"kind"`
Name string `json:"name"`
}
BackendRef selects the backend that owns a run.
type Capability ¶
type Capability struct {
Backend BackendRef `json:"backend"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
InputSchema json.RawMessage `json:"input_schema,omitempty"`
OutputSchema json.RawMessage `json:"output_schema,omitempty"`
Signals []core.SignalType `json:"signals,omitempty"`
Controls []core.ControlOperation `json:"controls,omitempty"`
Streaming bool `json:"streaming,omitempty"`
Artifacts []core.ArtifactKind `json:"artifacts,omitempty"`
Limits CapabilityLimits `json:"limits,omitzero" schema:"optional"`
}
Capability describes a backend-owned execution capability.
type CapabilityCatalogSpec ¶
type CapabilityCatalogSpec struct {
Capabilities []Capability `json:"capabilities"`
}
CapabilityCatalogSpec is the public wire format for backend capability declarations used by RunPlan validation.
type CapabilityLimits ¶
type CapabilityLimits struct {
MaxBatchItems int32 `json:"max_batch_items,omitempty"`
MaxParallelRuns int32 `json:"max_parallel_runs,omitempty"`
BatchInputKey string `json:"batch_input_key,omitempty"`
}
CapabilityLimits describes control-plane limits for one backend-owned capability. Batch limits constrain one coarse-grained backend run; AgentOS does not expand batch items into PlanNodeSpec values.
type EdgeTrigger ¶
type EdgeTrigger string
EdgeTrigger selects which upstream node terminal state activates an edge.
const ( EdgeOnSuccess EdgeTrigger = "success" EdgeOnError EdgeTrigger = "error" EdgeOnComplete EdgeTrigger = "complete" EdgeOnAlways EdgeTrigger = "always" )
type InputMapping ¶
type InputMapping struct {
Target string `json:"target"`
SourceNodeID string `json:"source_node_id,omitempty"`
SourceArtifact string `json:"source_artifact,omitempty"`
SourcePath string `json:"source_path,omitempty"`
Expression string `json:"expression,omitempty"`
Required bool `json:"required,omitempty"`
}
InputMapping maps plan inputs or upstream artifacts into a node input.
type NodePolicy ¶
type NodePolicy struct {
MaxAttempts int32 `json:"max_attempts,omitempty"`
TimeoutSeconds int64 `json:"timeout_seconds,omitempty"`
Join PlanJoinStrategy `json:"join,omitempty"`
}
NodePolicy constrains one plan node.
type PlanArtifactScope ¶
type PlanArtifactScope struct {
PlanID string `json:"plan_id"`
AccountID string `json:"account_id"`
ProjectID string `json:"project_id"`
NodeID string `json:"node_id,omitempty"`
RunID string `json:"run_id,omitempty"`
ArtifactID string `json:"artifact_id,omitempty"`
Limit int `json:"limit,omitempty"`
}
PlanArtifactScope selects artifacts inside a tenant-scoped RunPlan.
type PlanAuditAction ¶
type PlanAuditAction string
PlanAuditAction identifies durable control-plane actions.
const ( PlanAuditActionStart PlanAuditAction = "plan.start" PlanAuditActionSignal PlanAuditAction = "plan.signal" PlanAuditActionControl PlanAuditAction = "plan.control" )
type PlanAuditRecord ¶
type PlanAuditRecord struct {
AuditID string `json:"audit_id"`
PlanID string `json:"plan_id"`
AccountID string `json:"account_id,omitempty"`
ProjectID string `json:"project_id,omitempty"`
RunID string `json:"run_id,omitempty"`
NodeID string `json:"node_id,omitempty"`
ActorID string `json:"actor_id,omitempty"`
Action PlanAuditAction `json:"action"`
IdempotencyKey string `json:"idempotency_key,omitempty"`
Payload map[string]any `json:"payload,omitempty"`
CreatedAt time.Time `json:"created_at,omitzero" schema:"optional"`
}
PlanAuditRecord is a durable audit entry for plan control-plane actions.
type PlanAuditScope ¶
type PlanAuditScope struct {
PlanID string `json:"plan_id"`
AccountID string `json:"account_id"`
ProjectID string `json:"project_id"`
NodeID string `json:"node_id,omitempty"`
RunID string `json:"run_id,omitempty"`
Action PlanAuditAction `json:"action,omitempty"`
Limit int `json:"limit,omitempty"`
}
PlanAuditScope selects durable audit records for a plan.
type PlanBudgetUsage ¶
type PlanBudgetUsage struct {
SpentCents int64 `json:"spent_cents,omitempty"`
}
PlanBudgetUsage reports plan-level resource consumption.
type PlanCapabilityTrace ¶
type PlanCapabilityTrace struct {
Backend BackendRef `json:"backend"`
Capability string `json:"capability"`
Signals []core.SignalType `json:"signals,omitempty"`
Controls []core.ControlOperation `json:"controls,omitempty"`
HasInputSchema bool `json:"has_input_schema,omitempty"`
HasOutputSchema bool `json:"has_output_schema,omitempty"`
}
PlanCapabilityTrace records backend capability selected for one node.
type PlanConditionTrace ¶
type PlanConditionTrace struct {
Scope string `json:"scope"`
NodeID string `json:"node_id,omitempty"`
EdgeID string `json:"edge_id,omitempty"`
From string `json:"from,omitempty"`
To string `json:"to,omitempty"`
Expression string `json:"expression"`
Result bool `json:"result"`
On EdgeTrigger `json:"on,omitempty"`
ParentState string `json:"parent_state,omitempty"`
}
PlanConditionTrace records one deterministic condition evaluation result.
type PlanDebugTrace ¶
type PlanDebugTrace struct {
EventID string `json:"event_id"`
EventType core.EventType `json:"event_type"`
PlanID string `json:"plan_id"`
NodeID string `json:"node_id,omitempty"`
RunID string `json:"run_id,omitempty"`
ThreadID string `json:"thread_id,omitempty"`
Sequence int64 `json:"sequence,omitempty"`
Timestamp time.Time `json:"timestamp"`
Transition *PlanStateTransition `json:"transition,omitempty"`
Capability *PlanCapabilityTrace `json:"capability,omitempty"`
InputResolution *PlanInputResolutionTrace `json:"input_resolution,omitempty"`
Conditions []PlanConditionTrace `json:"conditions,omitempty"`
}
PlanDebugTrace is a typed debug projection over durable plan events. It keeps UI/debug clients away from raw event payload parsing.
type PlanDebugTraceScope ¶
type PlanDebugTraceScope struct {
PlanID string `json:"plan_id"`
AccountID string `json:"account_id"`
ProjectID string `json:"project_id"`
NodeID string `json:"node_id,omitempty"`
RunID string `json:"run_id,omitempty"`
AfterSequence int64 `json:"after_sequence,omitempty"`
Limit int `json:"limit,omitempty"`
}
PlanDebugTraceScope selects durable debug traces projected from PlanEvents.
type PlanDeltaSpec ¶
type PlanDeltaSpec struct {
Nodes []PlanNodeSpec `json:"nodes,omitempty"`
Edges []PlanEdgeSpec `json:"edges,omitempty"`
}
PlanDeltaSpec is the public wire contract for workflow-owned dynamic expansion proposals. External callers may author or validate this artifact, but only PlanWorkflow may apply it to a running topology.
type PlanEdgeSpec ¶
type PlanEdgeSpec struct {
EdgeID string `json:"edge_id"`
From string `json:"from"`
To string `json:"to"`
On EdgeTrigger `json:"on,omitempty"`
Condition string `json:"condition,omitempty"`
InputMapping []InputMapping `json:"input_mapping,omitempty"`
}
PlanEdgeSpec describes data/control dependency between backend-owned runs.
type PlanEvent ¶
type PlanEvent struct {
core.Event
PlanID string `json:"plan_id"`
AccountID string `json:"account_id"`
ProjectID string `json:"project_id"`
NodeID string `json:"node_id,omitempty"`
}
PlanEvent is the public event envelope for plan-level events.
func UnmarshalPlanEvent ¶
UnmarshalPlanEvent deserializes the public RunPlan event envelope.
type PlanEventScope ¶
type PlanEventScope struct {
PlanID string `json:"plan_id"`
AccountID string `json:"account_id"`
ProjectID string `json:"project_id"`
NodeID string `json:"node_id,omitempty"`
RunID string `json:"run_id,omitempty"`
AfterSequence int64 `json:"after_sequence,omitempty"`
Limit int `json:"limit,omitempty"`
}
PlanEventScope selects durable plan events for timeline/debug queries.
type PlanInputMappingTrace ¶
type PlanInputMappingTrace struct {
Target string `json:"target"`
SourceNodeID string `json:"source_node_id,omitempty"`
SourceArtifact string `json:"source_artifact,omitempty"`
SourcePath string `json:"source_path,omitempty"`
Expression string `json:"expression,omitempty"`
Required bool `json:"required,omitempty"`
}
PlanInputMappingTrace records one input mapping rule without payload values.
type PlanInputResolutionTrace ¶
type PlanInputResolutionTrace struct {
InputDigest string `json:"input_digest,omitempty"`
InputKeys []string `json:"input_keys,omitempty"`
MappingCount int `json:"mapping_count,omitempty"`
Mappings []PlanInputMappingTrace `json:"mappings,omitempty"`
}
PlanInputResolutionTrace records redacted input mapping details.
type PlanJoinStrategy ¶
type PlanJoinStrategy string
PlanJoinStrategy controls how converging dependencies unblock a node.
const ( PlanJoinAll PlanJoinStrategy = "all" PlanJoinAny PlanJoinStrategy = "any" PlanJoinFirst PlanJoinStrategy = "first" )
type PlanNodeSpec ¶
type PlanNodeSpec struct {
NodeID string `json:"node_id"`
Capability string `json:"capability,omitempty"`
Run RunSpec `json:"run"`
Inputs []InputMapping `json:"inputs,omitempty"`
Outputs []ArtifactSpec `json:"outputs,omitempty"`
Conditions []string `json:"conditions,omitempty"`
Policy NodePolicy `json:"policy,omitzero" schema:"optional"`
}
PlanNodeSpec describes one backend-owned child run in a RunPlan.
type PlanNodeStatus ¶
type PlanNodeStatus struct {
NodeID string `json:"node_id"`
RunID string `json:"run_id,omitempty"`
Backend BackendRef `json:"backend"`
LifecycleState string `json:"lifecycle_state"`
Attempts int32 `json:"attempts,omitempty"`
BudgetUsage PlanBudgetUsage `json:"budget_usage,omitzero" schema:"optional"`
Reason string `json:"reason,omitempty"`
Artifacts []core.ArtifactRef `json:"artifacts,omitempty"`
StartedAt time.Time `json:"started_at,omitzero" schema:"optional"`
CompletedAt time.Time `json:"completed_at,omitzero" schema:"optional"`
UpdatedAt time.Time `json:"updated_at,omitzero" schema:"optional"`
}
PlanNodeStatus is the public lifecycle view for one plan node.
type PlanPolicy ¶
type PlanPolicy struct {
MaxNodes int32 `json:"max_nodes,omitempty"`
MaxDepth int32 `json:"max_depth,omitempty"`
MaxExpansions int32 `json:"max_expansions,omitempty"`
MaxIterations int32 `json:"max_iterations,omitempty"`
MaxHistoryEvents int32 `json:"max_history_events,omitempty"`
ContinueAsNewEvents int32 `json:"continue_as_new_events,omitempty"`
MaxParallelNodes int32 `json:"max_parallel_nodes,omitempty"`
BudgetCents int64 `json:"budget_cents,omitempty"`
TimeoutSeconds int64 `json:"timeout_seconds,omitempty"`
}
PlanPolicy constrains global plan execution and bounded expansion.
type PlanRef ¶
type PlanRef struct {
PlanID string `json:"plan_id"`
AccountID string `json:"account_id"`
ProjectID string `json:"project_id"`
}
PlanRef identifies a plan inside an account/project boundary.
type PlanRuntime ¶
type PlanRuntime interface {
StartPlan(ctx context.Context, spec *RunPlanSpec) (RunPlanStatus, error)
StatusPlan(ctx context.Context, ref PlanRef) (RunPlanStatus, error)
DescribePlan(ctx context.Context, ref PlanRef) (RunPlanDescription, error)
SignalPlan(ctx context.Context, ref PlanRef, signal *core.Signal) error
ControlPlan(ctx context.Context, ref PlanRef, control *core.ControlRequest) error
SubscribePlan(ctx context.Context, scope *PlanStreamScope) (core.Subscription, error)
ListPlanEvents(ctx context.Context, scope *PlanEventScope) ([]PlanEvent, error)
ListPlanDebugTraces(ctx context.Context, scope *PlanDebugTraceScope) ([]PlanDebugTrace, error)
ListPlanArtifacts(ctx context.Context, scope *PlanArtifactScope) ([]core.ArtifactRef, error)
GetPlanArtifact(ctx context.Context, scope *PlanArtifactScope) (core.Artifact, error)
ListPlanAudits(ctx context.Context, scope *PlanAuditScope) ([]PlanAuditRecord, error)
}
PlanRuntime is the durable cross-backend AgentOS planning boundary.
type PlanSchemaKind ¶
type PlanSchemaKind string
PlanSchemaKind identifies a public RunPlan authoring schema.
const ( PlanSchemaKindRunPlan PlanSchemaKind = "run-plan" PlanSchemaKindPlanDelta PlanSchemaKind = "plan-delta" PlanSchemaKindCapabilityCatalog PlanSchemaKind = "capability-catalog" PlanSchemaKindArtifactSchemaCatalog PlanSchemaKind = "artifact-schema-catalog" )
func PlanSchemaKinds ¶
func PlanSchemaKinds() []PlanSchemaKind
PlanSchemaKinds returns the complete set of public RunPlan authoring schema identifiers.
type PlanStateTransition ¶
type PlanStateTransition struct {
PreviousLifecycleState string `json:"previous_lifecycle_state,omitempty"`
NextLifecycleState string `json:"next_lifecycle_state,omitempty"`
}
PlanStateTransition records a reducer lifecycle transition.
type PlanStreamScope ¶
type PlanStreamScope struct {
PlanID string `json:"plan_id"`
AccountID string `json:"account_id"`
ProjectID string `json:"project_id"`
NodeID string `json:"node_id,omitempty"`
RunID string `json:"run_id,omitempty"`
AfterSequence int64 `json:"after_sequence,omitempty"`
}
PlanStreamScope selects events for a plan, node, or child run.
type PlanTopology ¶
type PlanTopology struct {
Nodes []PlanTopologyNode `json:"nodes"`
Edges []PlanTopologyEdge `json:"edges,omitempty"`
Order []string `json:"order,omitempty"`
}
PlanTopology is a public graph view where each node is one backend-owned child run. Backend-internal steps or framework graph nodes are intentionally not represented here.
type PlanTopologyEdge ¶
type PlanTopologyEdge struct {
EdgeID string `json:"edge_id,omitempty"`
From string `json:"from"`
To string `json:"to"`
On EdgeTrigger `json:"on,omitempty"`
Condition string `json:"condition,omitempty"`
InputMapping []InputMapping `json:"input_mapping,omitempty"`
}
PlanTopologyEdge describes a dependency between backend-owned child runs.
type PlanTopologyNode ¶
type PlanTopologyNode struct {
NodeID string `json:"node_id"`
RunID string `json:"run_id,omitempty"`
Backend BackendRef `json:"backend"`
Capability string `json:"capability,omitempty"`
Conditions []string `json:"conditions,omitempty"`
Inputs []InputMapping `json:"inputs,omitempty"`
Outputs []ArtifactSpec `json:"outputs,omitempty"`
Policy NodePolicy `json:"policy,omitzero" schema:"optional"`
Status PlanNodeStatus `json:"status"`
}
PlanTopologyNode describes one backend-owned child run in the public graph.
type RunBackendOwnership ¶
type RunBackendOwnership struct {
RunID string `json:"run_id"`
PlanID string `json:"plan_id,omitempty"`
NodeID string `json:"node_id,omitempty"`
ThreadID string `json:"thread_id,omitempty"`
AccountID string `json:"account_id,omitempty"`
ProjectID string `json:"project_id,omitempty"`
Backend BackendRef `json:"backend"`
IdempotencyKey string `json:"idempotency_key,omitempty"`
LifecycleState string `json:"lifecycle_state,omitempty"`
CreatedAt time.Time `json:"created_at,omitzero" schema:"optional"`
UpdatedAt time.Time `json:"updated_at,omitzero" schema:"optional"`
}
RunBackendOwnership is the durable routing record for a backend-owned run.
type RunPlanDescription ¶
type RunPlanDescription struct {
PlanID string `json:"plan_id"`
ThreadID string `json:"thread_id,omitempty"`
AccountID string `json:"account_id,omitempty"`
ProjectID string `json:"project_id,omitempty"`
Status RunPlanStatus `json:"status"`
Topology PlanTopology `json:"topology"`
Policy PlanPolicy `json:"policy,omitzero" schema:"optional"`
Metadata map[string]string `json:"metadata,omitempty"`
UpdatedAt time.Time `json:"updated_at,omitzero" schema:"optional"`
}
RunPlanDescription is the public, read-oriented view of a RunPlan. Topology is built from the latest durable plan snapshot, including workflow-owned dynamic expansion that has already been validated and persisted.
type RunPlanSpec ¶
type RunPlanSpec struct {
PlanID string `json:"plan_id"`
ThreadID string `json:"thread_id,omitempty"`
AccountID string `json:"account_id"`
ProjectID string `json:"project_id"`
IdempotencyKey string `json:"idempotency_key,omitempty"`
RequestedAt time.Time `json:"requested_at,omitzero" schema:"optional"`
Inputs map[string]any `json:"inputs,omitempty"`
Metadata map[string]string `json:"metadata,omitempty"`
Nodes []PlanNodeSpec `json:"nodes"`
Edges []PlanEdgeSpec `json:"edges,omitempty"`
Policy PlanPolicy `json:"policy,omitzero" schema:"optional"`
}
RunPlanSpec describes a cross-backend execution plan. Each node is a backend-owned RunSpec; backend-internal step/graph concepts are not public AgentOS contract.
type RunPlanStatus ¶
type RunPlanStatus struct {
PlanID string `json:"plan_id"`
LifecycleState string `json:"lifecycle_state"`
Nodes []PlanNodeStatus `json:"nodes,omitempty"`
ActiveRunIDs []string `json:"active_run_ids,omitempty"`
Artifacts []core.ArtifactRef `json:"artifacts,omitempty"`
Reason string `json:"reason,omitempty"`
BudgetUsage PlanBudgetUsage `json:"budget_usage,omitzero" schema:"optional"`
Metadata map[string]string `json:"metadata,omitempty"`
StartedAt time.Time `json:"started_at,omitzero" schema:"optional"`
UpdatedAt time.Time `json:"updated_at,omitzero" schema:"optional"`
}
RunPlanStatus is the public aggregate lifecycle view for a RunPlan.
type RunSpec ¶
type RunSpec struct {
RunID string `json:"run_id"`
ThreadID string `json:"thread_id,omitempty"`
AccountID string `json:"account_id,omitempty"`
ProjectID string `json:"project_id,omitempty"`
AgentID string `json:"agent_id,omitempty"`
ModelRef string `json:"model_ref,omitempty"`
SystemPrompt string `json:"system_prompt,omitempty"`
UserMessage string `json:"user_message,omitempty"`
IdempotencyKey string `json:"idempotency_key,omitempty"`
RequestedAt time.Time `json:"requested_at,omitzero" schema:"optional"`
Metadata map[string]string `json:"metadata,omitempty"`
Backend BackendRef `json:"backend"`
Input map[string]any `json:"input,omitempty"`
}
RunSpec describes a generic agent run without binding callers to GoAgent internals.
type RunStatus ¶
type RunStatus struct {
RunID string `json:"run_id"`
LifecycleState string `json:"lifecycle_state"`
Progress *core.RunProgress `json:"progress,omitempty"`
Artifacts []core.ArtifactRef `json:"artifacts,omitempty"`
BudgetUsage PlanBudgetUsage `json:"budget_usage,omitzero" schema:"optional"`
Reason string `json:"reason,omitempty"`
UpdatedAt time.Time `json:"updated_at,omitzero" schema:"optional"`
}
RunStatus is the public lifecycle view for a run.
type Runtime ¶
type Runtime interface {
Start(ctx context.Context, spec *RunSpec) (RunStatus, error)
Signal(ctx context.Context, runID string, signal *core.Signal) error
Status(ctx context.Context, runID string) (RunStatus, error)
Control(ctx context.Context, runID string, control *core.ControlRequest) error
Subscribe(ctx context.Context, scope core.StreamScope) (core.Subscription, error)
Close() error
}
Runtime is the stable embedded AgentOS run-control boundary.