Documentation
¶
Overview ¶
Package acp is the ACP-subprocess code.Agent implementation. One Agent spawns and owns a single ACP server subprocess; that connection hosts every wingman session for the chosen backend (codex / claude / ...). The session ids the interface deals in are the ACP server's own session ids — no wingman-side translation.
Index ¶
- type Agent
- func (a *Agent) Cancel(id string)
- func (a *Agent) Close() error
- func (a *Agent) CreateTerminal(context.Context, acpsdk.CreateTerminalRequest) (acpsdk.CreateTerminalResponse, error)
- func (a *Agent) DeleteSession(ctx context.Context, id string) error
- func (a *Agent) Effort() (string, []string)
- func (a *Agent) KillTerminal(context.Context, acpsdk.KillTerminalRequest) (acpsdk.KillTerminalResponse, error)
- func (a *Agent) ListSessions(ctx context.Context) ([]code.SessionInfo, error)
- func (a *Agent) LoadSession(ctx context.Context, id string) error
- func (a *Agent) LoadSessionStream(ctx context.Context, id string) iter.Seq2[[]agent.Message, error]
- func (a *Agent) Messages(id string) []agent.Message
- func (a *Agent) Models() ([]code.Model, string)
- func (a *Agent) Modes(sessionID string) ([]code.Mode, string)
- func (a *Agent) Name() string
- func (a *Agent) NewSession(ctx context.Context) (string, error)
- func (a *Agent) ReadTextFile(_ context.Context, p acpsdk.ReadTextFileRequest) (acpsdk.ReadTextFileResponse, error)
- func (a *Agent) ReleaseTerminal(context.Context, acpsdk.ReleaseTerminalRequest) (acpsdk.ReleaseTerminalResponse, error)
- func (a *Agent) RequestPermission(ctx context.Context, p acpsdk.RequestPermissionRequest) (acpsdk.RequestPermissionResponse, error)
- func (a *Agent) Send(ctx context.Context, id string, input []agent.Content) iter.Seq2[agent.Message, error]
- func (a *Agent) SessionUpdate(_ context.Context, n acpsdk.SessionNotification) error
- func (a *Agent) SetEffort(ctx context.Context, value string) error
- func (a *Agent) SetMode(ctx context.Context, sessionID, modeID string) error
- func (a *Agent) SetModel(ctx context.Context, id string) error
- func (a *Agent) SetUI(ui code.UI)
- func (a *Agent) SupportsDelete() bool
- func (a *Agent) TerminalOutput(context.Context, acpsdk.TerminalOutputRequest) (acpsdk.TerminalOutputResponse, error)
- func (a *Agent) Usage(id string) agent.Usage
- func (a *Agent) WaitForTerminalExit(context.Context, acpsdk.WaitForTerminalExitRequest) (acpsdk.WaitForTerminalExitResponse, error)
- func (a *Agent) Workspace() *code.Workspace
- func (a *Agent) WriteTextFile(_ context.Context, p acpsdk.WriteTextFileRequest) (acpsdk.WriteTextFileResponse, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Agent ¶
type Agent struct {
// contains filtered or unexported fields
}
func NewInProcess ¶
func NewInProcess( ws *code.Workspace, name string, serverAgent acpsdk.Agent, setupServer func(*acpsdk.AgentSideConnection), cleanup func() error, ) (*Agent, error)
NewInProcess wires an in-memory ACP-server agent (e.g. *claude.Agent, *codex.Agent) into a code.Agent backend using io.Pipe pairs — no subprocess for the protocol itself. setupServer is invoked with the server-side AgentSideConnection so libraries that need it (claude, codex) can call SetAgentConnection before the initialize handshake. cleanup runs during Close after the connection is torn down; pass nil for libraries with no resources to release (codex.Spawn returns a closer via *codex.Agent.Close — pass that here).
func (*Agent) CreateTerminal ¶
func (a *Agent) CreateTerminal(context.Context, acpsdk.CreateTerminalRequest) (acpsdk.CreateTerminalResponse, error)
func (*Agent) KillTerminal ¶
func (a *Agent) KillTerminal(context.Context, acpsdk.KillTerminalRequest) (acpsdk.KillTerminalResponse, error)
func (*Agent) ListSessions ¶
func (*Agent) LoadSessionStream ¶ added in v0.8.8
func (*Agent) ReadTextFile ¶
func (a *Agent) ReadTextFile(_ context.Context, p acpsdk.ReadTextFileRequest) (acpsdk.ReadTextFileResponse, error)
func (*Agent) ReleaseTerminal ¶
func (a *Agent) ReleaseTerminal(context.Context, acpsdk.ReleaseTerminalRequest) (acpsdk.ReleaseTerminalResponse, error)
func (*Agent) RequestPermission ¶
func (a *Agent) RequestPermission(ctx context.Context, p acpsdk.RequestPermissionRequest) (acpsdk.RequestPermissionResponse, error)
func (*Agent) SessionUpdate ¶
func (*Agent) SetUI ¶ added in v0.8.0
SetUI installs the UI used to approve permission requests. Set before turns.
func (*Agent) SupportsDelete ¶ added in v0.8.5
func (*Agent) TerminalOutput ¶
func (a *Agent) TerminalOutput(context.Context, acpsdk.TerminalOutputRequest) (acpsdk.TerminalOutputResponse, error)
func (*Agent) WaitForTerminalExit ¶
func (a *Agent) WaitForTerminalExit(context.Context, acpsdk.WaitForTerminalExitRequest) (acpsdk.WaitForTerminalExitResponse, error)
func (*Agent) WriteTextFile ¶
func (a *Agent) WriteTextFile(_ context.Context, p acpsdk.WriteTextFileRequest) (acpsdk.WriteTextFileResponse, error)