prompt

package
v1.0.18 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2026 License: MIT Imports: 1 Imported by: 1

Documentation

Index

Constants

View Source
const AssistantRole = Role("assistant")
View Source
const MimeApplicationPDF = "application/pdf"
View Source
const MimeAudioMP3 = "audio/mp3"
View Source
const MimeAudioMPEG = "audio/mpeg"
View Source
const MimeAudioWAV = "audio/wav"
View Source
const MimeImageJPEG = "image/jpeg"
View Source
const MimeImagePNG = "image/png"
View Source
const MimeImageWebp = "image/webp"
View Source
const MimeTextPlain = "text/plain"
View Source
const MimeVideoAVI = "video/avi"
View Source
const MimeVideoFLV = "video/flv"
View Source
const MimeVideoMOV = "video/mov"
View Source
const MimeVideoMP4 = "video/mp4"
View Source
const MimeVideoMPEG = "video/mpeg"
View Source
const MimeVideoMPEGS = "video/mpegps"
View Source
const MimeVideoMPG = "video/mpg"
View Source
const MimeVideoWMV = "video/wmv"
View Source
const ThinkingRole = Role("thinking")
View Source
const ToolCallRole = Role("tool-call")
View Source
const ToolResponseRole = Role("tool-resp")
View Source
const UserRole = Role("user")

Variables

Functions

This section is empty.

Types

type Payload added in v0.0.2

type Payload struct {
	Mime string `json:"mime_type"`
	Data string `json:"data"`
	Uri  string `json:"uri"`
}

type Prompt

type Prompt struct {
	Role         Role          `json:"role"`
	Text         string        `json:"text,omitempty"`
	Payload      *Payload      `json:"payload,omitempty"`
	ToolCall     *ToolCall     `json:"tool_call,omitempty"`
	ToolResponse *ToolResponse `json:"tool_response,omitempty"`

	Thinking *ThinkingContent `json:"thinking,omitempty"`

	// Replay is opaque per-provider bytes that must be echoed back verbatim
	// on the next request for the provider to accept the turn. Depending on
	// provider and role this is a signature (Anthropic thinking MAC, Gemini
	// thoughtSignature) or a ciphertext blob (Anthropic redacted_thinking
	// data, OpenAI reasoning.encrypted_content). Callers shouldn't inspect
	// or construct it — just round-trip the value from Response.Turn.
	Replay []byte `json:"replay,omitempty"`
}

func AsAssistant

func AsAssistant(text string) Prompt

func AsAssistantWithReplay added in v1.0.17

func AsAssistantWithReplay(text string, replay []byte) Prompt

func AsRedactedThinking added in v1.0.17

func AsRedactedThinking(data []byte) Prompt

AsRedactedThinking builds a thinking prompt whose content the provider has chosen not to disclose. data is the opaque ciphertext blob the provider returned (Anthropic's redacted_thinking.data); it must be echoed back verbatim via Prompt.Replay for the turn to be accepted.

func AsThinking added in v1.0.17

func AsThinking(text string, replay []byte, id string) Prompt

func AsToolCall added in v0.10.0

func AsToolCall(toolCallID, functionName string, functionArg []byte) Prompt

func AsToolCallWithReplay added in v1.0.17

func AsToolCallWithReplay(toolCallID, functionName string, functionArg, replay []byte) Prompt

func AsToolResponse added in v0.10.0

func AsToolResponse(toolCallID, functionName string, response string) Prompt

func AsUser

func AsUser(text string) Prompt

func AsUserWithData added in v0.0.2

func AsUserWithData(mime string, data []byte) Prompt

func AsUserWithURI added in v0.7.0

func AsUserWithURI(mime string, uri string) Prompt

type Role

type Role string

type ThinkingContent added in v1.0.17

type ThinkingContent struct {
	Text     string `json:"text,omitempty"`
	ID       string `json:"id,omitempty"`
	Redacted bool   `json:"redacted,omitempty"`
}

ThinkingContent is the payload attached to a Prompt with Role==ThinkingRole. The opaque replay bytes live on the wrapping Prompt.Replay field.

type ToolCall added in v0.10.0

type ToolCall struct {
	ToolCallID string `json:"id,omitempty"`
	Name       string `json:"name"`
	Arguments  []byte `json:"arguments"`
}

type ToolResponse added in v0.10.0

type ToolResponse struct {
	ToolCallID string `json:"id,omitempty"`
	Name       string `json:"name"`
	Response   string `json:"content"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL