Documentation
¶
Index ¶
- Constants
- Variables
- func AfterResponse(ctx context.Context, fn func())
- type Agent
- type AgentCapabilities
- type AgentFactory
- type AgentSideConnection
- func (c *AgentSideConnection) CloseErr() error
- func (c *AgentSideConnection) Closed() <-chan struct{}
- func (c *AgentSideConnection) CreateTerminal(ctx context.Context, req CreateTerminalRequest) (CreateTerminalResponse, error)
- func (c *AgentSideConnection) KillTerminal(ctx context.Context, req KillTerminalRequest) (KillTerminalResponse, error)
- func (c *AgentSideConnection) ReadTextFile(ctx context.Context, req ReadTextFileRequest) (ReadTextFileResponse, error)
- func (c *AgentSideConnection) ReleaseTerminal(ctx context.Context, req ReleaseTerminalRequest) (ReleaseTerminalResponse, error)
- func (c *AgentSideConnection) RequestPermission(ctx context.Context, req RequestPermissionRequest) (RequestPermissionResponse, error)
- func (c *AgentSideConnection) Run(ctx context.Context) error
- func (c *AgentSideConnection) SessionUpdate(n SessionNotification) error
- func (c *AgentSideConnection) TerminalOutput(ctx context.Context, req TerminalOutputRequest) (TerminalOutputResponse, error)
- func (c *AgentSideConnection) WaitForTerminalExit(ctx context.Context, req WaitForTerminalExitRequest) (WaitForTerminalExitResponse, error)
- func (c *AgentSideConnection) WriteTextFile(ctx context.Context, req WriteTextFileRequest) (WriteTextFileResponse, error)
- type Annotations
- type AuthCapabilities
- type AuthMethod
- type AuthenticateRequest
- type AuthenticateResponse
- type AvailableCommand
- type AvailableCommandInput
- type CancelNotification
- type ClientCapabilities
- type ContentBlock
- type ContentKind
- type CreateTerminalRequest
- type CreateTerminalResponse
- type EmbeddedResource
- type EnvVariable
- type Error
- func AsError(err error) *Error
- func InternalError(msg string) *Error
- func InvalidParams(msg string) *Error
- func InvalidRequest(msg string) *Error
- func MethodNotFound(method string) *Error
- func NewError(code int, message string) *Error
- func NewErrorf(code int, format string, args ...any) *Error
- func ParseError(msg string) *Error
- type FileSystemCapabilities
- type HttpHeader
- type Implementation
- type Incoming
- type IncomingKind
- type InitializeRequest
- type InitializeResponse
- type KillTerminalRequest
- type KillTerminalResponse
- type ListSessionsRequest
- type ListSessionsResponse
- type LoadSessionRequest
- type LoadSessionResponse
- type McpCapabilities
- type McpServer
- type McpServerKind
- type NewSessionRequest
- type NewSessionResponse
- type Notification
- type PermissionOption
- type PermissionOptionKind
- type PermissionOutcomeKind
- type PermissionToolCall
- type PlanEntry
- type PlanEntryPriority
- type PlanEntryStatus
- type PromptCapabilities
- type PromptRequest
- type PromptResponse
- type ReadTextFileRequest
- type ReadTextFileResponse
- type ReleaseTerminalRequest
- type ReleaseTerminalResponse
- type Request
- type RequestID
- type RequestIDKind
- type RequestPermissionOutcome
- type RequestPermissionRequest
- type RequestPermissionResponse
- type Response
- type SessionCapabilities
- type SessionConfigGroup
- type SessionConfigOption
- type SessionConfigValue
- type SessionConfigValues
- type SessionID
- type SessionInfo
- type SessionMode
- type SessionNotification
- type SessionUpdate
- type SessionUpdateKind
- type SetSessionConfigOptionRequest
- type SetSessionConfigOptionResponse
- type StopReason
- type TerminalExitStatus
- type TerminalOutputRequest
- type TerminalOutputResponse
- type ToolCallContent
- type ToolCallContentKind
- type ToolCallLocation
- type ToolCallStatus
- type ToolKind
- type UnimplementedAgent
- func (UnimplementedAgent) Authenticate(context.Context, AuthenticateRequest) (AuthenticateResponse, error)
- func (UnimplementedAgent) Cancel(context.Context, CancelNotification) error
- func (UnimplementedAgent) Initialize(context.Context, InitializeRequest) (InitializeResponse, error)
- func (UnimplementedAgent) ListSessions(context.Context, ListSessionsRequest) (ListSessionsResponse, error)
- func (UnimplementedAgent) LoadSession(context.Context, LoadSessionRequest) (LoadSessionResponse, error)
- func (UnimplementedAgent) NewSession(context.Context, NewSessionRequest) (NewSessionResponse, error)
- func (UnimplementedAgent) Prompt(context.Context, PromptRequest) (PromptResponse, error)
- func (UnimplementedAgent) SetSessionConfigOption(context.Context, SetSessionConfigOptionRequest) (SetSessionConfigOptionResponse, error)
- type WaitForTerminalExitRequest
- type WaitForTerminalExitResponse
- type WriteTextFileRequest
- type WriteTextFileResponse
Constants ¶
View Source
const ( ErrParseError = -32700 ErrInvalidRequest = -32600 ErrMethodNotFound = -32601 ErrInvalidParams = -32602 ErrInternalError = -32603 ErrAuthRequired = -32000 ErrResourceNotFound = -32002 )
View Source
const ( MethodInitialize = "initialize" MethodAuthenticate = "authenticate" MethodSessionNew = "session/new" MethodSessionLoad = "session/load" MethodSessionList = "session/list" MethodSessionPrompt = "session/prompt" MethodSessionCancel = "session/cancel" MethodSessionUpdate = "session/update" MethodSessionSetConfigOption = "session/set_config_option" MethodSessionRequestPermission = "session/request_permission" MethodFSReadTextFile = "fs/read_text_file" MethodFSWriteTextFile = "fs/write_text_file" MethodTerminalCreate = "terminal/create" MethodTerminalOutput = "terminal/output" MethodTerminalWaitForExit = "terminal/wait_for_exit" MethodTerminalKill = "terminal/kill" MethodTerminalRelease = "terminal/release" )
View Source
const ProtocolVersion = 1
Variables ¶
View Source
var (
ErrConnectionClosed = errors.New("libacp: connection closed")
)
Functions ¶
func AfterResponse ¶
AfterResponse schedules fn to run after the result of the request currently being handled has been written to the wire. Use it from a request handler (NewSession, LoadSession, ...) to emit session/update notifications that must reach the client only once it can resolve the session — most importantly the available_commands_update after session/new, which a client (e.g. Zed) drops as an "unknown session" if it arrives before the session/new result.
Called outside a request handler (no sink in ctx), fn runs immediately, so it is always safe to use regardless of caller context.
Types ¶
type Agent ¶
type Agent interface {
Initialize(ctx context.Context, req InitializeRequest) (InitializeResponse, error)
Authenticate(ctx context.Context, req AuthenticateRequest) (AuthenticateResponse, error)
NewSession(ctx context.Context, req NewSessionRequest) (NewSessionResponse, error)
LoadSession(ctx context.Context, req LoadSessionRequest) (LoadSessionResponse, error)
ListSessions(ctx context.Context, req ListSessionsRequest) (ListSessionsResponse, error)
SetSessionConfigOption(ctx context.Context, req SetSessionConfigOptionRequest) (SetSessionConfigOptionResponse, error)
Prompt(ctx context.Context, req PromptRequest) (PromptResponse, error)
Cancel(ctx context.Context, req CancelNotification) error
}
type AgentCapabilities ¶
type AgentCapabilities struct {
LoadSession bool `json:"loadSession,omitempty"`
PromptCapabilities PromptCapabilities `json:"promptCapabilities,omitempty"`
McpCapabilities McpCapabilities `json:"mcpCapabilities,omitempty"`
SessionCapabilities SessionCapabilities `json:"sessionCapabilities,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type AgentFactory ¶
type AgentFactory func(conn *AgentSideConnection) Agent
type AgentSideConnection ¶
type AgentSideConnection struct {
// contains filtered or unexported fields
}
func NewAgentSideConnection ¶
func NewAgentSideConnection(rw io.ReadWriteCloser, factory AgentFactory) *AgentSideConnection
func (*AgentSideConnection) CloseErr ¶
func (c *AgentSideConnection) CloseErr() error
func (*AgentSideConnection) Closed ¶
func (c *AgentSideConnection) Closed() <-chan struct{}
func (*AgentSideConnection) CreateTerminal ¶
func (c *AgentSideConnection) CreateTerminal(ctx context.Context, req CreateTerminalRequest) (CreateTerminalResponse, error)
func (*AgentSideConnection) KillTerminal ¶
func (c *AgentSideConnection) KillTerminal(ctx context.Context, req KillTerminalRequest) (KillTerminalResponse, error)
func (*AgentSideConnection) ReadTextFile ¶
func (c *AgentSideConnection) ReadTextFile(ctx context.Context, req ReadTextFileRequest) (ReadTextFileResponse, error)
func (*AgentSideConnection) ReleaseTerminal ¶
func (c *AgentSideConnection) ReleaseTerminal(ctx context.Context, req ReleaseTerminalRequest) (ReleaseTerminalResponse, error)
func (*AgentSideConnection) RequestPermission ¶
func (c *AgentSideConnection) RequestPermission(ctx context.Context, req RequestPermissionRequest) (RequestPermissionResponse, error)
func (*AgentSideConnection) SessionUpdate ¶
func (c *AgentSideConnection) SessionUpdate(n SessionNotification) error
func (*AgentSideConnection) TerminalOutput ¶
func (c *AgentSideConnection) TerminalOutput(ctx context.Context, req TerminalOutputRequest) (TerminalOutputResponse, error)
func (*AgentSideConnection) WaitForTerminalExit ¶
func (c *AgentSideConnection) WaitForTerminalExit(ctx context.Context, req WaitForTerminalExitRequest) (WaitForTerminalExitResponse, error)
func (*AgentSideConnection) WriteTextFile ¶
func (c *AgentSideConnection) WriteTextFile(ctx context.Context, req WriteTextFileRequest) (WriteTextFileResponse, error)
type Annotations ¶
type Annotations struct {
Audience []string `json:"audience,omitempty"`
Priority *float64 `json:"priority,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type AuthCapabilities ¶
type AuthCapabilities struct {
Terminal bool `json:"terminal,omitempty"`
}
type AuthMethod ¶
type AuthenticateRequest ¶
type AuthenticateRequest struct {
MethodID string `json:"methodId"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type AuthenticateResponse ¶
type AuthenticateResponse struct {
Meta json.RawMessage `json:"_meta,omitempty"`
}
type AvailableCommand ¶
type AvailableCommand struct {
Name string `json:"name"`
Description string `json:"description,omitempty"`
Input *AvailableCommandInput `json:"input,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type AvailableCommandInput ¶
type AvailableCommandInput struct {
Hint string `json:"hint,omitempty"`
}
type CancelNotification ¶
type CancelNotification struct {
SessionID SessionID `json:"sessionId"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type ClientCapabilities ¶
type ClientCapabilities struct {
FS FileSystemCapabilities `json:"fs,omitempty"`
Terminal bool `json:"terminal,omitempty"`
Auth AuthCapabilities `json:"auth,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type ContentBlock ¶
type ContentBlock struct {
Type string `json:"type"`
Text string `json:"text,omitempty"`
Data string `json:"data,omitempty"`
MimeType string `json:"mimeType,omitempty"`
URI string `json:"uri,omitempty"`
Name string `json:"name,omitempty"`
Title string `json:"title,omitempty"`
Description string `json:"description,omitempty"`
Size *int64 `json:"size,omitempty"`
Resource *EmbeddedResource `json:"resource,omitempty"`
Annotations *Annotations `json:"annotations,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
func NewImageContent ¶
func NewImageContent(data, mimeType string) ContentBlock
func NewResourceContent ¶
func NewResourceContent(resource EmbeddedResource) ContentBlock
func NewResourceLink ¶
func NewResourceLink(uri, name string) ContentBlock
func NewTextContent ¶
func NewTextContent(text string) ContentBlock
type ContentKind ¶
type ContentKind string
const ( ContentKindText ContentKind = "text" ContentKindImage ContentKind = "image" ContentKindAudio ContentKind = "audio" ContentKindResource ContentKind = "resource" ContentKindResourceLink ContentKind = "resource_link" )
type CreateTerminalRequest ¶
type CreateTerminalRequest struct {
SessionID SessionID `json:"sessionId"`
Command string `json:"command"`
Args []string `json:"args,omitempty"`
Env []EnvVariable `json:"env,omitempty"`
Cwd string `json:"cwd,omitempty"`
OutputByteLimit *int64 `json:"outputByteLimit,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type CreateTerminalResponse ¶
type CreateTerminalResponse struct {
TerminalID string `json:"terminalId"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type EmbeddedResource ¶
type EnvVariable ¶
type Error ¶
type Error struct {
Code int `json:"code"`
Message string `json:"message"`
Data json.RawMessage `json:"data,omitempty"`
}
func InternalError ¶
func InvalidParams ¶
func InvalidRequest ¶
func MethodNotFound ¶
func ParseError ¶
type FileSystemCapabilities ¶
type HttpHeader ¶
type Implementation ¶
type Incoming ¶
type Incoming struct {
Kind IncomingKind
Request Request
Notification Notification
Response Response
}
func ParseIncoming ¶
type IncomingKind ¶
type IncomingKind uint8
const ( IncomingKindUnknown IncomingKind = iota IncomingKindRequest IncomingKindNotification IncomingKindResponse )
type InitializeRequest ¶
type InitializeRequest struct {
ProtocolVersion int `json:"protocolVersion"`
ClientCapabilities ClientCapabilities `json:"clientCapabilities,omitempty"`
ClientInfo *Implementation `json:"clientInfo,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type InitializeResponse ¶
type InitializeResponse struct {
ProtocolVersion int `json:"protocolVersion"`
AgentCapabilities AgentCapabilities `json:"agentCapabilities,omitempty"`
AgentInfo *Implementation `json:"agentInfo,omitempty"`
AuthMethods []AuthMethod `json:"authMethods,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type KillTerminalRequest ¶
type KillTerminalRequest struct {
SessionID SessionID `json:"sessionId"`
TerminalID string `json:"terminalId"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type KillTerminalResponse ¶
type KillTerminalResponse struct {
Meta json.RawMessage `json:"_meta,omitempty"`
}
type ListSessionsRequest ¶
type ListSessionsRequest struct {
Cwd string `json:"cwd,omitempty"`
Cursor string `json:"cursor,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type ListSessionsResponse ¶
type ListSessionsResponse struct {
Sessions []SessionInfo `json:"sessions"`
NextCursor string `json:"nextCursor,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type LoadSessionRequest ¶
type LoadSessionRequest struct {
SessionID SessionID `json:"sessionId"`
Cwd string `json:"cwd"`
McpServers []McpServer `json:"mcpServers"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type LoadSessionResponse ¶
type LoadSessionResponse struct {
Modes []SessionMode `json:"modes,omitempty"`
ConfigOptions []SessionConfigOption `json:"configOptions,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type McpCapabilities ¶
type McpServer ¶
type McpServer struct {
Type string `json:"type,omitempty"`
Name string `json:"name"`
Command string `json:"command,omitempty"`
Args []string `json:"args,omitempty"`
Env []EnvVariable `json:"env,omitempty"`
URL string `json:"url,omitempty"`
Headers []HttpHeader `json:"headers,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
func (McpServer) Kind ¶
func (m McpServer) Kind() McpServerKind
type McpServerKind ¶
type McpServerKind string
const ( McpServerKindStdio McpServerKind = "" McpServerKindHTTP McpServerKind = "http" McpServerKindSSE McpServerKind = "sse" )
type NewSessionRequest ¶
type NewSessionRequest struct {
Cwd string `json:"cwd"`
McpServers []McpServer `json:"mcpServers"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type NewSessionResponse ¶
type NewSessionResponse struct {
SessionID SessionID `json:"sessionId"`
Modes []SessionMode `json:"modes,omitempty"`
ConfigOptions []SessionConfigOption `json:"configOptions,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type Notification ¶
type Notification struct {
JSONRPC string `json:"jsonrpc"`
Method string `json:"method"`
Params json.RawMessage `json:"params,omitempty"`
}
func NewNotification ¶
func NewNotification(method string, params json.RawMessage) Notification
type PermissionOption ¶
type PermissionOption struct {
OptionID string `json:"optionId"`
Name string `json:"name"`
Kind PermissionOptionKind `json:"kind"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type PermissionOptionKind ¶
type PermissionOptionKind string
const ( PermissionAllowOnce PermissionOptionKind = "allow_once" PermissionAllowAlways PermissionOptionKind = "allow_always" PermissionRejectOnce PermissionOptionKind = "reject_once" PermissionRejectAlways PermissionOptionKind = "reject_always" )
type PermissionOutcomeKind ¶
type PermissionOutcomeKind string
const ( PermissionOutcomeCancelled PermissionOutcomeKind = "cancelled" PermissionOutcomeSelected PermissionOutcomeKind = "selected" )
type PermissionToolCall ¶
type PermissionToolCall struct {
ToolCallID string `json:"toolCallId"`
Title string `json:"title,omitempty"`
Kind ToolKind `json:"kind,omitempty"`
Status ToolCallStatus `json:"status,omitempty"`
Content []ToolCallContent `json:"content,omitempty"`
Locations []ToolCallLocation `json:"locations,omitempty"`
RawInput json.RawMessage `json:"rawInput,omitempty"`
RawOutput json.RawMessage `json:"rawOutput,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type PlanEntry ¶
type PlanEntry struct {
Content string `json:"content"`
Priority PlanEntryPriority `json:"priority"`
Status PlanEntryStatus `json:"status"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type PlanEntryPriority ¶
type PlanEntryPriority string
const ( PlanPriorityHigh PlanEntryPriority = "high" PlanPriorityMedium PlanEntryPriority = "medium" PlanPriorityLow PlanEntryPriority = "low" )
type PlanEntryStatus ¶
type PlanEntryStatus string
const ( PlanStatusPending PlanEntryStatus = "pending" PlanStatusInProgress PlanEntryStatus = "in_progress" PlanStatusCompleted PlanEntryStatus = "completed" )
type PromptCapabilities ¶
type PromptRequest ¶
type PromptRequest struct {
SessionID SessionID `json:"sessionId"`
Prompt []ContentBlock `json:"prompt"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type PromptResponse ¶
type PromptResponse struct {
StopReason StopReason `json:"stopReason"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type ReadTextFileRequest ¶
type ReadTextFileResponse ¶
type ReadTextFileResponse struct {
Content string `json:"content"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type ReleaseTerminalRequest ¶
type ReleaseTerminalRequest struct {
SessionID SessionID `json:"sessionId"`
TerminalID string `json:"terminalId"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type ReleaseTerminalResponse ¶
type ReleaseTerminalResponse struct {
Meta json.RawMessage `json:"_meta,omitempty"`
}
type Request ¶
type Request struct {
JSONRPC string `json:"jsonrpc"`
ID RequestID `json:"id"`
Method string `json:"method"`
Params json.RawMessage `json:"params,omitempty"`
}
func NewRequest ¶
func NewRequest(id RequestID, method string, params json.RawMessage) Request
type RequestID ¶
type RequestID struct {
Kind RequestIDKind
Number int64
String string
}
func NewRequestIDNull ¶
func NewRequestIDNull() RequestID
func NewRequestIDNumber ¶
func NewRequestIDString ¶
func (RequestID) MarshalJSON ¶
func (*RequestID) UnmarshalJSON ¶
type RequestIDKind ¶
type RequestIDKind uint8
const ( RequestIDKindNull RequestIDKind = iota RequestIDKindNumber RequestIDKindString )
type RequestPermissionOutcome ¶
type RequestPermissionOutcome struct {
Outcome PermissionOutcomeKind `json:"outcome"`
OptionID string `json:"optionId,omitempty"`
}
func (*RequestPermissionOutcome) UnmarshalJSON ¶
func (o *RequestPermissionOutcome) UnmarshalJSON(data []byte) error
type RequestPermissionRequest ¶
type RequestPermissionRequest struct {
SessionID SessionID `json:"sessionId"`
ToolCall PermissionToolCall `json:"toolCall"`
Options []PermissionOption `json:"options"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type RequestPermissionResponse ¶
type RequestPermissionResponse struct {
Outcome RequestPermissionOutcome `json:"outcome"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type Response ¶
type Response struct {
JSONRPC string `json:"jsonrpc"`
ID RequestID `json:"id"`
Result json.RawMessage `json:"result,omitempty"`
Error *Error `json:"error,omitempty"`
}
func NewErrorResponse ¶
func NewResultResponse ¶
func NewResultResponse(id RequestID, result json.RawMessage) Response
type SessionCapabilities ¶
type SessionCapabilities struct {
List *struct{} `json:"list,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type SessionConfigGroup ¶ added in v0.29.0
type SessionConfigGroup struct {
Group string `json:"group"`
Name string `json:"name"`
Options []SessionConfigValue `json:"options"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type SessionConfigOption ¶ added in v0.29.0
type SessionConfigOption struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Category string `json:"category,omitempty"`
Type string `json:"type"`
CurrentValue string `json:"currentValue"`
Options SessionConfigValues `json:"options"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type SessionConfigValue ¶ added in v0.29.0
type SessionConfigValue struct {
Value string `json:"value"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type SessionConfigValues ¶ added in v0.29.0
type SessionConfigValues struct {
Values []SessionConfigValue
Groups []SessionConfigGroup
}
func NewGroupedSessionConfigValues ¶ added in v0.29.0
func NewGroupedSessionConfigValues(groups []SessionConfigGroup) SessionConfigValues
func NewSessionConfigValues ¶ added in v0.29.0
func NewSessionConfigValues(values []SessionConfigValue) SessionConfigValues
func (SessionConfigValues) AllValues ¶ added in v0.29.0
func (v SessionConfigValues) AllValues() []SessionConfigValue
func (SessionConfigValues) MarshalJSON ¶ added in v0.29.0
func (v SessionConfigValues) MarshalJSON() ([]byte, error)
func (*SessionConfigValues) UnmarshalJSON ¶ added in v0.29.0
func (v *SessionConfigValues) UnmarshalJSON(data []byte) error
type SessionInfo ¶
type SessionMode ¶
type SessionMode struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type SessionNotification ¶
type SessionNotification struct {
SessionID SessionID `json:"sessionId"`
Update SessionUpdate `json:"update"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type SessionUpdate ¶
type SessionUpdate struct {
SessionUpdate SessionUpdateKind `json:"sessionUpdate"`
Content *ContentBlock `json:"-"`
ToolCallID string `json:"toolCallId,omitempty"`
Title string `json:"title,omitempty"`
Kind ToolKind `json:"kind,omitempty"`
Status ToolCallStatus `json:"status,omitempty"`
ToolContent []ToolCallContent `json:"-"`
Locations []ToolCallLocation `json:"locations,omitempty"`
RawInput json.RawMessage `json:"rawInput,omitempty"`
RawOutput json.RawMessage `json:"rawOutput,omitempty"`
Entries []PlanEntry `json:"entries,omitempty"`
AvailableCommands []AvailableCommand `json:"availableCommands,omitempty"`
CurrentModeID string `json:"currentModeId,omitempty"`
ConfigOptions []SessionConfigOption `json:"configOptions,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
func NewAgentMessageChunk ¶
func NewAgentMessageChunk(text string) SessionUpdate
func NewAgentThoughtChunk ¶
func NewAgentThoughtChunk(text string) SessionUpdate
func NewUserMessageChunk ¶
func NewUserMessageChunk(text string) SessionUpdate
func (SessionUpdate) MarshalJSON ¶
func (u SessionUpdate) MarshalJSON() ([]byte, error)
func (*SessionUpdate) UnmarshalJSON ¶
func (u *SessionUpdate) UnmarshalJSON(data []byte) error
type SessionUpdateKind ¶
type SessionUpdateKind string
const ( SessionUpdateUserMessageChunk SessionUpdateKind = "user_message_chunk" SessionUpdateAgentMessageChunk SessionUpdateKind = "agent_message_chunk" SessionUpdateAgentThoughtChunk SessionUpdateKind = "agent_thought_chunk" SessionUpdateToolCall SessionUpdateKind = "tool_call" SessionUpdateToolCallUpdate SessionUpdateKind = "tool_call_update" SessionUpdatePlan SessionUpdateKind = "plan" SessionUpdateAvailableCommands SessionUpdateKind = "available_commands_update" SessionUpdateCurrentMode SessionUpdateKind = "current_mode_update" SessionUpdateConfigOption SessionUpdateKind = "config_option_update" )
type SetSessionConfigOptionRequest ¶ added in v0.29.0
type SetSessionConfigOptionRequest struct {
SessionID SessionID `json:"sessionId"`
ConfigID string `json:"configId"`
Value string `json:"value"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type SetSessionConfigOptionResponse ¶ added in v0.29.0
type SetSessionConfigOptionResponse struct {
ConfigOptions []SessionConfigOption `json:"configOptions"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type StopReason ¶
type StopReason string
const ( StopReasonEndTurn StopReason = "end_turn" StopReasonMaxTokens StopReason = "max_tokens" StopReasonMaxTurnRequests StopReason = "max_turn_requests" StopReasonRefusal StopReason = "refusal" StopReasonCancelled StopReason = "cancelled" )
type TerminalExitStatus ¶
type TerminalOutputRequest ¶
type TerminalOutputRequest struct {
SessionID SessionID `json:"sessionId"`
TerminalID string `json:"terminalId"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type TerminalOutputResponse ¶
type TerminalOutputResponse struct {
Output string `json:"output"`
Truncated bool `json:"truncated"`
ExitStatus *TerminalExitStatus `json:"exitStatus,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type ToolCallContent ¶
type ToolCallContent struct {
Type ToolCallContentKind `json:"type"`
Content *ContentBlock `json:"content,omitempty"`
Path string `json:"path,omitempty"`
OldText string `json:"oldText,omitempty"`
NewText string `json:"newText,omitempty"`
TerminalID string `json:"terminalId,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type ToolCallContentKind ¶
type ToolCallContentKind string
const ( ToolCallContentRegular ToolCallContentKind = "content" ToolCallContentDiff ToolCallContentKind = "diff" ToolCallContentTerminal ToolCallContentKind = "terminal" )
type ToolCallLocation ¶
type ToolCallStatus ¶
type ToolCallStatus string
const ( ToolCallStatusPending ToolCallStatus = "pending" ToolCallStatusInProgress ToolCallStatus = "in_progress" ToolCallStatusCompleted ToolCallStatus = "completed" ToolCallStatusFailed ToolCallStatus = "failed" )
type ToolKind ¶
type ToolKind string
const ( ToolKindRead ToolKind = "read" ToolKindEdit ToolKind = "edit" ToolKindDelete ToolKind = "delete" ToolKindMove ToolKind = "move" ToolKindSearch ToolKind = "search" ToolKindExecute ToolKind = "execute" ToolKindThink ToolKind = "think" ToolKindFetch ToolKind = "fetch" ToolKindOther ToolKind = "other" )
type UnimplementedAgent ¶
type UnimplementedAgent struct{}
func (UnimplementedAgent) Authenticate ¶
func (UnimplementedAgent) Authenticate(context.Context, AuthenticateRequest) (AuthenticateResponse, error)
func (UnimplementedAgent) Cancel ¶
func (UnimplementedAgent) Cancel(context.Context, CancelNotification) error
func (UnimplementedAgent) Initialize ¶
func (UnimplementedAgent) Initialize(context.Context, InitializeRequest) (InitializeResponse, error)
func (UnimplementedAgent) ListSessions ¶
func (UnimplementedAgent) ListSessions(context.Context, ListSessionsRequest) (ListSessionsResponse, error)
func (UnimplementedAgent) LoadSession ¶
func (UnimplementedAgent) LoadSession(context.Context, LoadSessionRequest) (LoadSessionResponse, error)
func (UnimplementedAgent) NewSession ¶
func (UnimplementedAgent) NewSession(context.Context, NewSessionRequest) (NewSessionResponse, error)
func (UnimplementedAgent) Prompt ¶
func (UnimplementedAgent) Prompt(context.Context, PromptRequest) (PromptResponse, error)
func (UnimplementedAgent) SetSessionConfigOption ¶ added in v0.29.0
func (UnimplementedAgent) SetSessionConfigOption(context.Context, SetSessionConfigOptionRequest) (SetSessionConfigOptionResponse, error)
type WaitForTerminalExitRequest ¶
type WaitForTerminalExitRequest struct {
SessionID SessionID `json:"sessionId"`
TerminalID string `json:"terminalId"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type WaitForTerminalExitResponse ¶
type WaitForTerminalExitResponse struct {
ExitCode *int `json:"exitCode,omitempty"`
Signal *string `json:"signal,omitempty"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type WriteTextFileRequest ¶
type WriteTextFileRequest struct {
SessionID SessionID `json:"sessionId"`
Path string `json:"path"`
Content string `json:"content"`
Meta json.RawMessage `json:"_meta,omitempty"`
}
type WriteTextFileResponse ¶
type WriteTextFileResponse struct {
Meta json.RawMessage `json:"_meta,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.