ai

package
v0.1.0-alpha.1 Latest Latest
Warning

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

Go to latest
Published: Aug 9, 2026 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Overview

Package ai contains the text-generation core for go-ai.

It defines model/provider contracts, prompt/message part types, tool execution, retry and timeout behavior, stream parts, and high-level GenerateText and StreamText helpers.

Index

Constants

View Source
const (
	EventGenerateTextStart      = EventOnStart
	EventGenerateTextStepFinish = EventOnStepFinish
	EventGenerateTextFinish     = EventOnFinish
	EventGenerateTextEnd        = EventOnEnd
	EventGenerateTextError      = EventOnError

	EventStreamTextStart      = EventOnStart
	EventStreamTextChunk      = EventOnChunk
	EventStreamTextStepFinish = EventOnStepFinish
	EventStreamTextFinish     = EventOnFinish
	EventStreamTextEnd        = EventOnEnd
	EventStreamTextAbort      = EventOnAbort
	EventStreamTextError      = EventOnError

	EventEmbedStart  = EventOnStart
	EventEmbedFinish = EventOnFinish
	EventEmbedError  = EventOnError

	EventEmbedManyStart  = EventOnStart
	EventEmbedManyFinish = EventOnFinish
	EventEmbedManyError  = EventOnError

	EventGenerateObjectStart  = EventOnStart
	EventGenerateObjectFinish = EventOnFinish
	EventGenerateObjectError  = EventOnError

	EventGenerateImageStart  = EventOnStart
	EventGenerateImageFinish = EventOnFinish
	EventGenerateImageError  = EventOnError

	EventGenerateVideoStart  = EventOnStart
	EventGenerateVideoFinish = EventOnFinish
	EventGenerateVideoError  = EventOnError

	EventGenerateSpeechStart  = EventOnStart
	EventGenerateSpeechFinish = EventOnFinish
	EventGenerateSpeechError  = EventOnError

	EventTranscribeStart  = EventOnStart
	EventTranscribeFinish = EventOnFinish
	EventTranscribeError  = EventOnError

	EventRerankStart  = EventOnStart
	EventRerankFinish = EventOnFinish
	EventRerankError  = EventOnError

	EventUploadFileStart  = EventOnStart
	EventUploadFileFinish = EventOnFinish
	EventUploadFileError  = EventOnError

	EventUploadSkillStart  = EventOnStart
	EventUploadSkillFinish = EventOnFinish
	EventUploadSkillError  = EventOnError

	EventOnStart                  = "onStart"
	EventOnStepStart              = "onStepStart"
	EventOnLanguageModelCallStart = "onLanguageModelCallStart"
	EventOnLanguageModelCallEnd   = "onLanguageModelCallEnd"
	EventOnToolExecutionStart     = "onToolExecutionStart"
	EventOnToolExecutionEnd       = "onToolExecutionEnd"
	EventOnChunk                  = "onChunk"
	EventOnStepFinish             = "onStepFinish"
	EventOnObjectStepStart        = "onObjectStepStart"
	EventOnObjectStepFinish       = "onObjectStepFinish"
	EventOnEmbedStart             = "onEmbedStart"
	EventOnEmbedFinish            = "onEmbedFinish"
	EventOnRerankStart            = "onRerankStart"
	EventOnRerankFinish           = "onRerankFinish"
	EventOnEnd                    = "onEnd"
	EventOnAbort                  = "onAbort"
	EventOnFinish                 = "onFinish"
	EventOnError                  = "onError"

	OperationGenerateText   = "generate_text"
	OperationStreamText     = "stream_text"
	OperationEmbed          = "embed"
	OperationEmbedMany      = "embed_many"
	OperationGenerateObject = "generate_object"
	OperationGenerateImage  = "generate_image"
	OperationGenerateVideo  = "generate_video"
	OperationGenerateSpeech = "generate_speech"
	OperationTranscribe     = "transcribe"
	OperationRerank         = "rerank"
	OperationUploadFile     = "upload_file"
	OperationUploadSkill    = "upload_skill"

	OperationIDGenerateText   = "ai.generateText"
	OperationIDStreamText     = "ai.streamText"
	OperationIDEmbed          = "ai.embed"
	OperationIDEmbedMany      = "ai.embedMany"
	OperationIDGenerateObject = "ai.generateObject"
	OperationIDGenerateImage  = "ai.generateImage"
	OperationIDGenerateVideo  = "ai.generateVideo"
	OperationIDGenerateSpeech = "ai.generateSpeech"
	OperationIDTranscribe     = "ai.transcribe"
	OperationIDRerank         = "ai.rerank"
	OperationIDUploadFile     = "ai.uploadFile"
	OperationIDUploadSkill    = "ai.uploadSkill"
)
View Source
const (
	FileDataTypeBytes     = "bytes"
	FileDataTypeText      = "text"
	FileDataTypeURL       = "url"
	FileDataTypeReference = "reference"

	DefaultMaxDownloadSize int64 = 2 * 1024 * 1024 * 1024
)
View Source
const (
	OutputObject   = "object"
	OutputArray    = "array"
	OutputEnum     = "enum"
	OutputNoSchema = "no-schema"

	ObjectModeAuto = "auto"
	ObjectModeJSON = "json"
	ObjectModeTool = "tool"
)
View Source
const (
	ApprovalDecisionApproved      = "approved"
	ApprovalDecisionDenied        = "denied"
	ApprovalDecisionUserApproval  = "user-approval"
	ApprovalDecisionNotApplicable = "not-applicable"
)
View Source
const (
	FinishStop          = "stop"
	FinishLength        = "length"
	FinishToolCalls     = "tool-calls"
	FinishContentFilter = "content-filter"
	FinishError         = "error"
	FinishOther         = "other"
	FinishUnknown       = "unknown"
)
View Source
const (
	UIMessageChunkTypeTextStart            = "text-start"
	UIMessageChunkTypeTextDelta            = "text-delta"
	UIMessageChunkTypeTextEnd              = "text-end"
	UIMessageChunkTypeError                = "error"
	UIMessageChunkTypeToolInputStart       = "tool-input-start"
	UIMessageChunkTypeToolInputDelta       = "tool-input-delta"
	UIMessageChunkTypeToolInputAvailable   = "tool-input-available"
	UIMessageChunkTypeToolInputError       = "tool-input-error"
	UIMessageChunkTypeToolApprovalRequest  = "tool-approval-request"
	UIMessageChunkTypeToolApprovalResponse = "tool-approval-response"
	UIMessageChunkTypeToolOutputAvailable  = "tool-output-available"
	UIMessageChunkTypeToolOutputError      = "tool-output-error"
	UIMessageChunkTypeToolOutputDenied     = "tool-output-denied"
	UIMessageChunkTypeReasoningStart       = "reasoning-start"
	UIMessageChunkTypeReasoningDelta       = "reasoning-delta"
	UIMessageChunkTypeReasoningEnd         = "reasoning-end"
	UIMessageChunkTypeCustom               = "custom"
	UIMessageChunkTypeSourceURL            = "source-url"
	UIMessageChunkTypeSourceDocument       = "source-document"
	UIMessageChunkTypeFile                 = "file"
	UIMessageChunkTypeReasoningFile        = "reasoning-file"
	UIMessageChunkTypeStartStep            = "start-step"
	UIMessageChunkTypeFinishStep           = "finish-step"
	UIMessageChunkTypeStart                = "start"
	UIMessageChunkTypeFinish               = "finish"
	UIMessageChunkTypeAbort                = "abort"
	UIMessageChunkTypeMessageMetadata      = "message-metadata"
)
View Source
const (
	UIMessageStreamFormatSSE   = "sse"
	UIMessageStreamFormatJSONL = "jsonl"
)
View Source
const (
	UploadFileDataTypeData = "data"
	UploadFileDataTypeText = "text"
)
View Source
const AgentVersion = "agent-v1"
View Source
const FirstWarningInfoMessage = "AI SDK Warning System: To turn off warning logging, set the warning logger to nil."
View Source
const Version = "0.1.0-alpha.1"

Variables

View Source
var (
	ErrInvalidStreamPart            = errors.New("invalid stream part")
	ErrInvalidToolApproval          = errors.New("invalid tool approval")
	ErrInvalidToolApprovalSignature = errors.New("invalid tool approval signature")
	ErrToolCallNotFoundForApproval  = errors.New("tool call not found for approval")
	ErrToolCallRepair               = errors.New("tool call repair error")
	ErrUnsupportedModelVersion      = errors.New("unsupported model version")
	ErrUIMessageStream              = errors.New("ui message stream error")
)
View Source
var (
	ErrInvalidPrompt         = errors.New("invalid prompt")
	ErrInvalidArgument       = errors.New("invalid argument")
	ErrInvalidDataContent    = errors.New("invalid data content")
	ErrInvalidMessageRole    = errors.New("invalid message role")
	ErrMessageConversion     = errors.New("message conversion error")
	ErrMissingToolResults    = errors.New("missing tool results")
	ErrNoSuchTool            = errors.New("no such tool")
	ErrNoSuchProvider        = errors.New("no such provider")
	ErrNoSuchModel           = errors.New("no such model")
	ErrInvalidToolInput      = errors.New("invalid tool input")
	ErrInvalidResponseData   = errors.New("invalid response data")
	ErrAPICall               = errors.New("api call error")
	ErrRetry                 = errors.New("retry error")
	ErrDownload              = errors.New("download error")
	ErrGateway               = errors.New("gateway error")
	ErrGatewayAuthentication = errors.New("gateway authentication error")
	ErrUnsupportedFunction   = errors.New("unsupported functionality")
	ErrNoOutputGenerated     = errors.New("no output generated")
	ErrNoObjectGenerated     = errors.New("no object generated")
	ErrNoImageGenerated      = errors.New("no image generated")
	ErrNoVideoGenerated      = errors.New("no video generated")
	ErrNoSpeechGenerated     = errors.New("no speech generated")
	ErrNoTranscriptGenerated = errors.New("no transcript generated")
)
View Source
var ErrInvalidUIMessage = errors.New("invalid UI message")

Functions

func ApplyUIMessageChunk

func ApplyUIMessageChunk(state *StreamingUIMessageState, chunk UIMessageChunk) error

func ApprovalBlocksToolExecution

func ApprovalBlocksToolExecution(decision ApprovalDecision) bool

func CanonicalJSON

func CanonicalJSON(value any) (string, error)

CanonicalJSON returns deterministic JSON. encoding/json sorts string map keys, including nested maps, which gives the tool-security APIs a stable payload.

func CollectTextStream

func CollectTextStream(ctx context.Context, stream <-chan string) (string, error)

func ConsumeReader

func ConsumeReader(ctx context.Context, reader io.Reader, onError func(error)) error

func ConvertDataContentToBase64String

func ConvertDataContentToBase64String(content any) (string, error)

func ConvertDataContentToBytes

func ConvertDataContentToBytes(content any) ([]byte, error)

func CosineSimilarity

func CosineSimilarity(a, b []float64) float64

func CreateAgentUIStream

func CreateAgentUIStream(ctx context.Context, opts AgentUIStreamOptions) <-chan UIMessageChunk

func CreateChatUIMessageStream

func CreateChatUIMessageStream(ctx context.Context, req ChatRequest, opts ChatRequestHandlerOptions) (<-chan UIMessageChunk, error)

func CreateChatUIMessageStreamResponse

func CreateChatUIMessageStreamResponse(ctx context.Context, req ChatRequest, opts ChatRequestHandlerOptions) (*http.Response, error)

func CreateCompletionStreamResponse

func CreateCompletionStreamResponse(ctx context.Context, completion <-chan string, opts StreamResponseOptions) *http.Response

func CreateStreamTextUIMessageStream

func CreateStreamTextUIMessageStream(ctx context.Context, result *StreamTextResult, options ...StreamTextUIMessageStreamOptions) <-chan UIMessageChunk

func CreateTextStreamResponse

func CreateTextStreamResponse(ctx context.Context, textStream <-chan string, opts StreamResponseOptions) *http.Response

func CreateUIMessageStream

func CreateUIMessageStream(opts CreateUIMessageStreamOptions) <-chan UIMessageChunk

func CreateUIMessageStreamResponse

func CreateUIMessageStreamResponse(ctx context.Context, stream <-chan UIMessageChunk, opts UIMessageStreamResponseOptions) *http.Response

func DeepEqual

func DeepEqual(a, b any) bool

func DetectMediaType

func DetectMediaType(data []byte, filename string) string

func DownloadURL

func DownloadURL(ctx context.Context, rawURL string, opts *DownloadURLOptions) ([]byte, string, error)

func ExtractReasoningContent

func ExtractReasoningContent(content []Part) (string, bool)

func ExtractTextContent

func ExtractTextContent(content []Part) (string, bool)

func FilterActiveTools

func FilterActiveTools(tools map[string]Tool, activeTools []string) map[string]Tool

func FingerprintTools

func FingerprintTools(tools map[string]Tool) (map[string]string, error)

func FixPartialJSON

func FixPartialJSON(text string) string

func GetResponseUIMessageID

func GetResponseUIMessageID(opts GetResponseUIMessageIDOptions) (string, bool)

func HandleUIMessageStreamFinish

func HandleUIMessageStreamFinish(stream <-chan UIMessageChunk, opts HandleUIMessageStreamFinishOptions) <-chan UIMessageChunk

func HashCanonical

func HashCanonical(value any) (string, error)

func HashString

func HashString(value string) string

func InjectJSONInstruction

func InjectJSONInstruction(opts InjectJSONInstructionOptions) string

func IsAPICallError

func IsAPICallError(err error) bool

func IsDataUIMessageChunk

func IsDataUIMessageChunk(chunk UIMessageChunk) bool

func IsDataUIPart

func IsDataUIPart(part UIPart) bool

func IsDownloadError

func IsDownloadError(err error) bool

func IsDynamicToolUIPart

func IsDynamicToolUIPart(part UIPart) bool

func IsErrorUIMessageChunk

func IsErrorUIMessageChunk(chunk UIMessageChunk) bool

func IsFileUIPart

func IsFileUIPart(part UIPart) bool

func IsFinishUIMessageChunk

func IsFinishUIMessageChunk(chunk UIMessageChunk) bool

func IsGatewayAuthenticationError

func IsGatewayAuthenticationError(err error) bool

func IsGatewayError

func IsGatewayError(err error) bool

func IsInvalidDataContentError

func IsInvalidDataContentError(err error) bool

func IsInvalidMessageRoleError

func IsInvalidMessageRoleError(err error) bool

func IsInvalidStreamPartError

func IsInvalidStreamPartError(err error) bool

func IsInvalidToolApprovalError

func IsInvalidToolApprovalError(err error) bool

func IsInvalidToolApprovalSignatureError

func IsInvalidToolApprovalSignatureError(err error) bool

func IsMessageConversionError

func IsMessageConversionError(err error) bool

func IsMissingToolResultsError

func IsMissingToolResultsError(err error) bool

func IsNoImageGeneratedError

func IsNoImageGeneratedError(err error) bool

func IsNoObjectGeneratedError

func IsNoObjectGeneratedError(err error) bool

func IsNoOutputGeneratedError

func IsNoOutputGeneratedError(err error) bool

func IsNoSpeechGeneratedError

func IsNoSpeechGeneratedError(err error) bool

func IsNoSuchToolError

func IsNoSuchToolError(err error) bool

func IsNoTranscriptGeneratedError

func IsNoTranscriptGeneratedError(err error) bool

func IsNoVideoGeneratedError

func IsNoVideoGeneratedError(err error) bool

func IsReasoningFileUIPart

func IsReasoningFileUIPart(part UIPart) bool

func IsReasoningUIPart

func IsReasoningUIPart(part UIPart) bool

func IsRetryError

func IsRetryError(err error) bool

func IsStartUIMessageChunk

func IsStartUIMessageChunk(chunk UIMessageChunk) bool

func IsStaticToolUIPart

func IsStaticToolUIPart(part UIPart) bool

func IsTextUIPart

func IsTextUIPart(part UIPart) bool

func IsToolCallNotFoundForApprovalError

func IsToolCallNotFoundForApprovalError(err error) bool

func IsToolCallRepairError

func IsToolCallRepairError(err error) bool

func IsToolUIPart

func IsToolUIPart(part UIPart) bool

func IsUIMessageStreamError

func IsUIMessageStreamError(err error) bool

func IsURLSupported

func IsURLSupported(supportedURLs map[string][]string, mediaType string, rawURL string) bool

func IsUnsupportedModelVersionError

func IsUnsupportedModelVersionError(err error) bool

func JSONToSSE

func JSONToSSE(value any) (string, error)

func LastAssistantMessageIsCompleteWithApprovalResponses

func LastAssistantMessageIsCompleteWithApprovalResponses(messages []UIMessage) bool

func LogV2CompatibilityWarning

func LogV2CompatibilityWarning(provider string, modelID string)

func LogWarnings

func LogWarnings(warnings []Warning, provider string, modelID string)

func MergeObjects

func MergeObjects(base map[string]any, overrides map[string]any) map[string]any

func OutputAs

func OutputAs[T any](result OutputCarrier) (T, error)

func ParsePartialJSON

func ParsePartialJSON(text string) (any, error)

func PipeCompletionStreamToResponse

func PipeCompletionStreamToResponse(w http.ResponseWriter, completion <-chan string, opts StreamResponseOptions) error

func PipeTextStreamToResponse

func PipeTextStreamToResponse(w http.ResponseWriter, textStream <-chan string, opts StreamResponseOptions) error

func PipeUIMessageStreamToResponse

func PipeUIMessageStreamToResponse(w http.ResponseWriter, stream <-chan UIMessageChunk, opts UIMessageStreamResponseOptions) error

func PipeUIMessageStreamToResponseContext

func PipeUIMessageStreamToResponseContext(ctx context.Context, w http.ResponseWriter, stream <-chan UIMessageChunk, opts UIMessageStreamResponseOptions) error

func PrepareHeaders

func PrepareHeaders(headers map[string]string, defaultHeaders map[string]string) map[string]string

func ProcessTextStream

func ProcessTextStream(ctx context.Context, reader io.Reader, onTextPart func(string) error) error

func RequireUserApproval

func RequireUserApproval() func(context.Context, ToolCall) (ApprovalDecision, error)

func ResetWarningLoggerState

func ResetWarningLoggerState()

func ResumeChatUIMessageStream

func ResumeChatUIMessageStream(ctx context.Context, req ChatRequest, opts ChatRequestHandlerOptions) (<-chan UIMessageChunk, bool, error)

func RetryWithExponentialBackoff

func RetryWithExponentialBackoff[T any](ctx context.Context, opts RetryOptions, fn func() (T, error)) (T, error)

func SetWarningFilter

func SetWarningFilter(filter WarningFilter)

func SetWarningLogger

func SetWarningLogger(logger WarningLogger)

func SignToolApproval

func SignToolApproval(secret []byte, approvalID, toolCallID, toolName string, input any) (string, error)

func StaticToolName

func StaticToolName(part UIPart) string

func TextFromParts

func TextFromParts(parts []Part) string

func TextReaderToUIMessageStream

func TextReaderToUIMessageStream(ctx context.Context, reader io.Reader, options ...TextToUIMessageStreamOptions) <-chan UIMessageChunk

func ToTextStream

func ToTextStream(ctx context.Context, stream <-chan StreamPart, options ...ToTextStreamOptions) <-chan string

func ToUIMessageStream

func ToUIMessageStream(ctx context.Context, stream <-chan StreamPart, options ...ToUIMessageStreamOptions) <-chan UIMessageChunk

func ToolName

func ToolName(part UIPart) string

func TransformTextToUIMessageStream

func TransformTextToUIMessageStream(ctx context.Context, stream <-chan string, options ...TextToUIMessageStreamOptions) <-chan UIMessageChunk

func ValidateDownloadURL

func ValidateDownloadURL(rawURL string) error

func ValidateToolInput

func ValidateToolInput(tool Tool, input any) error

func ValidateToolOutput

func ValidateToolOutput(tool Tool, output any) error

func ValidateUIMessageChunk

func ValidateUIMessageChunk(chunk UIMessageChunk) error

func ValidateUIMessages

func ValidateUIMessages(messages []UIMessage, options ...ValidateUIMessagesOptions) error

func VerifyToolApprovalSignature

func VerifyToolApprovalSignature(secret []byte, signature, approvalID, toolCallID, toolName string, input any) (bool, error)

func WrapGatewayError

func WrapGatewayError(err error) error

func WriteChatUIMessageStreamResponse

func WriteChatUIMessageStreamResponse(w http.ResponseWriter, r *http.Request, opts ChatRequestHandlerOptions) error

func WriteCompletionRequestStreamResponse

func WriteCompletionRequestStreamResponse(w http.ResponseWriter, r *http.Request, opts CompletionRequestHandlerOptions) error

func WriteDataStreamResponse

func WriteDataStreamResponse(w http.ResponseWriter, stream <-chan StreamPart, opts StreamResponseOptions) error

func WriteJSONToSSE

func WriteJSONToSSE(w io.Writer, value any) error

func WriteSSEDone

func WriteSSEDone(w io.Writer) error

func WriteTextStreamResponse

func WriteTextStreamResponse(w http.ResponseWriter, stream <-chan StreamPart, opts StreamResponseOptions) error

func WriteUIMessageStreamResponse

func WriteUIMessageStreamResponse(w http.ResponseWriter, stream <-chan UIMessageChunk, opts UIMessageStreamResponseOptions) error

Types

type APICallError

type APICallError struct {
	SDKError
	StatusCode      int
	ResponseHeaders map[string]string
	Retryable       bool
}

func NewAPICallError

func NewAPICallError(message string, statusCode int, headers map[string]string, retryable bool, cause error) *APICallError

func (*APICallError) IsRetryable

func (e *APICallError) IsRetryable() bool

func (*APICallError) RetryHeaders

func (e *APICallError) RetryHeaders() map[string]string

type AbortEvent

type AbortEvent struct {
	Operation string
	CallID    string
	Steps     []*StepResult
	Reason    any
}

type AddToolInputExamplesMiddlewareOptions

type AddToolInputExamplesMiddlewareOptions struct {
	Prefix              string
	Format              func(example any, index int) (string, error)
	RemoveInputExamples *bool
}

type Agent

type Agent interface {
	Version() string
	ID() string
	Tools() map[string]Tool
	Generate(context.Context, AgentCallOptions) (*GenerateTextResult, error)
	Stream(context.Context, AgentStreamOptions) (*StreamTextResult, error)
}

type AgentCallOptions

type AgentCallOptions struct {
	Instructions             string
	Prompt                   string
	Messages                 []Message
	Options                  any
	AllowSystemInMessages    bool
	Tools                    map[string]Tool
	ActiveTools              []string
	ToolOrder                []string
	ToolChoice               ToolChoice
	ToolExecution            ToolExecutionMode
	ToolApproval             *ToolApprovalConfiguration
	ToolApprovalSecret       []byte
	StopWhen                 []StopCondition
	MaxRetries               *int
	Timeout                  TimeoutConfig
	Headers                  map[string]string
	Include                  IncludeConfig
	ProviderOptions          ProviderOptions
	MaxOutputTokens          *int
	Temperature              *float64
	TopP                     *float64
	TopK                     *float64
	PresencePenalty          *float64
	FrequencyPenalty         *float64
	StopSequences            []string
	Seed                     *int
	Reasoning                string
	Download                 DownloadFunction
	Output                   *OutputStrategy
	ResponseFormat           *ResponseFormat
	Sandbox                  Sandbox
	PrepareStep              func(PrepareStepOptions) (*PrepareStepResult, error)
	RefineToolInput          ToolInputRefineFunc
	Telemetry                Telemetry
	OnStart                  func(StartEvent)
	OnStepStart              func(StepStartEvent)
	OnLanguageModelCallStart func(LanguageModelCallStartEvent)
	OnLanguageModelCallEnd   func(LanguageModelCallEndEvent)
	OnToolExecutionStart     func(ToolExecutionStartEvent)
	OnToolExecutionEnd       func(ToolExecutionEndEvent)
	OnStepEnd                func(StepFinishEvent)
	OnStepFinish             func(StepFinishEvent)
	OnEnd                    func(FinishEvent)
	OnFinish                 func(FinishEvent)
	OnAbort                  func(AbortEvent)
	OnError                  func(ErrorEvent)
}

type AgentPrepareCallOptions

type AgentPrepareCallOptions struct {
	Settings ToolLoopAgentSettings
	Call     AgentCallOptions
}

type AgentPreparedCall

type AgentPreparedCall struct {
	Instructions          *string
	System                *string
	Prompt                *string
	Messages              []Message
	AllowSystemInMessages *bool
	Model                 LanguageModel
	Tools                 map[string]Tool
	ActiveTools           []string
	ToolOrder             []string
	ToolChoice            *ToolChoice
	ToolExecution         *ToolExecutionMode
	ToolApproval          *ToolApprovalConfiguration
	ToolApprovalSecret    []byte
	StopWhen              []StopCondition
	MaxRetries            *int
	Timeout               *TimeoutConfig
	Headers               map[string]string
	Include               *IncludeConfig
	ProviderOptions       ProviderOptions
	MaxOutputTokens       *int
	Temperature           *float64
	TopP                  *float64
	TopK                  *float64
	PresencePenalty       *float64
	FrequencyPenalty      *float64
	StopSequences         []string
	Seed                  *int
	Reasoning             *string
	Download              DownloadFunction
	Output                *OutputStrategy
	ResponseFormat        *ResponseFormat
	Sandbox               Sandbox
	PrepareStep           func(PrepareStepOptions) (*PrepareStepResult, error)
	RefineToolInput       ToolInputRefineFunc
	Telemetry             Telemetry
	Transforms            []StreamTransform
}

type AgentStreamOptions

type AgentStreamOptions struct {
	AgentCallOptions
	IncludeRawChunks bool
	OnChunk          func(ChunkEvent)
	Transforms       []StreamTransform
}

type AgentUIStreamOptions

type AgentUIStreamOptions struct {
	Agent     Agent
	Call      AgentStreamOptions
	MessageID string
	TextID    string
}

type ApprovalDecision

type ApprovalDecision struct {
	Type   string
	Reason string
}

func Approved

func Approved(reason ...string) ApprovalDecision

func Denied

func Denied(reason ...string) ApprovalDecision

func ResolveToolApproval

func ResolveToolApproval(ctx context.Context, tools map[string]Tool, call ToolCall) (ApprovalDecision, error)

func ResolveToolApprovalWithConfiguration

func ResolveToolApprovalWithConfiguration(ctx context.Context, tools map[string]Tool, call ToolCall, approval *ToolApprovalConfiguration, messages []Message, toolsContext map[string]any) (ApprovalDecision, error)

func UserApproval

func UserApproval() ApprovalDecision

type ChatRequest

type ChatRequest struct {
	ID        string
	Messages  []UIMessage
	Trigger   string
	MessageID string
	Body      map[string]any
}

func DecodeChatRequest

func DecodeChatRequest(body io.Reader) (ChatRequest, error)

type ChatRequestHandlerOptions

type ChatRequestHandlerOptions struct {
	Stream    StreamTextOptions
	Validate  ValidateUIMessagesOptions
	Convert   ConvertToModelMessagesOptions
	Response  UIMessageStreamResponseOptions
	MessageID string
	TextID    string
	Resume    func(context.Context, ChatRequest) (<-chan UIMessageChunk, bool, error)
}

type ChunkDetector

type ChunkDetector func(buffer string) (chunk string, ok bool, err error)

type ChunkEvent

type ChunkEvent struct {
	Operation string
	CallID    string
	Chunk     StreamPart
}

type CompletionRequest

type CompletionRequest struct {
	Prompt string
	Body   map[string]any
}

func DecodeCompletionRequest

func DecodeCompletionRequest(body io.Reader) (CompletionRequest, error)

type CompletionRequestHandlerOptions

type CompletionRequestHandlerOptions struct {
	Stream   StreamTextOptions
	Response StreamResponseOptions
}

type ConvertToModelMessagesOptions

type ConvertToModelMessagesOptions struct {
	Tools                     map[string]Tool
	IgnoreIncompleteToolCalls bool
	ConvertDataPart           func(UIPart) (Part, bool, error)
}

type CreateUIMessageStreamOptions

type CreateUIMessageStreamOptions struct {
	Context           context.Context
	Execute           func(writer UIMessageStreamWriter) error
	OnError           func(error) string
	BufferSize        int
	OriginalMessages  []UIMessage
	ResponseMessageID string
	GenerateID        func() string
	OnStepEnd         func(UIMessageStreamStepFinishEvent) error
	OnStepFinish      func(UIMessageStreamStepFinishEvent) error
	OnEnd             func(UIMessageStreamFinishEvent) error
	OnFinish          func(UIMessageStreamFinishEvent) error
}

type CustomProvider

type CustomProvider struct {
	LanguageModels      map[string]LanguageModel
	EmbeddingModels     map[string]EmbeddingModel
	ImageModels         map[string]ImageModel
	VideoModels         map[string]VideoModel
	SpeechModels        map[string]SpeechModel
	TranscriptionModels map[string]TranscriptionModel
	RerankingModels     map[string]RerankingModel
	FallbackProvider    Provider
}

func (CustomProvider) EmbeddingModel

func (p CustomProvider) EmbeddingModel(modelID string) EmbeddingModel

func (CustomProvider) ImageModel

func (p CustomProvider) ImageModel(modelID string) ImageModel

func (CustomProvider) LanguageModel

func (p CustomProvider) LanguageModel(modelID string) LanguageModel

func (CustomProvider) RerankingModel

func (p CustomProvider) RerankingModel(modelID string) RerankingModel

func (CustomProvider) SpeechModel

func (p CustomProvider) SpeechModel(modelID string) SpeechModel

func (CustomProvider) TranscriptionModel

func (p CustomProvider) TranscriptionModel(modelID string) TranscriptionModel

func (CustomProvider) VideoModel

func (p CustomProvider) VideoModel(modelID string) VideoModel

type DataURL

type DataURL struct {
	MediaType string
	Data      []byte
	Base64    bool
}

func SplitDataURL

func SplitDataURL(value string) (DataURL, error)

type DownloadError

type DownloadError struct {
	SDKError
	URL        string
	StatusCode int
	StatusText string
}

func NewDownloadError

func NewDownloadError(rawURL string, statusCode int, statusText string, message string, cause error) *DownloadError

type DownloadFunction

type DownloadFunction func(ctx context.Context, url string) ([]byte, string, error)

DownloadFunction downloads a URL and returns its bytes and optional media type.

type DownloadURLOptions

type DownloadURLOptions struct {
	MaxBytes int64
	Client   *http.Client
}

type EmbedManyOptions

type EmbedManyOptions struct {
	Model            EmbeddingModel
	Values           []string
	MaxRetries       *int
	Headers          map[string]string
	ProviderOptions  ProviderOptions
	MaxParallelCalls int
	Telemetry        Telemetry
	TelemetryOptions TelemetryOptions
	OnStart          func(StartEvent)
	OnEnd            func(FinishEvent)
	OnFinish         func(FinishEvent)
	OnError          func(ErrorEvent)
}

type EmbedManyResult

type EmbedManyResult struct {
	Values           []string
	Embeddings       [][]float64
	Usage            EmbeddingUsage
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Responses        []ResponseMetadata
}

func EmbedMany

func EmbedMany(ctx context.Context, opts EmbedManyOptions) (embedManyResult *EmbedManyResult, err error)

type EmbedOptions

type EmbedOptions struct {
	Model            EmbeddingModel
	Value            string
	MaxRetries       *int
	Headers          map[string]string
	ProviderOptions  ProviderOptions
	Telemetry        Telemetry
	TelemetryOptions TelemetryOptions
	OnStart          func(StartEvent)
	OnEnd            func(FinishEvent)
	OnFinish         func(FinishEvent)
	OnError          func(ErrorEvent)
}

type EmbedResult

type EmbedResult struct {
	Value            string
	Embedding        []float64
	Usage            EmbeddingUsage
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Response         ResponseMetadata
}

func Embed

func Embed(ctx context.Context, opts EmbedOptions) (embedResult *EmbedResult, err error)

type EmbeddingMiddlewareFunc

type EmbeddingMiddlewareFunc struct {
	Embed                        func(context.Context, EmbeddingModel, EmbeddingModelCallOptions, EmbedMiddlewareNext) (*EmbeddingModelResult, error)
	Provider                     func(EmbeddingModel) string
	ModelID                      func(EmbeddingModel) string
	MaxEmbeddingsPerCallOverride func(EmbeddingModel) int
}

func (EmbeddingMiddlewareFunc) OverrideEmbeddingModelID

func (m EmbeddingMiddlewareFunc) OverrideEmbeddingModelID(model EmbeddingModel) string

func (EmbeddingMiddlewareFunc) OverrideEmbeddingProvider

func (m EmbeddingMiddlewareFunc) OverrideEmbeddingProvider(model EmbeddingModel) string

func (EmbeddingMiddlewareFunc) OverrideMaxEmbeddingsPerCall

func (m EmbeddingMiddlewareFunc) OverrideMaxEmbeddingsPerCall(model EmbeddingModel) int

func (EmbeddingMiddlewareFunc) WrapEmbed

type EmbeddingModel

type EmbeddingModel interface {
	Provider() string
	ModelID() string
	MaxEmbeddingsPerCall() int
	DoEmbed(ctx context.Context, opts EmbeddingModelCallOptions) (*EmbeddingModelResult, error)
}

func ResolveEmbeddingModel

func ResolveEmbeddingModel(model any, resolver EmbeddingModelResolver) (EmbeddingModel, error)

func WrapEmbeddingModel

func WrapEmbeddingModel(model EmbeddingModel, middleware ...EmbeddingModelMiddleware) EmbeddingModel

type EmbeddingModelCallOptions

type EmbeddingModelCallOptions struct {
	Values          []string
	ProviderOptions ProviderOptions
	Headers         map[string]string
}

type EmbeddingModelMiddleware

type EmbeddingModelMiddleware interface {
	WrapEmbed(ctx context.Context, model EmbeddingModel, opts EmbeddingModelCallOptions, next EmbedMiddlewareNext) (*EmbeddingModelResult, error)
	OverrideEmbeddingProvider(model EmbeddingModel) string
	OverrideEmbeddingModelID(model EmbeddingModel) string
	OverrideMaxEmbeddingsPerCall(model EmbeddingModel) int
}

func DefaultEmbeddingSettings

func DefaultEmbeddingSettings(defaults EmbeddingModelCallOptions) EmbeddingModelMiddleware

type EmbeddingModelResolver

type EmbeddingModelResolver interface {
	EmbeddingModel(ref string) (EmbeddingModel, error)
}

type EmbeddingModelResult

type EmbeddingModelResult struct {
	Embeddings       [][]float64
	Usage            EmbeddingUsage
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Response         ResponseMetadata
}

type EmbeddingProvider

type EmbeddingProvider interface {
	EmbeddingModel(modelID string) EmbeddingModel
}

type EmbeddingUsage

type EmbeddingUsage struct {
	Tokens *int
}

func AddEmbeddingUsage

func AddEmbeddingUsage(a, b EmbeddingUsage) EmbeddingUsage

type ErrorEvent

type ErrorEvent struct {
	Operation string
	CallID    string
	Err       error
}

type Event

type Event struct {
	Name          string
	Operation     string
	OperationID   string
	CallID        string
	StepNumber    *int
	Timestamp     time.Time
	Provider      string
	ModelID       string
	Attributes    map[string]any
	Err           error
	RecordInputs  *bool
	RecordOutputs *bool
	FunctionID    string
}

type ExtractJSONMiddlewareOptions

type ExtractJSONMiddlewareOptions struct {
	Transform func(string) string
}

type ExtractReasoningMiddlewareOptions

type ExtractReasoningMiddlewareOptions struct {
	TagName            string
	Separator          string
	StartWithReasoning bool
}

type FileData

type FileData struct {
	Type              string
	Data              []byte
	Text              string
	URL               string
	Reference         string
	ProviderReference ProviderReference
}

func NormalizeFileData

func NormalizeFileData(ctx context.Context, input FileDataInput, opts *NormalizeFileDataOptions) (FileData, string, error)

type FileDataInput

type FileDataInput struct {
	Data              []byte
	Base64            string
	Text              string
	URL               string
	Reference         string
	ProviderReference ProviderReference
	MediaType         string
	Filename          string
}

type FilePart

type FilePart struct {
	Data             FileData
	MediaType        string
	Filename         string
	ProviderMetadata ProviderMetadata
	ProviderOptions  ProviderOptions
}

func NormalizeFilePart

func NormalizeFilePart(ctx context.Context, input FileDataInput, opts *NormalizeFileDataOptions) (FilePart, error)

func (FilePart) PartType

func (FilePart) PartType() string

type FilesAPI

type FilesAPI interface {
	Provider() string
	UploadFile(ctx context.Context, opts UploadFileCallOptions) (*UploadFileModelResult, error)
}

func ResolveFilesAPI

func ResolveFilesAPI(api any, resolver FilesAPIResolver) (FilesAPI, error)

type FilesAPIResolver

type FilesAPIResolver interface {
	FilesAPI(ref string) (FilesAPI, error)
}

type FilesProvider

type FilesProvider interface {
	Files() FilesAPI
}

type FinishEvent

type FinishEvent struct {
	Operation string
	CallID    string
	Result    any
}

type FinishReason

type FinishReason struct {
	Unified string
	Raw     string
}

type GatewayAuthenticationError

type GatewayAuthenticationError struct {
	SDKError
}

func NewGatewayAuthenticationError

func NewGatewayAuthenticationError(message string, cause error) *GatewayAuthenticationError

type GatewayError

type GatewayError struct {
	SDKError
}

func NewGatewayError

func NewGatewayError(message string, cause error) *GatewayError

type GenerateImageOptions

type GenerateImageOptions struct {
	Model            ImageModel
	Prompt           string
	Images           []FilePart
	Size             string
	AspectRatio      string
	Seed             *int
	Headers          map[string]string
	ProviderOptions  ProviderOptions
	Telemetry        Telemetry
	TelemetryOptions TelemetryOptions
	OnStart          func(StartEvent)
	OnEnd            func(FinishEvent)
	OnFinish         func(FinishEvent)
	OnError          func(ErrorEvent)
}

type GenerateImageResult

type GenerateImageResult struct {
	Images           []GeneratedFile
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Response         ResponseMetadata
}

func GenerateImage

func GenerateImage(ctx context.Context, opts GenerateImageOptions) (imageResult *GenerateImageResult, err error)

type GenerateObjectOptions

type GenerateObjectOptions struct {
	Model                 LanguageModel
	Output                string
	Mode                  string
	Schema                any
	SchemaName            string
	SchemaDescription     string
	Enum                  []string
	Instructions          string
	System                string
	Prompt                string
	Messages              []Message
	AllowSystemInMessages bool
	MaxRetries            *int
	Timeout               TimeoutConfig
	Headers               map[string]string
	ProviderOptions       ProviderOptions
	MaxOutputTokens       *int
	Temperature           *float64
	TopP                  *float64
	TopK                  *float64
	PresencePenalty       *float64
	FrequencyPenalty      *float64
	StopSequences         []string
	Seed                  *int
	Reasoning             string
	Download              DownloadFunction
	RepairText            func(RepairTextOptions) (string, error)
	Telemetry             Telemetry
	TelemetryOptions      TelemetryOptions
	OnStart               func(StartEvent)
	OnEnd                 func(FinishEvent)
	OnFinish              func(FinishEvent)
	OnError               func(ErrorEvent)
}

type GenerateObjectResult

type GenerateObjectResult struct {
	Object           any
	FinishReason     string
	RawFinishReason  string
	Usage            Usage
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Request          RequestMetadata
	Response         ResponseMetadata
	Reasoning        string
	Text             string
}

func GenerateObject

func GenerateObject(ctx context.Context, opts GenerateObjectOptions) (objectResult *GenerateObjectResult, err error)

type GenerateSpeechOptions

type GenerateSpeechOptions struct {
	Model            SpeechModel
	Text             string
	Voice            string
	Speed            *float64
	Headers          map[string]string
	ProviderOptions  ProviderOptions
	Telemetry        Telemetry
	TelemetryOptions TelemetryOptions
	OnStart          func(StartEvent)
	OnEnd            func(FinishEvent)
	OnFinish         func(FinishEvent)
	OnError          func(ErrorEvent)
}

type GenerateSpeechResult

type GenerateSpeechResult struct {
	Audio            GeneratedFile
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Response         ResponseMetadata
}

func GenerateSpeech

func GenerateSpeech(ctx context.Context, opts GenerateSpeechOptions) (speechResult *GenerateSpeechResult, err error)

type GenerateTextOptions

type GenerateTextOptions struct {
	Model                    LanguageModel
	Instructions             string
	System                   string
	Prompt                   string
	Messages                 []Message
	AllowSystemInMessages    bool
	Tools                    map[string]Tool
	ActiveTools              []string
	ToolOrder                []string
	ToolChoice               ToolChoice
	ToolExecution            ToolExecutionMode
	ToolApproval             *ToolApprovalConfiguration
	ToolApprovalSecret       []byte
	StopWhen                 []StopCondition
	MaxRetries               *int
	Timeout                  TimeoutConfig
	Headers                  map[string]string
	Include                  IncludeConfig
	ProviderOptions          ProviderOptions
	MaxOutputTokens          *int
	Temperature              *float64
	TopP                     *float64
	TopK                     *float64
	PresencePenalty          *float64
	FrequencyPenalty         *float64
	StopSequences            []string
	Seed                     *int
	Reasoning                string
	Download                 DownloadFunction
	Output                   *OutputStrategy
	ResponseFormat           *ResponseFormat
	Sandbox                  Sandbox
	PrepareStep              func(PrepareStepOptions) (*PrepareStepResult, error)
	RepairToolCall           ToolCallRepairFunc
	RefineToolInput          ToolInputRefineFunc
	Telemetry                Telemetry
	TelemetryOptions         TelemetryOptions
	OnStart                  func(StartEvent)
	OnStepStart              func(StepStartEvent)
	OnLanguageModelCallStart func(LanguageModelCallStartEvent)
	OnLanguageModelCallEnd   func(LanguageModelCallEndEvent)
	OnToolExecutionStart     func(ToolExecutionStartEvent)
	OnToolExecutionEnd       func(ToolExecutionEndEvent)
	OnStepEnd                func(StepFinishEvent)
	OnStepFinish             func(StepFinishEvent)
	OnEnd                    func(FinishEvent)
	OnFinish                 func(FinishEvent)
	OnAbort                  func(AbortEvent)
	OnError                  func(ErrorEvent)
}

type GenerateTextResult

type GenerateTextResult struct {
	Text             string
	Output           any
	OutputGenerated  bool
	OutputErr        error
	Content          []Part
	FinishReason     string
	RawFinishReason  string
	Usage            Usage
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Request          RequestMetadata
	Response         ResponseMetadata
	Steps            []*StepResult
	ResponseMessages []Message
	FinalStep        *StepResult
	ToolCalls        []ToolCall
	ToolResults      []ToolResultPart
	Files            []GeneratedFile
	Sources          []SourcePart
}

func GenerateText

func GenerateText(ctx context.Context, opts GenerateTextOptions) (result *GenerateTextResult, err error)

func (*GenerateTextResult) GetOutput

func (r *GenerateTextResult) GetOutput() (any, error)

type GenerateVideoOptions

type GenerateVideoOptions struct {
	Model            VideoModel
	Prompt           string
	Image            *FilePart
	Duration         string
	Size             string
	AspectRatio      string
	Seed             *int
	Headers          map[string]string
	ProviderOptions  ProviderOptions
	Telemetry        Telemetry
	TelemetryOptions TelemetryOptions
	OnStart          func(StartEvent)
	OnEnd            func(FinishEvent)
	OnFinish         func(FinishEvent)
	OnError          func(ErrorEvent)
}

type GenerateVideoResult

type GenerateVideoResult struct {
	Videos           []GeneratedFile
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Response         ResponseMetadata
}

func GenerateVideo

func GenerateVideo(ctx context.Context, opts GenerateVideoOptions) (videoResult *GenerateVideoResult, err error)

type GeneratedFile

type GeneratedFile struct {
	Data      []byte
	URL       string
	MediaType string
	Filename  string
}

type GetResponseUIMessageIDOptions

type GetResponseUIMessageIDOptions struct {
	OriginalMessages  []UIMessage
	ResponseMessageID string
	GenerateID        func() string
}

type HandleUIMessageStreamFinishOptions

type HandleUIMessageStreamFinishOptions struct {
	Context          context.Context
	MessageID        string
	OriginalMessages []UIMessage
	OnError          func(error)
	OnStepEnd        func(UIMessageStreamStepFinishEvent) error
	OnStepFinish     func(UIMessageStreamStepFinishEvent) error
	OnEnd            func(UIMessageStreamFinishEvent) error
	OnFinish         func(UIMessageStreamFinishEvent) error
	BufferSize       int
}

type ImageGenerateMiddlewareNext

type ImageGenerateMiddlewareNext func(context.Context, ImageModelCallOptions) (*ImageModelResult, error)

type ImageMiddlewareFunc

type ImageMiddlewareFunc struct {
	Generate func(context.Context, ImageModel, ImageModelCallOptions, ImageGenerateMiddlewareNext) (*ImageModelResult, error)
	Provider func(ImageModel) string
	ModelID  func(ImageModel) string
}

func (ImageMiddlewareFunc) OverrideImageModelID

func (m ImageMiddlewareFunc) OverrideImageModelID(model ImageModel) string

func (ImageMiddlewareFunc) OverrideImageProvider

func (m ImageMiddlewareFunc) OverrideImageProvider(model ImageModel) string

func (ImageMiddlewareFunc) WrapGenerateImage

type ImageModel

type ImageModel interface {
	Provider() string
	ModelID() string
	DoGenerateImage(ctx context.Context, opts ImageModelCallOptions) (*ImageModelResult, error)
}

func ResolveImageModel

func ResolveImageModel(model any, resolver ImageModelResolver) (ImageModel, error)

func WrapImageModel

func WrapImageModel(model ImageModel, middleware ...ImageModelMiddleware) ImageModel

type ImageModelCallOptions

type ImageModelCallOptions struct {
	Prompt          string
	Images          []FilePart
	Size            string
	AspectRatio     string
	Seed            *int
	Headers         map[string]string
	ProviderOptions ProviderOptions
}

type ImageModelMiddleware

type ImageModelMiddleware interface {
	WrapGenerateImage(ctx context.Context, model ImageModel, opts ImageModelCallOptions, next ImageGenerateMiddlewareNext) (*ImageModelResult, error)
	OverrideImageProvider(model ImageModel) string
	OverrideImageModelID(model ImageModel) string
}

type ImageModelResolver

type ImageModelResolver interface {
	ImageModel(ref string) (ImageModel, error)
}

type ImageModelResult

type ImageModelResult struct {
	Images           []GeneratedFile
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Response         ResponseMetadata
}

type ImageProvider

type ImageProvider interface {
	ImageModel(modelID string) ImageModel
}

type IncludeConfig

type IncludeConfig struct {
	RequestBody     bool
	ResponseBody    bool
	RequestMessages bool
	RawChunks       bool
}

type InjectJSONInstructionOptions

type InjectJSONInstructionOptions struct {
	Prompt       string
	Schema       any
	SchemaPrefix *string
	SchemaSuffix *string
}

type InvalidDataContentError

type InvalidDataContentError struct {
	SDKError
	Content any
}

func NewInvalidDataContentError

func NewInvalidDataContentError(content any, cause error, message string) *InvalidDataContentError

type InvalidMessageRoleError

type InvalidMessageRoleError struct {
	SDKError
	Role Role
}

func NewInvalidMessageRoleError

func NewInvalidMessageRoleError(role Role) *InvalidMessageRoleError

type InvalidStreamPartError

type InvalidStreamPartError struct {
	SDKError
	Chunk StreamPart
}

func NewInvalidStreamPartError

func NewInvalidStreamPartError(chunk StreamPart, message string) *InvalidStreamPartError

type InvalidToolApprovalError

type InvalidToolApprovalError struct {
	SDKError
	ApprovalID string
}

func NewInvalidToolApprovalError

func NewInvalidToolApprovalError(approvalID string) *InvalidToolApprovalError

type InvalidToolApprovalSignatureError

type InvalidToolApprovalSignatureError struct {
	SDKError
	ApprovalID string
	ToolCallID string
}

func NewInvalidToolApprovalSignatureError

func NewInvalidToolApprovalSignatureError(approvalID, toolCallID, reason string) *InvalidToolApprovalSignatureError

type JSONArray

type JSONArray []JSONValue

type JSONObject

type JSONObject map[string]JSONValue

type JSONSchema

type JSONSchema map[string]any

type JSONValue

type JSONValue any

type LanguageModel

type LanguageModel interface {
	Provider() string
	ModelID() string
	SupportedURLs(ctx context.Context) (map[string][]string, error)
	DoGenerate(ctx context.Context, opts LanguageModelCallOptions) (*LanguageModelGenerateResult, error)
	DoStream(ctx context.Context, opts LanguageModelCallOptions) (*LanguageModelStreamResult, error)
}

func ResolveLanguageModel

func ResolveLanguageModel(model any, resolver LanguageModelResolver) (LanguageModel, error)

func WrapLanguageModel

func WrapLanguageModel(model LanguageModel, middleware ...LanguageModelMiddleware) LanguageModel

type LanguageModelCallEndEvent

type LanguageModelCallEndEvent struct {
	Operation    string
	CallID       string
	StepNumber   int
	Provider     string
	ModelID      string
	Result       any
	Content      []Part
	FinishReason FinishReason
	Usage        Usage
	Response     ResponseMetadata
}

type LanguageModelCallEvent

type LanguageModelCallEvent struct {
	Operation  string
	CallID     string
	StepNumber int
	Provider   string
	ModelID    string
}

type LanguageModelCallOptions

type LanguageModelCallOptions struct {
	Prompt           []Message
	MaxOutputTokens  *int
	Temperature      *float64
	TopP             *float64
	TopK             *float64
	PresencePenalty  *float64
	FrequencyPenalty *float64
	StopSequences    []string
	Seed             *int
	Reasoning        string
	ResponseFormat   *ResponseFormat
	Tools            []ModelTool
	ToolChoice       ToolChoice
	ProviderOptions  ProviderOptions
	Headers          map[string]string
}

type LanguageModelCallStartEvent

type LanguageModelCallStartEvent struct {
	Operation  string
	CallID     string
	StepNumber int
	Provider   string
	ModelID    string
	Options    LanguageModelCallOptions
}

type LanguageModelCallTelemetry

type LanguageModelCallTelemetry interface {
	ExecuteLanguageModelCall(context.Context, LanguageModelCallEvent, func(context.Context) error) error
}

type LanguageModelGenerateResult

type LanguageModelGenerateResult struct {
	Content          []Part
	FinishReason     FinishReason
	Usage            Usage
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Request          RequestMetadata
	Response         ResponseMetadata
}

type LanguageModelResolver

type LanguageModelResolver interface {
	LanguageModel(ref string) (LanguageModel, error)
}

type LanguageModelStreamResult

type LanguageModelStreamResult struct {
	Stream   <-chan StreamPart
	Request  RequestMetadata
	Response ResponseMetadata
}

type Message

type Message struct {
	Role            Role
	Content         []Part
	Text            string
	ProviderOptions ProviderOptions
}

func AssistantMessage

func AssistantMessage(text string) Message

func ConvertToModelMessages

func ConvertToModelMessages(messages []UIMessage, opts ConvertToModelMessagesOptions) ([]Message, error)

func PruneMessages

func PruneMessages(opts PruneMessagesOptions) []Message

func SystemMessage

func SystemMessage(text string) Message

func ToolMessage

func ToolMessage(parts ...ToolResultPart) Message

func UserMessage

func UserMessage(text string) Message

type MessageConversionError

type MessageConversionError struct {
	SDKError
	OriginalMessage any
}

func NewMessageConversionError

func NewMessageConversionError(originalMessage any, message string) *MessageConversionError

type MissingToolResultsError

type MissingToolResultsError struct {
	SDKError
	ToolCallIDs []string
}

func NewMissingToolResultsError

func NewMissingToolResultsError(toolCallIDs []string) *MissingToolResultsError

type MockEmbeddingModel

type MockEmbeddingModel struct {
	ProviderName string
	ID           string
	MaxPerCall   int

	EmbedFunc func(context.Context, EmbeddingModelCallOptions) (*EmbeddingModelResult, error)

	Calls []EmbeddingModelCallOptions
	// contains filtered or unexported fields
}

func NewMockEmbeddingModel

func NewMockEmbeddingModel(id string) *MockEmbeddingModel

func (*MockEmbeddingModel) DoEmbed

func (*MockEmbeddingModel) MaxEmbeddingsPerCall

func (m *MockEmbeddingModel) MaxEmbeddingsPerCall() int

func (*MockEmbeddingModel) ModelID

func (m *MockEmbeddingModel) ModelID() string

func (*MockEmbeddingModel) Provider

func (m *MockEmbeddingModel) Provider() string

type MockImageModel

type MockImageModel struct {
	ProviderName string
	ID           string

	GenerateFunc func(context.Context, ImageModelCallOptions) (*ImageModelResult, error)

	Calls []ImageModelCallOptions
	// contains filtered or unexported fields
}

func NewMockImageModel

func NewMockImageModel(id string) *MockImageModel

func (*MockImageModel) DoGenerateImage

func (m *MockImageModel) DoGenerateImage(ctx context.Context, opts ImageModelCallOptions) (*ImageModelResult, error)

func (*MockImageModel) ModelID

func (m *MockImageModel) ModelID() string

func (*MockImageModel) Provider

func (m *MockImageModel) Provider() string

type MockLanguageModel

type MockLanguageModel struct {
	ProviderName string
	ID           string

	SupportedURLsFunc func(context.Context) (map[string][]string, error)
	GenerateFunc      func(context.Context, LanguageModelCallOptions) (*LanguageModelGenerateResult, error)
	StreamFunc        func(context.Context, LanguageModelCallOptions) (*LanguageModelStreamResult, error)

	GenerateCalls []LanguageModelCallOptions
	StreamCalls   []LanguageModelCallOptions
	// contains filtered or unexported fields
}

func NewMockLanguageModel

func NewMockLanguageModel(id string) *MockLanguageModel

func (*MockLanguageModel) DoGenerate

func (*MockLanguageModel) DoStream

func (*MockLanguageModel) ModelID

func (m *MockLanguageModel) ModelID() string

func (*MockLanguageModel) Provider

func (m *MockLanguageModel) Provider() string

func (*MockLanguageModel) SupportedURLs

func (m *MockLanguageModel) SupportedURLs(ctx context.Context) (map[string][]string, error)

type MockProvider

type MockProvider struct {
	LanguageModels      map[string]LanguageModel
	EmbeddingModels     map[string]EmbeddingModel
	ImageModels         map[string]ImageModel
	VideoModels         map[string]VideoModel
	SpeechModels        map[string]SpeechModel
	TranscriptionModels map[string]TranscriptionModel
	RerankingModels     map[string]RerankingModel
	FilesAPIValue       FilesAPI
	SkillsAPIValue      SkillsAPI
}

func NewMockProvider

func NewMockProvider() *MockProvider

func (*MockProvider) EmbeddingModel

func (p *MockProvider) EmbeddingModel(modelID string) EmbeddingModel

func (*MockProvider) Files

func (p *MockProvider) Files() FilesAPI

func (*MockProvider) ImageModel

func (p *MockProvider) ImageModel(modelID string) ImageModel

func (*MockProvider) LanguageModel

func (p *MockProvider) LanguageModel(modelID string) LanguageModel

func (*MockProvider) RerankingModel

func (p *MockProvider) RerankingModel(modelID string) RerankingModel

func (*MockProvider) Skills

func (p *MockProvider) Skills() SkillsAPI

func (*MockProvider) SpeechModel

func (p *MockProvider) SpeechModel(modelID string) SpeechModel

func (*MockProvider) TranscriptionModel

func (p *MockProvider) TranscriptionModel(modelID string) TranscriptionModel

func (*MockProvider) VideoModel

func (p *MockProvider) VideoModel(modelID string) VideoModel

type MockRerankingModel

type MockRerankingModel struct {
	ProviderName string
	ID           string

	RerankFunc func(context.Context, RerankingModelCallOptions) (*RerankingModelResult, error)

	Calls []RerankingModelCallOptions
	// contains filtered or unexported fields
}

func NewMockRerankingModel

func NewMockRerankingModel(id string) *MockRerankingModel

func (*MockRerankingModel) DoRerank

func (*MockRerankingModel) ModelID

func (m *MockRerankingModel) ModelID() string

func (*MockRerankingModel) Provider

func (m *MockRerankingModel) Provider() string

type MockSpeechModel

type MockSpeechModel struct {
	ProviderName string
	ID           string

	GenerateFunc func(context.Context, SpeechModelCallOptions) (*SpeechModelResult, error)

	Calls []SpeechModelCallOptions
	// contains filtered or unexported fields
}

func NewMockSpeechModel

func NewMockSpeechModel(id string) *MockSpeechModel

func (*MockSpeechModel) DoGenerateSpeech

func (m *MockSpeechModel) DoGenerateSpeech(ctx context.Context, opts SpeechModelCallOptions) (*SpeechModelResult, error)

func (*MockSpeechModel) ModelID

func (m *MockSpeechModel) ModelID() string

func (*MockSpeechModel) Provider

func (m *MockSpeechModel) Provider() string

type MockTranscriptionModel

type MockTranscriptionModel struct {
	ProviderName string
	ID           string

	TranscribeFunc func(context.Context, TranscriptionModelCallOptions) (*TranscriptionModelResult, error)

	Calls []TranscriptionModelCallOptions
	// contains filtered or unexported fields
}

func NewMockTranscriptionModel

func NewMockTranscriptionModel(id string) *MockTranscriptionModel

func (*MockTranscriptionModel) DoTranscribe

func (*MockTranscriptionModel) ModelID

func (m *MockTranscriptionModel) ModelID() string

func (*MockTranscriptionModel) Provider

func (m *MockTranscriptionModel) Provider() string

type MockVideoModel

type MockVideoModel struct {
	ProviderName string
	ID           string

	GenerateFunc func(context.Context, VideoModelCallOptions) (*VideoModelResult, error)

	Calls []VideoModelCallOptions
	// contains filtered or unexported fields
}

func NewMockVideoModel

func NewMockVideoModel(id string) *MockVideoModel

func (*MockVideoModel) DoGenerateVideo

func (m *MockVideoModel) DoGenerateVideo(ctx context.Context, opts VideoModelCallOptions) (*VideoModelResult, error)

func (*MockVideoModel) ModelID

func (m *MockVideoModel) ModelID() string

func (*MockVideoModel) Provider

func (m *MockVideoModel) Provider() string

type ModelTool

type ModelTool struct {
	Type            string
	Name            string
	Description     string
	InputSchema     any
	InputExamples   []any
	Strict          *bool
	ProviderOptions ProviderOptions
	ToolMetadata    ProviderMetadata
	ID              string
	Args            any
}

type NoImageGeneratedError

type NoImageGeneratedError struct {
	SDKError
	Responses []ResponseMetadata
}

type NoImageGeneratedErrorOptions

type NoImageGeneratedErrorOptions struct {
	Message   string
	Cause     error
	Responses []ResponseMetadata
}

type NoObjectGeneratedError

type NoObjectGeneratedError struct {
	SDKError
	Text         string
	Response     ResponseMetadata
	Usage        Usage
	FinishReason FinishReason
}

type NoObjectGeneratedErrorOptions

type NoObjectGeneratedErrorOptions struct {
	Message      string
	Cause        error
	Text         string
	Response     ResponseMetadata
	Usage        Usage
	FinishReason FinishReason
}

type NoOutputGeneratedError

type NoOutputGeneratedError struct {
	SDKError
}

func NewNoOutputGeneratedError

func NewNoOutputGeneratedError(message string, cause error) *NoOutputGeneratedError

type NoSpeechGeneratedError

type NoSpeechGeneratedError struct {
	SDKError
	Responses []ResponseMetadata
}

func NewNoSpeechGeneratedError

func NewNoSpeechGeneratedError(responses []ResponseMetadata) *NoSpeechGeneratedError

type NoSuchToolError

type NoSuchToolError struct {
	SDKError
	ToolName       string
	AvailableTools []string
}

func NewNoSuchToolError

func NewNoSuchToolError(toolName string, availableTools []string) *NoSuchToolError

type NoTranscriptGeneratedError

type NoTranscriptGeneratedError struct {
	SDKError
	Responses []ResponseMetadata
}

func NewNoTranscriptGeneratedError

func NewNoTranscriptGeneratedError(responses []ResponseMetadata) *NoTranscriptGeneratedError

type NoVideoGeneratedError

type NoVideoGeneratedError struct {
	SDKError
	Responses []ResponseMetadata
}

type NoVideoGeneratedErrorOptions

type NoVideoGeneratedErrorOptions struct {
	Message   string
	Cause     error
	Responses []ResponseMetadata
}

type NormalizeFileDataOptions

type NormalizeFileDataOptions struct {
	SupportedURLs map[string][]string
	Download      DownloadFunction
}

type ObjectStreamPart

type ObjectStreamPart struct {
	Type             string
	TextDelta        string
	Object           any
	Element          any
	FinishReason     FinishReason
	Usage            Usage
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Raw              any
	AbortReason      string
	Err              error
}

type OutputCarrier

type OutputCarrier interface {
	GetOutput() (any, error)
}

type OutputChunkTimingStats

type OutputChunkTimingStats struct {
	Min    time.Duration
	P10    time.Duration
	Median time.Duration
	Avg    time.Duration
	P90    time.Duration
	Max    time.Duration
}

type OutputOptions

type OutputOptions struct {
	Schema      any
	Name        string
	Description string
}

type OutputParseContext

type OutputParseContext struct {
	Text         string
	Response     ResponseMetadata
	Usage        Usage
	FinishReason FinishReason
}

type OutputStrategy

type OutputStrategy struct {
	Name                string
	ResponseFormat      *ResponseFormat
	ParseCompleteOutput func(OutputParseContext) (any, error)
	ParsePartialOutput  func(text string) (PartialOutputResult, error)
	ElementsFromPartial func(partial any, published int) ([]any, int)
}

func ArrayOutput

func ArrayOutput(elementSchema any, options ...OutputOptions) *OutputStrategy

func ChoiceOutput

func ChoiceOutput(choices []string, options ...OutputOptions) *OutputStrategy

func JSONOutput

func JSONOutput(options ...OutputOptions) *OutputStrategy

func ObjectOutput

func ObjectOutput(schema any, options ...OutputOptions) *OutputStrategy

func TextOutput

func TextOutput() *OutputStrategy

type Part

type Part interface {
	PartType() string
	// contains filtered or unexported methods
}

type PartialOutputResult

type PartialOutputResult struct {
	Value any
	OK    bool
}

type PartialToolCallState

type PartialToolCallState struct {
	Text     string
	ToolName string
	Dynamic  bool
	Title    string
}

type PrepareStepOptions

type PrepareStepOptions struct {
	Model        LanguageModel
	Instructions string
	System       string
	Steps        []*StepResult
	StepNumber   int
	Messages     []Message
	ToolsContext map[string]any
	ToolOrder    []string
	Sandbox      Sandbox
}

type PrepareStepResult

type PrepareStepResult struct {
	Model           LanguageModel
	Instructions    string
	System          string
	Messages        []Message
	Tools           map[string]Tool
	ToolOrder       []string
	ToolChoice      ToolChoice
	ProviderOptions ProviderOptions
	ToolsContext    map[string]any
	Sandbox         Sandbox
}

type ProcessUIMessageStreamOptions

type ProcessUIMessageStreamOptions struct {
	LastMessage           *UIMessage
	MessageID             string
	MessageMetadataSchema any
	DataSchemas           map[string]any
	Tools                 map[string]Tool
	OnError               func(error)
	OnToolCall            func(UIMessageChunk) error
	OnData                func(UIPart)
	BufferSize            int
}

type Provider

type Provider interface {
	LanguageModel(modelID string) LanguageModel
}

type ProviderMetadata

type ProviderMetadata map[string]any

type ProviderOptions

type ProviderOptions map[string]any

type ProviderReference

type ProviderReference map[string]string

type ProviderRegistry

type ProviderRegistry struct {
	// contains filtered or unexported fields
}

func NewProviderRegistry

func NewProviderRegistry(providers map[string]Provider) *ProviderRegistry

func NewProviderRegistryWithOptions

func NewProviderRegistryWithOptions(providers map[string]Provider, opts ProviderRegistryOptions) *ProviderRegistry

func (*ProviderRegistry) EmbeddingModel

func (r *ProviderRegistry) EmbeddingModel(ref string) (EmbeddingModel, error)

func (*ProviderRegistry) FilesAPI

func (r *ProviderRegistry) FilesAPI(ref string) (FilesAPI, error)

func (*ProviderRegistry) ImageModel

func (r *ProviderRegistry) ImageModel(ref string) (ImageModel, error)

func (*ProviderRegistry) LanguageModel

func (r *ProviderRegistry) LanguageModel(ref string) (LanguageModel, error)

func (*ProviderRegistry) RegisterProvider

func (r *ProviderRegistry) RegisterProvider(name string, provider Provider) error

func (*ProviderRegistry) RerankingModel

func (r *ProviderRegistry) RerankingModel(ref string) (RerankingModel, error)

func (*ProviderRegistry) SkillsAPI

func (r *ProviderRegistry) SkillsAPI(ref string) (SkillsAPI, error)

func (*ProviderRegistry) SpeechModel

func (r *ProviderRegistry) SpeechModel(ref string) (SpeechModel, error)

func (*ProviderRegistry) TranscriptionModel

func (r *ProviderRegistry) TranscriptionModel(ref string) (TranscriptionModel, error)

func (*ProviderRegistry) VideoModel

func (r *ProviderRegistry) VideoModel(ref string) (VideoModel, error)

type ProviderRegistryOptions

type ProviderRegistryOptions struct {
	Separator string
}

type PruneEmptyMessagesMode

type PruneEmptyMessagesMode string
const (
	PruneEmptyMessagesRemove PruneEmptyMessagesMode = "remove"
	PruneEmptyMessagesKeep   PruneEmptyMessagesMode = "keep"
)

type PruneMessagesOptions

type PruneMessagesOptions struct {
	Messages      []Message
	Reasoning     PruneReasoningMode
	ToolCalls     []PruneToolCallsRule
	EmptyMessages PruneEmptyMessagesMode
}

type PruneReasoningMode

type PruneReasoningMode string
const (
	PruneReasoningNone              PruneReasoningMode = "none"
	PruneReasoningAll               PruneReasoningMode = "all"
	PruneReasoningBeforeLastMessage PruneReasoningMode = "before-last-message"
)

type PruneToolCallsMode

type PruneToolCallsMode string
const (
	PruneToolCallsAllMode               PruneToolCallsMode = "all"
	PruneToolCallsBeforeLastMessageMode PruneToolCallsMode = "before-last-message"
)

type PruneToolCallsRule

type PruneToolCallsRule struct {
	Mode             PruneToolCallsMode
	BeforeLastN      int
	Tools            []string
	KeepLastMessages int
}

func PruneAllToolCalls

func PruneAllToolCalls(tools ...string) PruneToolCallsRule

func PruneToolCallsBeforeLastMessage

func PruneToolCallsBeforeLastMessage(tools ...string) PruneToolCallsRule

func PruneToolCallsBeforeLastMessages

func PruneToolCallsBeforeLastMessages(n int, tools ...string) PruneToolCallsRule

type ReadUIMessageStreamOptions

type ReadUIMessageStreamOptions struct {
	TerminateOnError bool
	OnError          func(error)
}

type ReasoningFilePart

type ReasoningFilePart struct {
	Data             FileData
	MediaType        string
	ProviderMetadata ProviderMetadata
	ProviderOptions  ProviderOptions
}

func (ReasoningFilePart) PartType

func (ReasoningFilePart) PartType() string

type ReasoningPart

type ReasoningPart struct {
	Text             string
	ProviderMetadata ProviderMetadata
	ProviderOptions  ProviderOptions
}

func (ReasoningPart) PartType

func (ReasoningPart) PartType() string

type RepairTextOptions

type RepairTextOptions struct {
	Text  string
	Error error
}

type RequestMetadata

type RequestMetadata struct {
	Method  string
	URL     string
	Headers map[string]string
	Body    any
}

type RerankOptions

type RerankOptions struct {
	Model            RerankingModel
	Query            string
	Documents        []string
	TopN             *int
	Headers          map[string]string
	ProviderOptions  ProviderOptions
	Telemetry        Telemetry
	TelemetryOptions TelemetryOptions
	OnStart          func(StartEvent)
	OnEnd            func(FinishEvent)
	OnFinish         func(FinishEvent)
	OnError          func(ErrorEvent)
}

type RerankResult

type RerankResult struct {
	OriginalDocuments []string
	RerankedDocuments []string
	Ranking           []RerankingResult
	Results           []RerankingResult
	Usage             Usage
	Warnings          []Warning
	ProviderMetadata  ProviderMetadata
	Response          ResponseMetadata
}

func Rerank

func Rerank(ctx context.Context, opts RerankOptions) (rerankResult *RerankResult, err error)

type RerankingMiddlewareFunc

type RerankingMiddlewareFunc struct {
	Rerank   func(context.Context, RerankingModel, RerankingModelCallOptions, RerankMiddlewareNext) (*RerankingModelResult, error)
	Provider func(RerankingModel) string
	ModelID  func(RerankingModel) string
}

func (RerankingMiddlewareFunc) OverrideRerankingModelID

func (m RerankingMiddlewareFunc) OverrideRerankingModelID(model RerankingModel) string

func (RerankingMiddlewareFunc) OverrideRerankingProvider

func (m RerankingMiddlewareFunc) OverrideRerankingProvider(model RerankingModel) string

func (RerankingMiddlewareFunc) WrapRerank

type RerankingModel

type RerankingModel interface {
	Provider() string
	ModelID() string
	DoRerank(ctx context.Context, opts RerankingModelCallOptions) (*RerankingModelResult, error)
}

func ResolveRerankingModel

func ResolveRerankingModel(model any, resolver RerankingModelResolver) (RerankingModel, error)

func WrapRerankingModel

func WrapRerankingModel(model RerankingModel, middleware ...RerankingModelMiddleware) RerankingModel

type RerankingModelCallOptions

type RerankingModelCallOptions struct {
	Query           string
	Documents       []string
	TopN            *int
	Headers         map[string]string
	ProviderOptions ProviderOptions
}

type RerankingModelMiddleware

type RerankingModelMiddleware interface {
	WrapRerank(ctx context.Context, model RerankingModel, opts RerankingModelCallOptions, next RerankMiddlewareNext) (*RerankingModelResult, error)
	OverrideRerankingProvider(model RerankingModel) string
	OverrideRerankingModelID(model RerankingModel) string
}

type RerankingModelResolver

type RerankingModelResolver interface {
	RerankingModel(ref string) (RerankingModel, error)
}

type RerankingModelResult

type RerankingModelResult struct {
	Results          []RerankingResult
	Usage            Usage
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Response         ResponseMetadata
}

type RerankingProvider

type RerankingProvider interface {
	RerankingModel(modelID string) RerankingModel
}

type RerankingResult

type RerankingResult struct {
	Index     int
	Document  string
	Score     float64
	Relevance any
}

type ResponseFormat

type ResponseFormat struct {
	Type        string
	Schema      any
	Name        string
	Description string
}

type ResponseMetadata

type ResponseMetadata struct {
	ID         string
	Timestamp  time.Time
	ModelID    string
	StatusCode int
	StatusText string
	Headers    map[string]string
	Body       any
	Messages   []Message
}

type RetryError

type RetryError struct {
	SDKError
	Reason    RetryErrorReason
	LastError error
	Errors    []error
}

func NewRetryError

func NewRetryError(message string, reason RetryErrorReason, retryErrors []error) *RetryError

type RetryErrorReason

type RetryErrorReason string
const (
	RetryReasonMaxRetriesExceeded RetryErrorReason = "maxRetriesExceeded"
	RetryReasonErrorNotRetryable  RetryErrorReason = "errorNotRetryable"
	RetryReasonAbort              RetryErrorReason = "abort"
)

type RetryOptions

type RetryOptions struct {
	MaxRetries       int
	InitialDelay     time.Duration
	BackoffFactor    float64
	Delay            func(context.Context, time.Duration) error
	IsRetryable      func(error) bool
	Headers          func(error) map[string]string
	DisableWrapping  bool
	DisableRetryWhen func(error) bool
}

type Role

type Role string
const (
	RoleSystem    Role = "system"
	RoleUser      Role = "user"
	RoleAssistant Role = "assistant"
	RoleTool      Role = "tool"
)

type SDKError

type SDKError struct {
	Kind    error
	Message string
	Cause   error
}

func (*SDKError) Error

func (e *SDKError) Error() string

func (*SDKError) Unwrap

func (e *SDKError) Unwrap() error

type SafeValidateUIMessagesResult

type SafeValidateUIMessagesResult struct {
	Success  bool
	Messages []UIMessage
	Error    error
}

func SafeValidateUIMessages

func SafeValidateUIMessages(messages []UIMessage, options ...ValidateUIMessagesOptions) SafeValidateUIMessagesResult

type Sandbox

type Sandbox interface {
	RunCommand(context.Context, SandboxCommand) (SandboxCommandResult, error)
	ReadFile(context.Context, string) ([]byte, error)
	WriteFile(context.Context, string, []byte) error
}

type SandboxCommand

type SandboxCommand struct {
	Command []string
	Stdin   string
	Env     map[string]string
	Dir     string
	Timeout time.Duration
}

type SandboxCommandResult

type SandboxCommandResult struct {
	Stdout   string
	Stderr   string
	ExitCode int
}

type SandboxProcess

type SandboxProcess interface {
	Stdout() io.Reader
	Stderr() io.Reader
	Wait(context.Context) (SandboxCommandResult, error)
	Kill(context.Context) error
}

type SandboxSpawner

type SandboxSpawner interface {
	SpawnCommand(context.Context, SandboxCommand) (SandboxProcess, error)
}

type SerialJobExecutor

type SerialJobExecutor struct {
	// contains filtered or unexported fields
}

func NewSerialJobExecutor

func NewSerialJobExecutor() *SerialJobExecutor

func (*SerialJobExecutor) Run

func (e *SerialJobExecutor) Run(ctx context.Context, job func(context.Context) error) error

type SkillsAPI

type SkillsAPI interface {
	Provider() string
	UploadSkill(ctx context.Context, opts UploadSkillCallOptions) (*UploadSkillModelResult, error)
}

func ResolveSkillsAPI

func ResolveSkillsAPI(api any, resolver SkillsAPIResolver) (SkillsAPI, error)

type SkillsAPIResolver

type SkillsAPIResolver interface {
	SkillsAPI(ref string) (SkillsAPI, error)
}

type SkillsProvider

type SkillsProvider interface {
	Skills() SkillsAPI
}

type SmoothStreamChunking

type SmoothStreamChunking string
const (
	SmoothStreamChunkByWord SmoothStreamChunking = "word"
	SmoothStreamChunkByLine SmoothStreamChunking = "line"
)

type SmoothStreamOptions

type SmoothStreamOptions struct {
	Delay       *time.Duration
	Chunking    SmoothStreamChunking
	DetectChunk ChunkDetector
}

type SourcePart

type SourcePart struct {
	ID         string
	SourceType string
	URL        string
	Title      string
}

func (SourcePart) PartType

func (SourcePart) PartType() string

type SpeechMiddlewareFunc

type SpeechMiddlewareFunc struct {
	Generate func(context.Context, SpeechModel, SpeechModelCallOptions, SpeechGenerateMiddlewareNext) (*SpeechModelResult, error)
	Provider func(SpeechModel) string
	ModelID  func(SpeechModel) string
}

func (SpeechMiddlewareFunc) OverrideSpeechModelID

func (m SpeechMiddlewareFunc) OverrideSpeechModelID(model SpeechModel) string

func (SpeechMiddlewareFunc) OverrideSpeechProvider

func (m SpeechMiddlewareFunc) OverrideSpeechProvider(model SpeechModel) string

func (SpeechMiddlewareFunc) WrapGenerateSpeech

type SpeechModel

type SpeechModel interface {
	Provider() string
	ModelID() string
	DoGenerateSpeech(ctx context.Context, opts SpeechModelCallOptions) (*SpeechModelResult, error)
}

func ResolveSpeechModel

func ResolveSpeechModel(model any, resolver SpeechModelResolver) (SpeechModel, error)

func WrapSpeechModel

func WrapSpeechModel(model SpeechModel, middleware ...SpeechModelMiddleware) SpeechModel

type SpeechModelCallOptions

type SpeechModelCallOptions struct {
	Text            string
	Voice           string
	Speed           *float64
	Headers         map[string]string
	ProviderOptions ProviderOptions
}

type SpeechModelMiddleware

type SpeechModelMiddleware interface {
	WrapGenerateSpeech(ctx context.Context, model SpeechModel, opts SpeechModelCallOptions, next SpeechGenerateMiddlewareNext) (*SpeechModelResult, error)
	OverrideSpeechProvider(model SpeechModel) string
	OverrideSpeechModelID(model SpeechModel) string
}

type SpeechModelResolver

type SpeechModelResolver interface {
	SpeechModel(ref string) (SpeechModel, error)
}

type SpeechModelResult

type SpeechModelResult struct {
	Audio            GeneratedFile
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Response         ResponseMetadata
}

type SpeechProvider

type SpeechProvider interface {
	SpeechModel(modelID string) SpeechModel
}

type StartEvent

type StartEvent struct {
	Operation string
	CallID    string
	Provider  string
	ModelID   string
}

type StepFinishEvent

type StepFinishEvent struct {
	Operation string
	CallID    string
	Step      *StepResult
}

type StepPerformance

type StepPerformance struct {
	EffectiveOutputTokensPerSecond *float64
	OutputTokensPerSecond          *float64
	InputTokensPerSecond           *float64
	EffectiveTotalTokensPerSecond  *float64
	StepTime                       time.Duration
	ResponseTime                   time.Duration
	ToolExecutionTime              time.Duration
	TimeToFirstOutput              time.Duration
	TimeToFirstOutputToken         time.Duration
	TimeBetweenOutputChunks        *OutputChunkTimingStats
}

type StepResult

type StepResult struct {
	CallID           string
	StepID           string
	StepNumber       int
	StepType         string
	Provider         string
	ModelID          string
	Content          []Part
	Text             string
	FinishReason     string
	RawFinishReason  string
	Usage            Usage
	Performance      StepPerformance
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Request          RequestMetadata
	Response         ResponseMetadata
	ToolCalls        []ToolCall
	ToolResults      []ToolResultPart
	Files            []GeneratedFile
	Sources          []SourcePart
}

type StepStartEvent

type StepStartEvent struct {
	Operation  string
	CallID     string
	StepNumber int
	Provider   string
	ModelID    string
	Messages   []Message
}

type StitchableStream

type StitchableStream[T any] struct {
	// contains filtered or unexported fields
}

func NewStitchableStream

func NewStitchableStream[T any]() *StitchableStream[T]

func (*StitchableStream[T]) AddStream

func (s *StitchableStream[T]) AddStream(stream <-chan T) error

func (*StitchableStream[T]) Close

func (s *StitchableStream[T]) Close()

func (*StitchableStream[T]) Stream

func (s *StitchableStream[T]) Stream() <-chan T

func (*StitchableStream[T]) Terminate

func (s *StitchableStream[T]) Terminate()

type StopCondition

type StopCondition func(context.Context, []*StepResult) (bool, error)

func HasToolCall

func HasToolCall(names ...string) StopCondition

func LoopFinished

func LoopFinished() StopCondition

func StepCount

func StepCount(n int) StopCondition

type StreamObjectOptions

type StreamObjectOptions struct {
	GenerateObjectOptions
	IncludeRawChunks bool
}

type StreamObjectResult

type StreamObjectResult struct {
	Stream   <-chan ObjectStreamPart
	Elements <-chan any
	Request  RequestMetadata
	Response ResponseMetadata
}

type StreamPart

type StreamPart struct {
	Type             string
	ID               string
	StepID           string
	StepNumber       int
	StepType         string
	TextDelta        string
	PartialOutput    any
	Element          any
	ReasoningDelta   string
	ToolCallID       string
	ToolName         string
	ToolInputDelta   string
	ToolInput        string
	Signature        string
	Approved         *bool
	IsAutomatic      *bool
	Reason           string
	Content          Part
	FinishReason     FinishReason
	Usage            Usage
	Warnings         []Warning
	Request          RequestMetadata
	Response         ResponseMetadata
	Performance      StepPerformance
	ToolMetadata     ProviderMetadata
	ProviderMetadata ProviderMetadata
	ProviderExecuted *bool
	Dynamic          *bool
	Preliminary      *bool
	Title            string
	Raw              any
	AbortReason      string
	Err              error
}

type StreamResponseOptions

type StreamResponseOptions struct {
	Status     int
	StatusText string
	Headers    map[string]string
}

type StreamTextOptions

type StreamTextOptions struct {
	GenerateTextOptions
	IncludeRawChunks bool
	OnChunk          func(ChunkEvent)
	Transforms       []StreamTransform
}

type StreamTextResult

type StreamTextResult struct {
	Stream           <-chan StreamPart
	Text             string
	Output           any
	OutputGenerated  bool
	OutputErr        error
	Content          []Part
	FinishReason     string
	RawFinishReason  string
	Usage            Usage
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Request          RequestMetadata
	Response         ResponseMetadata
	Steps            []*StepResult
	ResponseMessages []Message
	FinalStep        *StepResult
	ToolCalls        []ToolCall
	ToolResults      []ToolResultPart
	Files            []GeneratedFile
	Sources          []SourcePart
	Aborted          bool
	AbortReason      string
}

func StreamText

func StreamText(ctx context.Context, opts StreamTextOptions) (result *StreamTextResult, err error)

func (*StreamTextResult) GetOutput

func (r *StreamTextResult) GetOutput() (any, error)

type StreamTextUIMessageStreamOptions

type StreamTextUIMessageStreamOptions struct {
	MessageID        string
	TextID           string
	BufferSize       int
	SendReasoning    *bool
	SendSources      *bool
	SendStart        *bool
	SendFinish       *bool
	MessageMetadata  any
	OriginalMessages []UIMessage
	GenerateID       func() string
	OnStepEnd        func(UIMessageStreamStepFinishEvent) error
	OnStepFinish     func(UIMessageStreamStepFinishEvent) error
	OnEnd            func(UIMessageStreamFinishEvent) error
	OnFinish         func(UIMessageStreamFinishEvent) error
	OnError          func(error) string
	Tools            map[string]Tool
}

type StreamTransform

type StreamTransform func(context.Context, <-chan StreamPart, StreamTransformOptions) <-chan StreamPart

func SmoothStream

func SmoothStream(options ...SmoothStreamOptions) StreamTransform

type StreamTransformOptions

type StreamTransformOptions struct {
	Tools      map[string]Tool
	StopStream func()
}

type StreamingUIMessageState

type StreamingUIMessageState struct {
	Message              UIMessage
	ActiveTextParts      map[string]int
	ActiveReasoningParts map[string]int
	PartialToolCalls     map[string]PartialToolCallState
	FinishReason         string
}

func CreateStreamingUIMessageState

func CreateStreamingUIMessageState(lastMessage *UIMessage, messageID string) *StreamingUIMessageState

func ProcessUIMessageStream

func ProcessUIMessageStream(ctx context.Context, stream <-chan UIMessageChunk, opts ProcessUIMessageStreamOptions) (<-chan UIMessageChunk, *StreamingUIMessageState)

type Telemetry

type Telemetry interface {
	RecordEvent(context.Context, Event)
}

type TelemetryAttributeFilter

type TelemetryAttributeFilter func(Event, string, any) bool

type TelemetryOptions

type TelemetryOptions struct {
	IsEnabled             *bool
	RecordInputs          *bool
	RecordOutputs         *bool
	IncludeRuntimeContext *bool
	IncludeToolsContext   *bool
	FunctionID            string
	AttributeFilter       TelemetryAttributeFilter
}

type TextPart

type TextPart struct {
	Text             string
	ProviderMetadata ProviderMetadata
	ProviderOptions  ProviderOptions
}

func (TextPart) PartType

func (TextPart) PartType() string

type TextToUIMessageStreamOptions

type TextToUIMessageStreamOptions struct {
	MessageID  string
	TextID     string
	BufferSize int
}

type TimeoutConfig

type TimeoutConfig struct {
	Total      time.Duration
	Step       time.Duration
	FirstChunk time.Duration
	Chunk      time.Duration
	Tool       time.Duration
}

type ToTextStreamOptions

type ToTextStreamOptions struct {
	BufferSize int
}

type ToUIMessageChunkOptions

type ToUIMessageChunkOptions struct {
	Tools           map[string]Tool
	TextID          string
	SendReasoning   *bool
	SendSources     *bool
	SendStart       *bool
	SendFinish      *bool
	OnError         func(error) string
	MessageMetadata any
	MessageID       string
}

type ToUIMessageStreamOptions

type ToUIMessageStreamOptions struct {
	ToUIMessageChunkOptions
	OriginalMessages []UIMessage
	GenerateID       func() string
	OnStepEnd        func(UIMessageStreamStepFinishEvent) error
	OnStepFinish     func(UIMessageStreamStepFinishEvent) error
	OnEnd            func(UIMessageStreamFinishEvent) error
	OnFinish         func(UIMessageStreamFinishEvent) error
	BufferSize       int
}

type Tool

type Tool struct {
	Name             string
	Title            string
	Description      string
	InputSchema      any
	OutputSchema     any
	InputExamples    []any
	Strict           *bool
	ProviderOptions  ProviderOptions
	ProviderMetadata ProviderMetadata
	ToolMetadata     ProviderMetadata
	Type             string
	ID               string
	Args             any
	Execute          func(context.Context, ToolCall, ToolExecutionOptions) (any, error)
	ValidateInput    func(any) error
	ValidateOutput   func(any) error
	ToModelOutput    func(toolCallID string, input any, output any) (ToolResultOutput, error)
	RequiresApproval bool
	NeedsApproval    func(context.Context, ToolCall) (ApprovalDecision, error)
}

type ToolApprovalConfiguration

type ToolApprovalConfiguration struct {
	Decide ToolApprovalFunction
	Tools  map[string]ToolApprovalRule
}

type ToolApprovalOptions

type ToolApprovalOptions struct {
	ToolCall ToolCall
	Tools    map[string]Tool
	Messages []Message
	Context  any
}

type ToolApprovalRequestPart

type ToolApprovalRequestPart struct {
	ApprovalID  string
	ToolCallID  string
	Signature   string
	IsAutomatic bool
}

func (ToolApprovalRequestPart) PartType

func (ToolApprovalRequestPart) PartType() string

type ToolApprovalResponsePart

type ToolApprovalResponsePart struct {
	ApprovalID       string
	Approved         bool
	Reason           string
	ProviderExecuted bool
	ProviderMetadata ProviderMetadata
	ProviderOptions  ProviderOptions
}

func (ToolApprovalResponsePart) PartType

func (ToolApprovalResponsePart) PartType() string

type ToolApprovalRule

type ToolApprovalRule struct {
	Type   string
	Reason string
	Decide SingleToolApprovalFunction
}

type ToolCall

type ToolCall struct {
	ToolCallID       string
	ToolName         string
	Input            any
	ProviderExecuted bool
	Dynamic          bool
	Invalid          bool
	Error            error
	ToolMetadata     ProviderMetadata
	ProviderMetadata ProviderMetadata
}

type ToolCallNotFoundForApprovalError

type ToolCallNotFoundForApprovalError struct {
	SDKError
	ToolCallID string
	ApprovalID string
}

func NewToolCallNotFoundForApprovalError

func NewToolCallNotFoundForApprovalError(toolCallID, approvalID string) *ToolCallNotFoundForApprovalError

type ToolCallPart

type ToolCallPart struct {
	ToolCallID       string
	ToolName         string
	Input            any
	InputRaw         string
	ProviderExecuted bool
	Dynamic          bool
	Invalid          bool
	Error            error
	Title            string
	ToolMetadata     ProviderMetadata
	ProviderMetadata ProviderMetadata
	ProviderOptions  ProviderOptions
}

func (ToolCallPart) InputJSON

func (p ToolCallPart) InputJSON() string

func (ToolCallPart) PartType

func (ToolCallPart) PartType() string

type ToolCallRepairError

type ToolCallRepairError struct {
	SDKError
	OriginalError error
}

func NewToolCallRepairError

func NewToolCallRepairError(cause error, originalError error) *ToolCallRepairError

func NewToolCallRepairErrorWithMessage

func NewToolCallRepairErrorWithMessage(message string, cause error, originalError error) *ToolCallRepairError

type ToolCallRepairFunc

type ToolCallRepairFunc func(context.Context, ToolCallRepairOptions) (*ToolCallPart, error)

type ToolCallRepairOptions

type ToolCallRepairOptions struct {
	Instructions string
	System       string
	Messages     []Message
	ToolCall     ToolCallPart
	Tools        map[string]Tool
	InputSchema  func(toolName string) (any, bool)
	Error        error
}

type ToolChoice

type ToolChoice struct {
	Type     string
	ToolName string
}

func AutoToolChoice

func AutoToolChoice() ToolChoice

func NoToolChoice

func NoToolChoice() ToolChoice

func RequiredToolChoice

func RequiredToolChoice() ToolChoice

func ToolChoiceFor

func ToolChoiceFor(name string) ToolChoice

type ToolDrift

type ToolDrift struct {
	Added   []string
	Removed []string
	Changed []string
}

func DetectToolDrift

func DetectToolDrift(current, baseline map[string]string) ToolDrift

type ToolExecutionEndEvent

type ToolExecutionEndEvent struct {
	ToolCall ToolCall
	Result   ToolResultPart
	Err      error
}

type ToolExecutionMode

type ToolExecutionMode string
const (
	ToolExecutionParallel   ToolExecutionMode = "parallel"
	ToolExecutionSequential ToolExecutionMode = "sequential"
)

type ToolExecutionOptions

type ToolExecutionOptions struct {
	ToolCallID string
	Messages   []Message
	Context    any
	Sandbox    Sandbox
}

type ToolExecutionStartEvent

type ToolExecutionStartEvent struct {
	ToolCall ToolCall
	Messages []Message
}

type ToolInputRefineFunc

type ToolInputRefineFunc func(context.Context, ToolInputRefineOptions) (any, error)

type ToolInputRefineOptions

type ToolInputRefineOptions struct {
	ToolCall ToolCall
	Tool     Tool
	Messages []Message
	Context  any
}

type ToolLoopAgent

type ToolLoopAgent struct {
	// contains filtered or unexported fields
}

func NewToolLoopAgent

func NewToolLoopAgent(settings ToolLoopAgentSettings) *ToolLoopAgent

func (*ToolLoopAgent) Generate

func (*ToolLoopAgent) ID

func (a *ToolLoopAgent) ID() string

func (*ToolLoopAgent) Stream

func (*ToolLoopAgent) Tools

func (a *ToolLoopAgent) Tools() map[string]Tool

func (*ToolLoopAgent) Version

func (a *ToolLoopAgent) Version() string

type ToolLoopAgentSettings

type ToolLoopAgentSettings struct {
	ID                       string
	Instructions             string
	Model                    LanguageModel
	Tools                    map[string]Tool
	ActiveTools              []string
	ToolOrder                []string
	ToolChoice               ToolChoice
	ToolExecution            ToolExecutionMode
	ToolApproval             *ToolApprovalConfiguration
	ToolApprovalSecret       []byte
	StopWhen                 []StopCondition
	MaxRetries               *int
	Timeout                  TimeoutConfig
	Headers                  map[string]string
	Include                  IncludeConfig
	ProviderOptions          ProviderOptions
	MaxOutputTokens          *int
	Temperature              *float64
	TopP                     *float64
	TopK                     *float64
	PresencePenalty          *float64
	FrequencyPenalty         *float64
	StopSequences            []string
	Seed                     *int
	Reasoning                string
	Download                 DownloadFunction
	Output                   *OutputStrategy
	ResponseFormat           *ResponseFormat
	Sandbox                  Sandbox
	PrepareStep              func(PrepareStepOptions) (*PrepareStepResult, error)
	RefineToolInput          ToolInputRefineFunc
	Telemetry                Telemetry
	Transforms               []StreamTransform
	OnStart                  func(StartEvent)
	OnStepStart              func(StepStartEvent)
	OnLanguageModelCallStart func(LanguageModelCallStartEvent)
	OnLanguageModelCallEnd   func(LanguageModelCallEndEvent)
	OnToolExecutionStart     func(ToolExecutionStartEvent)
	OnToolExecutionEnd       func(ToolExecutionEndEvent)
	OnStepEnd                func(StepFinishEvent)
	OnStepFinish             func(StepFinishEvent)
	OnEnd                    func(FinishEvent)
	OnFinish                 func(FinishEvent)
	OnAbort                  func(AbortEvent)
	OnError                  func(ErrorEvent)
	PrepareCall              func(AgentPrepareCallOptions) (*AgentPreparedCall, error)
}

type ToolResultFile

type ToolResultFile struct {
	Data      []byte
	URL       string
	MediaType string
	Filename  string
}

type ToolResultOutput

type ToolResultOutput struct {
	Type            string
	Value           any
	Files           []ToolResultFile
	Reason          string
	ProviderOptions ProviderOptions
}

func CreateToolModelOutput

func CreateToolModelOutput(tool Tool, toolCallID string, input any, output any, isErr bool) (ToolResultOutput, error)

type ToolResultPart

type ToolResultPart struct {
	ToolCallID       string
	ToolName         string
	Input            any
	Output           ToolResultOutput
	Result           any
	IsError          bool
	ProviderExecuted bool
	Dynamic          bool
	Preliminary      bool
	ToolMetadata     ProviderMetadata
	ProviderMetadata ProviderMetadata
	ProviderOptions  ProviderOptions
}

func (ToolResultPart) PartType

func (ToolResultPart) PartType() string

type TranscribeOptions

type TranscribeOptions struct {
	Model            TranscriptionModel
	Audio            FilePart
	Language         string
	Prompt           string
	Headers          map[string]string
	ProviderOptions  ProviderOptions
	Telemetry        Telemetry
	TelemetryOptions TelemetryOptions
	OnStart          func(StartEvent)
	OnEnd            func(FinishEvent)
	OnFinish         func(FinishEvent)
	OnError          func(ErrorEvent)
}

type TranscribeResult

type TranscribeResult struct {
	Text             string
	Segments         []TranscriptionSegment
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Response         ResponseMetadata
}

func Transcribe

func Transcribe(ctx context.Context, opts TranscribeOptions) (transcribeResult *TranscribeResult, err error)

type TranscriptionMiddlewareFunc

func (TranscriptionMiddlewareFunc) OverrideTranscriptionModelID

func (m TranscriptionMiddlewareFunc) OverrideTranscriptionModelID(model TranscriptionModel) string

func (TranscriptionMiddlewareFunc) OverrideTranscriptionProvider

func (m TranscriptionMiddlewareFunc) OverrideTranscriptionProvider(model TranscriptionModel) string

type TranscriptionModel

type TranscriptionModel interface {
	Provider() string
	ModelID() string
	DoTranscribe(ctx context.Context, opts TranscriptionModelCallOptions) (*TranscriptionModelResult, error)
}

func ResolveTranscriptionModel

func ResolveTranscriptionModel(model any, resolver TranscriptionModelResolver) (TranscriptionModel, error)

func WrapTranscriptionModel

func WrapTranscriptionModel(model TranscriptionModel, middleware ...TranscriptionModelMiddleware) TranscriptionModel

type TranscriptionModelCallOptions

type TranscriptionModelCallOptions struct {
	Audio           FilePart
	Language        string
	Prompt          string
	Headers         map[string]string
	ProviderOptions ProviderOptions
}

type TranscriptionModelMiddleware

type TranscriptionModelMiddleware interface {
	WrapTranscribe(ctx context.Context, model TranscriptionModel, opts TranscriptionModelCallOptions, next TranscriptionMiddlewareNext) (*TranscriptionModelResult, error)
	OverrideTranscriptionProvider(model TranscriptionModel) string
	OverrideTranscriptionModelID(model TranscriptionModel) string
}

type TranscriptionModelResolver

type TranscriptionModelResolver interface {
	TranscriptionModel(ref string) (TranscriptionModel, error)
}

type TranscriptionModelResult

type TranscriptionModelResult struct {
	Text             string
	Segments         []TranscriptionSegment
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Response         ResponseMetadata
}

type TranscriptionProvider

type TranscriptionProvider interface {
	TranscriptionModel(modelID string) TranscriptionModel
}

type TranscriptionSegment

type TranscriptionSegment struct {
	Text  string
	Start float64
	End   float64
}

type UIMessage

type UIMessage struct {
	ID       string   `json:"id"`
	Role     Role     `json:"role"`
	Metadata any      `json:"metadata,omitempty"`
	Parts    []UIPart `json:"parts"`
}

func AppendResponseMessages

func AppendResponseMessages(messages []UIMessage, responseMessages []Message) []UIMessage

type UIMessageChunk

type UIMessageChunk struct {
	Type string `json:"type"`

	ID               string           `json:"id,omitempty"`
	Delta            string           `json:"delta,omitempty"`
	ErrorText        string           `json:"errorText,omitempty"`
	ProviderMetadata ProviderMetadata `json:"providerMetadata,omitempty"`
	ToolMetadata     ProviderMetadata `json:"toolMetadata,omitempty"`

	ToolCallID       string `json:"toolCallId,omitempty"`
	ToolName         string `json:"toolName,omitempty"`
	InputTextDelta   string `json:"inputTextDelta,omitempty"`
	Input            any    `json:"input,omitempty"`
	Output           any    `json:"output,omitempty"`
	ApprovalID       string `json:"approvalId,omitempty"`
	Signature        string `json:"signature,omitempty"`
	Approved         *bool  `json:"approved,omitempty"`
	IsAutomatic      *bool  `json:"isAutomatic,omitempty"`
	Reason           string `json:"reason,omitempty"`
	ProviderExecuted *bool  `json:"providerExecuted,omitempty"`
	Dynamic          *bool  `json:"dynamic,omitempty"`
	Preliminary      *bool  `json:"preliminary,omitempty"`
	Title            string `json:"title,omitempty"`

	Kind      string `json:"kind,omitempty"`
	SourceID  string `json:"sourceId,omitempty"`
	URL       string `json:"url,omitempty"`
	MediaType string `json:"mediaType,omitempty"`
	Filename  string `json:"filename,omitempty"`

	Data      any   `json:"data,omitempty"`
	Transient *bool `json:"transient,omitempty"`

	MessageID       string `json:"messageId,omitempty"`
	MessageMetadata any    `json:"messageMetadata,omitempty"`
	FinishReason    string `json:"finishReason,omitempty"`
	StepID          string `json:"stepId,omitempty"`
	StepNumber      *int   `json:"stepNumber,omitempty"`
	StepType        string `json:"stepType,omitempty"`

	Err error `json:"-"`
}

func DataUIMessageChunk

func DataUIMessageChunk(name string, id string, data any) UIMessageChunk

func ErrorUIMessageChunk

func ErrorUIMessageChunk(err error) UIMessageChunk

func FinishUIMessageChunk

func FinishUIMessageChunk(finishReason string) UIMessageChunk

func ReadUIMessageStream

func ReadUIMessageStream(stream <-chan UIMessageChunk, options ...ReadUIMessageStreamOptions) ([]UIMessageChunk, error)

func StartUIMessageChunk

func StartUIMessageChunk(messageID string) UIMessageChunk

func TextDeltaUIMessageChunk

func TextDeltaUIMessageChunk(id, delta string) UIMessageChunk

func TextEndUIMessageChunk

func TextEndUIMessageChunk(id string) UIMessageChunk

func TextStartUIMessageChunk

func TextStartUIMessageChunk(id string) UIMessageChunk

func ToUIMessageChunk

func ToUIMessageChunk(part StreamPart, options ...ToUIMessageChunkOptions) (UIMessageChunk, bool)

func ToolApprovalRequestUIMessageChunk

func ToolApprovalRequestUIMessageChunk(approvalID string, toolCallID string, isAutomatic bool, signature ...string) UIMessageChunk

func ToolApprovalResponseUIMessageChunk

func ToolApprovalResponseUIMessageChunk(approvalID string, approved bool, reason string) UIMessageChunk

type UIMessageStreamError

type UIMessageStreamError struct {
	SDKError
	ChunkType string
	ChunkID   string
}

func NewUIMessageStreamError

func NewUIMessageStreamError(chunkType, chunkID, message string) *UIMessageStreamError

type UIMessageStreamFinishEvent

type UIMessageStreamFinishEvent struct {
	IsAborted       bool
	IsContinuation  bool
	ResponseMessage UIMessage
	Messages        []UIMessage
	FinishReason    string
}

type UIMessageStreamResponseOptions

type UIMessageStreamResponseOptions struct {
	Status           int
	StatusText       string
	Headers          map[string]string
	Format           string
	BufferSize       int
	ConsumeSSEStream func(stream <-chan string)
}

type UIMessageStreamStepFinishEvent

type UIMessageStreamStepFinishEvent struct {
	IsContinuation  bool
	ResponseMessage UIMessage
	Messages        []UIMessage
}

type UIMessageStreamWriter

type UIMessageStreamWriter struct {
	// contains filtered or unexported fields
}

func (UIMessageStreamWriter) Merge

func (w UIMessageStreamWriter) Merge(stream <-chan UIMessageChunk) bool

func (UIMessageStreamWriter) OnError

func (w UIMessageStreamWriter) OnError(err error) string

func (UIMessageStreamWriter) Write

func (w UIMessageStreamWriter) Write(chunk UIMessageChunk) bool

type UIPart

type UIPart struct {
	Type string `json:"type"`

	Text  string `json:"text,omitempty"`
	State string `json:"state,omitempty"`
	Kind  string `json:"kind,omitempty"`

	MediaType         string `json:"mediaType,omitempty"`
	Filename          string `json:"filename,omitempty"`
	URL               string `json:"url,omitempty"`
	ProviderReference any    `json:"providerReference,omitempty"`

	ID       string `json:"id,omitempty"`
	Data     any    `json:"data,omitempty"`
	SourceID string `json:"sourceId,omitempty"`
	Title    string `json:"title,omitempty"`

	ToolName         string `json:"toolName,omitempty"`
	ToolCallID       string `json:"toolCallId,omitempty"`
	Input            any    `json:"input,omitempty"`
	RawInput         any    `json:"rawInput,omitempty"`
	Output           any    `json:"output,omitempty"`
	ErrorText        string `json:"errorText,omitempty"`
	ProviderExecuted bool   `json:"providerExecuted,omitempty"`
	Dynamic          bool   `json:"dynamic,omitempty"`
	Preliminary      bool   `json:"preliminary,omitempty"`
	Approval         *struct {
		ID          string `json:"id"`
		Signature   string `json:"signature,omitempty"`
		Approved    *bool  `json:"approved,omitempty"`
		Reason      string `json:"reason,omitempty"`
		IsAutomatic bool   `json:"isAutomatic,omitempty"`
	} `json:"approval,omitempty"`

	ProviderMetadata       ProviderMetadata `json:"providerMetadata,omitempty"`
	ToolMetadata           ProviderMetadata `json:"toolMetadata,omitempty"`
	CallProviderMetadata   ProviderMetadata `json:"callProviderMetadata,omitempty"`
	ResultProviderMetadata ProviderMetadata `json:"resultProviderMetadata,omitempty"`
}

type UIValueValidator

type UIValueValidator func(any) error

type UnsupportedModelVersionError

type UnsupportedModelVersionError struct {
	SDKError
	Version  string
	Provider string
	ModelID  string
}

func NewUnsupportedModelVersionError

func NewUnsupportedModelVersionError(version, provider, modelID string) *UnsupportedModelVersionError

type UploadFileCallOptions

type UploadFileCallOptions struct {
	Data            UploadFileData
	MediaType       string
	Filename        string
	ProviderOptions ProviderOptions
	Headers         map[string]string
}

type UploadFileData

type UploadFileData struct {
	Type   string
	Data   []byte
	Base64 string
	Text   string
}

func Base64UploadFileData

func Base64UploadFileData(data string) UploadFileData

func DataUploadFileData

func DataUploadFileData(data []byte) UploadFileData

func TextUploadFileData

func TextUploadFileData(text string) UploadFileData

type UploadFileModelResult

type UploadFileModelResult struct {
	ProviderReference ProviderReference
	MediaType         string
	Filename          string
	ProviderMetadata  ProviderMetadata
	Warnings          []Warning
	Request           RequestMetadata
	Response          ResponseMetadata
}

type UploadFileOptions

type UploadFileOptions struct {
	API              any
	Data             UploadFileData
	MediaType        string
	Filename         string
	MaxRetries       *int
	Headers          map[string]string
	ProviderOptions  ProviderOptions
	Telemetry        Telemetry
	TelemetryOptions TelemetryOptions
	OnStart          func(StartEvent)
	OnFinish         func(FinishEvent)
	OnError          func(ErrorEvent)
}

type UploadFileResult

type UploadFileResult struct {
	ProviderReference ProviderReference
	MediaType         string
	Filename          string
	ProviderMetadata  ProviderMetadata
	Warnings          []Warning
	Request           RequestMetadata
	Response          ResponseMetadata
}

func UploadFile

func UploadFile(ctx context.Context, opts UploadFileOptions) (uploadResult *UploadFileResult, err error)

type UploadSkillCallOptions

type UploadSkillCallOptions struct {
	Files           []UploadSkillFile
	DisplayTitle    string
	ProviderOptions ProviderOptions
	Headers         map[string]string
}

type UploadSkillFile

type UploadSkillFile struct {
	Path string
	Data UploadFileData
}

type UploadSkillModelResult

type UploadSkillModelResult struct {
	ProviderReference ProviderReference
	DisplayTitle      string
	Name              string
	Description       string
	LatestVersion     string
	ProviderMetadata  ProviderMetadata
	Warnings          []Warning
	Request           RequestMetadata
	Response          ResponseMetadata
}

type UploadSkillOptions

type UploadSkillOptions struct {
	API              any
	Files            []UploadSkillFile
	DisplayTitle     string
	MaxRetries       *int
	Headers          map[string]string
	ProviderOptions  ProviderOptions
	Telemetry        Telemetry
	TelemetryOptions TelemetryOptions
	OnStart          func(StartEvent)
	OnFinish         func(FinishEvent)
	OnError          func(ErrorEvent)
}

type UploadSkillResult

type UploadSkillResult struct {
	ProviderReference ProviderReference
	DisplayTitle      string
	Name              string
	Description       string
	LatestVersion     string
	ProviderMetadata  ProviderMetadata
	Warnings          []Warning
	Request           RequestMetadata
	Response          ResponseMetadata
}

func UploadSkill

func UploadSkill(ctx context.Context, opts UploadSkillOptions) (uploadResult *UploadSkillResult, err error)

type Usage

type Usage struct {
	InputTokens       *int
	OutputTokens      *int
	TotalTokens       *int
	ReasoningTokens   *int
	CachedInputTokens *int
}

func AddUsage

func AddUsage(a, b Usage) Usage

type ValidateUIMessagesOptions

type ValidateUIMessagesOptions struct {
	MetadataSchema any
	DataSchemas    map[string]any
	Tools          map[string]Tool
}

type VideoGenerateMiddlewareNext

type VideoGenerateMiddlewareNext func(context.Context, VideoModelCallOptions) (*VideoModelResult, error)

type VideoMiddlewareFunc

type VideoMiddlewareFunc struct {
	Generate func(context.Context, VideoModel, VideoModelCallOptions, VideoGenerateMiddlewareNext) (*VideoModelResult, error)
	Provider func(VideoModel) string
	ModelID  func(VideoModel) string
}

func (VideoMiddlewareFunc) OverrideVideoModelID

func (m VideoMiddlewareFunc) OverrideVideoModelID(model VideoModel) string

func (VideoMiddlewareFunc) OverrideVideoProvider

func (m VideoMiddlewareFunc) OverrideVideoProvider(model VideoModel) string

func (VideoMiddlewareFunc) WrapGenerateVideo

type VideoModel

type VideoModel interface {
	Provider() string
	ModelID() string
	DoGenerateVideo(ctx context.Context, opts VideoModelCallOptions) (*VideoModelResult, error)
}

func ResolveVideoModel

func ResolveVideoModel(model any, resolver VideoModelResolver) (VideoModel, error)

func WrapVideoModel

func WrapVideoModel(model VideoModel, middleware ...VideoModelMiddleware) VideoModel

type VideoModelCallOptions

type VideoModelCallOptions struct {
	Prompt          string
	Image           *FilePart
	Duration        string
	Size            string
	AspectRatio     string
	Seed            *int
	Headers         map[string]string
	ProviderOptions ProviderOptions
}

type VideoModelMiddleware

type VideoModelMiddleware interface {
	WrapGenerateVideo(ctx context.Context, model VideoModel, opts VideoModelCallOptions, next VideoGenerateMiddlewareNext) (*VideoModelResult, error)
	OverrideVideoProvider(model VideoModel) string
	OverrideVideoModelID(model VideoModel) string
}

type VideoModelResolver

type VideoModelResolver interface {
	VideoModel(ref string) (VideoModel, error)
}

type VideoModelResult

type VideoModelResult struct {
	Videos           []GeneratedFile
	Warnings         []Warning
	ProviderMetadata ProviderMetadata
	Response         ResponseMetadata
}

type VideoProvider

type VideoProvider interface {
	VideoModel(modelID string) VideoModel
}

type Warning

type Warning struct {
	Type    string
	Feature string
	Setting string
	Message string
	Details string
}

type WarningFilter

type WarningFilter func(Warning) bool

type WarningLogger

type WarningLogger interface {
	LogWarnings(warnings []Warning, provider string, modelID string)
}

type WarningLoggerFunc

type WarningLoggerFunc func(warnings []Warning, provider string, modelID string)

func (WarningLoggerFunc) LogWarnings

func (f WarningLoggerFunc) LogWarnings(warnings []Warning, provider string, modelID string)

type WrappedProvider

type WrappedProvider struct {
	Provider                     Provider
	LanguageModelMiddleware      []LanguageModelMiddleware
	EmbeddingModelMiddleware     []EmbeddingModelMiddleware
	ImageModelMiddleware         []ImageModelMiddleware
	VideoModelMiddleware         []VideoModelMiddleware
	SpeechModelMiddleware        []SpeechModelMiddleware
	TranscriptionModelMiddleware []TranscriptionModelMiddleware
	RerankingModelMiddleware     []RerankingModelMiddleware
}

func WrapProvider

func WrapProvider(provider Provider, languageModelMiddleware []LanguageModelMiddleware, imageModelMiddleware []ImageModelMiddleware) *WrappedProvider

func WrapProviderWithEmbedding

func WrapProviderWithEmbedding(provider Provider, languageModelMiddleware []LanguageModelMiddleware, embeddingModelMiddleware []EmbeddingModelMiddleware, imageModelMiddleware []ImageModelMiddleware) *WrappedProvider

func WrapProviderWithMedia

func WrapProviderWithMedia(provider Provider, languageModelMiddleware []LanguageModelMiddleware, embeddingModelMiddleware []EmbeddingModelMiddleware, imageModelMiddleware []ImageModelMiddleware, videoModelMiddleware []VideoModelMiddleware, speechModelMiddleware []SpeechModelMiddleware, transcriptionModelMiddleware []TranscriptionModelMiddleware, rerankingModelMiddleware []RerankingModelMiddleware) *WrappedProvider

func (*WrappedProvider) EmbeddingModel

func (p *WrappedProvider) EmbeddingModel(modelID string) EmbeddingModel

func (*WrappedProvider) ImageModel

func (p *WrappedProvider) ImageModel(modelID string) ImageModel

func (*WrappedProvider) LanguageModel

func (p *WrappedProvider) LanguageModel(modelID string) LanguageModel

func (*WrappedProvider) RerankingModel

func (p *WrappedProvider) RerankingModel(modelID string) RerankingModel

func (*WrappedProvider) SpeechModel

func (p *WrappedProvider) SpeechModel(modelID string) SpeechModel

func (*WrappedProvider) TranscriptionModel

func (p *WrappedProvider) TranscriptionModel(modelID string) TranscriptionModel

func (*WrappedProvider) VideoModel

func (p *WrappedProvider) VideoModel(modelID string) VideoModel

Jump to

Keyboard shortcuts

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