Documentation
¶
Index ¶
- func ParseIndexOrOption(raw string) (index int, optionID acp.PermissionOptionId, isIndex bool)
- type AgentBridge
- func (b *AgentBridge) Authenticate(context.Context, acp.AuthenticateRequest) (acp.AuthenticateResponse, error)
- func (b *AgentBridge) Cancel(_ context.Context, params acp.CancelNotification) error
- func (b *AgentBridge) Initialize(_ context.Context, params acp.InitializeRequest) (acp.InitializeResponse, error)
- func (b *AgentBridge) NewSession(_ context.Context, params acp.NewSessionRequest) (acp.NewSessionResponse, error)
- func (b *AgentBridge) Prompt(ctx context.Context, params acp.PromptRequest) (acp.PromptResponse, error)
- func (b *AgentBridge) RequestPermission(ctx context.Context, params acp.RequestPermissionRequest) (acp.RequestPermissionResponse, error)
- func (b *AgentBridge) SetSessionMode(_ context.Context, params acp.SetSessionModeRequest) (acp.SetSessionModeResponse, error)
- func (b *AgentBridge) SetSessionUpdater(updater SessionUpdater)
- type BridgeOptions
- type CallbackClient
- func (c *CallbackClient) CreateTerminal(ctx context.Context, params acp.CreateTerminalRequest) (acp.CreateTerminalResponse, error)
- func (c *CallbackClient) KillTerminalCommand(ctx context.Context, params acp.KillTerminalCommandRequest) (acp.KillTerminalCommandResponse, error)
- func (c *CallbackClient) ReadTextFile(ctx context.Context, params acp.ReadTextFileRequest) (acp.ReadTextFileResponse, error)
- func (c *CallbackClient) ReleaseTerminal(ctx context.Context, params acp.ReleaseTerminalRequest) (acp.ReleaseTerminalResponse, error)
- func (c *CallbackClient) RequestPermission(ctx context.Context, params acp.RequestPermissionRequest) (acp.RequestPermissionResponse, error)
- func (c *CallbackClient) SessionUpdate(ctx context.Context, params acp.SessionNotification) error
- func (c *CallbackClient) TerminalOutput(ctx context.Context, params acp.TerminalOutputRequest) (acp.TerminalOutputResponse, error)
- func (c *CallbackClient) WaitForTerminalExit(ctx context.Context, params acp.WaitForTerminalExitRequest) (acp.WaitForTerminalExitResponse, error)
- func (c *CallbackClient) WriteTextFile(ctx context.Context, params acp.WriteTextFileRequest) (acp.WriteTextFileResponse, error)
- type PendingPermission
- type PermissionBroker
- func (b *PermissionBroker) Pending() []PendingPermission
- func (b *PermissionBroker) RequestPermission(ctx context.Context, params acp.RequestPermissionRequest) (acp.RequestPermissionResponse, error)
- func (b *PermissionBroker) ResolveByIndex(requestID string, oneBasedIndex int) error
- func (b *PermissionBroker) ResolveCancelled(requestID string) error
- func (b *PermissionBroker) ResolveFirstByKind(requestID string, kinds ...acp.PermissionOptionKind) error
- func (b *PermissionBroker) ResolveSelected(requestID string, optionID acp.PermissionOptionId) error
- type PermissionRequester
- type PromptExecutor
- type PromptExecutorFunc
- type RenderedBlock
- type SessionUpdater
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ParseIndexOrOption ¶
func ParseIndexOrOption(raw string) (index int, optionID acp.PermissionOptionId, isIndex bool)
ParseIndexOrOption 尝试将文本解释为索引或 optionId。
Types ¶
type AgentBridge ¶
type AgentBridge struct {
// contains filtered or unexported fields
}
AgentBridge 是 ACP Agent 侧的最小实现骨架。
设计目标: 1) command 负责编排; 2) 通过 session/update 向 UI(Client) 发送结构化事件; 3) 支持最小可用生命周期(initialize/new/prompt/cancel)。
func NewAgentBridge ¶
func NewAgentBridge(opts BridgeOptions) *AgentBridge
NewAgentBridge 创建一个最小可用的 ACP AgentBridge。
func (*AgentBridge) Authenticate ¶
func (b *AgentBridge) Authenticate(context.Context, acp.AuthenticateRequest) (acp.AuthenticateResponse, error)
Authenticate implements acp.Agent.
func (*AgentBridge) Cancel ¶
func (b *AgentBridge) Cancel(_ context.Context, params acp.CancelNotification) error
Cancel implements acp.Agent.
func (*AgentBridge) Initialize ¶
func (b *AgentBridge) Initialize(_ context.Context, params acp.InitializeRequest) (acp.InitializeResponse, error)
Initialize implements acp.Agent.
func (*AgentBridge) NewSession ¶
func (b *AgentBridge) NewSession(_ context.Context, params acp.NewSessionRequest) (acp.NewSessionResponse, error)
NewSession implements acp.Agent.
func (*AgentBridge) Prompt ¶
func (b *AgentBridge) Prompt(ctx context.Context, params acp.PromptRequest) (acp.PromptResponse, error)
Prompt implements acp.Agent.
func (*AgentBridge) RequestPermission ¶
func (b *AgentBridge) RequestPermission(ctx context.Context, params acp.RequestPermissionRequest) (acp.RequestPermissionResponse, error)
RequestPermission 向 Client 发起权限请求;若未配置 requester,默认 cancelled。
func (*AgentBridge) SetSessionMode ¶
func (b *AgentBridge) SetSessionMode(_ context.Context, params acp.SetSessionModeRequest) (acp.SetSessionModeResponse, error)
SetSessionMode implements acp.Agent.
func (*AgentBridge) SetSessionUpdater ¶
func (b *AgentBridge) SetSessionUpdater(updater SessionUpdater)
SetSessionUpdater 设置 session/update 发送目标。
type BridgeOptions ¶
type BridgeOptions struct {
AgentInfo acp.Implementation
Executor PromptExecutor
PermissionRequester PermissionRequester
}
BridgeOptions 定义 ACP AgentBridge 的初始化选项。
type CallbackClient ¶
type CallbackClient struct {
PermissionBroker *PermissionBroker
OnReadTextFile func(ctx context.Context, params acp.ReadTextFileRequest) (acp.ReadTextFileResponse, error)
OnWriteTextFile func(ctx context.Context, params acp.WriteTextFileRequest) (acp.WriteTextFileResponse, error)
OnRequestPermission func(ctx context.Context, params acp.RequestPermissionRequest) (acp.RequestPermissionResponse, error)
OnSessionUpdate func(ctx context.Context, params acp.SessionNotification) error
OnCreateTerminal func(ctx context.Context, params acp.CreateTerminalRequest) (acp.CreateTerminalResponse, error)
OnKillTerminal func(ctx context.Context, params acp.KillTerminalCommandRequest) (acp.KillTerminalCommandResponse, error)
OnTerminalOutput func(ctx context.Context, params acp.TerminalOutputRequest) (acp.TerminalOutputResponse, error)
OnReleaseTerminal func(ctx context.Context, params acp.ReleaseTerminalRequest) (acp.ReleaseTerminalResponse, error)
OnWaitTerminalExit func(ctx context.Context, params acp.WaitForTerminalExitRequest) (acp.WaitForTerminalExitResponse, error)
}
CallbackClient 提供一个可插拔的 ACP Client 侧适配器。
说明: - 优先满足 session/update 与 session/request_permission; - 其余 fs/terminal 方法按需挂接; - 未提供回调时返回 MethodNotFound(或默认取消权限请求)。
func (*CallbackClient) CreateTerminal ¶
func (c *CallbackClient) CreateTerminal(ctx context.Context, params acp.CreateTerminalRequest) (acp.CreateTerminalResponse, error)
func (*CallbackClient) KillTerminalCommand ¶
func (c *CallbackClient) KillTerminalCommand(ctx context.Context, params acp.KillTerminalCommandRequest) (acp.KillTerminalCommandResponse, error)
func (*CallbackClient) ReadTextFile ¶
func (c *CallbackClient) ReadTextFile(ctx context.Context, params acp.ReadTextFileRequest) (acp.ReadTextFileResponse, error)
func (*CallbackClient) ReleaseTerminal ¶
func (c *CallbackClient) ReleaseTerminal(ctx context.Context, params acp.ReleaseTerminalRequest) (acp.ReleaseTerminalResponse, error)
func (*CallbackClient) RequestPermission ¶
func (c *CallbackClient) RequestPermission(ctx context.Context, params acp.RequestPermissionRequest) (acp.RequestPermissionResponse, error)
func (*CallbackClient) SessionUpdate ¶
func (c *CallbackClient) SessionUpdate(ctx context.Context, params acp.SessionNotification) error
func (*CallbackClient) TerminalOutput ¶
func (c *CallbackClient) TerminalOutput(ctx context.Context, params acp.TerminalOutputRequest) (acp.TerminalOutputResponse, error)
func (*CallbackClient) WaitForTerminalExit ¶
func (c *CallbackClient) WaitForTerminalExit(ctx context.Context, params acp.WaitForTerminalExitRequest) (acp.WaitForTerminalExitResponse, error)
func (*CallbackClient) WriteTextFile ¶
func (c *CallbackClient) WriteTextFile(ctx context.Context, params acp.WriteTextFileRequest) (acp.WriteTextFileResponse, error)
type PendingPermission ¶
type PendingPermission struct {
RequestID string
SessionID acp.SessionId
ToolCallID acp.ToolCallId
Title string
Options []acp.PermissionOption
}
PendingPermission 表示一个待决策的权限请求快照。
type PermissionBroker ¶
type PermissionBroker struct {
// contains filtered or unexported fields
}
PermissionBroker 负责管理 ACP 权限请求生命周期。
func NewPermissionBroker ¶
func NewPermissionBroker() *PermissionBroker
NewPermissionBroker 创建权限 broker。
func (*PermissionBroker) Pending ¶
func (b *PermissionBroker) Pending() []PendingPermission
Pending 返回当前待处理权限请求快照。
func (*PermissionBroker) RequestPermission ¶
func (b *PermissionBroker) RequestPermission(ctx context.Context, params acp.RequestPermissionRequest) (acp.RequestPermissionResponse, error)
RequestPermission 提交请求并阻塞等待决策。
func (*PermissionBroker) ResolveByIndex ¶
func (b *PermissionBroker) ResolveByIndex(requestID string, oneBasedIndex int) error
ResolveByIndex 使用 1-based 索引选择选项。
func (*PermissionBroker) ResolveCancelled ¶
func (b *PermissionBroker) ResolveCancelled(requestID string) error
ResolveCancelled 将请求决策为 cancelled。
func (*PermissionBroker) ResolveFirstByKind ¶
func (b *PermissionBroker) ResolveFirstByKind(requestID string, kinds ...acp.PermissionOptionKind) error
ResolveFirstByKind 按 option kind 自动选择第一个匹配项。
func (*PermissionBroker) ResolveSelected ¶
func (b *PermissionBroker) ResolveSelected(requestID string, optionID acp.PermissionOptionId) error
ResolveSelected 将请求决策为 selected。
type PermissionRequester ¶
type PermissionRequester interface {
RequestPermission(ctx context.Context, params acp.RequestPermissionRequest) (acp.RequestPermissionResponse, error)
}
PermissionRequester 抽象了 Agent 向 Client 发起 session/request_permission 的能力。
type PromptExecutor ¶
type PromptExecutor interface {
ExecutePrompt(ctx context.Context, sessionID acp.SessionId, prompt []acp.ContentBlock, emit func(update acp.SessionUpdate) error) (acp.StopReason, error)
}
PromptExecutor 由 command 编排层实现,用于驱动多轮/tool 调度。
type PromptExecutorFunc ¶
type PromptExecutorFunc func(ctx context.Context, sessionID acp.SessionId, prompt []acp.ContentBlock, emit func(update acp.SessionUpdate) error) (acp.StopReason, error)
PromptExecutorFunc 允许直接用函数实现 PromptExecutor。
func (PromptExecutorFunc) ExecutePrompt ¶
func (f PromptExecutorFunc) ExecutePrompt(ctx context.Context, sessionID acp.SessionId, prompt []acp.ContentBlock, emit func(update acp.SessionUpdate) error) (acp.StopReason, error)
ExecutePrompt implements PromptExecutor.
type RenderedBlock ¶
RenderedBlock 是从 ACP 事件提炼出的可展示结构。
func RenderSessionNotification ¶
func RenderSessionNotification(params acp.SessionNotification) []RenderedBlock
RenderSessionNotification 将 ACP session/update 转换为可展示块。
type SessionUpdater ¶
type SessionUpdater interface {
SessionUpdate(ctx context.Context, params acp.SessionNotification) error
}
SessionUpdater 定义了向 Client 推送 session/update 的最小能力。