- 全局替换 ApiKey → APIKey(类型、字段、方法、变量) - 修复所有 initialism 命名(API, SMTP, HTML, URL 等) - 添加所有缺失的包注释 - 修复导出符号的注释格式 主要修改: - ApiKey → APIKey(所有出现的地方) - ApiKeyID → APIKeyID - ApiKeyIDs → APIKeyIDs - TestSmtpConnection → TestSMTPConnection - HtmlURL → HTMLURL - 添加 20+ 个包注释 - 修复 10+ 个导出符号注释格式 验证结果: - ✓ golangci-lint: 0 issues - ✓ 单元测试: 通过 - ✓ 集成测试: 通过
82 lines
2.9 KiB
Go
82 lines
2.9 KiB
Go
// 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"
|