// Package claude provides constants and helpers for Claude API integration. package claude // Claude Code 客户端相关常量 // Beta header 常量 const ( BetaOAuth = "oauth-2025-04-20" BetaClaudeCode = "claude-code-20250219" BetaInterleavedThinking = "interleaved-thinking-2025-05-14" BetaFineGrainedToolStreaming = "fine-grained-tool-streaming-2025-05-14" ) // DefaultBetaHeader Claude Code 客户端默认的 anthropic-beta header const DefaultBetaHeader = BetaClaudeCode + "," + BetaOAuth + "," + BetaInterleavedThinking + "," + BetaFineGrainedToolStreaming // HaikuBetaHeader Haiku 模型使用的 anthropic-beta header(不需要 claude-code beta) const HaikuBetaHeader = BetaOAuth + "," + BetaInterleavedThinking // APIKeyBetaHeader API-key 账号建议使用的 anthropic-beta header(不包含 oauth) const APIKeyBetaHeader = BetaClaudeCode + "," + BetaInterleavedThinking + "," + BetaFineGrainedToolStreaming // APIKeyHaikuBetaHeader Haiku 模型在 API-key 账号下使用的 anthropic-beta header(不包含 oauth / claude-code) const APIKeyHaikuBetaHeader = BetaInterleavedThinking // DefaultHeaders 是 Claude Code 客户端默认请求头。 var DefaultHeaders = map[string]string{ "User-Agent": "claude-cli/2.0.62 (external, cli)", "X-Stainless-Lang": "js", "X-Stainless-Package-Version": "0.52.0", "X-Stainless-OS": "Linux", "X-Stainless-Arch": "x64", "X-Stainless-Runtime": "node", "X-Stainless-Runtime-Version": "v22.14.0", "X-Stainless-Retry-Count": "0", "X-Stainless-Timeout": "60", "X-App": "cli", "Anthropic-Dangerous-Direct-Browser-Access": "true", } // Model 表示一个 Claude 模型 type Model struct { ID string `json:"id"` Type string `json:"type"` DisplayName string `json:"display_name"` CreatedAt string `json:"created_at"` } // DefaultModels Claude Code 客户端支持的默认模型列表 var DefaultModels = []Model{ { ID: "claude-opus-4-5-20251101", Type: "model", DisplayName: "Claude Opus 4.5", CreatedAt: "2025-11-01T00:00:00Z", }, { ID: "claude-sonnet-4-5-20250929", Type: "model", DisplayName: "Claude Sonnet 4.5", CreatedAt: "2025-09-29T00:00:00Z", }, { ID: "claude-haiku-4-5-20251001", Type: "model", DisplayName: "Claude Haiku 4.5", CreatedAt: "2025-10-01T00:00:00Z", }, } // DefaultModelIDs 返回默认模型的 ID 列表 func DefaultModelIDs() []string { ids := make([]string, len(DefaultModels)) for i, m := range DefaultModels { ids[i] = m.ID } return ids } // DefaultTestModel 测试时使用的默认模型 const DefaultTestModel = "claude-sonnet-4-5-20250929"