Documentation
¶
Index ¶
- type Attachment
- type BinaryContent
- type ContentPart
- type CreateMessageParams
- type Finish
- type FinishReason
- type ImageURLContent
- type Message
- func (m *Message) AddBinary(mimeType string, data []byte)
- func (m *Message) AddFinish(reason FinishReason)
- func (m *Message) AddImageURL(url, detail string)
- func (m *Message) AddToolCall(tc ToolCall)
- func (m *Message) AddToolResult(tr ToolResult)
- func (m *Message) AppendContent(delta string)
- func (m *Message) AppendReasoningContent(delta string)
- func (m *Message) AppendToolCallInput(toolCallID string, inputDelta string)
- func (m *Message) BinaryContent() []BinaryContent
- func (m *Message) Content() TextContent
- func (m *Message) FinishPart() *Finish
- func (m *Message) FinishReason() FinishReason
- func (m *Message) FinishToolCall(toolCallID string)
- func (m *Message) ImageURLContent() []ImageURLContent
- func (m *Message) IsFinished() bool
- func (m *Message) IsThinking() bool
- func (m *Message) ReasoningContent() ReasoningContent
- func (m *Message) SetToolCalls(tc []ToolCall)
- func (m *Message) SetToolResults(tr []ToolResult)
- func (m *Message) ToolCalls() []ToolCall
- func (m *Message) ToolResults() []ToolResult
- type MessageRole
- type ReasoningContent
- type Service
- type TextContent
- type ToolCall
- type ToolResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Attachment ¶
type BinaryContent ¶
func (BinaryContent) String ¶
func (bc BinaryContent) String(provider models.ModelProvider) string
type ContentPart ¶
type ContentPart interface {
// contains filtered or unexported methods
}
type CreateMessageParams ¶
type CreateMessageParams struct {
Role MessageRole
Parts []ContentPart
Model models.ModelID
}
type Finish ¶
type Finish struct {
Reason FinishReason `json:"reason"`
Time int64 `json:"time"`
}
type FinishReason ¶
type FinishReason string
const ( FinishReasonEndTurn FinishReason = "end_turn" FinishReasonMaxTokens FinishReason = "max_tokens" FinishReasonToolUse FinishReason = "tool_use" FinishReasonCanceled FinishReason = "canceled" FinishReasonError FinishReason = "error" FinishReasonPermissionDenied FinishReason = "permission_denied" // Should never happen FinishReasonUnknown FinishReason = "unknown" )
type ImageURLContent ¶
func (ImageURLContent) String ¶
func (iuc ImageURLContent) String() string
type Message ¶
type Message struct {
ID string
Role MessageRole
SessionID string
Parts []ContentPart
Model models.ModelID
CreatedAt int64
UpdatedAt int64
}
func (*Message) AddFinish ¶
func (m *Message) AddFinish(reason FinishReason)
func (*Message) AddImageURL ¶
func (*Message) AddToolCall ¶
func (*Message) AddToolResult ¶
func (m *Message) AddToolResult(tr ToolResult)
func (*Message) AppendContent ¶
func (*Message) AppendReasoningContent ¶
func (*Message) AppendToolCallInput ¶
func (*Message) BinaryContent ¶
func (m *Message) BinaryContent() []BinaryContent
func (*Message) Content ¶
func (m *Message) Content() TextContent
func (*Message) FinishPart ¶
func (*Message) FinishReason ¶
func (m *Message) FinishReason() FinishReason
func (*Message) FinishToolCall ¶
func (*Message) ImageURLContent ¶
func (m *Message) ImageURLContent() []ImageURLContent
func (*Message) IsFinished ¶
func (*Message) IsThinking ¶
func (*Message) ReasoningContent ¶
func (m *Message) ReasoningContent() ReasoningContent
func (*Message) SetToolCalls ¶
func (*Message) SetToolResults ¶
func (m *Message) SetToolResults(tr []ToolResult)
func (*Message) ToolResults ¶
func (m *Message) ToolResults() []ToolResult
type MessageRole ¶
type MessageRole string
const ( Assistant MessageRole = "assistant" User MessageRole = "user" System MessageRole = "system" Tool MessageRole = "tool" )
type ReasoningContent ¶
type ReasoningContent struct {
Thinking string `json:"thinking"`
}
func (ReasoningContent) String ¶
func (tc ReasoningContent) String() string
type Service ¶
type Service interface {
pubsub.Suscriber[Message]
Create(ctx context.Context, sessionID string, params CreateMessageParams) (Message, error)
Update(ctx context.Context, message Message) error
Get(ctx context.Context, id string) (Message, error)
List(ctx context.Context, sessionID string) ([]Message, error)
Delete(ctx context.Context, id string) error
DeleteSessionMessages(ctx context.Context, sessionID string) error
}
func NewService ¶
type TextContent ¶
type TextContent struct {
Text string `json:"text"`
}
func (TextContent) String ¶
func (tc TextContent) String() string
type ToolResult ¶
type ToolResult struct {
ToolCallID string `json:"tool_call_id"`
Name string `json:"name"`
Content string `json:"content"`
Metadata string `json:"metadata"`
IsError bool `json:"is_error"`
// Images carries binary image(s) produced by an image-type tool response
// (e.g. browser_screenshot). They are sent to vision-capable models as real
// image blocks; Content holds a short textual placeholder in that case. The
// raw base64 never lives in Content, so it is not dumped in the TUI/WebUI.
Images []BinaryContent `json:"images,omitempty"`
// Input holds the original tool call input JSON. It is NOT persisted to the
// database (json:"-") and is populated in-flight by the agent so that the
// ACP layer can include rawInput in tool_call_update messages even when the
// streaming AgentEventTypeToolCall events were dropped due to buffer overflow.
Input string `json:"-"`
}
func (ToolResult) SanitizedForPrompt ¶ added in v0.320.0
func (tr ToolResult) SanitizedForPrompt() ToolResult
SanitizedForPrompt returns the tool result as it should be sent to the model. Image data now lives in the Images field (Content is only a placeholder), so no special blanking is required.
Click to show internal directories.
Click to hide internal directories.