provider_options.go

 1package anthropic
 2
 3import "github.com/charmbracelet/fantasy/ai"
 4
 5const OptionsKey = "anthropic"
 6
 7type ProviderOptions struct {
 8	SendReasoning          *bool                   `json:"send_reasoning"`
 9	Thinking               *ThinkingProviderOption `json:"thinking"`
10	DisableParallelToolUse *bool                   `json:"disable_parallel_tool_use"`
11}
12
13func (o *ProviderOptions) Options() {}
14
15type ThinkingProviderOption struct {
16	BudgetTokens int64 `json:"budget_tokens"`
17}
18
19type ReasoningOptionMetadata struct {
20	Signature    string `json:"signature"`
21	RedactedData string `json:"redacted_data"`
22}
23
24func (*ReasoningOptionMetadata) Options() {}
25
26type ProviderCacheControlOptions struct {
27	CacheControl CacheControl `json:"cache_control"`
28}
29
30func (*ProviderCacheControlOptions) Options() {}
31
32type CacheControl struct {
33	Type string `json:"type"`
34}
35
36func NewProviderOptions(opts *ProviderOptions) ai.ProviderOptions {
37	return ai.ProviderOptions{
38		OptionsKey: opts,
39	}
40}
41
42func NewProviderCacheControlOptions(opts *ProviderCacheControlOptions) ai.ProviderOptions {
43	return ai.ProviderOptions{
44		OptionsKey: opts,
45	}
46}