Documentation
¶
Index ¶
- Constants
- Variables
- type ConfigChangedMsg
- type ConfirmActionMsg
- type ConsensusAnalysisMsg
- type ConsensusChunkMsg
- type Exchange
- type MCPCallCountMsg
- type MCPDashboardDataMsg
- type MCPDashboardServer
- type MCPRegistryEnvMeta
- type MCPRegistryResult
- type MCPRegistryResultsMsg
- type MCPServerStatus
- type MCPServerTemplate
- type MCPStatusMsg
- type MCPTemplateEnvVar
- type MCPTestResultMsg
- type MCPToolsChangedMsg
- type MemoryDisplayMsg
- type ModeChangedMsg
- type Model
- func (m *Model) AppendHistory(ex Exchange)
- func (m Model) Init() tea.Cmd
- func (m *Model) RestorePanelsFromLastExchange()
- func (m Model) SendConsensusChunk(delta string, done bool, err error) tea.Cmd
- func (m Model) SendProviderChunk(name, delta string, done bool, err error) tea.Cmd
- func (m *Model) SetClearHandler(handler func())
- func (m *Model) SetConfig(cfg *config.Config)
- func (m *Model) SetConfigChangeHandler(handler func(*config.Config))
- func (m *Model) SetExportHandler(handler func(path string))
- func (m *Model) SetMCPDashboardRefreshHandler(handler func())
- func (m *Model) SetMCPHandler(handler func(subcommand, args string))
- func (m *Model) SetMCPRegistryFetchHandler(handler func())
- func (m *Model) SetMCPRegistrySelectHandler(handler func(result MCPRegistryResult) config.MCPServerConfig)
- func (m *Model) SetMCPWizardFromConfig(cfg config.MCPServerConfig)
- func (m *Model) SetMemoryHandler(handler func(args string))
- func (m *Model) SetModeChangeHandler(handler func(mode string))
- func (m *Model) SetModelLister(lister func(providerType string) []config.ModelSummary)
- func (m *Model) SetPlanHandler(handler func(request string))
- func (m *Model) SetReconnectMCPHandler(handler func(serverName string))
- func (m *Model) SetSaveHandler(handler func())
- func (m *Model) SetSessionsHandler(handler func(subcommand, args string))
- func (m *Model) SetSkillHandler(handler func(subcommand, args string))
- func (m *Model) SetSubmitHandler(handler func(prompt string))
- func (m *Model) SetTestMCPHandler(handler func(cfg config.MCPServerConfig))
- func (m *Model) SetTestProviderHandler(handler func(providerName string))
- func (m *Model) SetYoloToggleHandler(handler func(enabled bool))
- func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (m Model) View() string
- type PlanDoneMsg
- type ProviderChunkMsg
- type ProviderPanel
- type ProviderStatus
- type ProviderTraceMsg
- type QueryDoneMsg
- type QueryStartMsg
- type Styles
- type TestResultMsg
- type TokenUpdateMsg
- type ToolCallMsg
- type TracePhase
- type TraceSection
- type WizardTestResultMsg
- type WorkerProgressMsg
Constants ¶
const ASCIIArt = `` /* 1004-byte string literal not displayed */
ASCIIArt is the polycode logo for use in splash screens and CLI output.
Variables ¶
var PopularMCPServers = []MCPServerTemplate{ { Name: "filesystem", Description: "Read/write local files and directories", Command: "npx", Args: []string{"-y", "@modelcontextprotocol/server-filesystem", "{PATH}"}, Category: "filesystem", }, { Name: "github", Description: "GitHub API — repos, issues, PRs, search", Command: "npx", Args: []string{"-y", "@modelcontextprotocol/server-github"}, EnvVars: []MCPTemplateEnvVar{{Name: "GITHUB_TOKEN", IsSecret: true}}, Category: "dev-tools", }, { Name: "postgres", Description: "Query PostgreSQL databases (read-only)", Command: "npx", Args: []string{"-y", "@modelcontextprotocol/server-postgres", "{CONNECTION_STRING}"}, ReadOnly: true, Category: "database", }, { Name: "brave-search", Description: "Web search via Brave Search API", Command: "npx", Args: []string{"-y", "@modelcontextprotocol/server-brave-search"}, EnvVars: []MCPTemplateEnvVar{{Name: "BRAVE_API_KEY", IsSecret: true}}, ReadOnly: true, Category: "search", }, { Name: "memory", Description: "Persistent knowledge graph memory", Command: "npx", Args: []string{"-y", "@modelcontextprotocol/server-memory"}, Category: "ai", }, { Name: "puppeteer", Description: "Browser automation and web scraping", Command: "npx", Args: []string{"-y", "@modelcontextprotocol/server-puppeteer"}, Category: "dev-tools", }, { Name: "sqlite", Description: "Query SQLite databases", Command: "npx", Args: []string{"-y", "@modelcontextprotocol/server-sqlite", "{DB_PATH}"}, ReadOnly: true, Category: "database", }, { Name: "slack", Description: "Slack workspace integration", Command: "npx", Args: []string{"-y", "@modelcontextprotocol/server-slack"}, EnvVars: []MCPTemplateEnvVar{{Name: "SLACK_BOT_TOKEN", IsSecret: true}, {Name: "SLACK_TEAM_ID", IsSecret: false}}, Category: "dev-tools", }, }
PopularMCPServers is the curated registry of well-known MCP servers.
Functions ¶
This section is empty.
Types ¶
type ConfigChangedMsg ¶
ConfigChangedMsg is sent when the config has been modified by the settings screens. The app layer handles this by rebuilding the registry and pipeline.
type ConfirmActionMsg ¶
ConfirmActionMsg asks the user to confirm an action. The ResponseCh is used to synchronously communicate the user's decision back to the goroutine that requested confirmation.
type ConsensusAnalysisMsg ¶ added in v0.2.0
type ConsensusAnalysisMsg struct {
Confidence string
Agreements []string
Minorities []string
Evidence []string
}
ConsensusAnalysisMsg delivers structured provenance from the consensus synthesis.
type ConsensusChunkMsg ¶
ConsensusChunkMsg delivers a streaming chunk from the consensus synthesis.
type Exchange ¶
type Exchange struct {
Prompt string
ConsensusResponse string
IndividualResponse map[string]string // provider name → response
ProviderTraces map[string][]TraceSection // provider name → ordered trace sections
// contains filtered or unexported fields
}
Exchange represents a completed prompt/response pair in history.
type MCPCallCountMsg ¶ added in v1.19.0
type MCPCallCountMsg struct {
Count int64
}
MCPCallCountMsg updates the MCP tool call count in the TUI.
type MCPDashboardDataMsg ¶ added in v1.20.1
type MCPDashboardDataMsg struct {
Servers []MCPDashboardServer
TotalTools int
TotalCalls int64
}
MCPDashboardDataMsg delivers full MCP dashboard data to the TUI.
type MCPDashboardServer ¶ added in v1.20.1
type MCPDashboardServer struct {
Name string
Transport string // "stdio" or "sse"
Status string // "connected", "failed", "disconnected"
ToolCount int
ReadOnly bool
Error string
Tools []string // prefixed tool names
ResourceCount int
PromptCount int
}
MCPDashboardServer holds full display data for one server in the MCP dashboard.
type MCPRegistryEnvMeta ¶ added in v1.20.0
MCPRegistryEnvMeta holds env var metadata for display in the wizard.
type MCPRegistryResult ¶ added in v1.20.0
type MCPRegistryResult struct {
Name string
Description string
TransportLabel string
PackageID string
EnvVars []MCPRegistryEnvMeta // env var metadata for individual prompting
// Full server data for config mapping (passed to app layer).
ServerData any // *mcp.RegistryServer — stored as any to avoid import cycle
}
MCPRegistryResult holds a server from the MCP Registry for the wizard browse step.
type MCPRegistryResultsMsg ¶ added in v1.20.0
type MCPRegistryResultsMsg struct {
Servers []MCPRegistryResult
Error error
}
MCPRegistryResultsMsg delivers registry search results to the TUI.
type MCPServerStatus ¶ added in v1.19.0
type MCPServerStatus struct {
Name string
Transport string // "stdio" or "sse"
Status string // "connected", "failed", "disconnected"
ToolCount int
Error string // populated on failure
}
MCPServerStatus holds display info for one MCP server in the settings view.
type MCPServerTemplate ¶ added in v1.19.0
type MCPServerTemplate struct {
Name string
Description string
Command string
Args []string
EnvVars []MCPTemplateEnvVar
ReadOnly bool
Category string
}
MCPServerTemplate defines a pre-configured MCP server for the curated registry.
type MCPStatusMsg ¶ added in v1.19.0
type MCPStatusMsg struct {
Servers []MCPServerStatus
}
MCPStatusMsg is sent from app.go after MCP connect attempts to update the settings view with server status information.
type MCPTemplateEnvVar ¶ added in v1.20.0
MCPTemplateEnvVar describes an env var in a server template.
type MCPTestResultMsg ¶ added in v1.19.0
MCPTestResultMsg delivers the result of a connection test for an MCP server.
type MCPToolsChangedMsg ¶ added in v1.19.0
MCPToolsChangedMsg notifies the TUI that an MCP server's tool list has changed.
type MemoryDisplayMsg ¶ added in v0.2.0
type MemoryDisplayMsg struct {
Content string
}
MemoryDisplayMsg shows memory contents in the chat.
type ModeChangedMsg ¶ added in v0.2.0
type ModeChangedMsg struct {
Mode string // "quick", "balanced", "thorough"
}
ModeChangedMsg updates the current operating mode display.
type Model ¶
type Model struct {
// contains filtered or unexported fields
}
Model is the main Bubble Tea model for the polycode TUI.
func (*Model) AppendHistory ¶ added in v0.2.0
AppendHistory adds an exchange to the display history (used for session restore).
func (*Model) RestorePanelsFromLastExchange ¶ added in v1.20.3
func (m *Model) RestorePanelsFromLastExchange()
RestorePanelsFromLastExchange populates provider panels with content from the most recent exchange. Called after session restore so individual provider responses are visible in the tab bar, not just consensus.
func (Model) SendConsensusChunk ¶
func (Model) SendProviderChunk ¶
func (*Model) SetClearHandler ¶ added in v0.2.0
func (m *Model) SetClearHandler(handler func())
SetClearHandler sets the callback for when the user runs /clear.
func (*Model) SetConfig ¶
SetConfig sets the config reference on the model so settings screens can perform CRUD operations.
func (*Model) SetConfigChangeHandler ¶
SetConfigChangeHandler sets the callback invoked when the config changes from the settings screen (add/edit/delete provider). The app layer uses this to rebuild the registry and pipeline.
func (*Model) SetExportHandler ¶ added in v1.4.0
SetExportHandler sets the callback for /export command.
func (*Model) SetMCPDashboardRefreshHandler ¶ added in v1.20.1
func (m *Model) SetMCPDashboardRefreshHandler(handler func())
SetMCPDashboardRefreshHandler sets the callback for refreshing dashboard data.
func (*Model) SetMCPHandler ¶ added in v1.19.0
SetMCPHandler sets the callback for /mcp command.
func (*Model) SetMCPRegistryFetchHandler ¶ added in v1.20.0
func (m *Model) SetMCPRegistryFetchHandler(handler func())
SetMCPRegistryFetchHandler sets the callback for triggering registry fetch.
func (*Model) SetMCPRegistrySelectHandler ¶ added in v1.20.0
func (m *Model) SetMCPRegistrySelectHandler(handler func(result MCPRegistryResult) config.MCPServerConfig)
SetMCPRegistrySelectHandler sets the callback for mapping a registry result to a config. The callback returns a config.MCPServerConfig that the wizard applies directly.
func (*Model) SetMCPWizardFromConfig ¶ added in v1.20.0
func (m *Model) SetMCPWizardFromConfig(cfg config.MCPServerConfig)
SetMCPWizardFromConfig populates the wizard data from a mapped MCPServerConfig (used when selecting a server from the registry).
func (*Model) SetMemoryHandler ¶ added in v0.2.0
SetMemoryHandler sets the callback for /memory command.
func (*Model) SetModeChangeHandler ¶ added in v0.2.0
SetModeChangeHandler sets the callback for /mode command.
func (*Model) SetModelLister ¶ added in v1.1.0
func (m *Model) SetModelLister(lister func(providerType string) []config.ModelSummary)
SetModelLister sets a callback that returns available models for a provider type. Used by the wizard to show a model list instead of requiring manual text entry.
func (*Model) SetPlanHandler ¶ added in v0.2.0
SetPlanHandler sets the callback for when the user runs /plan.
func (*Model) SetReconnectMCPHandler ¶ added in v1.19.0
SetReconnectMCPHandler sets the callback for reconnecting an MCP server.
func (*Model) SetSaveHandler ¶ added in v1.4.0
func (m *Model) SetSaveHandler(handler func())
SetSaveHandler sets the callback for /save command.
func (*Model) SetSessionsHandler ¶ added in v1.10.0
SetSessionsHandler sets the callback for /sessions command.
func (*Model) SetSkillHandler ¶ added in v1.9.0
SetSkillHandler sets the callback for /skill command.
func (*Model) SetSubmitHandler ¶
SetSubmitHandler sets the callback for when the user submits a prompt.
func (*Model) SetTestMCPHandler ¶ added in v1.19.0
func (m *Model) SetTestMCPHandler(handler func(cfg config.MCPServerConfig))
SetTestMCPHandler sets the callback for testing an MCP server connection.
func (*Model) SetTestProviderHandler ¶
SetTestProviderHandler sets the callback invoked when the user presses 't' in the settings screen to test a provider connection.
func (*Model) SetYoloToggleHandler ¶ added in v1.7.0
SetYoloToggleHandler sets the callback for /yolo toggle.
type PlanDoneMsg ¶ added in v0.2.0
PlanDoneMsg signals that a /plan job has completed.
type ProviderChunkMsg ¶
ProviderChunkMsg delivers a streaming chunk from a provider.
type ProviderPanel ¶
type ProviderPanel struct {
Name string
IsPrimary bool
Status ProviderStatus
Content *strings.Builder
Viewport viewport.Model
// Phase-ordered trace sections for structured provider activity.
TraceSections []TraceSection
// contains filtered or unexported fields
}
ProviderPanel holds the state for one provider's response panel.
type ProviderStatus ¶
type ProviderStatus int
ProviderStatus tracks the state of a single provider's response.
const ( StatusIdle ProviderStatus = iota StatusLoading StatusDone StatusFailed StatusTimedOut )
type ProviderTraceMsg ¶ added in v1.12.0
type ProviderTraceMsg struct {
ProviderName string
Phase TracePhase
Delta string
Done bool
Error error
}
ProviderTraceMsg delivers a phase-aware trace event for a provider tab.
type QueryDoneMsg ¶
type QueryDoneMsg struct{}
QueryDoneMsg signals that the full pipeline (fan-out + consensus) is complete.
type QueryStartMsg ¶
type QueryStartMsg struct {
// QueriedProviders lists the provider IDs being queried. If empty,
// all panels are set to loading (backward compat). If set, only the
// listed providers show as loading — others stay idle.
QueriedProviders []string
// RoutingReason is a human-readable explanation of why these providers
// were selected (e.g., "balanced: primary + best-scoring secondary").
RoutingReason string
}
QueryStartMsg signals that a query has begun.
type Styles ¶
type Styles struct {
App lipgloss.Style
StatusBar lipgloss.Style
StatusHealthy lipgloss.Style
StatusUnhealthy lipgloss.Style
StatusPrimary lipgloss.Style
PanelBorder lipgloss.Style
ConsensusBorder lipgloss.Style
InputBorder lipgloss.Style
Title lipgloss.Style
Prompt lipgloss.Style
Dimmed lipgloss.Style
}
Styles holds all lipgloss styles for the TUI.
type TestResultMsg ¶
TestResultMsg is sent when a provider connection test completes.
type TokenUpdateMsg ¶
type TokenUpdateMsg struct {
Usage []tokens.ProviderUsage
}
TokenUpdateMsg delivers a snapshot of token usage for all providers.
type ToolCallMsg ¶ added in v0.2.0
type ToolCallMsg struct {
ToolName string
Description string // e.g., "Reading main.go" or "Running `go test`"
}
ToolCallMsg notifies the TUI that a tool is being executed.
type TracePhase ¶ added in v1.12.0
type TracePhase string
TracePhase identifies which phase of provider activity a trace event belongs to.
const ( PhaseFanout TracePhase = "fanout" PhaseSynthesis TracePhase = "synthesis" PhaseTool TracePhase = "tool" PhaseVerify TracePhase = "verify" )
type TraceSection ¶ added in v1.12.0
TraceSection holds accumulated content for one phase of provider activity.
type WizardTestResultMsg ¶ added in v1.1.0
WizardTestResultMsg is sent when a wizard connection test completes.
type WorkerProgressMsg ¶ added in v0.2.0
type WorkerProgressMsg struct {
StageName string
Role string
ProviderName string
Status string // "pending", "running", "complete"
Summary string // one-line summary of output (set when complete)
}
WorkerProgressMsg updates a worker's status in the TUI during /plan execution.