Documentation
¶
Overview ¶
Package opencode 将 OpenCode CLI 适配到 Leros 外部 CLI 引擎接口。 使用 opencode serve 模式,通过 HTTP REST API + SSE 进行通信。
Package opencode 将 OpenCode CLI 适配到 Leros 外部 CLI 引擎接口。 使用 opencode serve 模式,通过 HTTP REST API + SSE 进行通信。
Index ¶
- type Adapter
- type OpenCodeServer
- func (s *OpenCodeServer) Abort(ctx context.Context, sessionID string) error
- func (s *OpenCodeServer) ConnectSSE(ctx context.Context, workDir string) (<-chan sseEvent, error)
- func (s *OpenCodeServer) CreateSession(ctx context.Context, title, providerID, modelID, systemPrompt string) (*sessionResponse, error)
- func (s *OpenCodeServer) DeleteSession(ctx context.Context, sessionID string) error
- func (s *OpenCodeServer) PID() int
- func (s *OpenCodeServer) SendMessage(ctx context.Context, sessionID string, req messageRequest) (*messageResponse, error)
- func (s *OpenCodeServer) SendPermissionDecision(ctx context.Context, permissionID, decision string) error
- func (s *OpenCodeServer) SendQuestionAnswer(ctx context.Context, questionID string, answers [][]string) error
- func (s *OpenCodeServer) Stop() error
- type ServerInvoker
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Adapter ¶
type Adapter struct {
// contains filtered or unexported fields
}
Adapter 通过 OpenCode CLI serve 模式执行提示。
func NewAdapter ¶
NewAdapter 创建 OpenCode CLI 引擎适配器(serve 模式)。
func (*Adapter) GetSkillDir ¶
GetSkillDir 返回 OpenCode CLI 的技能目录路径。
type OpenCodeServer ¶
type OpenCodeServer struct {
// contains filtered or unexported fields
}
OpenCodeServer 管理 opcode serve 子进程并通过 HTTP 与之通信。
func (*OpenCodeServer) Abort ¶
func (s *OpenCodeServer) Abort(ctx context.Context, sessionID string) error
Abort 中断正在运行的会话。
func (*OpenCodeServer) ConnectSSE ¶
func (s *OpenCodeServer) ConnectSSE(ctx context.Context, workDir string) (<-chan sseEvent, error)
ConnectSSE 连接到 /event SSE 端点,返回解析后的事件通道。 事件按 directory 过滤以确保只接收当前工作区的事件。
func (*OpenCodeServer) CreateSession ¶
func (s *OpenCodeServer) CreateSession(ctx context.Context, title, providerID, modelID, systemPrompt string) (*sessionResponse, error)
CreateSession 创建新的 OpenCode 会话。
func (*OpenCodeServer) DeleteSession ¶
func (s *OpenCodeServer) DeleteSession(ctx context.Context, sessionID string) error
DeleteSession 删除会话。
func (*OpenCodeServer) SendMessage ¶
func (s *OpenCodeServer) SendMessage(ctx context.Context, sessionID string, req messageRequest) (*messageResponse, error)
SendMessage 向指定会话发送消息并同步等待完整响应。
func (*OpenCodeServer) SendPermissionDecision ¶
func (s *OpenCodeServer) SendPermissionDecision(ctx context.Context, permissionID, decision string) error
SendPermissionDecision 响应权限请求。
func (*OpenCodeServer) SendQuestionAnswer ¶
func (s *OpenCodeServer) SendQuestionAnswer(ctx context.Context, questionID string, answers [][]string) error
SendQuestionAnswer 响应 question 请求,发送用户选择的答案。
type ServerInvoker ¶
type ServerInvoker struct {
// contains filtered or unexported fields
}
============================================================================ ServerInvoker — opencode serve 模式的调用器 ============================================================================ ServerInvoker 通过 opcode serve HTTP API 执行提示。
func NewServerInvoker ¶
func NewServerInvoker(binary string, extraEnv map[string]string) *ServerInvoker
NewServerInvoker 创建新的 ServerInvoker。
func (*ServerInvoker) Run ¶
func (inv *ServerInvoker) Run(ctx context.Context, req engines.RunRequest) (*engines.RunHandle, error)
Run 启动 opcode serve,创建会话并执行提示。