Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsOpenAICompatibleType ¶ added in v1.2.4
func IsOpenAIResponsesType ¶ added in v1.2.4
func ProtocolLabel ¶ added in v1.2.4
ProtocolLabel returns a short, human-friendly protocol name for display purposes (e.g. in the `set` TUI, `ccl list`, and `ccl doctor` output). It intentionally does NOT change the underlying stored provider.Type value, which remains a stable, machine-readable string ("anthropic", "openai", "openai_responses", ...) relied on throughout the codebase for dispatch logic (proxy, launcher, doctor, ...).
OpenAI exposes two distinct generation protocols behind the same "openai" umbrella:
- Chat Completions — the old standard, broadest compatibility: labeled "openai(chat)".
- Responses — the newer, agent-oriented protocol: labeled "openai(agent)".
Types ¶
type Provider ¶
type Provider struct {
Name string `yaml:"name" mapstructure:"name"`
Type string `yaml:"type" mapstructure:"type"`
Endpoint string `yaml:"endpoint" mapstructure:"endpoint"`
APIKey string `yaml:"apikey" mapstructure:"apikey"`
Model string `yaml:"model" mapstructure:"model"`
Env map[string]string `yaml:"env,omitempty" mapstructure:"env,omitempty"`
// Custom model configuration (Claude Code native features)
CustomModelID string `yaml:"customModelId,omitempty" mapstructure:"customModelId,omitempty"` // ANTHROPIC_CUSTOM_MODEL_OPTION
OpusModel string `yaml:"opusModel,omitempty" mapstructure:"opusModel,omitempty"` // ANTHROPIC_DEFAULT_OPUS_MODEL
SonnetModel string `yaml:"sonnetModel,omitempty" mapstructure:"sonnetModel,omitempty"` // ANTHROPIC_DEFAULT_SONNET_MODEL
HaikuModel string `yaml:"haikuModel,omitempty" mapstructure:"haikuModel,omitempty"` // ANTHROPIC_DEFAULT_HAIKU_MODEL
ModelOverrides map[string]string `yaml:"modelOverrides,omitempty" mapstructure:"modelOverrides,omitempty"` // modelOverrides in settings.json
EffortLevel string `yaml:"effortLevel,omitempty" mapstructure:"effortLevel,omitempty"` // CLAUDE_CODE_EFFORT_LEVEL (low/medium/high)
LockModel string `yaml:"lockModel,omitempty" mapstructure:"lockModel,omitempty"` // model in settings.json (locks to single model)
}
func NormalizeLegacyCustomSlot ¶ added in v1.2.4
NormalizeLegacyCustomSlot migrates configs created when the UI used lockModel as the fourth "Custom" picker slot. LockModel remains supported for manually authored provider configs that intentionally lock Claude Code to one model.