contract

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ControlPlaneSchemaVersion = "agentic-control.control-plane.v1"
	HarnessSchemaVersion      = "agentic-control.harness.v1"
	WireProtocolVersion       = "agentic-control.rpc.v1"
)
View Source
const (
	EventAssistantMessageDelta   = "assistant.message.delta"
	EventAssistantThoughtDelta   = "assistant.thought.delta"
	EventTurnStarted             = "turn.started"
	EventTurnCompleted           = "turn.completed"
	EventTurnErrored             = "turn.errored"
	EventTurnInterrupted         = "turn.interrupted"
	EventTurnPlanUpdated         = "turn.plan.updated"
	EventThreadTokenUsageUpdated = "thread.token-usage.updated"
	EventToolStarted             = "tool.started"
	EventToolProgress            = "tool.progress"
	EventToolCompleted           = "tool.completed"
	EventToolErrored             = "tool.errored"
	EventSessionStarted          = "session.started"
	EventSessionStopped          = "session.stopped"
	EventSessionErrored          = "session.errored"
	EventSessionModeChanged      = "session.mode.changed"
	EventRequestOpened           = "request.opened"
	EventRequestResponded        = "request.responded"
	EventRequestResolved         = "request.resolved"
	EventRequestClosed           = "request.closed"
	EventRuntimeEvent            = "runtime.event"
	EventRuntimeDecodeError      = "runtime.decode_error"
	EventRuntimeStderr           = "runtime.stderr"
)
View Source
const (
	EventSpeechTTSRequested = "speech.tts.requested"
	EventSpeechTTSStarted   = "speech.tts.started"
	EventSpeechTTSCompleted = "speech.tts.completed"
	EventSpeechTTSCancelled = "speech.tts.cancelled"
	EventSpeechTTSFailed    = "speech.tts.failed"

	EventSpeechSTTStarted   = "speech.stt.started"
	EventSpeechSTTPartial   = "speech.stt.partial"
	EventSpeechSTTFinal     = "speech.stt.final"
	EventSpeechSTTCancelled = "speech.stt.cancelled"
	EventSpeechSTTFailed    = "speech.stt.failed"

	EventAppOpenRequested = "app.open.requested"
	EventAppOpenCompleted = "app.open.completed"
	EventAppOpenFailed    = "app.open.failed"

	EventScreenObserveRequested = "screen.observe.requested"
	EventScreenObserveCompleted = "screen.observe.completed"
	EventScreenObserveFailed    = "screen.observe.failed"

	EventScreenClickRequested = "screen.click.requested"
	EventScreenClickCompleted = "screen.click.completed"
	EventScreenClickFailed    = "screen.click.failed"

	EventInsertTargetsRequested = "insert.targets.requested"
	EventInsertTargetsCompleted = "insert.targets.completed"
	EventInsertTargetsFailed    = "insert.targets.failed"

	EventSpeechInsertRequested = "speech.insert.requested"
	EventSpeechInsertStarted   = "speech.insert.started"
	EventSpeechInsertCompleted = "speech.insert.completed"
	EventSpeechInsertFailed    = "speech.insert.failed"

	EventAttentionItemCreated   = "attention.item.created"
	EventAttentionItemUpdated   = "attention.item.updated"
	EventAttentionItemCompleted = "attention.item.completed"
	EventAttentionItemFailed    = "attention.item.failed"
)

Variables

This section is empty.

Functions

func EventCostUSD added in v0.5.0

func EventCostUSD(event RuntimeEvent) (float64, bool)

func EventDeltaText added in v0.4.5

func EventDeltaText(event RuntimeEvent) string

func EventErrorText added in v0.4.5

func EventErrorText(event RuntimeEvent) string

func EventFinalText added in v0.4.5

func EventFinalText(event RuntimeEvent) string

func EventMode added in v0.5.0

func EventMode(event RuntimeEvent) string

func EventPayloadString added in v0.4.5

func EventPayloadString(event RuntimeEvent, key string) string

func IsRequestEvent added in v0.4.5

func IsRequestEvent(event RuntimeEvent) bool

func IsTerminalTurnEvent added in v0.4.5

func IsTerminalTurnEvent(event RuntimeEvent) bool

func IsTurnCompletedEvent added in v0.4.5

func IsTurnCompletedEvent(event RuntimeEvent) bool

func IsTurnErroredEvent added in v0.4.5

func IsTurnErroredEvent(event RuntimeEvent) bool

func PayloadString added in v0.4.5

func PayloadString(payload map[string]any, key string) string

Types

type AttentionAction added in v0.5.0

type AttentionAction string
const (
	AttentionActionSpeak     AttentionAction = "speak"
	AttentionActionAsk       AttentionAction = "ask"
	AttentionActionInsert    AttentionAction = "insert"
	AttentionActionSummarise AttentionAction = "summarise"
	AttentionActionIgnore    AttentionAction = "ignore"
	AttentionActionDefer     AttentionAction = "defer"
)

type AttentionItem added in v0.5.0

type AttentionItem struct {
	SchemaVersion   string          `json:"schema_version"`
	ID              string          `json:"id"`
	Status          AttentionStatus `json:"status"`
	Action          AttentionAction `json:"action"`
	Source          string          `json:"source,omitempty"`
	Runtime         string          `json:"runtime,omitempty"`
	SessionID       string          `json:"session_id,omitempty"`
	TurnID          string          `json:"turn_id,omitempty"`
	Priority        int             `json:"priority,omitempty"`
	Text            string          `json:"text,omitempty"`
	SpeakableText   string          `json:"speakable_text,omitempty"`
	Target          map[string]any  `json:"target,omitempty"`
	Voice           string          `json:"voice,omitempty"`
	InterruptPolicy string          `json:"interrupt_policy,omitempty"`
	Metadata        map[string]any  `json:"metadata,omitempty"`
	Result          map[string]any  `json:"result,omitempty"`
	Error           string          `json:"error,omitempty"`
	CreatedAtMS     int64           `json:"created_at_ms"`
	UpdatedAtMS     int64           `json:"updated_at_ms"`
}

type AttentionStatus added in v0.5.0

type AttentionStatus string
const (
	AttentionStatusQueued    AttentionStatus = "queued"
	AttentionStatusReady     AttentionStatus = "ready"
	AttentionStatusActive    AttentionStatus = "active"
	AttentionStatusCompleted AttentionStatus = "completed"
	AttentionStatusSpoken    AttentionStatus = "spoken"
	AttentionStatusInserted  AttentionStatus = "inserted"
	AttentionStatusMuted     AttentionStatus = "muted"
	AttentionStatusDeferred  AttentionStatus = "deferred"
	AttentionStatusCancelled AttentionStatus = "cancelled"
	AttentionStatusFailed    AttentionStatus = "failed"
)

type AuthProbe added in v0.4.7

type AuthProbe struct {
	Status  string `json:"status,omitempty"`
	Type    string `json:"type,omitempty"`
	Label   string `json:"label,omitempty"`
	Method  string `json:"method,omitempty"`
	Message string `json:"message,omitempty"`
}

type ClaudeModelOptions added in v0.5.0

type ClaudeModelOptions struct {
	Effort        string `json:"effort,omitempty"`
	Thinking      *bool  `json:"thinking,omitempty"`
	FastMode      *bool  `json:"fast_mode,omitempty"`
	ContextWindow string `json:"context_window,omitempty"`
}

type CodexModelOptions added in v0.5.0

type CodexModelOptions struct {
	ReasoningEffort string `json:"reasoning_effort,omitempty"`
	FastMode        *bool  `json:"fast_mode,omitempty"`
}

type CostBreakdown added in v0.5.0

type CostBreakdown struct {
	Key     string  `json:"key"`
	CostUSD float64 `json:"cost_usd"`
}

type GeminiModelOptions added in v0.5.0

type GeminiModelOptions struct {
	ThinkingLevel  string `json:"thinking_level,omitempty"`
	ThinkingBudget *int   `json:"thinking_budget,omitempty"`
}

type HarnessEvent

type HarnessEvent struct {
	SchemaVersion   string            `json:"schema_version"`
	RecordedAtMS    int64             `json:"recorded_at_ms"`
	Runtime         string            `json:"runtime"`
	Provenance      string            `json:"provenance"`
	NativeEventName string            `json:"native_event_name"`
	EventType       string            `json:"event_type"`
	Summary         string            `json:"summary"`
	SessionID       *string           `json:"session_id,omitempty"`
	TurnID          *string           `json:"turn_id,omitempty"`
	ToolCallID      *string           `json:"tool_call_id,omitempty"`
	ToolName        *string           `json:"tool_name,omitempty"`
	Command         *string           `json:"command,omitempty"`
	PromptText      *string           `json:"prompt_text,omitempty"`
	CWD             *string           `json:"cwd,omitempty"`
	Model           *string           `json:"model,omitempty"`
	TranscriptPath  *string           `json:"transcript_path,omitempty"`
	SessionSource   *string           `json:"session_source,omitempty"`
	PermissionMode  *string           `json:"permission_mode,omitempty"`
	Reason          *string           `json:"reason,omitempty"`
	ExitCode        *int              `json:"exit_code,omitempty"`
	StopHookActive  *bool             `json:"stop_hook_active,omitempty"`
	RuntimePID      *int              `json:"runtime_pid,omitempty"`
	Bindings        map[string]string `json:"bindings,omitempty"`
}

type InteractionStatus added in v0.5.0

type InteractionStatus struct {
	SchemaVersion string          `json:"schema_version,omitempty"`
	Service       string          `json:"service,omitempty"`
	Endpoint      string          `json:"endpoint,omitempty"`
	Transport     string          `json:"transport,omitempty"`
	Available     bool            `json:"available"`
	Methods       []string        `json:"methods,omitempty"`
	Capabilities  map[string]bool `json:"capabilities,omitempty"`
	LastError     string          `json:"last_error,omitempty"`
}

type ModelAlias added in v0.5.0

type ModelAlias struct {
	Alias string `json:"alias"`
	Model string `json:"model"`
}

type ModelRegistry added in v0.5.0

type ModelRegistry struct {
	SchemaVersion string                   `json:"schema_version"`
	Backends      []RuntimeBackendRegistry `json:"backends,omitempty"`
}

type ModelSelection added in v0.5.0

type ModelSelection struct {
	Provider ProviderKind          `json:"provider"`
	Model    string                `json:"model"`
	Codex    *CodexModelOptions    `json:"codex,omitempty"`
	Claude   *ClaudeModelOptions   `json:"claude,omitempty"`
	Gemini   *GeminiModelOptions   `json:"gemini,omitempty"`
	OpenCode *OpenCodeModelOptions `json:"opencode,omitempty"`
	Pi       *PiModelOptions       `json:"pi,omitempty"`
}

type OpenCodeModelOptions added in v0.5.0

type OpenCodeModelOptions struct {
	Variant string `json:"variant,omitempty"`
	Agent   string `json:"agent,omitempty"`
}

type Ownership

type Ownership string
const (
	OwnershipControlled Ownership = "controlled"
	OwnershipObserved   Ownership = "observed"
)

type PendingRequest

type PendingRequest struct {
	SchemaVersion string              `json:"schema_version"`
	RequestID     string              `json:"request_id"`
	SessionID     string              `json:"session_id"`
	Runtime       string              `json:"runtime"`
	Kind          RequestKind         `json:"kind"`
	NativeMethod  string              `json:"native_method"`
	Status        RequestStatus       `json:"status"`
	Summary       string              `json:"summary,omitempty"`
	TurnID        string              `json:"turn_id,omitempty"`
	CreatedAtMS   int64               `json:"created_at_ms"`
	Tool          *RequestToolContext `json:"tool,omitempty"`
	Options       []RequestOption     `json:"options,omitempty"`
	Questions     []RequestQuestion   `json:"questions,omitempty"`
	Extensions    map[string]any      `json:"extensions,omitempty"`
}

type PiModelOptions added in v0.5.0

type PiModelOptions struct{}

type PlanStep added in v0.4.7

type PlanStep struct {
	ID      string `json:"id,omitempty"`
	Title   string `json:"title,omitempty"`
	Status  string `json:"status,omitempty"`
	Details string `json:"details,omitempty"`
}

type PromotedThread added in v0.5.0

type PromotedThread struct {
	RunID    string        `json:"run_id"`
	WorkerID string        `json:"worker_id"`
	Thread   TrackedThread `json:"thread"`
}

type ProviderKind added in v0.5.0

type ProviderKind string
const (
	ProviderKindCodex    ProviderKind = "codex"
	ProviderKindClaude   ProviderKind = "claude"
	ProviderKindGemini   ProviderKind = "gemini"
	ProviderKindOpenCode ProviderKind = "opencode"
	ProviderKindPi       ProviderKind = "pi"
)

type RequestAnswer

type RequestAnswer struct {
	QuestionID string `json:"question_id,omitempty"`
	OptionID   string `json:"option_id,omitempty"`
	Text       string `json:"text,omitempty"`
}

type RequestKind

type RequestKind string
const (
	RequestApprovalTool        RequestKind = "approval.tool"
	RequestApprovalCommand     RequestKind = "approval.command"
	RequestApprovalFileChange  RequestKind = "approval.file_change"
	RequestApprovalPermissions RequestKind = "approval.permissions"
	RequestUserInputTool       RequestKind = "user_input.tool"
	RequestUserInputMCP        RequestKind = "user_input.mcp"
	RequestGeneric             RequestKind = "request"
)

type RequestOption

type RequestOption struct {
	ID          string `json:"id"`
	Label       string `json:"label"`
	Kind        string `json:"kind,omitempty"`
	Description string `json:"description,omitempty"`
	IsDefault   bool   `json:"is_default,omitempty"`
}

type RequestQuestion

type RequestQuestion struct {
	ID          string          `json:"id"`
	Prompt      string          `json:"prompt"`
	Description string          `json:"description,omitempty"`
	Required    bool            `json:"required,omitempty"`
	Options     []RequestOption `json:"options,omitempty"`
}

type RequestStatus

type RequestStatus string
const (
	RequestStatusOpen      RequestStatus = "open"
	RequestStatusResponded RequestStatus = "responded"
	RequestStatusResolved  RequestStatus = "resolved"
	RequestStatusClosed    RequestStatus = "closed"
)

func RequestStatusFromEvent added in v0.4.5

func RequestStatusFromEvent(event RuntimeEvent) RequestStatus

type RequestToolContext

type RequestToolContext struct {
	Name        string `json:"name,omitempty"`
	Title       string `json:"title,omitempty"`
	Kind        string `json:"kind,omitempty"`
	Command     string `json:"command,omitempty"`
	Description string `json:"description,omitempty"`
}

type RespondAction

type RespondAction string
const (
	RespondActionAllow  RespondAction = "allow"
	RespondActionDeny   RespondAction = "deny"
	RespondActionSubmit RespondAction = "submit"
	RespondActionCancel RespondAction = "cancel"
	RespondActionChoose RespondAction = "choose"
)

type RuntimeBackendRegistry added in v0.5.0

type RuntimeBackendRegistry struct {
	Backend         string                    `json:"backend"`
	DisplayName     string                    `json:"display_name,omitempty"`
	Installed       bool                      `json:"installed"`
	SupportsSession bool                      `json:"supports_session"`
	ModelSource     string                    `json:"model_source,omitempty"`
	DefaultModel    string                    `json:"default_model,omitempty"`
	DefaultProvider string                    `json:"default_provider,omitempty"`
	Aliases         []ModelAlias              `json:"aliases,omitempty"`
	Providers       []RuntimeProviderRegistry `json:"providers,omitempty"`
	Models          []RuntimeModel            `json:"models,omitempty"`
	Issues          []string                  `json:"issues,omitempty"`
}

type RuntimeCapabilities

type RuntimeCapabilities struct {
	StartSession             bool `json:"start_session"`
	ResumeSession            bool `json:"resume_session"`
	SendInput                bool `json:"send_input"`
	Interrupt                bool `json:"interrupt"`
	Respond                  bool `json:"respond"`
	StopSession              bool `json:"stop_session"`
	ListSessions             bool `json:"list_sessions"`
	StreamEvents             bool `json:"stream_events"`
	ApprovalRequests         bool `json:"approval_requests"`
	UserInputRequests        bool `json:"user_input_requests"`
	ImmediateProviderSession bool `json:"immediate_provider_session"`
	ResumeByProviderID       bool `json:"resume_by_provider_id"`
	AdoptExternalSessions    bool `json:"adopt_external_sessions"`
}

type RuntimeDescriptor

type RuntimeDescriptor struct {
	SchemaVersion string              `json:"schema_version"`
	Runtime       string              `json:"runtime"`
	Ownership     Ownership           `json:"ownership"`
	Transport     Transport           `json:"transport"`
	Capabilities  RuntimeCapabilities `json:"capabilities"`
	Probe         *RuntimeProbe       `json:"probe,omitempty"`
}

func NewRuntimeDescriptor

func NewRuntimeDescriptor(
	runtime string,
	ownership Ownership,
	transport Transport,
	capabilities RuntimeCapabilities,
) RuntimeDescriptor

type RuntimeEvent

type RuntimeEvent struct {
	SchemaVersion     string          `json:"schema_version"`
	EventID           string          `json:"event_id"`
	RecordedAtMS      int64           `json:"recorded_at_ms"`
	Runtime           string          `json:"runtime"`
	SessionID         string          `json:"session_id"`
	ProviderSessionID string          `json:"provider_session_id,omitempty"`
	Transport         Transport       `json:"transport"`
	Ownership         Ownership       `json:"ownership"`
	EventType         string          `json:"event_type"`
	NativeEventName   string          `json:"native_event_name,omitempty"`
	Summary           string          `json:"summary"`
	TurnID            string          `json:"turn_id,omitempty"`
	RequestID         string          `json:"request_id,omitempty"`
	SessionState      *SessionState   `json:"session_state,omitempty"`
	Payload           map[string]any  `json:"payload,omitempty"`
	Request           *PendingRequest `json:"request,omitempty"`
}

func NewRuntimeEvent

func NewRuntimeEvent(
	session RuntimeSession,
	eventType string,
	nativeEventName string,
	turnID string,
	summary string,
	payload map[string]any,
) RuntimeEvent

type RuntimeModel added in v0.4.7

type RuntimeModel struct {
	ID           string                   `json:"id"`
	Label        string                   `json:"label,omitempty"`
	Provider     string                   `json:"provider,omitempty"`
	Default      bool                     `json:"default,omitempty"`
	Custom       bool                     `json:"custom,omitempty"`
	Capabilities RuntimeModelCapabilities `json:"capabilities,omitempty"`
}

type RuntimeModelCapabilities added in v0.4.7

type RuntimeModelCapabilities struct {
	ReasoningEffortLevels    []RuntimeModelOption `json:"reasoning_effort_levels,omitempty"`
	ContextWindowOptions     []RuntimeModelOption `json:"context_window_options,omitempty"`
	VariantOptions           []RuntimeModelOption `json:"variant_options,omitempty"`
	AgentOptions             []RuntimeModelOption `json:"agent_options,omitempty"`
	PromptInjectedEfforts    []string             `json:"prompt_injected_efforts,omitempty"`
	SupportsFastMode         bool                 `json:"supports_fast_mode,omitempty"`
	SupportsThinkingToggle   bool                 `json:"supports_thinking_toggle,omitempty"`
	SupportsThinkingLevel    bool                 `json:"supports_thinking_level,omitempty"`
	SupportsThinkingBudget   bool                 `json:"supports_thinking_budget,omitempty"`
	SupportedThinkingLevels  []string             `json:"supported_thinking_levels,omitempty"`
	SupportedThinkingBudgets []int                `json:"supported_thinking_budgets,omitempty"`
}

type RuntimeModelOption added in v0.4.7

type RuntimeModelOption struct {
	Value     string `json:"value"`
	Label     string `json:"label,omitempty"`
	IsDefault bool   `json:"is_default,omitempty"`
}

type RuntimeProbe added in v0.4.7

type RuntimeProbe struct {
	Installed   bool           `json:"installed"`
	Status      string         `json:"status"`
	Version     string         `json:"version,omitempty"`
	BinaryPath  string         `json:"binary_path,omitempty"`
	Auth        AuthProbe      `json:"auth,omitempty"`
	Models      []RuntimeModel `json:"models,omitempty"`
	ModelSource string         `json:"model_source,omitempty"`
	Message     string         `json:"message,omitempty"`
	ProbedAtMS  int64          `json:"probed_at_ms,omitempty"`
}

type RuntimeProviderRegistry added in v0.5.0

type RuntimeProviderRegistry struct {
	Provider     string         `json:"provider"`
	DisplayName  string         `json:"display_name,omitempty"`
	DefaultModel string         `json:"default_model,omitempty"`
	Models       []RuntimeModel `json:"models,omitempty"`
}

type RuntimeSession

type RuntimeSession struct {
	SchemaVersion     string         `json:"schema_version"`
	SessionID         string         `json:"session_id"`
	Runtime           string         `json:"runtime"`
	Ownership         Ownership      `json:"ownership"`
	Transport         Transport      `json:"transport"`
	Status            SessionStatus  `json:"status"`
	ProviderSessionID string         `json:"provider_session_id,omitempty"`
	ActiveTurnID      string         `json:"active_turn_id,omitempty"`
	CWD               string         `json:"cwd,omitempty"`
	Model             string         `json:"model,omitempty"`
	Mode              string         `json:"mode,omitempty"`
	Usage             TokenUsage     `json:"usage,omitempty"`
	CostUSD           float64        `json:"cost_usd,omitempty"`
	Title             string         `json:"title,omitempty"`
	CreatedAtMS       int64          `json:"created_at_ms"`
	UpdatedAtMS       int64          `json:"updated_at_ms"`
	LastActivityAtMS  int64          `json:"last_activity_at_ms,omitempty"`
	LastError         string         `json:"last_error,omitempty"`
	Metadata          map[string]any `json:"metadata,omitempty"`
}

func (RuntimeSession) State

func (session RuntimeSession) State() *SessionState

type SessionState

type SessionState struct {
	Status       SessionStatus `json:"status,omitempty"`
	ActiveTurnID string        `json:"active_turn_id,omitempty"`
	LastError    string        `json:"last_error,omitempty"`
	CWD          string        `json:"cwd,omitempty"`
	Model        string        `json:"model,omitempty"`
	Mode         string        `json:"mode,omitempty"`
	Usage        TokenUsage    `json:"usage,omitempty"`
	CostUSD      float64       `json:"cost_usd,omitempty"`
	Title        string        `json:"title,omitempty"`
}

type SessionStatus

type SessionStatus string
const (
	SessionStarting         SessionStatus = "starting"
	SessionIdle             SessionStatus = "idle"
	SessionRunning          SessionStatus = "running"
	SessionWaitingApproval  SessionStatus = "waiting_approval"
	SessionWaitingUserInput SessionStatus = "waiting_user_input"
	SessionInterrupted      SessionStatus = "interrupted"
	SessionStopped          SessionStatus = "stopped"
	SessionErrored          SessionStatus = "errored"
)

type SystemDescriptor

type SystemDescriptor struct {
	SchemaVersion       string              `json:"schema_version"`
	WireProtocolVersion string              `json:"wire_protocol_version"`
	Methods             []string            `json:"methods"`
	Runtimes            []RuntimeDescriptor `json:"runtimes"`
	Interaction         *InteractionStatus  `json:"interaction,omitempty"`
}

type ThreadEvent added in v0.5.0

type ThreadEvent struct {
	ID           int64        `json:"id"`
	ThreadID     string       `json:"thread_id"`
	RecordedAtMS int64        `json:"recorded_at_ms,omitempty"`
	EventType    string       `json:"event_type,omitempty"`
	Summary      string       `json:"summary,omitempty"`
	TurnID       string       `json:"turn_id,omitempty"`
	RequestID    string       `json:"request_id,omitempty"`
	Event        RuntimeEvent `json:"event"`
}

type ThreadKind added in v0.5.0

type ThreadKind string
const (
	ThreadKindOrchestrationTarget  ThreadKind = "orchestration_target"
	ThreadKindOrchestrationReducer ThreadKind = "orchestration_reducer"
	ThreadKindCourtWorker          ThreadKind = "court_worker"
)

type ThreadMetadata added in v0.5.0

type ThreadMetadata struct {
	Kind                          ThreadKind `json:"kind,omitempty"`
	Workflow                      string     `json:"workflow,omitempty"`
	WorkflowMode                  string     `json:"workflow_mode,omitempty"`
	Task                          string     `json:"task,omitempty"`
	TargetLabel                   string     `json:"target_label,omitempty"`
	ReductionMode                 string     `json:"reduction_mode,omitempty"`
	PromotedFromRunID             string     `json:"promoted_from_run_id,omitempty"`
	PromotedFromWorkerID          string     `json:"promoted_from_worker_id,omitempty"`
	PromotedFromRoleID            string     `json:"promoted_from_role_id,omitempty"`
	PromotedAsBase                bool       `json:"promoted_as_base,omitempty"`
	CourtRunID                    string     `json:"court_run_id,omitempty"`
	CourtWorkerID                 string     `json:"court_worker_id,omitempty"`
	CourtRoleID                   string     `json:"court_role_id,omitempty"`
	CourtRoleKind                 string     `json:"court_role_kind,omitempty"`
	CourtAgent                    string     `json:"court_agent,omitempty"`
	CourtBackend                  string     `json:"court_backend,omitempty"`
	ForkMode                      string     `json:"fork_mode,omitempty"`
	ForkedFromThreadID            string     `json:"forked_from_thread_id,omitempty"`
	ForkedFromProviderSessionID   string     `json:"forked_from_provider_session_id,omitempty"`
	RollbackMode                  string     `json:"rollback_mode,omitempty"`
	RollbackTurns                 int        `json:"rollback_turns,omitempty"`
	RollbackFromThreadID          string     `json:"rollback_from_thread_id,omitempty"`
	RollbackFromProviderSessionID string     `json:"rollback_from_provider_session_id,omitempty"`
}

type ThreadRead added in v0.5.0

type ThreadRead struct {
	Thread     TrackedThread `json:"thread"`
	Turns      []ThreadTurn  `json:"turns,omitempty"`
	EventCount int           `json:"event_count,omitempty"`
}

type ThreadTurn added in v0.5.0

type ThreadTurn struct {
	TurnID        string           `json:"turn_id"`
	Status        ThreadTurnStatus `json:"status"`
	Summary       string           `json:"summary,omitempty"`
	AssistantText string           `json:"assistant_text,omitempty"`
	StartedAtMS   int64            `json:"started_at_ms,omitempty"`
	CompletedAtMS int64            `json:"completed_at_ms,omitempty"`
	EventCount    int              `json:"event_count,omitempty"`
	RequestIDs    []string         `json:"request_ids,omitempty"`
}

type ThreadTurnStatus added in v0.5.0

type ThreadTurnStatus string
const (
	ThreadTurnRunning     ThreadTurnStatus = "running"
	ThreadTurnCompleted   ThreadTurnStatus = "completed"
	ThreadTurnErrored     ThreadTurnStatus = "errored"
	ThreadTurnInterrupted ThreadTurnStatus = "interrupted"
)

type TokenUsage added in v0.4.7

type TokenUsage struct {
	InputTokens     int64 `json:"input_tokens,omitempty"`
	OutputTokens    int64 `json:"output_tokens,omitempty"`
	ReasoningTokens int64 `json:"reasoning_tokens,omitempty"`
	CachedTokens    int64 `json:"cached_tokens,omitempty"`
	TotalTokens     int64 `json:"total_tokens,omitempty"`
}

func EventTokenUsage added in v0.5.0

func EventTokenUsage(event RuntimeEvent) (TokenUsage, bool)

type TokenUsageBreakdown added in v0.5.0

type TokenUsageBreakdown struct {
	Key   string     `json:"key"`
	Usage TokenUsage `json:"usage"`
}

type TrackedSession added in v0.5.0

type TrackedSession struct {
	Session       RuntimeSession        `json:"session"`
	StartedAtMS   int64                 `json:"started_at_ms,omitempty"`
	EndedAtMS     int64                 `json:"ended_at_ms,omitempty"`
	LastEventType string                `json:"last_event_type,omitempty"`
	UsageByModel  []TokenUsageBreakdown `json:"usage_by_model,omitempty"`
	UsageByMode   []TokenUsageBreakdown `json:"usage_by_mode,omitempty"`
	CostByModel   []CostBreakdown       `json:"cost_by_model,omitempty"`
	CostByMode    []CostBreakdown       `json:"cost_by_mode,omitempty"`
}

type TrackedThread added in v0.5.0

type TrackedThread struct {
	ThreadID       string         `json:"thread_id"`
	ParentThreadID string         `json:"parent_thread_id,omitempty"`
	Name           string         `json:"name,omitempty"`
	Archived       bool           `json:"archived"`
	Metadata       ThreadMetadata `json:"metadata,omitempty"`
	TrackedSession TrackedSession `json:"tracked_session"`
}

type Transport

type Transport string
const (
	TransportNativeHook Transport = "native_hook"
	TransportPlugin     Transport = "native_plugin"
	TransportAppServer  Transport = "app_server"
	TransportAgentSDK   Transport = "agent_sdk"
	TransportACP        Transport = "acp"
	TransportHTTPServer Transport = "http_server"
	TransportRPC        Transport = "rpc"
)

Jump to

Keyboard shortcuts

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