Documentation
¶
Index ¶
- func CreateUserMessageWithAttachment(userContent, attachmentPath string) (*session.Message, string)
- func ParseAttachCommand(userInput string) (messageText, attachPath string)
- func PrepareUserMessage(ctx context.Context, rt runtime.Runtime, userInput, globalAttachPath string) (*session.Message, string)
- func Run(ctx context.Context, out *Printer, cfg Config, rt runtime.Runtime, ...) error
- type Config
- type ConfirmationResult
- type Printer
- func (p *Printer) Print(a ...any)
- func (p *Printer) PrintAgentName(agentName string)
- func (p *Printer) PrintError(err error)
- func (p *Printer) PrintToolCall(toolCall tools.ToolCall)
- func (p *Printer) PrintToolCallResponse(name, response string)
- func (p *Printer) PrintToolCallWithConfirmation(ctx context.Context, toolCall tools.ToolCall, rd io.Reader) ConfirmationResult
- func (p *Printer) PrintWelcomeMessage(appName string)
- func (p *Printer) Printf(format string, a ...any)
- func (p *Printer) Println(a ...any)
- func (p *Printer) PromptMaxIterationsContinue(ctx context.Context, maxIterations int) ConfirmationResult
- func (p *Printer) PromptOAuthAuthorization(ctx context.Context, serverURL string) ConfirmationResult
- type RuntimeError
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateUserMessageWithAttachment ¶
CreateUserMessageWithAttachment creates a user message with optional file attachment. Text files are inlined directly as text content for cross-provider compatibility. Binary files (images, PDFs) are stored as file references for provider-specific upload.
Returns the prepared session.Message and the absolute path of the file that was actually attached. The returned path is empty when no attachment was produced (no path supplied, file unreadable, type unsupported, file too large to inline, etc.). Callers should record successful attachments via session.Session.AddAttachedFile so sub-agents inherit the file context.
func ParseAttachCommand ¶
ParseAttachCommand parses user input for /attach commands Returns the message text (with /attach commands removed) and the attachment path
func PrepareUserMessage ¶
func PrepareUserMessage(ctx context.Context, rt runtime.Runtime, userInput, globalAttachPath string) (*session.Message, string)
PrepareUserMessage resolves commands, parses /attach directives, and creates a user message with optional image attachment. This is the common flow for both TUI and CLI modes.
Parameters:
- ctx: context for command resolution
- rt: runtime for command resolution
- userInput: the raw user input (may contain /commands and /attach directives)
- globalAttachPath: attachment path from --attach flag (can be empty)
Returns the prepared session.Message ready to be added to the session, plus the absolute path of the file that was actually attached (empty when no attachment was used). Callers should pass that path to session.Session.AddAttachedFile so sub-agents inherit the file context.
func Run ¶
func Run(ctx context.Context, out *Printer, cfg Config, rt runtime.Runtime, sess *session.Session, userMessages []string) error
Run executes an agent in non-TUI mode, handling user input and runtime events. userMessages contains the user messages to send. If a single message is "-", input is read from stdin. If empty, an interactive prompt loop is started.
Types ¶
type Config ¶
type Config struct {
AppName string
AttachmentPath string
AutoApprove bool
HideToolCalls bool
OutputJSON bool
}
Config holds configuration for running an agent in CLI mode
type ConfirmationResult ¶
type ConfirmationResult string
ConfirmationResult represents the result of a user confirmation prompt
const ( ConfirmationApprove ConfirmationResult = "approve" ConfirmationApproveSession ConfirmationResult = "approve_session" ConfirmationReject ConfirmationResult = "reject" ConfirmationAbort ConfirmationResult = "abort" )
type Printer ¶
type Printer struct {
// contains filtered or unexported fields
}
func NewPrinter ¶
func (*Printer) PrintAgentName ¶
PrintAgentName prints the agent name header
func (*Printer) PrintError ¶
PrintError prints an error message
func (*Printer) PrintToolCall ¶
PrintToolCall prints a tool call
func (*Printer) PrintToolCallResponse ¶
PrintToolCallResponse prints a tool call response
func (*Printer) PrintToolCallWithConfirmation ¶
func (p *Printer) PrintToolCallWithConfirmation(ctx context.Context, toolCall tools.ToolCall, rd io.Reader) ConfirmationResult
PrintToolCallWithConfirmation prints a tool call and prompts for confirmation
func (*Printer) PrintWelcomeMessage ¶
PrintWelcomeMessage prints the welcome message
func (*Printer) PromptMaxIterationsContinue ¶
func (p *Printer) PromptMaxIterationsContinue(ctx context.Context, maxIterations int) ConfirmationResult
PromptMaxIterationsContinue prompts the user to continue after max iterations
func (*Printer) PromptOAuthAuthorization ¶
func (p *Printer) PromptOAuthAuthorization(ctx context.Context, serverURL string) ConfirmationResult
PromptOAuthAuthorization prompts the user for OAuth authorization
type RuntimeError ¶
type RuntimeError struct {
Err error
}
RuntimeError wraps runtime errors to distinguish them from usage errors
func (RuntimeError) Error ¶
func (e RuntimeError) Error() string
func (RuntimeError) Unwrap ¶
func (e RuntimeError) Unwrap() error