Documentation
¶
Index ¶
- Variables
- func AutoInstall() error
- func Execute()
- func IsInstalled() bool
- func RootCmd() *cobra.Command
- func RunInstallerScript() error
- func RunProviderSet(args []string) error
- func SetCMD() *cobra.Command
- type AdvancedConfigModel
- func (m *AdvancedConfigModel) BindApp(app *tui.App)
- func (m *AdvancedConfigModel) HandleMouse(me tui.MouseEvent) bool
- func (m *AdvancedConfigModel) KeyMap() tui.KeyMap
- func (m *AdvancedConfigModel) Render(app *tui.App) *tui.Element
- func (m *AdvancedConfigModel) UnbindApp()
- func (m *AdvancedConfigModel) Watchers() []tui.Watcher
- type AutoRecommendation
Constants ¶
This section is empty.
Variables ¶
var Version = "dev"
Version is set dynamically via ldflags during build.
Functions ¶
func AutoInstall ¶
func AutoInstall() error
AutoInstall attempts to install Claude CLI globally via official script. It uses curl/bash on macOS/Linux and powershell on Windows.
func IsInstalled ¶
func IsInstalled() bool
IsInstalled returns true if the 'claude' CLI executable is found in system PATH.
func RunInstallerScript ¶
func RunInstallerScript() error
func RunProviderSet ¶ added in v1.2.7
Types ¶
type AdvancedConfigModel ¶ added in v1.2.0
type AdvancedConfigModel struct {
// Save state
IsActiveChosen bool
// contains filtered or unexported fields
}
func NewAdvancedConfigModel ¶ added in v1.2.0
func NewAdvancedConfigModel(p *provider.Provider) *AdvancedConfigModel
func NewAdvancedMappingModel ¶ added in v1.5.0
func NewAdvancedMappingModel(p *provider.Provider, modelPool []string, metadata map[string]protocol.ModelInfo) *AdvancedConfigModel
NewAdvancedMappingModel opens the slot mapper with a pre-populated catalog. Model IDs remain the selectable and persisted values; metadata supplies only display labels and context hints.
func (*AdvancedConfigModel) BindApp ¶ added in v1.5.7
func (m *AdvancedConfigModel) BindApp(app *tui.App)
BindApp stores the app reference used by markDirty/quit and wires the four input States so their Set() calls mark the frame dirty on their own. The framework calls it before the first render.
func (*AdvancedConfigModel) HandleMouse ¶ added in v1.5.7
func (m *AdvancedConfigModel) HandleMouse(me tui.MouseEvent) bool
HandleMouse maps a click to the configuration row under the pointer. The rendered frame is re-rendered offline (tui.Sprint at the current terminal width) so the hit test works on exactly what the user sees. Only left-button presses are handled; the wheel is deliberately ignored (the page anchors its scroll window to the cursor instead).
func (*AdvancedConfigModel) KeyMap ¶ added in v1.5.7
func (m *AdvancedConfigModel) KeyMap() tui.KeyMap
KeyMap routes every key through handleKey. go-tui matches one binding per event, so a single AnyKey stop binding covers the whole page (the picker, the modals, and the inputs are disambiguated inside handleKey).
func (*AdvancedConfigModel) Render ¶ added in v1.5.7
func (m *AdvancedConfigModel) Render(app *tui.App) *tui.Element
Render builds the whole page as a go-tui element tree. Three exits: the slot picker overlay (filter focused), the models.dev picker overlay, and the main configuration page. A nil app is tolerated so tests can render offline.
func (*AdvancedConfigModel) UnbindApp ¶ added in v1.5.7
func (m *AdvancedConfigModel) UnbindApp()
UnbindApp clears the app reference (symmetric cleanup for tests).
func (*AdvancedConfigModel) Watchers ¶ added in v1.5.7
func (m *AdvancedConfigModel) Watchers() []tui.Watcher
Watchers bridges the async goroutines onto the main loop: the four result channels, the two spinner/cleanup timers, and the one-shot auto-detect that used to live in Init(). go-tui calls Watchers() after the first render, so the channels are guaranteed to be watched before any fetch can complete.
type AutoRecommendation ¶ added in v1.5.0
type AutoRecommendation struct {
Opus string
Sonnet string
Haiku string
Custom string
Subagent string
// OneMSlots marks the slots that should carry the [1m] context marker.
// Only allowlist-confirmed models are auto-enabled; advisory window reports
// are surfaced to the user but never auto-opened.
OneMSlots map[string]bool
// contains filtered or unexported fields
}
AutoRecommendation is the deterministic result of model slot auto-fill. It is a pure value: applying it to a Provider (and writing [1m] markers) happens in the caller, so the recommendation can be unit-tested without a Bubble Tea model and re-rendered without mutating the draft.
func RecommendModels ¶ added in v1.5.0
func RecommendModels(current provider.Provider, models []string, metadata map[string]protocol.ModelInfo) AutoRecommendation
RecommendModels picks slot models for a provider after a successful protocol and model-list detection. It never mutates current.
Precedence:
- Preserve a slot whose current model is still in models (updating an existing provider must not overwrite a working mapping).
- Otherwise recommend by model-name semantics.
- Tie-break by catalog metadata (context window, rate multiplier).
Metadata is optional; when a model has no ModelInfo entry the name heuristics alone decide. models is the exact pool from the upstream /models catalog, and the returned IDs always come from it (or are empty).