contract

package
v0.4.4 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2026 License: MIT Imports: 2 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"
)

Variables

This section is empty.

Functions

This section is empty.

Types

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 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 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"
)

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 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"`
}

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 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"`
	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"`
	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"`
}

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