Documentation
¶
Index ¶
- Constants
- Variables
- func RunREPL(version string, workingDir string, cfg *config.ResolvedConfig, ...) (string, error)
- type HeadlessRunOptions
- type HeadlessRunResult
- type StreamHandler
- func (sh *StreamHandler) Checkpoint() ([]string, string, []streamSegment)
- func (sh *StreamHandler) GetLoadingText() string
- func (sh *StreamHandler) GetPendingChoice() replpermissions.Choice
- func (sh *StreamHandler) GetPendingPermissionRequest() *replpermissions.Request
- func (sh *StreamHandler) GetRawResponse() string
- func (sh *StreamHandler) GetResponse() string
- func (sh *StreamHandler) HandleBashEnd(toolCall *llm.ToolCall)
- func (sh *StreamHandler) HandleBashStart(command, summary string)
- func (sh *StreamHandler) HandleChunk(chunk string)
- func (sh *StreamHandler) HandleDiff(lines []tools.EditDiffLine)
- func (sh *StreamHandler) HandleDone() ([]string, string)
- func (sh *StreamHandler) HandleError(err error) ([]string, string)
- func (sh *StreamHandler) HandleInterrupt() []string
- func (sh *StreamHandler) HandlePermissionRequest(req *replpermissions.Request)
- func (sh *StreamHandler) HandleReasoningChunk(chunk string)
- func (sh *StreamHandler) HandleSubagentActivity(activity subagents.ToolActivity)
- func (sh *StreamHandler) HandleToolEnd(toolCall *llm.ToolCall)
- func (sh *StreamHandler) HandleToolStart(toolCall *llm.ToolCall)
- func (sh *StreamHandler) HasContent() bool
- func (sh *StreamHandler) HasPendingPermission() bool
- func (sh *StreamHandler) Interrupt()
- func (sh *StreamHandler) IsActive() bool
- func (sh *StreamHandler) MovePendingCursor(delta int)
- func (sh *StreamHandler) ResetContent()
- func (sh *StreamHandler) ResolvePendingPermission(status replpermissions.Status)
- func (sh *StreamHandler) RewindForRetry()
- func (sh *StreamHandler) SetAskUser(state *askUserState)
- func (sh *StreamHandler) SetLoadingText(loadingText string)
- func (sh *StreamHandler) Start(eventCh <-chan llm.StreamEvent, loadingText string)
- func (sh *StreamHandler) View(width int) string
Constants ¶
View Source
const ( HeadlessFormatText = "text" HeadlessFormatJSON = "json" )
Variables ¶
View Source
var ErrCompletionSignalMissing = errors.New("completion signal not found in response")
ErrCompletionSignalMissing is returned when a --completion-signal was configured but the final response did not contain it. The caller should continue the loop with another iteration.
Functions ¶
Types ¶
type HeadlessRunOptions ¶
type HeadlessRunOptions struct {
WorkingDir string
Config *config.ResolvedConfig
GlobalConfig *config.GlobalConfig
MCPRuntime keenmcp.Runtime
Client llm.LLMClient
SessionID string
Prompt string
Format string
CompletionSignal string
Out io.Writer
// Progress, when set and Format is text, receives live text chunks and
// tool end lines as the run happens.
Progress io.Writer
}
type HeadlessRunResult ¶
type HeadlessRunResult struct {
SessionID string `json:"session_id"`
OpenCodeSessionID string `json:"opencode_session_id"`
Text string `json:"text"`
Usage *headlessUsage `json:"usage,omitempty"`
}
func RunHeadless ¶
func RunHeadless(ctx context.Context, opts HeadlessRunOptions) (*HeadlessRunResult, error)
type StreamHandler ¶
type StreamHandler struct {
// contains filtered or unexported fields
}
func NewStreamHandler ¶
func NewStreamHandler(mdRenderer *replmarkdown.Renderer) *StreamHandler
func (*StreamHandler) Checkpoint ¶
func (sh *StreamHandler) Checkpoint() ([]string, string, []streamSegment)
Checkpoint returns the current visible content and starts a fresh segment collection without disconnecting the active stream.
func (*StreamHandler) GetLoadingText ¶
func (sh *StreamHandler) GetLoadingText() string
func (*StreamHandler) GetPendingChoice ¶
func (sh *StreamHandler) GetPendingChoice() replpermissions.Choice
func (*StreamHandler) GetPendingPermissionRequest ¶
func (sh *StreamHandler) GetPendingPermissionRequest() *replpermissions.Request
func (*StreamHandler) GetRawResponse ¶
func (sh *StreamHandler) GetRawResponse() string
func (*StreamHandler) GetResponse ¶
func (sh *StreamHandler) GetResponse() string
func (*StreamHandler) HandleBashEnd ¶
func (sh *StreamHandler) HandleBashEnd(toolCall *llm.ToolCall)
func (*StreamHandler) HandleBashStart ¶
func (sh *StreamHandler) HandleBashStart(command, summary string)
func (*StreamHandler) HandleChunk ¶
func (sh *StreamHandler) HandleChunk(chunk string)
func (*StreamHandler) HandleDiff ¶
func (sh *StreamHandler) HandleDiff(lines []tools.EditDiffLine)
func (*StreamHandler) HandleDone ¶
func (sh *StreamHandler) HandleDone() ([]string, string)
func (*StreamHandler) HandleError ¶
func (sh *StreamHandler) HandleError(err error) ([]string, string)
func (*StreamHandler) HandleInterrupt ¶
func (sh *StreamHandler) HandleInterrupt() []string
func (*StreamHandler) HandlePermissionRequest ¶
func (sh *StreamHandler) HandlePermissionRequest(req *replpermissions.Request)
func (*StreamHandler) HandleReasoningChunk ¶
func (sh *StreamHandler) HandleReasoningChunk(chunk string)
func (*StreamHandler) HandleSubagentActivity ¶
func (sh *StreamHandler) HandleSubagentActivity(activity subagents.ToolActivity)
func (*StreamHandler) HandleToolEnd ¶
func (sh *StreamHandler) HandleToolEnd(toolCall *llm.ToolCall)
func (*StreamHandler) HandleToolStart ¶
func (sh *StreamHandler) HandleToolStart(toolCall *llm.ToolCall)
func (*StreamHandler) HasContent ¶
func (sh *StreamHandler) HasContent() bool
func (*StreamHandler) HasPendingPermission ¶
func (sh *StreamHandler) HasPendingPermission() bool
func (*StreamHandler) Interrupt ¶
func (sh *StreamHandler) Interrupt()
func (*StreamHandler) IsActive ¶
func (sh *StreamHandler) IsActive() bool
func (*StreamHandler) MovePendingCursor ¶
func (sh *StreamHandler) MovePendingCursor(delta int)
func (*StreamHandler) ResetContent ¶
func (sh *StreamHandler) ResetContent()
func (*StreamHandler) ResolvePendingPermission ¶
func (sh *StreamHandler) ResolvePendingPermission(status replpermissions.Status)
func (*StreamHandler) RewindForRetry ¶
func (sh *StreamHandler) RewindForRetry()
RewindForRetry discards only the in-flight assistant/reasoning chunks from a failed stream attempt so the upcoming retry does not duplicate them. Segments from completed prior tool-loop iterations (tool calls, bash output, diffs, permissions) are preserved. The accumulated response strings are rebuilt from the surviving assistant segments so they match what the user still sees.
func (*StreamHandler) SetAskUser ¶ added in v0.49.0
func (sh *StreamHandler) SetAskUser(state *askUserState)
func (*StreamHandler) SetLoadingText ¶
func (sh *StreamHandler) SetLoadingText(loadingText string)
func (*StreamHandler) Start ¶
func (sh *StreamHandler) Start(eventCh <-chan llm.StreamEvent, loadingText string)
func (*StreamHandler) View ¶
func (sh *StreamHandler) View(width int) string
Source Files
¶
- bang.go
- command_handlers.go
- context_status.go
- git_branch.go
- handlers.go
- headless_progress.go
- headless_run.go
- input_selection.go
- open_url.go
- repl.go
- repl_helpers.go
- repl_queue.go
- session_replay.go
- session_state.go
- stream_ask_user.go
- stream_handler.go
- stream_msgs.go
- stream_permission.go
- stream_render.go
- stream_segments.go
- tips.go
- turn_memory.go
- viewport_selection.go
Click to show internal directories.
Click to hide internal directories.