agentprotocol

package
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2026 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TargetKindLocalHostRuntime      = "local_host_runtime"
	TargetKindLocalContainerRuntime = "local_container_runtime"
	TargetKindSSHEnvironment        = "ssh_environment"
	TargetKindSSHContainerRuntime   = "ssh_container_runtime"
	TargetKindProviderEnvironment   = "provider_environment"
	TargetKindGatewayEnvironment    = "gateway_environment"
	TargetKindExternalLocalUI       = "external_local_ui"

	TargetStatusUnsupported = "unsupported"

	EnvOperationStatus   = "status"
	EnvOperationDiagnose = "diagnose"
	EnvOperationStart    = "start"
	EnvOperationStop     = "stop"
	EnvOperationRestart  = "restart"
	EnvOperationUpdate   = "update"

	OperationAvailabilityAvailable   = "available"
	OperationAvailabilityBlocked     = "blocked"
	OperationAvailabilityUnavailable = "unavailable"
	OperationAvailabilityHidden      = "hidden"

	OperationMethodLocalHost                 = "local_host"
	OperationMethodSSHHost                   = "ssh_host"
	OperationMethodLocalContainerExec        = "local_container_exec"
	OperationMethodSSHContainerExec          = "ssh_container_exec"
	OperationMethodDesktopLocalUpdateHandoff = "desktop_local_update_handoff"
	OperationMethodRuntimeControlRPC         = "runtime_control_rpc"
	OperationMethodRuntimeGateway            = "runtime_gateway"
	OperationMethodProviderTunnel            = "provider_tunnel"
	OperationMethodNone                      = "none"

	EnvReasonUnsupportedTargetKind = "unsupported_target_kind"
	EnvReasonRuntimeNotStarted     = "runtime_not_started"
	EnvReasonRuntimeAlreadyRunning = "runtime_already_running"
	EnvReasonRuntimeOwnerExternal  = "runtime_owner_external"
	EnvReasonDesktopStartRequired  = "desktop_start_required"
	EnvReasonDesktopUpdateRequired = "desktop_update_required"
	EnvReasonCLIUpdateUnavailable  = "cli_update_unavailable"
)
View Source
const (
	TargetKindLocalEnvironment = "local_environment"

	TargetStatusAvailable     = "available"
	TargetStatusConfigured    = "configured"
	TargetStatusNotConfigured = "not_configured"

	TargetExecutionLocationLocalRuntime = "local_runtime"
	TargetExecutionLocationLocalHost    = "local_host"
	TargetExecutionLocationSSH          = "ssh_target"

	CapabilityLocalUI       = "local_ui"
	CapabilityRemoteControl = "remote_control"
	CapabilityFiles         = "files"
	CapabilityTerminal      = "terminal"
	CapabilityMonitor       = "monitor"
	CapabilityGit           = "git"
	CapabilityCodexAPI      = "codex_api"
)
View Source
const (
	TargetExecReasonUnsupportedTargetKind   = "unsupported_target_kind"
	TargetExecReasonPasswordAuthUnavailable = "password_auth_unavailable"
)
View Source
const (
	ErrCodeAgentProtocol         = "AGENT_PROTOCOL_ERROR"
	ErrCodeTargetDiscoveryFailed = "TARGET_DISCOVERY_FAILED"
	ErrCodeTargetMissing         = "TARGET_MISSING"
	ErrCodeTargetNotFound        = "TARGET_NOT_FOUND"
	ErrCodeTargetExecFailed      = "TARGET_EXEC_FAILED"
	ErrCodeEnvironmentStatus     = "ENVIRONMENT_STATUS_FAILED"
	ErrCodeEnvironmentOperation  = "ENVIRONMENT_OPERATION_FAILED"
)
View Source
const SchemaVersion = 1

Variables

View Source
var ErrTargetNotFound = errors.New("target not found")

Functions

func MarshalJSONLine

func MarshalJSONLine(resp Response) ([]byte, error)

Types

type DiscoverTargetsOptions

type DiscoverTargetsOptions struct {
	StateRoot string
}

type EnvironmentDiagnostics added in v0.7.1

type EnvironmentDiagnostics struct {
	LockPath          string `json:"lock_path,omitempty"`
	ControlSocketPath string `json:"control_socket_path,omitempty"`
	LockPID           int    `json:"lock_pid,omitempty"`
	LockInstanceID    string `json:"lock_instance_id,omitempty"`
	PIDAlive          bool   `json:"pid_alive,omitempty"`
	SocketReachable   bool   `json:"socket_reachable,omitempty"`
	FailureCode       string `json:"failure_code,omitempty"`
}

func EnvironmentDiagnosticsFromAttach added in v0.7.1

func EnvironmentDiagnosticsFromAttach(status runtimemanagement.RuntimeAttachStatus) *EnvironmentDiagnostics

type EnvironmentOperationPlan added in v0.7.1

type EnvironmentOperationPlan struct {
	Operation            string   `json:"operation"`
	Availability         string   `json:"availability"`
	Method               string   `json:"method"`
	Performed            bool     `json:"performed,omitempty"`
	RequiresConfirmation bool     `json:"requires_confirmation"`
	Label                string   `json:"label"`
	ReasonCode           string   `json:"reason_code,omitempty"`
	Message              string   `json:"message,omitempty"`
	Command              string   `json:"command,omitempty"`
	Argv                 []string `json:"argv,omitempty"`
	NextActions          []string `json:"next_actions,omitempty"`
}

func BlockedOperationPlan added in v0.7.1

func BlockedOperationPlan(operation string, method string, reasonCode string, message string) EnvironmentOperationPlan

func MarkOperationPerformed added in v0.7.1

func MarkOperationPerformed(plan EnvironmentOperationPlan, message string) EnvironmentOperationPlan

type EnvironmentOperationPlans added in v0.7.1

type EnvironmentOperationPlans map[string]EnvironmentOperationPlan

func EnvironmentOperationPlansFromRuntime added in v0.7.1

func EnvironmentOperationPlansFromRuntime(target TargetDescriptor, status runtimemanagement.RuntimeAttachStatus, runtime RuntimeStatusSummary) EnvironmentOperationPlans

func UnsupportedEnvironmentOperationPlans added in v0.7.1

func UnsupportedEnvironmentOperationPlans(target TargetDescriptor, message string) EnvironmentOperationPlans

type EnvironmentOperationResult added in v0.7.1

type EnvironmentOperationResult struct {
	Target      TargetDescriptor         `json:"target"`
	Runtime     RuntimeStatusSummary     `json:"runtime"`
	Operation   EnvironmentOperationPlan `json:"operation"`
	Diagnostics *EnvironmentDiagnostics  `json:"diagnostics,omitempty"`
}

func EnvironmentOperationResultFromStatus added in v0.7.1

func EnvironmentOperationResultFromStatus(status EnvironmentStatus, operation EnvironmentOperationPlan, includeDiagnostics bool) EnvironmentOperationResult

type EnvironmentStatus added in v0.7.1

type EnvironmentStatus struct {
	Target      TargetDescriptor          `json:"target"`
	Supported   bool                      `json:"supported"`
	ReasonCode  string                    `json:"reason_code,omitempty"`
	Message     string                    `json:"message,omitempty"`
	Runtime     RuntimeStatusSummary      `json:"runtime"`
	Operations  EnvironmentOperationPlans `json:"operations"`
	Diagnostics *EnvironmentDiagnostics   `json:"diagnostics,omitempty"`
}

func EnvironmentStatusFromAttach added in v0.7.1

func EnvironmentStatusFromAttach(resolution EnvironmentTargetResolution, status runtimemanagement.RuntimeAttachStatus, includeDiagnostics bool) EnvironmentStatus

func UnsupportedEnvironmentStatus added in v0.7.1

func UnsupportedEnvironmentStatus(resolution EnvironmentTargetResolution) EnvironmentStatus

type EnvironmentTargetResolution added in v0.7.1

type EnvironmentTargetResolution struct {
	RequestedTarget string           `json:"requested_target,omitempty"`
	Target          TargetDescriptor `json:"target"`
	Supported       bool             `json:"supported"`
	ReasonCode      string           `json:"reason_code,omitempty"`
	Message         string           `json:"message,omitempty"`
}

func ResolveEnvironmentTarget added in v0.7.1

func ResolveEnvironmentTarget(catalog TargetCatalog, rawTarget string) (EnvironmentTargetResolution, error)

type Response

type Response struct {
	SchemaVersion int            `json:"schema_version"`
	OK            bool           `json:"ok"`
	Data          any            `json:"data,omitempty"`
	Error         *ResponseError `json:"error,omitempty"`
	Trace         ResponseTrace  `json:"trace"`
}

func Failure

func Failure(code string, message string, targetID string) Response

func Success

func Success(data any, targetID string) Response

type ResponseError

type ResponseError struct {
	Code    string `json:"code"`
	Message string `json:"message"`
}

type ResponseTrace

type ResponseTrace struct {
	RequestID string `json:"request_id"`
	TargetID  string `json:"target_id,omitempty"`
	Source    string `json:"source"`
}

type RuntimeStatusSummary added in v0.7.1

type RuntimeStatusSummary struct {
	State            string   `json:"state"`
	Message          string   `json:"message,omitempty"`
	Ready            bool     `json:"ready"`
	Running          bool     `json:"running"`
	DesktopManaged   bool     `json:"desktop_managed,omitempty"`
	RuntimeVersion   string   `json:"runtime_version,omitempty"`
	RuntimeCommit    string   `json:"runtime_commit,omitempty"`
	PID              int      `json:"pid,omitempty"`
	LocalUIURL       string   `json:"local_ui_url,omitempty"`
	LocalUIURLs      []string `json:"local_ui_urls,omitempty"`
	PasswordRequired bool     `json:"password_required,omitempty"`
	EffectiveRunMode string   `json:"effective_run_mode,omitempty"`
	RemoteEnabled    bool     `json:"remote_enabled,omitempty"`
	FailureCode      string   `json:"failure_code,omitempty"`
}

func RuntimeStatusSummaryFromAttach added in v0.7.1

func RuntimeStatusSummaryFromAttach(status runtimemanagement.RuntimeAttachStatus) RuntimeStatusSummary

type TargetCatalog

type TargetCatalog struct {
	Targets []TargetDescriptor `json:"targets"`
}

func DiscoverTargets

func DiscoverTargets(opts DiscoverTargetsOptions) (TargetCatalog, error)

func EnvironmentTargetCatalog added in v0.7.1

func EnvironmentTargetCatalog(catalog TargetCatalog) TargetCatalog

type TargetDescriptor

type TargetDescriptor struct {
	ID                       string                `json:"id"`
	Kind                     string                `json:"kind"`
	Label                    string                `json:"label"`
	Status                   string                `json:"status"`
	StateRoot                string                `json:"state_root,omitempty"`
	StateDir                 string                `json:"state_dir,omitempty"`
	ConfigPath               string                `json:"config_path,omitempty"`
	RuntimeControlSocketPath string                `json:"runtime_control_socket_path,omitempty"`
	LocalUIURL               string                `json:"local_ui_url,omitempty"`
	LocalUIURLs              []string              `json:"local_ui_urls,omitempty"`
	PasswordRequired         bool                  `json:"password_required,omitempty"`
	EffectiveRunMode         string                `json:"effective_run_mode,omitempty"`
	RemoteEnabled            bool                  `json:"remote_enabled,omitempty"`
	DesktopManaged           bool                  `json:"desktop_managed,omitempty"`
	ControlplaneBaseURL      string                `json:"controlplane_base_url,omitempty"`
	ControlplaneProvider     string                `json:"controlplane_provider_id,omitempty"`
	EnvPublicID              string                `json:"env_public_id,omitempty"`
	LocalEnvironmentID       string                `json:"local_environment_public_id,omitempty"`
	AgentHomeDir             string                `json:"agent_home_dir,omitempty"`
	Shell                    string                `json:"shell,omitempty"`
	Capabilities             []string              `json:"capabilities"`
	UnavailableReasonCode    string                `json:"unavailable_reason_code,omitempty"`
	Execution                *TargetExecutionRoute `json:"execution,omitempty"`
}

func ResolveTarget

func ResolveTarget(catalog TargetCatalog, rawTarget string) (TargetDescriptor, error)

func ResolveTargetForExecution added in v0.7.1

func ResolveTargetForExecution(catalog TargetCatalog, rawTarget string) (TargetDescriptor, error)

type TargetExecInvocation added in v0.7.1

type TargetExecInvocation struct {
	ExecutionLocation        string
	Command                  string
	CWD                      string
	Shell                    string
	SSHDestination           string
	SSHPort                  *int
	SSHAuthMode              string
	SSHConnectTimeoutSeconds int
	Env                      []string
}

type TargetExecOptions added in v0.7.1

type TargetExecOptions struct {
	StateRoot string
	Target    string
	Command   string
	CWD       string
	Timeout   time.Duration
	Runner    TargetExecRunner
}

type TargetExecProcessResult added in v0.7.1

type TargetExecProcessResult struct {
	Stdout     string
	Stderr     string
	ExitCode   int
	DurationMS int64
	TimedOut   bool
	Truncated  bool
}

type TargetExecResult added in v0.7.1

type TargetExecResult struct {
	Target            TargetDescriptor `json:"target"`
	TargetID          string           `json:"target_id"`
	Supported         bool             `json:"supported"`
	ReasonCode        string           `json:"reason_code,omitempty"`
	Message           string           `json:"message,omitempty"`
	ExecutionLocation string           `json:"execution_location,omitempty"`
	Command           string           `json:"command,omitempty"`
	CWD               string           `json:"cwd,omitempty"`
	Stdout            string           `json:"stdout,omitempty"`
	Stderr            string           `json:"stderr,omitempty"`
	ExitCode          int              `json:"exit_code"`
	DurationMS        int64            `json:"duration_ms,omitempty"`
	TimedOut          bool             `json:"timed_out,omitempty"`
	Truncated         bool             `json:"truncated,omitempty"`
}

func ExecuteTargetCommand added in v0.7.1

func ExecuteTargetCommand(ctx context.Context, opts TargetExecOptions) (TargetExecResult, error)

type TargetExecRunner added in v0.7.1

type TargetExecRunner func(ctx context.Context, inv TargetExecInvocation) (TargetExecProcessResult, error)

type TargetExecutionRoute added in v0.7.1

type TargetExecutionRoute struct {
	Location                 string `json:"location"`
	SSHDestination           string `json:"ssh_destination,omitempty"`
	SSHPort                  *int   `json:"ssh_port,omitempty"`
	SSHAuthMode              string `json:"ssh_auth_mode,omitempty"`
	SSHConnectTimeoutSeconds int    `json:"ssh_connect_timeout_seconds,omitempty"`
}

Jump to

Keyboard shortcuts

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