rpc

package
v0.1.33-preview.0 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccountGetQuotaResult

type AccountGetQuotaResult struct {
	// Quota snapshots keyed by type (e.g., chat, completions, premium_interactions)
	QuotaSnapshots map[string]QuotaSnapshot `json:"quotaSnapshots"`
}

type AgentElement added in v0.1.28

type AgentElement struct {
	// Description of the agent's purpose
	Description string `json:"description"`
	// Human-readable display name
	DisplayName string `json:"displayName"`
	// Unique identifier of the custom agent
	Name string `json:"name"`
}

type AgentRpcApi added in v0.1.28

type AgentRpcApi struct {
	// contains filtered or unexported fields
}

func (*AgentRpcApi) Deselect added in v0.1.28

func (*AgentRpcApi) GetCurrent added in v0.1.28

func (*AgentRpcApi) List added in v0.1.28

func (*AgentRpcApi) Select added in v0.1.28

type Billing

type Billing struct {
	// Billing cost multiplier relative to the base rate
	Multiplier float64 `json:"multiplier"`
}

Billing information

type Capabilities

type Capabilities struct {
	// Token limits for prompts, outputs, and context window
	Limits Limits `json:"limits"`
	// Feature flags indicating what the model supports
	Supports Supports `json:"supports"`
}

Model capabilities and limits

type CompactionRpcApi added in v0.1.28

type CompactionRpcApi struct {
	// contains filtered or unexported fields
}

func (*CompactionRpcApi) Compact added in v0.1.28

type FleetRpcApi added in v0.1.25

type FleetRpcApi struct {
	// contains filtered or unexported fields
}

func (*FleetRpcApi) Start added in v0.1.25

type Kind added in v0.1.31

type Kind string
const (
	Approved                                       Kind = "approved"
	DeniedByContentExclusionPolicy                 Kind = "denied-by-content-exclusion-policy"
	DeniedByRules                                  Kind = "denied-by-rules"
	DeniedInteractivelyByUser                      Kind = "denied-interactively-by-user"
	DeniedNoApprovalRuleAndCouldNotRequestFromUser Kind = "denied-no-approval-rule-and-could-not-request-from-user"
)

type Level

type Level string

Log severity level. Determines how the message is displayed in the timeline. Defaults to "info".

const (
	Error   Level = "error"
	Info    Level = "info"
	Warning Level = "warning"
)

type Limits

type Limits struct {
	// Maximum total context window size in tokens
	MaxContextWindowTokens float64 `json:"max_context_window_tokens"`
	// Maximum number of output/completion tokens
	MaxOutputTokens *float64 `json:"max_output_tokens,omitempty"`
	// Maximum number of prompt/input tokens
	MaxPromptTokens *float64 `json:"max_prompt_tokens,omitempty"`
}

Token limits for prompts, outputs, and context window

type Mode added in v0.1.25

type Mode string

The current agent mode.

The agent mode after switching.

The mode to switch to. Valid values: "interactive", "plan", "autopilot".

const (
	Autopilot   Mode = "autopilot"
	Interactive Mode = "interactive"
	Plan        Mode = "plan"
)

type ModeRpcApi added in v0.1.25

type ModeRpcApi struct {
	// contains filtered or unexported fields
}

func (*ModeRpcApi) Get added in v0.1.25

func (*ModeRpcApi) Set added in v0.1.25

type Model

type Model struct {
	// Billing information
	Billing *Billing `json:"billing,omitempty"`
	// Model capabilities and limits
	Capabilities Capabilities `json:"capabilities"`
	// Default reasoning effort level (only present if model supports reasoning effort)
	DefaultReasoningEffort *string `json:"defaultReasoningEffort,omitempty"`
	// Model identifier (e.g., "claude-sonnet-4.5")
	ID string `json:"id"`
	// Display name
	Name string `json:"name"`
	// Policy state (if applicable)
	Policy *Policy `json:"policy,omitempty"`
	// Supported reasoning effort levels (only present if model supports reasoning effort)
	SupportedReasoningEfforts []string `json:"supportedReasoningEfforts,omitempty"`
}

type ModelRpcApi

type ModelRpcApi struct {
	// contains filtered or unexported fields
}

func (*ModelRpcApi) GetCurrent

func (*ModelRpcApi) SwitchTo

type ModelsListResult

type ModelsListResult struct {
	// List of available models with full metadata
	Models []Model `json:"models"`
}

type PermissionsRpcApi added in v0.1.31

type PermissionsRpcApi struct {
	// contains filtered or unexported fields
}

type PingParams

type PingParams struct {
	// Optional message to echo back
	Message *string `json:"message,omitempty"`
}

type PingResult

type PingResult struct {
	// Echoed message (or default greeting)
	Message string `json:"message"`
	// Server protocol version number
	ProtocolVersion float64 `json:"protocolVersion"`
	// Server timestamp in milliseconds
	Timestamp float64 `json:"timestamp"`
}

type PlanRpcApi added in v0.1.25

type PlanRpcApi struct {
	// contains filtered or unexported fields
}

func (*PlanRpcApi) Delete added in v0.1.25

func (*PlanRpcApi) Read added in v0.1.25

func (*PlanRpcApi) Update added in v0.1.25

type Policy

type Policy struct {
	// Current policy state for this model
	State string `json:"state"`
	// Usage terms or conditions for this model
	Terms string `json:"terms"`
}

Policy state (if applicable)

type QuotaSnapshot

type QuotaSnapshot struct {
	// Number of requests included in the entitlement
	EntitlementRequests float64 `json:"entitlementRequests"`
	// Number of overage requests made this period
	Overage float64 `json:"overage"`
	// Whether pay-per-request usage is allowed when quota is exhausted
	OverageAllowedWithExhaustedQuota bool `json:"overageAllowedWithExhaustedQuota"`
	// Percentage of entitlement remaining
	RemainingPercentage float64 `json:"remainingPercentage"`
	// Date when the quota resets (ISO 8601)
	ResetDate *string `json:"resetDate,omitempty"`
	// Number of requests used so far this period
	UsedRequests float64 `json:"usedRequests"`
}

type ResultResult added in v0.1.31

type ResultResult struct {
	Error            *string                `json:"error,omitempty"`
	ResultType       *string                `json:"resultType,omitempty"`
	TextResultForLlm string                 `json:"textResultForLlm"`
	ToolTelemetry    map[string]interface{} `json:"toolTelemetry,omitempty"`
}

type ResultUnion added in v0.1.31

type ResultUnion struct {
	ResultResult *ResultResult
	String       *string
}

func (ResultUnion) MarshalJSON added in v0.1.31

func (r ResultUnion) MarshalJSON() ([]byte, error)

MarshalJSON serializes ResultUnion as the appropriate JSON variant: a plain string when String is set, or the ResultResult object otherwise. The generated struct has no custom marshaler, so without this the Go struct fields would serialize as {"ResultResult":...,"String":...} instead of the union the server expects.

func (*ResultUnion) UnmarshalJSON added in v0.1.31

func (r *ResultUnion) UnmarshalJSON(data []byte) error

UnmarshalJSON deserializes a JSON value into the appropriate ResultUnion variant.

type ServerAccountRpcApi added in v0.1.31

type ServerAccountRpcApi struct {
	// contains filtered or unexported fields
}

func (*ServerAccountRpcApi) GetQuota added in v0.1.31

type ServerModelsRpcApi added in v0.1.31

type ServerModelsRpcApi struct {
	// contains filtered or unexported fields
}

func (*ServerModelsRpcApi) List added in v0.1.31

type ServerRpc

type ServerRpc struct {
	Models  *ServerModelsRpcApi
	Tools   *ServerToolsRpcApi
	Account *ServerAccountRpcApi
	// contains filtered or unexported fields
}

ServerRpc provides typed server-scoped RPC methods.

func NewServerRpc

func NewServerRpc(client *jsonrpc2.Client) *ServerRpc

func (*ServerRpc) Ping

func (a *ServerRpc) Ping(ctx context.Context, params *PingParams) (*PingResult, error)

type ServerToolsRpcApi added in v0.1.31

type ServerToolsRpcApi struct {
	// contains filtered or unexported fields
}

func (*ServerToolsRpcApi) List added in v0.1.31

type SessionAgentDeselectResult added in v0.1.28

type SessionAgentDeselectResult struct {
}

type SessionAgentGetCurrentResult added in v0.1.28

type SessionAgentGetCurrentResult struct {
	// Currently selected custom agent, or null if using the default agent
	Agent *SessionAgentGetCurrentResultAgent `json:"agent"`
}

type SessionAgentGetCurrentResultAgent added in v0.1.28

type SessionAgentGetCurrentResultAgent struct {
	// Description of the agent's purpose
	Description string `json:"description"`
	// Human-readable display name
	DisplayName string `json:"displayName"`
	// Unique identifier of the custom agent
	Name string `json:"name"`
}

type SessionAgentListResult added in v0.1.28

type SessionAgentListResult struct {
	// Available custom agents
	Agents []AgentElement `json:"agents"`
}

type SessionAgentSelectParams added in v0.1.28

type SessionAgentSelectParams struct {
	// Name of the custom agent to select
	Name string `json:"name"`
}

type SessionAgentSelectResult added in v0.1.28

type SessionAgentSelectResult struct {
	// The newly selected custom agent
	Agent SessionAgentSelectResultAgent `json:"agent"`
}

type SessionAgentSelectResultAgent added in v0.1.28

type SessionAgentSelectResultAgent struct {
	// Description of the agent's purpose
	Description string `json:"description"`
	// Human-readable display name
	DisplayName string `json:"displayName"`
	// Unique identifier of the custom agent
	Name string `json:"name"`
}

The newly selected custom agent

type SessionCompactionCompactResult added in v0.1.28

type SessionCompactionCompactResult struct {
	// Number of messages removed during compaction
	MessagesRemoved float64 `json:"messagesRemoved"`
	// Whether compaction completed successfully
	Success bool `json:"success"`
	// Number of tokens freed by compaction
	TokensRemoved float64 `json:"tokensRemoved"`
}

type SessionFleetStartParams added in v0.1.25

type SessionFleetStartParams struct {
	// Optional user prompt to combine with fleet instructions
	Prompt *string `json:"prompt,omitempty"`
}

type SessionFleetStartResult added in v0.1.25

type SessionFleetStartResult struct {
	// Whether fleet mode was successfully activated
	Started bool `json:"started"`
}

type SessionLogParams

type SessionLogParams struct {
	// When true, the message is transient and not persisted to the session event log on disk
	Ephemeral *bool `json:"ephemeral,omitempty"`
	// Log severity level. Determines how the message is displayed in the timeline. Defaults to
	// "info".
	Level *Level `json:"level,omitempty"`
	// Human-readable message
	Message string `json:"message"`
}

type SessionLogResult

type SessionLogResult struct {
	// The unique identifier of the emitted session event
	EventID string `json:"eventId"`
}

type SessionModeGetResult added in v0.1.25

type SessionModeGetResult struct {
	// The current agent mode.
	Mode Mode `json:"mode"`
}

type SessionModeSetParams added in v0.1.25

type SessionModeSetParams struct {
	// The mode to switch to. Valid values: "interactive", "plan", "autopilot".
	Mode Mode `json:"mode"`
}

type SessionModeSetResult added in v0.1.25

type SessionModeSetResult struct {
	// The agent mode after switching.
	Mode Mode `json:"mode"`
}

type SessionModelGetCurrentResult

type SessionModelGetCurrentResult struct {
	// Currently active model identifier
	ModelID *string `json:"modelId,omitempty"`
}

type SessionModelSwitchToParams

type SessionModelSwitchToParams struct {
	// Model identifier to switch to
	ModelID string `json:"modelId"`
	// Reasoning effort level to use for the model
	ReasoningEffort *string `json:"reasoningEffort,omitempty"`
}

type SessionModelSwitchToResult

type SessionModelSwitchToResult struct {
	// Currently active model identifier after the switch
	ModelID *string `json:"modelId,omitempty"`
}

type SessionPermissionsHandlePendingPermissionRequestParams added in v0.1.31

type SessionPermissionsHandlePendingPermissionRequestParams struct {
	RequestID string                                                       `json:"requestId"`
	Result    SessionPermissionsHandlePendingPermissionRequestParamsResult `json:"result"`
}

type SessionPermissionsHandlePendingPermissionRequestParamsResult added in v0.1.31

type SessionPermissionsHandlePendingPermissionRequestParamsResult struct {
	Kind     Kind          `json:"kind"`
	Rules    []interface{} `json:"rules,omitempty"`
	Feedback *string       `json:"feedback,omitempty"`
	Message  *string       `json:"message,omitempty"`
	Path     *string       `json:"path,omitempty"`
}

type SessionPermissionsHandlePendingPermissionRequestResult added in v0.1.31

type SessionPermissionsHandlePendingPermissionRequestResult struct {
	// Whether the permission request was handled successfully
	Success bool `json:"success"`
}

type SessionPlanDeleteResult added in v0.1.25

type SessionPlanDeleteResult struct {
}

type SessionPlanReadResult added in v0.1.25

type SessionPlanReadResult struct {
	// The content of the plan file, or null if it does not exist
	Content *string `json:"content"`
	// Whether the plan file exists in the workspace
	Exists bool `json:"exists"`
	// Absolute file path of the plan file, or null if workspace is not enabled
	Path *string `json:"path"`
}

type SessionPlanUpdateParams added in v0.1.25

type SessionPlanUpdateParams struct {
	// The new content for the plan file
	Content string `json:"content"`
}

type SessionPlanUpdateResult added in v0.1.25

type SessionPlanUpdateResult struct {
}

type SessionRpc

type SessionRpc struct {
	Model       *ModelRpcApi
	Mode        *ModeRpcApi
	Plan        *PlanRpcApi
	Workspace   *WorkspaceRpcApi
	Fleet       *FleetRpcApi
	Agent       *AgentRpcApi
	Compaction  *CompactionRpcApi
	Tools       *ToolsRpcApi
	Permissions *PermissionsRpcApi
	Shell       *ShellRpcApi
	// contains filtered or unexported fields
}

SessionRpc provides typed session-scoped RPC methods.

func NewSessionRpc

func NewSessionRpc(client *jsonrpc2.Client, sessionID string) *SessionRpc

func (*SessionRpc) Log

type SessionShellExecParams

type SessionShellExecParams struct {
	// Shell command to execute
	Command string `json:"command"`
	// Working directory (defaults to session working directory)
	Cwd *string `json:"cwd,omitempty"`
	// Timeout in milliseconds (default: 30000)
	Timeout *float64 `json:"timeout,omitempty"`
}

type SessionShellExecResult

type SessionShellExecResult struct {
	// Unique identifier for tracking streamed output
	ProcessID string `json:"processId"`
}

type SessionShellKillParams

type SessionShellKillParams struct {
	// Process identifier returned by shell.exec
	ProcessID string `json:"processId"`
	// Signal to send (default: SIGTERM)
	Signal *Signal `json:"signal,omitempty"`
}

type SessionShellKillResult

type SessionShellKillResult struct {
	// Whether the signal was sent successfully
	Killed bool `json:"killed"`
}

type SessionToolsHandlePendingToolCallParams added in v0.1.31

type SessionToolsHandlePendingToolCallParams struct {
	Error     *string      `json:"error,omitempty"`
	RequestID string       `json:"requestId"`
	Result    *ResultUnion `json:"result"`
}

type SessionToolsHandlePendingToolCallResult added in v0.1.31

type SessionToolsHandlePendingToolCallResult struct {
	// Whether the tool call result was handled successfully
	Success bool `json:"success"`
}

type SessionWorkspaceCreateFileParams added in v0.1.25

type SessionWorkspaceCreateFileParams struct {
	// File content to write as a UTF-8 string
	Content string `json:"content"`
	// Relative path within the workspace files directory
	Path string `json:"path"`
}

type SessionWorkspaceCreateFileResult added in v0.1.25

type SessionWorkspaceCreateFileResult struct {
}

type SessionWorkspaceListFilesResult added in v0.1.25

type SessionWorkspaceListFilesResult struct {
	// Relative file paths in the workspace files directory
	Files []string `json:"files"`
}

type SessionWorkspaceReadFileParams added in v0.1.25

type SessionWorkspaceReadFileParams struct {
	// Relative path within the workspace files directory
	Path string `json:"path"`
}

type SessionWorkspaceReadFileResult added in v0.1.25

type SessionWorkspaceReadFileResult struct {
	// File content as a UTF-8 string
	Content string `json:"content"`
}

type ShellRpcApi

type ShellRpcApi struct {
	// contains filtered or unexported fields
}

func (*ShellRpcApi) Exec

func (*ShellRpcApi) Kill

type Signal

type Signal string

Signal to send (default: SIGTERM)

const (
	Sigint  Signal = "SIGINT"
	Sigkill Signal = "SIGKILL"
	Sigterm Signal = "SIGTERM"
)

type Supports

type Supports struct {
	// Whether this model supports reasoning effort configuration
	ReasoningEffort *bool `json:"reasoningEffort,omitempty"`
	// Whether this model supports vision/image input
	Vision *bool `json:"vision,omitempty"`
}

Feature flags indicating what the model supports

type Tool

type Tool struct {
	// Description of what the tool does
	Description string `json:"description"`
	// Optional instructions for how to use this tool effectively
	Instructions *string `json:"instructions,omitempty"`
	// Tool identifier (e.g., "bash", "grep", "str_replace_editor")
	Name string `json:"name"`
	// Optional namespaced name for declarative filtering (e.g., "playwright/navigate" for MCP
	// tools)
	NamespacedName *string `json:"namespacedName,omitempty"`
	// JSON Schema for the tool's input parameters
	Parameters map[string]interface{} `json:"parameters,omitempty"`
}

type ToolsListParams

type ToolsListParams struct {
	// Optional model ID — when provided, the returned tool list reflects model-specific
	// overrides
	Model *string `json:"model,omitempty"`
}

type ToolsListResult

type ToolsListResult struct {
	// List of available built-in tools with metadata
	Tools []Tool `json:"tools"`
}

type ToolsRpcApi

type ToolsRpcApi struct {
	// contains filtered or unexported fields
}

func (*ToolsRpcApi) HandlePendingToolCall added in v0.1.31

type WorkspaceRpcApi added in v0.1.25

type WorkspaceRpcApi struct {
	// contains filtered or unexported fields
}

func (*WorkspaceRpcApi) CreateFile added in v0.1.25

func (*WorkspaceRpcApi) ListFiles added in v0.1.25

func (*WorkspaceRpcApi) ReadFile added in v0.1.25

Jump to

Keyboard shortcuts

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