SYMBOL INDEX (2878 symbols across 279 files) FILE: internal/agent/agent.go constant DefaultSessionName (line 50) | DefaultSessionName = "Untitled Session" constant largeContextWindowThreshold (line 53) | largeContextWindowThreshold = 200_000 constant largeContextWindowBuffer (line 54) | largeContextWindowBuffer = 20_000 constant smallContextWindowRatio (line 55) | smallContextWindowRatio = 0.2 type SessionAgentCall (line 69) | type SessionAgentCall struct type SessionAgent (line 83) | type SessionAgent interface type Model (line 99) | type Model struct type sessionAgent (line 105) | type sessionAgent struct method Run (line 157) | func (a *sessionAgent) Run(ctx context.Context, call SessionAgentCall)... method Summarize (line 587) | func (a *sessionAgent) Summarize(ctx context.Context, sessionID string... method getCacheControlOptions (line 701) | func (a *sessionAgent) getCacheControlOptions() fantasy.ProviderOptions { method createUserMessage (line 718) | func (a *sessionAgent) createUserMessage(ctx context.Context, call Ses... method preparePrompt (line 735) | func (a *sessionAgent) preparePrompt(msgs []message.Message, attachmen... method getSessionMessages (line 773) | func (a *sessionAgent) getSessionMessages(ctx context.Context, session... method generateTitle (line 796) | func (a *sessionAgent) generateTitle(ctx context.Context, sessionID st... method openrouterCost (line 915) | func (a *sessionAgent) openrouterCost(metadata fantasy.ProviderMetadat... method updateSessionUsage (line 928) | func (a *sessionAgent) updateSessionUsage(model Model, session *sessio... method Cancel (line 947) | func (a *sessionAgent) Cancel(sessionID string) { method ClearQueue (line 969) | func (a *sessionAgent) ClearQueue(sessionID string) { method CancelAll (line 976) | func (a *sessionAgent) CancelAll() { method IsBusy (line 995) | func (a *sessionAgent) IsBusy() bool { method IsSessionBusy (line 1006) | func (a *sessionAgent) IsSessionBusy(sessionID string) bool { method QueuedPrompts (line 1011) | func (a *sessionAgent) QueuedPrompts(sessionID string) int { method QueuedPromptsList (line 1019) | func (a *sessionAgent) QueuedPromptsList(sessionID string) []string { method SetModels (line 1031) | func (a *sessionAgent) SetModels(large Model, small Model) { method SetTools (line 1036) | func (a *sessionAgent) SetTools(tools []fantasy.AgentTool) { method SetSystemPrompt (line 1040) | func (a *sessionAgent) SetSystemPrompt(systemPrompt string) { method Model (line 1044) | func (a *sessionAgent) Model() Model { method convertToToolResult (line 1049) | func (a *sessionAgent) convertToToolResult(result fantasy.ToolResultCo... method workaroundProviderMediaLimitations (line 1102) | func (a *sessionAgent) workaroundProviderMediaLimitations(messages []f... type SessionAgentOptions (line 123) | type SessionAgentOptions struct function NewSessionAgent (line 137) | func NewSessionAgent( function buildSummaryPrompt (line 1171) | func buildSummaryPrompt(todos []session.Todo) string { FILE: internal/agent/agent_test.go function getModels (line 29) | func getModels(t *testing.T, r *vcr.Recorder, pair modelPair) (fantasy.L... function setupAgent (line 37) | func setupAgent(t *testing.T, pair modelPair) (SessionAgent, fakeEnv) { function TestCoderAgent (line 48) | func TestCoderAgent(t *testing.T) { function makeTestTodos (line 621) | func makeTestTodos(n int) []session.Todo { function BenchmarkBuildSummaryPrompt (line 632) | func BenchmarkBuildSummaryPrompt(b *testing.B) { FILE: internal/agent/agent_tool.go type AgentParams (line 18) | type AgentParams struct constant AgentToolName (line 23) | AgentToolName = "agent" method agentTool (line 26) | func (c *coordinator) agentTool(ctx context.Context) (fantasy.AgentTool,... FILE: internal/agent/agentic_fetch_tool.go type agenticFetchValidationResult (line 23) | type agenticFetchValidationResult struct function validateAgenticFetchParams (line 29) | func validateAgenticFetchParams(ctx context.Context, params tools.Agenti... method agenticFetchTool (line 53) | func (c *coordinator) agenticFetchTool(_ context.Context, client *http.C... FILE: internal/agent/common_test.go type fakeEnv (line 35) | type fakeEnv struct type builderFunc (line 45) | type builderFunc type modelPair (line 47) | type modelPair struct function anthropicBuilder (line 53) | func anthropicBuilder(model string) builderFunc { function openaiBuilder (line 66) | func openaiBuilder(model string) builderFunc { function openRouterBuilder (line 79) | func openRouterBuilder(model string) builderFunc { function zAIBuilder (line 92) | func zAIBuilder(model string) builderFunc { function testEnv (line 106) | func testEnv(t *testing.T) fakeEnv { function testSessionAgent (line 141) | func testSessionAgent(env fakeEnv, large, small fantasy.LanguageModel, s... function coderAgent (line 168) | func coderAgent(r *vcr.Recorder, env fakeEnv, large, small fantasy.Langu... function createSimpleGoProject (line 228) | func createSimpleGoProject(t *testing.T, dir string) { FILE: internal/agent/coordinator.go type Coordinator (line 60) | type Coordinator interface type coordinator (line 76) | type coordinator struct method Run (line 136) | func (c *coordinator) Run(ctx context.Context, sessionID string, promp... method buildAgent (line 380) | func (c *coordinator) buildAgent(ctx context.Context, prompt *prompt.P... method buildTools (line 422) | func (c *coordinator) buildTools(ctx context.Context, agent config.Age... method buildAgentModels (line 515) | func (c *coordinator) buildAgentModels(ctx context.Context, isSubAgent... method buildAnthropicProvider (line 598) | func (c *coordinator) buildAnthropicProvider(baseURL, apiKey string, h... method buildOpenaiProvider (line 630) | func (c *coordinator) buildOpenaiProvider(baseURL, apiKey string, head... method buildOpenrouterProvider (line 648) | func (c *coordinator) buildOpenrouterProvider(_, apiKey string, header... method buildVercelProvider (line 662) | func (c *coordinator) buildVercelProvider(_, apiKey string, headers ma... method buildOpenaiCompatProvider (line 676) | func (c *coordinator) buildOpenaiCompatProvider(baseURL, apiKey string... method buildAzureProvider (line 705) | func (c *coordinator) buildAzureProvider(baseURL, apiKey string, heade... method buildBedrockProvider (line 728) | func (c *coordinator) buildBedrockProvider(apiKey string, headers map[... method buildGoogleProvider (line 748) | func (c *coordinator) buildGoogleProvider(baseURL, apiKey string, head... method buildGoogleVertexProvider (line 763) | func (c *coordinator) buildGoogleVertexProvider(headers map[string]str... method buildHyperProvider (line 781) | func (c *coordinator) buildHyperProvider(baseURL, apiKey string) (fant... method isAnthropicThinking (line 793) | func (c *coordinator) isAnthropicThinking(model config.SelectedModel) ... method buildProvider (line 801) | func (c *coordinator) buildProvider(providerCfg config.ProviderConfig,... method Cancel (line 862) | func (c *coordinator) Cancel(sessionID string) { method CancelAll (line 866) | func (c *coordinator) CancelAll() { method ClearQueue (line 870) | func (c *coordinator) ClearQueue(sessionID string) { method IsBusy (line 874) | func (c *coordinator) IsBusy() bool { method IsSessionBusy (line 878) | func (c *coordinator) IsSessionBusy(sessionID string) bool { method Model (line 882) | func (c *coordinator) Model() Model { method UpdateModels (line 886) | func (c *coordinator) UpdateModels(ctx context.Context) error { method QueuedPrompts (line 907) | func (c *coordinator) QueuedPrompts(sessionID string) int { method QueuedPromptsList (line 911) | func (c *coordinator) QueuedPromptsList(sessionID string) []string { method Summarize (line 915) | func (c *coordinator) Summarize(ctx context.Context, sessionID string)... method isUnauthorized (line 923) | func (c *coordinator) isUnauthorized(err error) bool { method refreshOAuth2Token (line 928) | func (c *coordinator) refreshOAuth2Token(ctx context.Context, provider... method refreshApiKeyTemplate (line 939) | func (c *coordinator) refreshApiKeyTemplate(ctx context.Context, provi... method runSubAgent (line 971) | func (c *coordinator) runSubAgent(ctx context.Context, params subAgent... method updateParentSessionCost (line 1022) | func (c *coordinator) updateParentSessionCost(ctx context.Context, chi... function NewCoordinator (line 92) | func NewCoordinator( function getProviderOptions (line 215) | func getProviderOptions(model Model, providerCfg config.ProviderConfig) ... function mergeCallOptions (line 370) | func mergeCallOptions(model Model, cfg config.ProviderConfig) (fantasy.P... function isExactoSupported (line 851) | func isExactoSupported(modelID string) bool { type subAgentParams (line 956) | type subAgentParams struct FILE: internal/agent/coordinator_test.go type mockSessionAgent (line 16) | type mockSessionAgent struct method Run (line 22) | func (m *mockSessionAgent) Run(ctx context.Context, call SessionAgentC... method Model (line 26) | func (m *mockSessionAgent) Model() Model { retu... method SetModels (line 27) | func (m *mockSessionAgent) SetModels(large, small Model) {} method SetTools (line 28) | func (m *mockSessionAgent) SetTools(tools []fantasy.AgentTool) {} method SetSystemPrompt (line 29) | func (m *mockSessionAgent) SetSystemPrompt(systemPrompt string) {} method Cancel (line 30) | func (m *mockSessionAgent) Cancel(sessionID string) { method CancelAll (line 33) | func (m *mockSessionAgent) CancelAll() ... method IsSessionBusy (line 34) | func (m *mockSessionAgent) IsSessionBusy(sessionID string) bool ... method IsBusy (line 35) | func (m *mockSessionAgent) IsBusy() bool ... method QueuedPrompts (line 36) | func (m *mockSessionAgent) QueuedPrompts(sessionID string) int ... method QueuedPromptsList (line 37) | func (m *mockSessionAgent) QueuedPromptsList(sessionID string) []strin... method ClearQueue (line 38) | func (m *mockSessionAgent) ClearQueue(sessionID string) ... method Summarize (line 39) | func (m *mockSessionAgent) Summarize(context.Context, string, fantasy.... function newTestCoordinator (line 44) | func newTestCoordinator(t *testing.T, env fakeEnv, providerID string, pr... function newMockAgent (line 55) | func newMockAgent(providerID string, maxTokens int64, runFunc func(conte... function agentResultWithText (line 70) | func agentResultWithText(text string) *fantasy.AgentResult { function TestRunSubAgent (line 80) | func TestRunSubAgent(t *testing.T) { function TestUpdateParentSessionCost (line 280) | func TestUpdateParentSessionCost(t *testing.T) { FILE: internal/agent/event.go method eventPromptSent (line 10) | func (a *sessionAgent) eventPromptSent(sessionID string) { method eventPromptResponded (line 16) | func (a *sessionAgent) eventPromptResponded(sessionID string, duration t... method eventTokensUsed (line 26) | func (a *sessionAgent) eventTokensUsed(sessionID string, model Model, us... method eventCommon (line 40) | func (a *sessionAgent) eventCommon(sessionID string, model Model) []any { FILE: internal/agent/hyper/provider.go constant Name (line 62) | Name = "hyper" constant defaultBaseURL (line 64) | defaultBaseURL = "https://hyper.charm.land" type options (line 74) | type options struct function New (line 86) | func New(opts ...Option) (fantasy.Provider, error) { function WithBaseURL (line 102) | func WithBaseURL(url string) Option { return func(o *options) { o.baseUR... function WithName (line 105) | func WithName(name string) Option { return func(o *options) { o.name = n... function WithHeaders (line 108) | func WithHeaders(headers map[string]string) Option { function WithHTTPClient (line 115) | func WithHTTPClient(c *http.Client) Option { return func(o *options) { o... function WithAPIKey (line 118) | func WithAPIKey(key string) Option { type provider (line 124) | type provider struct method Name (line 126) | func (p *provider) Name() string { return p.options.name } method LanguageModel (line 129) | func (p *provider) LanguageModel(_ context.Context, modelID string) (f... type languageModel (line 136) | type languageModel struct method GenerateObject (line 143) | func (m *languageModel) GenerateObject(ctx context.Context, call fanta... method StreamObject (line 148) | func (m *languageModel) StreamObject(ctx context.Context, call fantasy... method Provider (line 152) | func (m *languageModel) Provider() string { return m.provider } method Model (line 153) | func (m *languageModel) Model() string { return m.modelID } method Generate (line 156) | func (m *languageModel) Generate(ctx context.Context, call fantasy.Cal... method Stream (line 174) | func (m *languageModel) Stream(ctx context.Context, call fantasy.Call)... method doRequest (line 275) | func (m *languageModel) doRequest(ctx context.Context, stream bool, ca... function ioReadAllLimit (line 313) | func ioReadAllLimit(r io.Reader, n int64) ([]byte, error) { function toProviderError (line 323) | func toProviderError(resp *http.Response, message string) error { function retryAfter (line 331) | func retryAfter(resp *http.Response) string { FILE: internal/agent/loop_detection.go constant loopDetectionWindowSize (line 12) | loopDetectionWindowSize = 10 constant loopDetectionMaxRepeats (line 13) | loopDetectionMaxRepeats = 5 function hasRepeatedToolCalls (line 19) | func hasRepeatedToolCalls(steps []fantasy.StepResult, windowSize, maxRep... function getToolInteractionSignature (line 45) | func getToolInteractionSignature(content fantasy.ResponseContent) string { function toolResultOutputString (line 75) | func toolResultOutputString(result fantasy.ToolResultOutputContent) stri... FILE: internal/agent/loop_detection_test.go function makeStep (line 11) | func makeStep(calls []fantasy.ToolCallContent, results []fantasy.ToolRes... function makeToolStep (line 27) | func makeToolStep(name, input, output string) fantasy.StepResult { function makeEmptyStep (line 40) | func makeEmptyStep() fantasy.StepResult { function TestHasRepeatedToolCalls (line 50) | func TestHasRepeatedToolCalls(t *testing.T) { function TestGetToolInteractionSignature (line 145) | func TestGetToolInteractionSignature(t *testing.T) { FILE: internal/agent/notify/notify.go type Type (line 7) | type Type constant TypeAgentFinished (line 11) | TypeAgentFinished Type = "agent_finished" type Notification (line 15) | type Notification struct FILE: internal/agent/prompt/prompt.go type Prompt (line 21) | type Prompt struct method Build (line 79) | func (p *Prompt) Build(ctx context.Context, provider, model string, st... method promptData (line 151) | func (p *Prompt) promptData(ctx context.Context, provider, model strin... method Name (line 262) | func (p *Prompt) Name() string { type PromptDat (line 29) | type PromptDat struct type ContextFile (line 42) | type ContextFile struct type Option (line 47) | type Option function WithTimeFunc (line 49) | func WithTimeFunc(fn func() time.Time) Option { function WithPlatform (line 55) | func WithPlatform(platform string) Option { function WithWorkingDir (line 61) | func WithWorkingDir(workingDir string) Option { function NewPrompt (line 67) | func NewPrompt(name, promptTemplate string, opts ...Option) (*Prompt, er... function processFile (line 96) | func processFile(filePath string) *ContextFile { function processContextPath (line 107) | func processContextPath(p string, store *config.ConfigStore) []ContextFi... function expandPath (line 139) | func expandPath(path string, store *config.ConfigStore) string { function isGitRepo (line 205) | func isGitRepo(dir string) bool { function getGitStatus (line 210) | func getGitStatus(ctx context.Context, dir string) (string, error) { function getGitBranch (line 229) | func getGitBranch(ctx context.Context, sh *shell.Shell) (string, error) { function getGitStatusSummary (line 241) | func getGitStatusSummary(ctx context.Context, sh *shell.Shell) (string, ... function getGitRecentCommits (line 253) | func getGitRecentCommits(ctx context.Context, sh *shell.Shell) (string, ... FILE: internal/agent/prompts.go function coderPrompt (line 20) | func coderPrompt(opts ...prompt.Option) (*prompt.Prompt, error) { function taskPrompt (line 28) | func taskPrompt(opts ...prompt.Option) (*prompt.Prompt, error) { function InitializePrompt (line 36) | func InitializePrompt(cfg *config.ConfigStore) (string, error) { FILE: internal/agent/tools/bash.go type BashParams (line 22) | type BashParams struct type BashPermissionsParams (line 30) | type BashPermissionsParams struct type BashResponseMetadata (line 38) | type BashResponseMetadata struct constant BashToolName (line 49) | BashToolName = "bash" constant DefaultAutoBackgroundAfter (line 51) | DefaultAutoBackgroundAfter = 60 constant MaxOutputLength (line 52) | MaxOutputLength = 30000 constant BashNoOutput (line 53) | BashNoOutput = "no output" type bashDescriptionData (line 64) | type bashDescriptionData struct function bashDescription (line 144) | func bashDescription(attribution *config.Attribution, modelName string) ... function blockFuncs (line 159) | func blockFuncs() []shell.BlockFunc { function NewBashTool (line 191) | func NewBashTool(permissions permission.Service, workingDir string, attr... function formatOutput (line 380) | func formatOutput(stdout, stderr string, execErr error) string { function truncateOutput (line 417) | func truncateOutput(content string) string { function countLines (line 430) | func countLines(s string) int { function normalizeWorkingDir (line 437) | func normalizeWorkingDir(path string) string { FILE: internal/agent/tools/bash_test.go type mockBashPermissionService (line 16) | type mockBashPermissionService struct method Request (line 20) | func (m *mockBashPermissionService) Request(ctx context.Context, req p... method Grant (line 24) | func (m *mockBashPermissionService) Grant(req permission.PermissionReq... method Deny (line 26) | func (m *mockBashPermissionService) Deny(req permission.PermissionRequ... method GrantPersistent (line 28) | func (m *mockBashPermissionService) GrantPersistent(req permission.Per... method AutoApproveSession (line 30) | func (m *mockBashPermissionService) AutoApproveSession(sessionID strin... method SetSkipRequests (line 32) | func (m *mockBashPermissionService) SetSkipRequests(skip bool) {} method SkipRequests (line 34) | func (m *mockBashPermissionService) SkipRequests() bool { method SubscribeNotifications (line 38) | func (m *mockBashPermissionService) SubscribeNotifications(ctx context... function TestBashTool_DefaultAutoBackgroundThreshold (line 42) | func TestBashTool_DefaultAutoBackgroundThreshold(t *testing.T) { function TestBashTool_CustomAutoBackgroundThreshold (line 60) | func TestBashTool_CustomAutoBackgroundThreshold(t *testing.T) { function newBashToolForTest (line 82) | func newBashToolForTest(workingDir string) fantasy.AgentTool { function runBashTool (line 88) | func runBashTool(t *testing.T, tool fantasy.AgentTool, ctx context.Conte... FILE: internal/agent/tools/context_test.go type testStringKey (line 10) | type testStringKey type testBoolKey (line 11) | type testBoolKey type testIntKey (line 12) | type testIntKey constant testKey (line 16) | testKey testStringKey = "testKey" constant missingKey (line 17) | missingKey testStringKey = "missingKey" constant boolTestKey (line 18) | boolTestKey testBoolKey = "boolKey" constant intTestKey (line 19) | intTestKey testIntKey = "intKey" function TestGetContextValue (line 22) | func TestGetContextValue(t *testing.T) { function TestGetSessionFromContext (line 98) | func TestGetSessionFromContext(t *testing.T) { function TestGetMessageFromContext (line 131) | func TestGetMessageFromContext(t *testing.T) { function TestGetSupportsImagesFromContext (line 164) | func TestGetSupportsImagesFromContext(t *testing.T) { function TestGetModelNameFromContext (line 202) | func TestGetModelNameFromContext(t *testing.T) { FILE: internal/agent/tools/diagnostics.go type DiagnosticsParams (line 18) | type DiagnosticsParams struct constant DiagnosticsToolName (line 22) | DiagnosticsToolName = "lsp_diagnostics" function NewDiagnosticsTool (line 27) | func NewDiagnosticsTool(lspManager *lsp.Manager) fantasy.AgentTool { function openInLSPs (line 44) | func openInLSPs( function waitForLSPDiagnostics (line 66) | func waitForLSPDiagnostics( function notifyLSPs (line 90) | func notifyLSPs( function getDiagnostics (line 111) | func getDiagnostics(filePath string, manager *lsp.Manager) string { function writeDiagnostics (line 161) | func writeDiagnostics(output *strings.Builder, tag string, in []string) { function sortDiagnostics (line 175) | func sortDiagnostics(in []string) []string { function formatDiagnostic (line 187) | func formatDiagnostic(pth string, diagnostic protocol.Diagnostic, source... function countSeverity (line 235) | func countSeverity(diagnostics []string, severity string) int { FILE: internal/agent/tools/download.go type DownloadParams (line 20) | type DownloadParams struct type DownloadPermissionsParams (line 26) | type DownloadPermissionsParams struct constant DownloadToolName (line 32) | DownloadToolName = "download" function NewDownloadTool (line 37) | func NewDownloadTool(permissions permission.Service, workingDir string, ... FILE: internal/agent/tools/edit.go type EditParams (line 24) | type EditParams struct type EditPermissionsParams (line 31) | type EditPermissionsParams struct type EditResponseMetadata (line 37) | type EditResponseMetadata struct constant EditToolName (line 44) | EditToolName = "edit" type editContext (line 54) | type editContext struct function NewEditTool (line 62) | func NewEditTool( function createNewFile (line 110) | func createNewFile(edit editContext, filePath, content string, call fant... function deleteContent (line 190) | func deleteContent(edit editContext, filePath, oldString string, replace... function replaceContent (line 321) | func replaceContent(edit editContext, filePath, oldString, newString str... FILE: internal/agent/tools/fetch.go constant FetchToolName (line 19) | FetchToolName = "fetch" function NewFetchTool (line 24) | func NewFetchTool(permissions permission.Service, workingDir string, cli... function extractTextFromHTML (line 173) | func extractTextFromHTML(html string) (string, error) { function convertHTMLToMarkdown (line 185) | func convertHTMLToMarkdown(html string) (string, error) { FILE: internal/agent/tools/fetch_helpers.go constant BrowserUserAgent (line 20) | BrowserUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKi... function FetchURLAndConvert (line 25) | func FetchURLAndConvert(ctx context.Context, client *http.Client, url st... function removeNoisyElements (line 83) | func removeNoisyElements(htmlContent string) string { function cleanupMarkdown (line 131) | func cleanupMarkdown(content string) string { function ConvertHTMLToMarkdown (line 149) | func ConvertHTMLToMarkdown(htmlContent string) (string, error) { function FormatJSON (line 161) | func FormatJSON(content string) (string, error) { FILE: internal/agent/tools/fetch_types.go constant AgenticFetchToolName (line 4) | AgenticFetchToolName = "agentic_fetch" constant WebFetchToolName (line 7) | WebFetchToolName = "web_fetch" constant WebSearchToolName (line 10) | WebSearchToolName = "web_search" constant LargeContentThreshold (line 13) | LargeContentThreshold = 50000 type AgenticFetchParams (line 16) | type AgenticFetchParams struct type AgenticFetchPermissionsParams (line 22) | type AgenticFetchPermissionsParams struct type WebFetchParams (line 28) | type WebFetchParams struct type WebSearchParams (line 33) | type WebSearchParams struct type FetchParams (line 39) | type FetchParams struct type FetchPermissionsParams (line 46) | type FetchPermissionsParams struct FILE: internal/agent/tools/glob.go constant GlobToolName (line 19) | GlobToolName = "glob" type GlobParams (line 24) | type GlobParams struct type GlobResponseMetadata (line 29) | type GlobResponseMetadata struct function NewGlobTool (line 34) | func NewGlobTool(workingDir string) fantasy.AgentTool { function globFiles (line 71) | func globFiles(ctx context.Context, pattern, searchPath string, limit in... function runRipgrep (line 85) | func runRipgrep(cmd *exec.Cmd, searchRoot string, limit int) ([]string, ... function normalizeFilePaths (line 119) | func normalizeFilePaths(paths []string) { FILE: internal/agent/tools/grep.go type regexCache (line 28) | type regexCache struct method get (line 40) | func (rc *regexCache) get(pattern string) (*regexp.Regexp, error) { function newRegexCache (line 33) | func newRegexCache() *regexCache { function ResetCache (line 52) | func ResetCache() { type GrepParams (line 65) | type GrepParams struct type grepMatch (line 72) | type grepMatch struct type GrepResponseMetadata (line 80) | type GrepResponseMetadata struct constant GrepToolName (line 86) | GrepToolName = "grep" constant maxGrepContentWidth (line 87) | maxGrepContentWidth = 500 function escapeRegexPattern (line 94) | func escapeRegexPattern(pattern string) string { function NewGrepTool (line 105) | func NewGrepTool(workingDir string, config config.ToolGrep) fantasy.Agen... function searchFiles (line 174) | func searchFiles(ctx context.Context, pattern, rootPath, include string,... function searchWithRipgrep (line 195) | func searchWithRipgrep(ctx context.Context, pattern, path, include strin... type ripgrepMatch (line 248) | type ripgrepMatch struct function searchFilesWithRegex (line 264) | func searchFilesWithRegex(pattern, rootPath, include string) ([]grepMatc... function fileContainsPattern (line 341) | func fileContainsPattern(filePath string, pattern *regexp.Regexp) (bool,... function isTextFile (line 368) | func isTextFile(filePath string) bool { function globToRegex (line 393) | func globToRegex(glob string) string { FILE: internal/agent/tools/grep_test.go function TestRegexCache (line 12) | func TestRegexCache(t *testing.T) { function TestGlobToRegexCaching (line 38) | func TestGlobToRegexCaching(t *testing.T) { function TestGrepWithIgnoreFiles (line 59) | func TestGrepWithIgnoreFiles(t *testing.T) { function TestSearchImplementations (line 124) | func TestSearchImplementations(t *testing.T) { function BenchmarkRegexCacheVsCompile (line 179) | func BenchmarkRegexCacheVsCompile(b *testing.B) { function TestIsTextFile (line 202) | func TestIsTextFile(t *testing.T) { function TestColumnMatch (line 394) | func TestColumnMatch(t *testing.T) { FILE: internal/agent/tools/job_kill.go constant JobKillToolName (line 13) | JobKillToolName = "job_kill" type JobKillParams (line 19) | type JobKillParams struct type JobKillResponseMetadata (line 23) | type JobKillResponseMetadata struct function NewJobKillTool (line 29) | func NewJobKillTool() fantasy.AgentTool { FILE: internal/agent/tools/job_output.go constant JobOutputToolName (line 14) | JobOutputToolName = "job_output" type JobOutputParams (line 20) | type JobOutputParams struct type JobOutputResponseMetadata (line 25) | type JobOutputResponseMetadata struct function NewJobOutputTool (line 33) | func NewJobOutputTool() fantasy.AgentTool { FILE: internal/agent/tools/job_test.go function TestBackgroundShell_Integration (line 13) | func TestBackgroundShell_Integration(t *testing.T) { function TestBackgroundShell_Kill (line 40) | func TestBackgroundShell_Kill(t *testing.T) { function TestBackgroundShell_MultipleOutputCalls (line 63) | func TestBackgroundShell_MultipleOutputCalls(t *testing.T) { function TestBackgroundShell_EmptyOutput (line 99) | func TestBackgroundShell_EmptyOutput(t *testing.T) { function TestBackgroundShell_ExitCode (line 125) | func TestBackgroundShell_ExitCode(t *testing.T) { function TestBackgroundShell_WithBlockFuncs (line 149) | func TestBackgroundShell_WithBlockFuncs(t *testing.T) { function TestBackgroundShell_StdoutAndStderr (line 182) | func TestBackgroundShell_StdoutAndStderr(t *testing.T) { function TestBackgroundShell_ConcurrentAccess (line 204) | func TestBackgroundShell_ConcurrentAccess(t *testing.T) { function TestBackgroundShell_List (line 254) | func TestBackgroundShell_List(t *testing.T) { function TestBackgroundShell_AutoBackground (line 284) | func TestBackgroundShell_AutoBackground(t *testing.T) { FILE: internal/agent/tools/list_mcp_resources.go type ListMCPResourcesParams (line 18) | type ListMCPResourcesParams struct type ListMCPResourcesPermissionsParams (line 22) | type ListMCPResourcesPermissionsParams struct constant ListMCPResourcesToolName (line 26) | ListMCPResourcesToolName = "list_mcp_resources" function NewListMCPResourcesTool (line 31) | func NewListMCPResourcesTool(cfg *config.ConfigStore, permissions permis... FILE: internal/agent/tools/ls.go type LSParams (line 19) | type LSParams struct type LSPermissionsParams (line 25) | type LSPermissionsParams struct type NodeType (line 31) | type NodeType constant NodeTypeFile (line 34) | NodeTypeFile NodeType = "file" constant NodeTypeDirectory (line 35) | NodeTypeDirectory NodeType = "directory" type TreeNode (line 38) | type TreeNode struct type LSResponseMetadata (line 45) | type LSResponseMetadata struct constant LSToolName (line 51) | LSToolName = "ls" constant maxLSFiles (line 52) | maxLSFiles = 1000 function NewLsTool (line 58) | func NewLsTool(permissions permission.Service, workingDir string, lsConf... function ListDirectoryTree (line 120) | func ListDirectoryTree(searchPath string, params LSParams, lsConfig conf... function createFileTree (line 153) | func createFileTree(sortedPaths []string, rootPath string) []*TreeNode { function printTree (line 217) | func printTree(tree []*TreeNode, rootPath string) string { function printNode (line 234) | func printNode(builder *strings.Builder, node *TreeNode, level int) { FILE: internal/agent/tools/lsp_restart.go constant LSPRestartToolName (line 16) | LSPRestartToolName = "lsp_restart" type LSPRestartParams (line 21) | type LSPRestartParams struct function NewLSPRestartTool (line 27) | func NewLSPRestartTool(lspManager *lsp.Manager) fantasy.AgentTool { FILE: internal/agent/tools/mcp-tools.go function GetMCPTools (line 24) | func GetMCPTools(permissions permission.Service, cfg *config.ConfigStore... type Tool (line 41) | type Tool struct method SetProviderOptions (line 50) | func (m *Tool) SetProviderOptions(opts fantasy.ProviderOptions) { method ProviderOptions (line 54) | func (m *Tool) ProviderOptions() fantasy.ProviderOptions { method Name (line 58) | func (m *Tool) Name() string { method MCP (line 62) | func (m *Tool) MCP() string { method MCPToolName (line 66) | func (m *Tool) MCPToolName() string { method Info (line 70) | func (m *Tool) Info() fantasy.ToolInfo { method Run (line 99) | func (m *Tool) Run(ctx context.Context, params fantasy.ToolCall) (fant... FILE: internal/agent/tools/mcp/init.go function parseLevel (line 28) | func parseLevel(level mcp.LoggingLevel) slog.Level { type ClientSession (line 44) | type ClientSession struct method Close (line 50) | func (s *ClientSession) Close() error { type State (line 64) | type State method String (line 73) | func (s State) String() string { constant StateDisabled (line 67) | StateDisabled State = iota constant StateStarting (line 68) | StateStarting constant StateConnected (line 69) | StateConnected constant StateError (line 70) | StateError type EventType (line 89) | type EventType constant EventStateChanged (line 92) | EventStateChanged EventType = iota constant EventToolsListChanged (line 93) | EventToolsListChanged constant EventPromptsListChanged (line 94) | EventPromptsListChanged constant EventResourcesListChanged (line 95) | EventResourcesListChanged type Event (line 99) | type Event struct type Counts (line 108) | type Counts struct type ClientInfo (line 115) | type ClientInfo struct function SubscribeEvents (line 125) | func SubscribeEvents(ctx context.Context) <-chan pubsub.Event[Event] { function GetStates (line 130) | func GetStates() map[string]ClientInfo { function GetState (line 135) | func GetState(name string) (ClientInfo, bool) { function Close (line 140) | func Close(ctx context.Context) error { function Initialize (line 166) | func Initialize(ctx context.Context, permissions permission.Service, cfg... function WaitForInit (line 208) | func WaitForInit(ctx context.Context) error { function InitializeSingle (line 218) | func InitializeSingle(ctx context.Context, name string, cfg *config.Conf... function initClient (line 234) | func initClient(ctx context.Context, cfg *config.ConfigStore, name strin... function DisableSingle (line 273) | func DisableSingle(cfg *config.ConfigStore, name string) error { function getOrRenewClient (line 296) | func getOrRenewClient(ctx context.Context, cfg *config.ConfigStore, name... function updateState (line 325) | func updateState(name string, state State, err error, client *ClientSess... function createSession (line 351) | func createSession(ctx context.Context, name string, m config.MCPConfig,... function maybeStdioErr (line 419) | func maybeStdioErr(err error, transport mcp.Transport) error { function maybeTimeoutErr (line 433) | func maybeTimeoutErr(err error, timeout time.Duration) error { function createTransport (line 440) | func createTransport(ctx context.Context, m config.MCPConfig, resolver c... type headerRoundTripper (line 486) | type headerRoundTripper struct method RoundTrip (line 490) | func (rt headerRoundTripper) RoundTrip(req *http.Request) (*http.Respo... function mcpTimeout (line 497) | func mcpTimeout(m config.MCPConfig) time.Duration { function stdioCheck (line 501) | func stdioCheck(old *exec.Cmd) error { FILE: internal/agent/tools/mcp/init_test.go function TestMCPSession_CancelOnClose (line 12) | func TestMCPSession_CancelOnClose(t *testing.T) { FILE: internal/agent/tools/mcp/prompts.go function Prompts (line 18) | func Prompts() iter.Seq2[string, []*Prompt] { function GetPromptMessages (line 23) | func GetPromptMessages(ctx context.Context, cfg *config.ConfigStore, cli... function RefreshPrompts (line 50) | func RefreshPrompts(ctx context.Context, name string) { function getPrompts (line 70) | func getPrompts(ctx context.Context, c *ClientSession) ([]*Prompt, error) { function updatePrompts (line 82) | func updatePrompts(mcpName string, prompts []*Prompt) { FILE: internal/agent/tools/mcp/resources.go function Resources (line 22) | func Resources() iter.Seq2[string, []*Resource] { function ListResources (line 27) | func ListResources(ctx context.Context, cfg *config.ConfigStore, name st... function ReadResource (line 46) | func ReadResource(ctx context.Context, cfg *config.ConfigStore, name, ur... function RefreshResources (line 60) | func RefreshResources(ctx context.Context, name string) { function getResources (line 80) | func getResources(ctx context.Context, c *ClientSession) ([]*Resource, e... function isMethodNotFoundError (line 97) | func isMethodNotFoundError(err error) bool { function updateResources (line 102) | func updateResources(name string, resources []*Resource) int { FILE: internal/agent/tools/mcp/tools.go type ToolResult (line 21) | type ToolResult struct function Tools (line 31) | func Tools() iter.Seq2[string, []*Tool] { function RunTool (line 36) | func RunTool(ctx context.Context, cfg *config.ConfigStore, name, toolNam... function RefreshTools (line 113) | func RefreshTools(ctx context.Context, cfg *config.ConfigStore, name str... function getTools (line 133) | func getTools(ctx context.Context, session *ClientSession) ([]*Tool, err... function updateTools (line 144) | func updateTools(cfg *config.ConfigStore, name string, tools []*Tool) int { function filterDisabledTools (line 155) | func filterDisabledTools(cfg *config.ConfigStore, mcpName string, tools ... function ensureBase64 (line 172) | func ensureBase64(data []byte) []byte { function normalizeBase64Input (line 189) | func normalizeBase64Input(data []byte) []byte { function decodeBase64 (line 194) | func decodeBase64(data []byte) ([]byte, bool) { function isValidBase64 (line 218) | func isValidBase64(data []byte) bool { FILE: internal/agent/tools/mcp/tools_test.go function TestEnsureBase64 (line 10) | func TestEnsureBase64(t *testing.T) { function TestIsValidBase64 (line 73) | func TestIsValidBase64(t *testing.T) { FILE: internal/agent/tools/multiedit.go type MultiEditOperation (line 23) | type MultiEditOperation struct type MultiEditParams (line 29) | type MultiEditParams struct type MultiEditPermissionsParams (line 34) | type MultiEditPermissionsParams struct type FailedEdit (line 40) | type FailedEdit struct type MultiEditResponseMetadata (line 46) | type MultiEditResponseMetadata struct constant MultiEditToolName (line 55) | MultiEditToolName = "multiedit" function NewMultiEditTool (line 60) | func NewMultiEditTool( function validateEdits (line 116) | func validateEdits(edits []MultiEditOperation) error { function processMultiEditWithCreation (line 126) | func processMultiEditWithCreation(edit editContext, params MultiEditPara... function processMultiEditExistingFile (line 240) | func processMultiEditExistingFile(edit editContext, params MultiEditPara... function applyEditToContent (line 397) | func applyEditToContent(content string, edit MultiEditOperation) (string... FILE: internal/agent/tools/multiedit_test.go type mockPermissionService (line 15) | type mockPermissionService struct method Request (line 19) | func (m *mockPermissionService) Request(ctx context.Context, req permi... method Grant (line 23) | func (m *mockPermissionService) Grant(req permission.PermissionRequest... method Deny (line 25) | func (m *mockPermissionService) Deny(req permission.PermissionRequest) {} method GrantPersistent (line 27) | func (m *mockPermissionService) GrantPersistent(req permission.Permiss... method AutoApproveSession (line 29) | func (m *mockPermissionService) AutoApproveSession(sessionID string) {} method SetSkipRequests (line 31) | func (m *mockPermissionService) SetSkipRequests(skip bool) {} method SkipRequests (line 33) | func (m *mockPermissionService) SkipRequests() bool { method SubscribeNotifications (line 37) | func (m *mockPermissionService) SubscribeNotifications(ctx context.Con... type mockHistoryService (line 41) | type mockHistoryService struct method Create (line 45) | func (m *mockHistoryService) Create(ctx context.Context, sessionID, pa... method CreateVersion (line 49) | func (m *mockHistoryService) CreateVersion(ctx context.Context, sessio... method GetByPathAndSession (line 53) | func (m *mockHistoryService) GetByPathAndSession(ctx context.Context, ... method Get (line 57) | func (m *mockHistoryService) Get(ctx context.Context, id string) (hist... method ListBySession (line 61) | func (m *mockHistoryService) ListBySession(ctx context.Context, sessio... method ListLatestSessionFiles (line 65) | func (m *mockHistoryService) ListLatestSessionFiles(ctx context.Contex... method Delete (line 69) | func (m *mockHistoryService) Delete(ctx context.Context, id string) er... method DeleteSessionFiles (line 73) | func (m *mockHistoryService) DeleteSessionFiles(ctx context.Context, s... function TestApplyEditToContentPartialSuccess (line 77) | func TestApplyEditToContentPartialSuccess(t *testing.T) { function TestMultiEditSequentialApplication (line 100) | func TestMultiEditSequentialApplication(t *testing.T) { function TestMultiEditAllEditsSucceed (line 155) | func TestMultiEditAllEditsSucceed(t *testing.T) { function TestMultiEditAllEditsFail (line 184) | func TestMultiEditAllEditsFail(t *testing.T) { FILE: internal/agent/tools/read_mcp_resource.go type ReadMCPResourceParams (line 18) | type ReadMCPResourceParams struct type ReadMCPResourcePermissionsParams (line 23) | type ReadMCPResourcePermissionsParams struct constant ReadMCPResourceToolName (line 28) | ReadMCPResourceToolName = "read_mcp_resource" function NewReadMCPResourceTool (line 33) | func NewReadMCPResourceTool(cfg *config.ConfigStore, permissions permiss... FILE: internal/agent/tools/references.go type ReferencesParams (line 22) | type ReferencesParams struct type referencesTool (line 27) | type referencesTool struct method Name (line 93) | func (r *referencesTool) Name() string { constant ReferencesToolName (line 31) | ReferencesToolName = "lsp_references" function NewReferencesTool (line 36) | func NewReferencesTool(lspManager *lsp.Manager) fantasy.AgentTool { function find (line 97) | func find(ctx context.Context, lspManager *lsp.Manager, symbol string, m... function getSymbolOffset (line 127) | func getSymbolOffset(symbol string) int { function cleanupLocations (line 143) | func cleanupLocations(locations []protocol.Location) []protocol.Location { function groupByFilename (line 160) | func groupByFilename(locations []protocol.Location) map[string][]protoco... function formatReferences (line 173) | func formatReferences(locations []protocol.Location) string { FILE: internal/agent/tools/rg.go function getRgCmd (line 25) | func getRgCmd(ctx context.Context, globPattern string) *exec.Cmd { function getRgSearchCmd (line 40) | func getRgSearchCmd(ctx context.Context, pattern, path, include string) ... FILE: internal/agent/tools/safe.go function init (line 57) | func init() { FILE: internal/agent/tools/search.go type SearchResult (line 19) | type SearchResult struct function searchDuckDuckGo (line 48) | func searchDuckDuckGo(ctx context.Context, client *http.Client, query st... function setRandomizedHeaders (line 80) | func setRandomizedHeaders(req *http.Request) { function parseLiteSearchResults (line 97) | func parseLiteSearchResults(htmlContent string, maxResults int) ([]Searc... function hasClass (line 147) | func hasClass(n *html.Node, class string) bool { function getTextContent (line 158) | func getTextContent(n *html.Node) string { function cleanDuckDuckGoURL (line 173) | func cleanDuckDuckGoURL(rawURL string) string { function formatSearchResults (line 188) | func formatSearchResults(results []SearchResult) string { function maybeDelaySearch (line 209) | func maybeDelaySearch() { FILE: internal/agent/tools/sourcegraph.go type SourcegraphParams (line 17) | type SourcegraphParams struct type SourcegraphResponseMetadata (line 24) | type SourcegraphResponseMetadata struct constant SourcegraphToolName (line 29) | SourcegraphToolName = "sourcegraph" function NewSourcegraphTool (line 34) | func NewSourcegraphTool(client *http.Client) fantasy.AgentTool { function formatSourcegraphResults (line 140) | func formatSourcegraphResults(result map[string]any, contextWindow int) ... FILE: internal/agent/tools/todos.go constant TodosToolName (line 15) | TodosToolName = "todos" type TodosParams (line 17) | type TodosParams struct type TodoItem (line 21) | type TodoItem struct type TodosResponseMetadata (line 27) | type TodosResponseMetadata struct function NewTodosTool (line 36) | func NewTodosTool(sessions session.Service) fantasy.AgentTool { FILE: internal/agent/tools/tools.go type sessionIDContextKey (line 8) | type sessionIDContextKey type messageIDContextKey (line 9) | type messageIDContextKey type supportsImagesKey (line 10) | type supportsImagesKey type modelNameKey (line 11) | type modelNameKey constant SessionIDContextKey (line 16) | SessionIDContextKey sessionIDContextKey = "session_id" constant MessageIDContextKey (line 18) | MessageIDContextKey messageIDContextKey = "message_id" constant SupportsImagesContextKey (line 20) | SupportsImagesContextKey supportsImagesKey = "supports_images" constant ModelNameContextKey (line 22) | ModelNameContextKey modelNameKey = "model_name" function getContextValue (line 27) | func getContextValue[T any](ctx context.Context, key any, defaultValue T... function GetSessionFromContext (line 39) | func GetSessionFromContext(ctx context.Context) string { function GetMessageFromContext (line 44) | func GetMessageFromContext(ctx context.Context) string { function GetSupportsImagesFromContext (line 49) | func GetSupportsImagesFromContext(ctx context.Context) bool { function GetModelNameFromContext (line 54) | func GetModelNameFromContext(ctx context.Context) string { FILE: internal/agent/tools/view.go type ViewParams (line 27) | type ViewParams struct type ViewPermissionsParams (line 33) | type ViewPermissionsParams struct type ViewResourceType (line 39) | type ViewResourceType constant ViewResourceUnset (line 42) | ViewResourceUnset ViewResourceType = "" constant ViewResourceSkill (line 43) | ViewResourceSkill ViewResourceType = "skill" type ViewResponseMetadata (line 46) | type ViewResponseMetadata struct constant ViewToolName (line 55) | ViewToolName = "view" constant MaxReadSize (line 56) | MaxReadSize = 5 * 1024 * 1024 constant DefaultReadLimit (line 57) | DefaultReadLimit = 2000 constant MaxLineLength (line 58) | MaxLineLength = 2000 function NewViewTool (line 61) | func NewViewTool( function addLineNumbers (line 229) | func addLineNumbers(content string, startLine int) string { function readTextFile (line 254) | func readTextFile(filePath string, offset, limit int) (string, bool, err... function getImageMimeType (line 293) | func getImageMimeType(filePath string) (bool, string) { type LineScanner (line 309) | type LineScanner struct method Scan (line 324) | func (s *LineScanner) Scan() bool { method Text (line 328) | func (s *LineScanner) Text() string { method Err (line 332) | func (s *LineScanner) Err() error { function NewLineScanner (line 313) | func NewLineScanner(r io.Reader) *LineScanner { function isInSkillsPath (line 342) | func isInSkillsPath(filePath string, skillsPaths []string) bool { FILE: internal/agent/tools/view_test.go function TestReadTextFileBoundaryCases (line 13) | func TestReadTextFileBoundaryCases(t *testing.T) { function TestReadTextFileTruncatesLongLines (line 74) | func TestReadTextFileTruncatesLongLines(t *testing.T) { FILE: internal/agent/tools/web_fetch.go function NewWebFetchTool (line 19) | func NewWebFetchTool(workingDir string, client *http.Client) fantasy.Age... FILE: internal/agent/tools/web_search.go function NewWebSearchTool (line 17) | func NewWebSearchTool(client *http.Client) fantasy.AgentTool { FILE: internal/agent/tools/write.go type WriteParams (line 27) | type WriteParams struct type WritePermissionsParams (line 32) | type WritePermissionsParams struct type WriteResponseMetadata (line 38) | type WriteResponseMetadata struct constant WriteToolName (line 44) | WriteToolName = "write" function NewWriteTool (line 46) | func NewWriteTool( FILE: internal/ansiext/ansi.go function Escape (line 11) | func Escape(content string) string { FILE: internal/app/app.go type UpdateAvailableMsg (line 47) | type UpdateAvailableMsg struct type App (line 53) | type App struct method Config (line 146) | func (app *App) Config() *config.Config { method Store (line 151) | func (app *App) Store() *config.ConfigStore { method AgentNotifications (line 156) | func (app *App) AgentNotifications() *pubsub.Broker[notify.Notificatio... method resolveSession (line 164) | func (app *App) resolveSession(ctx context.Context, continueSessionID ... method RunNonInteractive (line 193) | func (app *App) RunNonInteractive(ctx context.Context, output io.Write... method UpdateAgentModel (line 362) | func (app *App) UpdateAgentModel(ctx context.Context) error { method overrideModelsForNonInteractive (line 375) | func (app *App) overrideModelsForNonInteractive(ctx context.Context, l... method GetDefaultSmallModel (line 423) | func (app *App) GetDefaultSmallModel(providerID string) config.Selecte... method setupEvents (line 459) | func (app *App) setupEvents() { method InitCoderAgent (line 525) | func (app *App) InitCoderAgent(ctx context.Context) error { method Subscribe (line 550) | func (app *App) Subscribe(program *tea.Program) { method Shutdown (line 582) | func (app *App) Shutdown() { method checkForUpdates (line 628) | func (app *App) checkForUpdates(ctx context.Context) { function New (line 78) | func New(ctx context.Context, conn *sql.DB, store *config.ConfigStore) (... constant subscriberSendTimeout (line 478) | subscriberSendTimeout = 2 * time.Second function setupSubscriber (line 480) | func setupSubscriber[T any]( FILE: internal/app/app_test.go function TestSetupSubscriber_NormalFlow (line 16) | func TestSetupSubscriber_NormalFlow(t *testing.T) { function TestSetupSubscriber_SlowConsumer (line 39) | func TestSetupSubscriber_SlowConsumer(t *testing.T) { function TestSetupSubscriber_ContextCancellation (line 73) | func TestSetupSubscriber_ContextCancellation(t *testing.T) { function TestSetupSubscriber_DrainAfterDrop (line 86) | func TestSetupSubscriber_DrainAfterDrop(t *testing.T) { function TestSetupSubscriber_NoTimerLeak (line 117) | func TestSetupSubscriber_NoTimerLeak(t *testing.T) { type subscriberFixture (line 133) | type subscriberFixture struct function newSubscriberFixture (line 140) | func newSubscriberFixture(t *testing.T, bufSize int) *subscriberFixture { FILE: internal/app/lsp_events.go type LSPEventType (line 13) | type LSPEventType constant LSPEventStateChanged (line 16) | LSPEventStateChanged LSPEventType = "state_changed" constant LSPEventDiagnosticsChanged (line 17) | LSPEventDiagnosticsChanged LSPEventType = "diagnostics_changed" type LSPEvent (line 21) | type LSPEvent struct type LSPClientInfo (line 30) | type LSPClientInfo struct function SubscribeLSPEvents (line 45) | func SubscribeLSPEvents(ctx context.Context) <-chan pubsub.Event[LSPEven... function GetLSPStates (line 50) | func GetLSPStates() map[string]LSPClientInfo { function GetLSPState (line 55) | func GetLSPState(name string) (LSPClientInfo, bool) { function updateLSPState (line 60) | func updateLSPState(name string, state lsp.ServerState, err error, clien... function updateLSPDiagnostics (line 86) | func updateLSPDiagnostics(name string, diagnosticCount int) { FILE: internal/app/provider.go function parseModelStr (line 15) | func parseModelStr(providers map[string]config.ProviderConfig, modelStr ... type modelMatch (line 30) | type modelMatch struct function findModels (line 35) | func findModels(providers map[string]config.ProviderConfig, largeModel, ... function filter (line 72) | func filter(modelFilter, providerFilter, model, provider string) bool { function validateMatches (line 78) | func validateMatches(matches []modelMatch, modelID, label string) (model... FILE: internal/app/provider_test.go function TestParseModelStr (line 11) | func TestParseModelStr(t *testing.T) { function setupMockProviders (line 74) | func setupMockProviders() map[string]config.ProviderConfig { function setupMockProvidersWithSlashes (line 89) | func setupMockProvidersWithSlashes() map[string]config.ProviderConfig { function TestFindModels (line 107) | func TestFindModels(t *testing.T) { FILE: internal/app/resolve_session_test.go type mockSessionService (line 16) | type mockSessionService struct method Subscribe (line 21) | func (m *mockSessionService) Subscribe(context.Context) <-chan pubsub.... method Create (line 25) | func (m *mockSessionService) Create(_ context.Context, title string) (... method CreateTitleSession (line 31) | func (m *mockSessionService) CreateTitleSession(context.Context, strin... method CreateTaskSession (line 35) | func (m *mockSessionService) CreateTaskSession(context.Context, string... method Get (line 39) | func (m *mockSessionService) Get(_ context.Context, id string) (sessio... method GetLast (line 48) | func (m *mockSessionService) GetLast(_ context.Context) (session.Sessi... method List (line 55) | func (m *mockSessionService) List(context.Context) ([]session.Session,... method Save (line 59) | func (m *mockSessionService) Save(_ context.Context, s session.Session... method UpdateTitleAndUsage (line 63) | func (m *mockSessionService) UpdateTitleAndUsage(context.Context, stri... method Rename (line 67) | func (m *mockSessionService) Rename(context.Context, string, string) e... method Delete (line 71) | func (m *mockSessionService) Delete(context.Context, string) error { method CreateAgentToolSessionID (line 75) | func (m *mockSessionService) CreateAgentToolSessionID(messageID, toolC... method ParseAgentToolSessionID (line 79) | func (m *mockSessionService) ParseAgentToolSessionID(sessionID string)... method IsAgentToolSession (line 87) | func (m *mockSessionService) IsAgentToolSession(sessionID string) bool { function newTestApp (line 92) | func newTestApp(sessions session.Service) *App { function TestResolveSession_NewSession (line 96) | func TestResolveSession_NewSession(t *testing.T) { function TestResolveSession_ContinueByID (line 106) | func TestResolveSession_ContinueByID(t *testing.T) { function TestResolveSession_ContinueByID_NotFound (line 121) | func TestResolveSession_ContinueByID_NotFound(t *testing.T) { function TestResolveSession_ContinueByID_ChildSession (line 130) | func TestResolveSession_ContinueByID_ChildSession(t *testing.T) { function TestResolveSession_ContinueByID_AgentToolSession (line 143) | func TestResolveSession_ContinueByID_AgentToolSession(t *testing.T) { function TestResolveSession_Last (line 152) | func TestResolveSession_Last(t *testing.T) { function TestResolveSession_Last_NoSessions (line 167) | func TestResolveSession_Last_NoSessions(t *testing.T) { FILE: internal/cmd/dirs.go function init (line 64) | func init() { FILE: internal/cmd/dirs_test.go function init (line 12) | func init() { function TestDirs (line 19) | func TestDirs(t *testing.T) { function TestConfigDir (line 30) | func TestConfigDir(t *testing.T) { function TestDataDir (line 40) | func TestDataDir(t *testing.T) { FILE: internal/cmd/login.go function loginHyper (line 64) | func loginHyper(cfg *config.ConfigStore) error { function loginCopilot (line 126) | func loginCopilot(cfg *config.ConfigStore) error { function getLoginContext (line 191) | func getLoginContext() context.Context { function waitEnter (line 201) | func waitEnter() { FILE: internal/cmd/logs.go constant defaultTailLines (line 21) | defaultTailLines = 1000 function init (line 73) | func init() { function followLogs (line 78) | func followLogs(ctx context.Context, logsFile string, tailLines int) err... function showLogs (line 133) | func showLogs(logsFile string, tailLines int) error { function printLogLine (line 167) | func printLogLine(lineText string) { FILE: internal/cmd/models.go function init (line 108) | func init() { FILE: internal/cmd/projects.go function init (line 75) | func init() { FILE: internal/cmd/projects_test.go function TestProjectsEmpty (line 12) | func TestProjectsEmpty(t *testing.T) { function TestProjectsJSON (line 26) | func TestProjectsJSON(t *testing.T) { FILE: internal/cmd/root.go function init (line 34) | func init() { constant defaultVersionTemplate (line 145) | defaultVersionTemplate = `{{with .DisplayName}}{{printf "%s " .}}{{end}}... function Execute (line 148) | func Execute() { function supportsProgressBar (line 175) | func supportsProgressBar() bool { function setupAppWithProgressBar (line 185) | func setupAppWithProgressBar(cmd *cobra.Command) (*app.App, error) { function setupApp (line 203) | func setupApp(cmd *cobra.Command) (*app.App, error) { function shouldEnableMetrics (line 254) | func shouldEnableMetrics(cfg *config.Config) bool { function MaybePrependStdin (line 267) | func MaybePrependStdin(prompt string) (string, error) { function ResolveCwd (line 286) | func ResolveCwd(cmd *cobra.Command) (string, error) { function createDotCrushDir (line 302) | func createDotCrushDir(dir string) error { FILE: internal/cmd/run.go function init (line 110) | func init() { FILE: internal/cmd/session.go function init (line 86) | func init() { type sessionServices (line 99) | type sessionServices struct function sessionSetup (line 104) | func sessionSetup(cmd *cobra.Command) (context.Context, *sessionServices... function runSessionList (line 129) | func runSessionList(cmd *cobra.Command, _ []string) error { type sessionJSON (line 194) | type sessionJSON struct type sessionMutationResult (line 202) | type sessionMutationResult struct function resolveSessionID (line 212) | func resolveSessionID(ctx context.Context, svc session.Service, id strin... function runSessionShow (line 255) | func runSessionShow(cmd *cobra.Command, args []string) error { function runSessionDelete (line 282) | func runSessionDelete(cmd *cobra.Command, args []string) error { function runSessionRename (line 317) | func runSessionRename(cmd *cobra.Command, args []string) error { function runSessionLast (line 353) | func runSessionLast(cmd *cobra.Command, _ []string) error { constant sessionOutputWidth (line 387) | sessionOutputWidth = 80 constant sessionMaxContentWidth (line 388) | sessionMaxContentWidth = 120 function messagePtrs (line 391) | func messagePtrs(msgs []message.Message) []*message.Message { function outputSessionJSON (line 399) | func outputSessionJSON(w io.Writer, sess session.Session, msgs []*messag... function outputSessionHuman (line 431) | func outputSessionHuman(ctx context.Context, sess session.Session, msgs ... function isBrokenPipe (line 483) | func isBrokenPipe(err error) bool { function sessionWriter (line 499) | func sessionWriter(ctx context.Context, contentHeight int) (io.Writer, f... type sessionShowMeta (line 541) | type sessionShowMeta struct type sessionShowMessage (line 553) | type sessionShowMessage struct type sessionShowPart (line 562) | type sessionShowPart struct function convertParts (line 595) | func convertParts(parts []message.ContentPart) []sessionShowPart { type sessionShowOutput (line 654) | type sessionShowOutput struct FILE: internal/cmd/stats.go type Stats (line 53) | type Stats struct type TotalStats (line 66) | type TotalStats struct type DailyUsage (line 77) | type DailyUsage struct type ModelUsage (line 86) | type ModelUsage struct type HourlyUsage (line 92) | type HourlyUsage struct type DayOfWeekUsage (line 97) | type DayOfWeekUsage struct type DailyActivity (line 105) | type DailyActivity struct type ToolUsage (line 112) | type ToolUsage struct type HourDayHeatmapPt (line 117) | type HourDayHeatmapPt struct function runStats (line 123) | func runStats(cmd *cobra.Command, _ []string) error { function gatherStats (line 178) | func gatherStats(ctx context.Context, conn *sql.DB) (*Stats, error) { function toInt64 (line 310) | func toInt64(v any) int64 { function toFloat64 (line 323) | func toFloat64(v any) float64 { function nullFloat64ToInt64 (line 336) | func nullFloat64ToInt64(n sql.NullFloat64) int64 { function generateHTML (line 343) | func generateHTML(stats *Stats, projName, username, path string) error { FILE: internal/cmd/stats/index.js function formatNumber (line 22) | function formatNumber(n) { function formatCompact (line 26) | function formatCompact(n) { function formatCost (line 32) | function formatCost(n) { function formatTime (line 36) | function formatTime(ms) { function interpolateColor (line 44) | function interpolateColor(ratio, alpha = 1) { function getTopItemsWithOthers (line 54) | function getTopItemsWithOthers(items, countKey, labelKey, topN = 10) { FILE: internal/cmd/update_providers.go function init (line 80) | func init() { FILE: internal/commands/commands.go constant userCommandPrefix (line 19) | userCommandPrefix = "user:" constant projectCommandPrefix (line 20) | projectCommandPrefix = "project:" type Argument (line 24) | type Argument struct type MCPPrompt (line 32) | type MCPPrompt struct type CustomCommand (line 42) | type CustomCommand struct type commandSource (line 49) | type commandSource struct function LoadCustomCommands (line 56) | func LoadCustomCommands(cfg *config.Config) ([]CustomCommand, error) { function LoadMCPPrompts (line 61) | func LoadMCPPrompts() ([]MCPPrompt, error) { function buildCommandSources (line 92) | func buildCommandSources(cfg *config.Config) []commandSource { function loadAll (line 120) | func loadAll(sources []commandSource) ([]CustomCommand, error) { function loadFromSource (line 132) | func loadFromSource(source commandSource) ([]CustomCommand, error) { function loadCommand (line 156) | func loadCommand(path, baseDir, prefix string) (CustomCommand, error) { function extractArgNames (line 172) | func extractArgNames(content string) []Argument { function buildCommandID (line 193) | func buildCommandID(path, baseDir, prefix string) string { function getXDGCommandsDir (line 206) | func getXDGCommandsDir() string { function ensureDir (line 219) | func ensureDir(path string) error { function isMarkdownFile (line 226) | func isMarkdownFile(name string) bool { function GetMCPPrompt (line 230) | func GetMCPPrompt(cfg *config.ConfigStore, clientID, promptID string, ar... FILE: internal/config/agent_id_test.go function TestConfig_AgentIDs (line 10) | func TestConfig_AgentIDs(t *testing.T) { FILE: internal/config/attribution_migration_test.go function TestAttributionMigration (line 9) | func TestAttributionMigration(t *testing.T) { FILE: internal/config/catwalk.go type catwalkClient (line 14) | type catwalkClient interface type catwalkSync (line 20) | type catwalkSync struct method Init (line 29) | func (s *catwalkSync) Init(client catwalkClient, path string, autoupda... method Get (line 36) | func (s *catwalkSync) Get(ctx context.Context) ([]catwalk.Provider, er... FILE: internal/config/catwalk_test.go type mockCatwalkClient (line 14) | type mockCatwalkClient struct method GetProviders (line 20) | func (m *mockCatwalkClient) GetProviders(ctx context.Context, etag str... function TestCatwalkSync_Init (line 25) | func TestCatwalkSync_Init(t *testing.T) { function TestCatwalkSync_GetPanicIfNotInit (line 40) | func TestCatwalkSync_GetPanicIfNotInit(t *testing.T) { function TestCatwalkSync_GetWithAutoUpdateDisabled (line 49) | func TestCatwalkSync_GetWithAutoUpdateDisabled(t *testing.T) { function TestCatwalkSync_GetFreshProviders (line 71) | func TestCatwalkSync_GetFreshProviders(t *testing.T) { function TestCatwalkSync_GetNotModifiedUsesCached (line 96) | func TestCatwalkSync_GetNotModifiedUsesCached(t *testing.T) { function TestCatwalkSync_GetEmptyResultFallbackToCached (line 124) | func TestCatwalkSync_GetEmptyResultFallbackToCached(t *testing.T) { function TestCatwalkSync_GetEmptyCacheDefaultsToEmbedded (line 152) | func TestCatwalkSync_GetEmptyCacheDefaultsToEmbedded(t *testing.T) { function TestCatwalkSync_GetClientError (line 179) | func TestCatwalkSync_GetClientError(t *testing.T) { function TestCatwalkSync_GetCalledMultipleTimesUsesOnce (line 197) | func TestCatwalkSync_GetCalledMultipleTimesUsesOnce(t *testing.T) { FILE: internal/config/config.go constant appName (line 25) | appName = "crush" constant defaultDataDirectory (line 26) | defaultDataDirectory = ".crush" constant defaultInitializeAs (line 27) | defaultInitializeAs = "AGENTS.md" type SelectedModelType (line 49) | type SelectedModelType method String (line 52) | func (s SelectedModelType) String() string { constant SelectedModelTypeLarge (line 57) | SelectedModelTypeLarge SelectedModelType = "large" constant SelectedModelTypeSmall (line 58) | SelectedModelTypeSmall SelectedModelType = "small" constant AgentCoder (line 62) | AgentCoder string = "coder" constant AgentTask (line 63) | AgentTask string = "task" type SelectedModel (line 66) | type SelectedModel struct type ProviderConfig (line 92) | type ProviderConfig struct method ToProvider (line 128) | func (pc *ProviderConfig) ToProvider() catwalk.Provider { method SetupGitHubCopilot (line 157) | func (pc *ProviderConfig) SetupGitHubCopilot() { method TestConnection (line 540) | func (c *ProviderConfig) TestConnection(resolver VariableResolver) err... type MCPType (line 161) | type MCPType constant MCPStdio (line 164) | MCPStdio MCPType = "stdio" constant MCPSSE (line 165) | MCPSSE MCPType = "sse" constant MCPHttp (line 166) | MCPHttp MCPType = "http" type MCPConfig (line 169) | type MCPConfig struct method ResolvedEnv (line 308) | func (m MCPConfig) ResolvedEnv() []string { method ResolvedHeaders (line 312) | func (m MCPConfig) ResolvedHeaders() map[string]string { type LSPConfig (line 183) | type LSPConfig struct method ResolvedEnv (line 304) | func (l LSPConfig) ResolvedEnv() []string { type TUIOptions (line 195) | type TUIOptions struct type Completions (line 206) | type Completions struct method Limits (line 211) | func (c Completions) Limits() (depth, items int) { type Permissions (line 215) | type Permissions struct type TrailerStyle (line 220) | type TrailerStyle constant TrailerStyleNone (line 223) | TrailerStyleNone TrailerStyle = "none" constant TrailerStyleCoAuthoredBy (line 224) | TrailerStyleCoAuthoredBy TrailerStyle = "co-authored-by" constant TrailerStyleAssistedBy (line 225) | TrailerStyleAssistedBy TrailerStyle = "assisted-by" type Attribution (line 228) | type Attribution struct method JSONSchemaExtend (line 235) | func (Attribution) JSONSchemaExtend(schema *jsonschema.Schema) { type Options (line 243) | type Options struct type MCPs (line 262) | type MCPs method Sorted (line 269) | func (m MCPs) Sorted() []MCP { type MCP (line 264) | type MCP struct type LSPs (line 283) | type LSPs method Sorted (line 290) | func (l LSPs) Sorted() []LSP { type LSP (line 285) | type LSP struct type Agent (line 325) | type Agent struct type Tools (line 348) | type Tools struct type ToolLs (line 353) | type ToolLs struct method Limits (line 359) | func (t ToolLs) Limits() (depth, items int) { type ToolGrep (line 363) | type ToolGrep struct method GetTimeout (line 368) | func (t ToolGrep) GetTimeout() time.Duration { type Config (line 373) | type Config struct method EnabledProviders (line 398) | func (c *Config) EnabledProviders() []ProviderConfig { method IsConfigured (line 409) | func (c *Config) IsConfigured() bool { method GetModel (line 413) | func (c *Config) GetModel(provider, model string) *catwalk.Model { method GetProviderForModel (line 424) | func (c *Config) GetProviderForModel(modelType SelectedModelType) *Pro... method GetModelByType (line 435) | func (c *Config) GetModelByType(modelType SelectedModelType) *catwalk.... method LargeModel (line 443) | func (c *Config) LargeModel() *catwalk.Model { method SmallModel (line 451) | func (c *Config) SmallModel() *catwalk.Model { method SetupAgents (line 513) | func (c *Config) SetupAgents() { constant maxRecentModelsPerType (line 459) | maxRecentModelsPerType = 5 function allToolNames (line 461) | func allToolNames() []string { function resolveAllowedTools (line 487) | func resolveAllowedTools(allTools []string, disabledTools []string) []st... function resolveReadOnlyTools (line 495) | func resolveReadOnlyTools(tools []string) []string { function filterSlice (line 501) | func filterSlice(data []string, mask []string, include bool) []string { function resolveEnvs (line 638) | func resolveEnvs(envs map[string]string) []string { function ptrValOr (line 656) | func ptrValOr[T any](t *T, el T) T { FILE: internal/config/docker_mcp.go constant dockerMCPAvailabilityTTL (line 16) | dockerMCPAvailabilityTTL = 10 * time.Second constant DockerMCPName (line 26) | DockerMCPName = "docker" function IsDockerMCPAvailable (line 30) | func IsDockerMCPAvailable() bool { function DockerMCPAvailabilityCached (line 40) | func DockerMCPAvailabilityCached() (available bool, known bool) { function RefreshDockerMCPAvailability (line 54) | func RefreshDockerMCPAvailability() bool { method IsDockerMCPEnabled (line 65) | func (c *Config) IsDockerMCPEnabled() bool { function DockerMCPConfig (line 74) | func DockerMCPConfig() MCPConfig { method PrepareDockerMCPConfig (line 85) | func (s *ConfigStore) PrepareDockerMCPConfig() (MCPConfig, error) { method PersistDockerMCPConfig (line 100) | func (s *ConfigStore) PersistDockerMCPConfig(mcpConfig MCPConfig) error { method EnableDockerMCP (line 108) | func (s *ConfigStore) EnableDockerMCP() error { method DisableDockerMCP (line 120) | func (s *ConfigStore) DisableDockerMCP() error { FILE: internal/config/docker_mcp_test.go function setDockerMCPVersionRunner (line 16) | func setDockerMCPVersionRunner(t *testing.T, runner func(context.Context... function TestIsDockerMCPEnabled (line 25) | func TestIsDockerMCPEnabled(t *testing.T) { function TestEnableDockerMCP (line 58) | func TestEnableDockerMCP(t *testing.T) { function TestDisableDockerMCP (line 116) | func TestDisableDockerMCP(t *testing.T) { function TestEnableDockerMCPWithRealDockerWhenAvailable (line 171) | func TestEnableDockerMCPWithRealDockerWhenAvailable(t *testing.T) { FILE: internal/config/hyper.go type hyperClient (line 19) | type hyperClient interface type hyperSync (line 25) | type hyperSync struct method Init (line 34) | func (s *hyperSync) Init(client hyperClient, path string, autoupdate b... method Get (line 41) | func (s *hyperSync) Get(ctx context.Context) (catwalk.Provider, error) { type realHyperClient (line 86) | type realHyperClient struct method Get (line 91) | func (r realHyperClient) Get(ctx context.Context, etag string) (catwal... FILE: internal/config/hyper_test.go type mockHyperClient (line 14) | type mockHyperClient struct method Get (line 20) | func (m *mockHyperClient) Get(ctx context.Context, etag string) (catwa... function TestHyperSync_Init (line 25) | func TestHyperSync_Init(t *testing.T) { function TestHyperSync_GetPanicIfNotInit (line 39) | func TestHyperSync_GetPanicIfNotInit(t *testing.T) { function TestHyperSync_GetFreshProvider (line 48) | func TestHyperSync_GetFreshProvider(t *testing.T) { function TestHyperSync_GetNotModifiedUsesCached (line 76) | func TestHyperSync_GetNotModifiedUsesCached(t *testing.T) { function TestHyperSync_GetClientError (line 104) | func TestHyperSync_GetClientError(t *testing.T) { function TestHyperSync_GetEmptyCache (line 123) | func TestHyperSync_GetEmptyCache(t *testing.T) { function TestHyperSync_GetCalledMultipleTimesUsesOnce (line 147) | func TestHyperSync_GetCalledMultipleTimesUsesOnce(t *testing.T) { function TestHyperSync_GetCacheStoreError (line 177) | func TestHyperSync_GetCacheStoreError(t *testing.T) { FILE: internal/config/init.go constant InitFlagFilename (line 14) | InitFlagFilename = "init" type ProjectInitFlag (line 17) | type ProjectInitFlag struct function Init (line 21) | func Init(workingDir, dataDir string, debug bool) (*ConfigStore, error) { function ProjectNeedsInitialization (line 29) | func ProjectNeedsInitialization(store *ConfigStore) (bool, error) { function contextPathsExist (line 66) | func contextPathsExist(dir string) (bool, error) { function dirHasNoVisibleFiles (line 95) | func dirHasNoVisibleFiles(dir string) (bool, error) { function MarkProjectInitialized (line 103) | func MarkProjectInitialized(store *ConfigStore) error { function HasInitialDataConfig (line 118) | func HasInitialDataConfig(store *ConfigStore) bool { FILE: internal/config/load.go constant defaultCatwalkURL (line 30) | defaultCatwalkURL = "https://catwalk.charm.sh" function Load (line 34) | func Load(workingDir, dataDir string, debug bool) (*ConfigStore, error) { function mustMarshalConfig (line 117) | func mustMarshalConfig(cfg *Config) []byte { function PushPopCrushEnv (line 125) | func PushPopCrushEnv() func() { method configureProviders (line 153) | func (c *Config) configureProviders(store *ConfigStore, env env.Env, res... method setDefaults (line 370) | func (c *Config) setDefaults(workingDir, dataDir string) { method applyLSPDefaults (line 446) | func (c *Config) applyLSPDefaults() { method defaultModelSelection (line 485) | func (c *Config) defaultModelSelection(knownProviders []catwalk.Provider... function configureSelectedModels (line 554) | func configureSelectedModels(store *ConfigStore, knownProviders []catwal... function lookupConfigs (line 655) | func lookupConfigs(cwd string) []string { function loadFromConfigPaths (line 676) | func loadFromConfigPaths(configPaths []string) (*Config, error) { function loadFromBytes (line 696) | func loadFromBytes(configs [][]byte) (*Config, error) { function hasAWSCredentials (line 712) | func hasAWSCredentials(env env.Env) bool { function GlobalConfig (line 742) | func GlobalConfig() string { function GlobalConfigData (line 754) | func GlobalConfigData() string { function assignIfNil (line 776) | func assignIfNil[T any](ptr **T, val T) { function isInsideWorktree (line 782) | func isInsideWorktree() bool { function GlobalSkillsDirs (line 794) | func GlobalSkillsDirs() []string { function isAppleTerminal (line 818) | func isAppleTerminal() bool { return os.Getenv("TERM_PROGRAM") == "Apple... FILE: internal/config/load_bench_test.go function BenchmarkLoadFromConfigPaths (line 9) | func BenchmarkLoadFromConfigPaths(b *testing.B) { function BenchmarkLoadFromConfigPaths_MissingFiles (line 63) | func BenchmarkLoadFromConfigPaths_MissingFiles(b *testing.B) { function BenchmarkLoadFromConfigPaths_Empty (line 88) | func BenchmarkLoadFromConfigPaths_Empty(b *testing.B) { FILE: internal/config/load_test.go function TestMain (line 17) | func TestMain(m *testing.M) { function TestConfig_LoadFromBytes (line 24) | func TestConfig_LoadFromBytes(t *testing.T) { function testStore (line 40) | func testStore(cfg *Config) *ConfigStore { function TestConfig_setDefaults (line 44) | func TestConfig_setDefaults(t *testing.T) { function TestConfig_configureProviders (line 63) | func TestConfig_configureProviders(t *testing.T) { function TestConfig_configureProvidersWithOverride (line 90) | func TestConfig_configureProvidersWithOverride(t *testing.T) { function TestConfig_configureProvidersWithNewProvider (line 136) | func TestConfig_configureProvidersWithNewProvider(t *testing.T) { function TestConfig_configureProvidersBedrockWithCredentials (line 183) | func TestConfig_configureProvidersBedrockWithCredentials(t *testing.T) { function TestConfig_configureProvidersBedrockWithoutCredentials (line 212) | func TestConfig_configureProvidersBedrockWithoutCredentials(t *testing.T) { function TestConfig_configureProvidersBedrockWithoutUnsupportedModel (line 234) | func TestConfig_configureProvidersBedrockWithoutUnsupportedModel(t *test... function TestConfig_configureProvidersVertexAIWithCredentials (line 257) | func TestConfig_configureProvidersVertexAIWithCredentials(t *testing.T) { function TestConfig_configureProvidersVertexAIWithoutCredentials (line 288) | func TestConfig_configureProvidersVertexAIWithoutCredentials(t *testing.... function TestConfig_configureProvidersVertexAIMissingProject (line 314) | func TestConfig_configureProvidersVertexAIMissingProject(t *testing.T) { function TestConfig_configureProvidersSetProviderID (line 339) | func TestConfig_configureProvidersSetProviderID(t *testing.T) { function TestConfig_EnabledProviders (line 366) | func TestConfig_EnabledProviders(t *testing.T) { function TestConfig_IsConfigured (line 418) | func TestConfig_IsConfigured(t *testing.T) { function TestConfig_setupAgentsWithNoDisabledTools (line 461) | func TestConfig_setupAgentsWithNoDisabledTools(t *testing.T) { function TestConfig_setupAgentsWithDisabledTools (line 478) | func TestConfig_setupAgentsWithDisabledTools(t *testing.T) { function TestConfig_setupAgentsWithEveryReadOnlyToolDisabled (line 500) | func TestConfig_setupAgentsWithEveryReadOnlyToolDisabled(t *testing.T) { function TestConfig_configureProvidersWithDisabledProvider (line 523) | func TestConfig_configureProvidersWithDisabledProvider(t *testing.T) { function TestConfig_configureProvidersCustomProviderValidation (line 557) | func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) { function TestConfig_configureProvidersEnhancedCredentialValidation (line 738) | func TestConfig_configureProvidersEnhancedCredentialValidation(t *testin... function TestConfig_defaultModelSelection (line 868) | func TestConfig_defaultModelSelection(t *testing.T) { function TestConfig_configureProvidersDisableDefaultProviders (line 1101) | func TestConfig_configureProvidersDisableDefaultProviders(t *testing.T) { function TestConfig_setDefaultsDisableDefaultProvidersEnvVar (line 1290) | func TestConfig_setDefaultsDisableDefaultProvidersEnvVar(t *testing.T) { function TestConfig_configureSelectedModels (line 1312) | func TestConfig_configureSelectedModels(t *testing.T) { FILE: internal/config/lsp_defaults_test.go function TestApplyLSPDefaults (line 9) | func TestApplyLSPDefaults(t *testing.T) { FILE: internal/config/provider.go type syncer (line 26) | type syncer interface function cachePathFor (line 37) | func cachePathFor(name string) string { function UpdateProviders (line 58) | func UpdateProviders(pathOrURL string) error { function UpdateHyper (line 93) | func UpdateHyper(pathOrURL string) error { function Providers (line 142) | func Providers(cfg *Config) ([]catwalk.Provider, error) { type cache (line 194) | type cache struct function newCache (line 198) | func newCache[T any](path string) cache[T] { method Get (line 202) | func (c cache[T]) Get() (T, string, error) { method Store (line 216) | func (c cache[T]) Store(v T) error { FILE: internal/config/provider_empty_test.go type emptyProviderClient (line 12) | type emptyProviderClient struct method GetProviders (line 14) | func (m *emptyProviderClient) GetProviders(context.Context, string) ([... function TestCatwalkSync_GetEmptyResultFromClient (line 20) | func TestCatwalkSync_GetEmptyResultFromClient(t *testing.T) { FILE: internal/config/provider_test.go function resetProviderState (line 14) | func resetProviderState() { function TestProviders_Integration_AutoUpdateDisabled (line 22) | func TestProviders_Integration_AutoUpdateDisabled(t *testing.T) { function TestProviders_Integration_WithMockClients (line 55) | func TestProviders_Integration_WithMockClients(t *testing.T) { function TestProviders_Integration_WithCachedData (line 100) | func TestProviders_Integration_WithCachedData(t *testing.T) { function TestProviders_Integration_CatwalkFailsHyperSucceeds (line 154) | func TestProviders_Integration_CatwalkFailsHyperSucceeds(t *testing.T) { function TestProviders_Integration_BothFail (line 190) | func TestProviders_Integration_BothFail(t *testing.T) { function TestCache_StoreAndGet (line 220) | func TestCache_StoreAndGet(t *testing.T) { function TestCache_GetNonExistent (line 245) | func TestCache_GetNonExistent(t *testing.T) { function TestCache_GetInvalidJSON (line 258) | func TestCache_GetInvalidJSON(t *testing.T) { function TestCachePathFor (line 273) | func TestCachePathFor(t *testing.T) { FILE: internal/config/recent_models_test.go function readConfigJSON (line 14) | func readConfigJSON(t *testing.T, path string) map[string]any { function readRecentModels (line 26) | func readRecentModels(t *testing.T, path string) map[string]any { function testStoreWithPath (line 35) | func testStoreWithPath(cfg *Config, dir string) *ConfigStore { function TestRecordRecentModel_AddsAndPersists (line 42) | func TestRecordRecentModel_AddsAndPersists(t *testing.T) { function TestRecordRecentModel_DedupeAndMoveToFront (line 69) | func TestRecordRecentModel_DedupeAndMoveToFront(t *testing.T) { function TestRecordRecentModel_TrimsToMax (line 89) | func TestRecordRecentModel_TrimsToMax(t *testing.T) { function TestRecordRecentModel_SkipsEmptyValues (line 134) | func TestRecordRecentModel_SkipsEmptyValues(t *testing.T) { function TestRecordRecentModel_NoPersistOnNoop (line 159) | func TestRecordRecentModel_NoPersistOnNoop(t *testing.T) { function TestUpdatePreferredModel_UpdatesRecents (line 193) | func TestUpdatePreferredModel_UpdatesRecents(t *testing.T) { function TestRecordRecentModel_TypeIsolation (line 215) | func TestRecordRecentModel_TypeIsolation(t *testing.T) { FILE: internal/config/resolve.go type VariableResolver (line 13) | type VariableResolver interface type Shell (line 17) | type Shell interface type shellVariableResolver (line 21) | type shellVariableResolver struct method ResolveValue (line 41) | func (r *shellVariableResolver) ResolveValue(value string) (string, er... function NewShellVariableResolver (line 26) | func NewShellVariableResolver(env env.Env) VariableResolver { type environmentVariableResolver (line 154) | type environmentVariableResolver struct method ResolveValue (line 165) | func (r *environmentVariableResolver) ResolveValue(value string) (stri... function NewEnvironmentVariableResolver (line 158) | func NewEnvironmentVariableResolver(env env.Env) VariableResolver { FILE: internal/config/resolve_test.go type mockShell (line 13) | type mockShell struct method Exec (line 17) | func (m *mockShell) Exec(ctx context.Context, command string) (stdout,... function TestShellVariableResolver_ResolveValue (line 24) | func TestShellVariableResolver_ResolveValue(t *testing.T) { function TestShellVariableResolver_EnhancedResolveValue (line 97) | func TestShellVariableResolver_EnhancedResolveValue(t *testing.T) { function TestEnvironmentVariableResolver_ResolveValue (line 262) | func TestEnvironmentVariableResolver_ResolveValue(t *testing.T) { function TestNewShellVariableResolver (line 318) | func TestNewShellVariableResolver(t *testing.T) { function TestNewEnvironmentVariableResolver (line 326) | func TestNewEnvironmentVariableResolver(t *testing.T) { FILE: internal/config/scope.go type Scope (line 4) | type Scope constant ScopeGlobal (line 8) | ScopeGlobal Scope = iota constant ScopeWorkspace (line 10) | ScopeWorkspace FILE: internal/config/store.go type ConfigStore (line 24) | type ConfigStore struct method Config (line 34) | func (s *ConfigStore) Config() *Config { method WorkingDir (line 39) | func (s *ConfigStore) WorkingDir() string { method Resolver (line 44) | func (s *ConfigStore) Resolver() VariableResolver { method Resolve (line 49) | func (s *ConfigStore) Resolve(key string) (string, error) { method KnownProviders (line 57) | func (s *ConfigStore) KnownProviders() []catwalk.Provider { method SetupAgents (line 62) | func (s *ConfigStore) SetupAgents() { method configPath (line 67) | func (s *ConfigStore) configPath(scope Scope) string { method HasConfigField (line 78) | func (s *ConfigStore) HasConfigField(scope Scope, key string) bool { method SetConfigField (line 87) | func (s *ConfigStore) SetConfigField(scope Scope, key string, value an... method RemoveConfigField (line 112) | func (s *ConfigStore) RemoveConfigField(scope Scope, key string) error { method UpdatePreferredModel (line 134) | func (s *ConfigStore) UpdatePreferredModel(scope Scope, modelType Sele... method SetCompactMode (line 146) | func (s *ConfigStore) SetCompactMode(scope Scope, enabled bool) error { method SetTransparentBackground (line 155) | func (s *ConfigStore) SetTransparentBackground(scope Scope, enabled bo... method SetProviderAPIKey (line 164) | func (s *ConfigStore) SetProviderAPIKey(scope Scope, providerID string... method RefreshOAuthToken (line 227) | func (s *ConfigStore) RefreshOAuthToken(ctx context.Context, scope Sco... method recordRecentModel (line 273) | func (s *ConfigStore) recordRecentModel(scope Scope, modelType Selecte... method ImportCopilot (line 315) | func (s *ConfigStore) ImportCopilot() (*oauth.Token, bool) { FILE: internal/csync/maps.go type Map (line 11) | type Map struct function NewMap (line 17) | func NewMap[K comparable, V any]() *Map[K, V] { function NewMapFrom (line 24) | func NewMapFrom[K comparable, V any](m map[K]V) *Map[K, V] { function NewLazyMap (line 32) | func NewLazyMap[K comparable, V any](load func() map[K]V) *Map[K, V] { method Reset (line 43) | func (m *Map[K, V]) Reset(input map[K]V) { method Set (line 50) | func (m *Map[K, V]) Set(key K, value V) { method Del (line 57) | func (m *Map[K, V]) Del(key K) { method Get (line 64) | func (m *Map[K, V]) Get(key K) (V, bool) { method Len (line 72) | func (m *Map[K, V]) Len() int { method GetOrSet (line 80) | func (m *Map[K, V]) GetOrSet(key K, fn func() V) V { method Take (line 91) | func (m *Map[K, V]) Take(key K) (V, bool) { method Copy (line 100) | func (m *Map[K, V]) Copy() map[K]V { method Seq2 (line 107) | func (m *Map[K, V]) Seq2() iter.Seq2[K, V] { method Seq (line 119) | func (m *Map[K, V]) Seq() iter.Seq[V] { method JSONSchemaAlias (line 134) | func (Map[K, V]) JSONSchemaAlias() any { //nolint method UnmarshalJSON (line 140) | func (m *Map[K, V]) UnmarshalJSON(data []byte) error { method MarshalJSON (line 148) | func (m *Map[K, V]) MarshalJSON() ([]byte, error) { FILE: internal/csync/maps_test.go function TestNewMap (line 15) | func TestNewMap(t *testing.T) { function TestNewMapFrom (line 24) | func TestNewMapFrom(t *testing.T) { function TestNewLazyMap (line 42) | func TestNewLazyMap(t *testing.T) { function TestMap_Reset (line 76) | func TestMap_Reset(t *testing.T) { function TestMap_Set (line 92) | func TestMap_Set(t *testing.T) { function TestMap_GetOrSet (line 110) | func TestMap_GetOrSet(t *testing.T) { function TestMap_Get (line 120) | func TestMap_Get(t *testing.T) { function TestMap_Del (line 135) | func TestMap_Del(t *testing.T) { function TestMap_Len (line 157) | func TestMap_Len(t *testing.T) { function TestMap_Take (line 176) | func TestMap_Take(t *testing.T) { function TestMap_Take_NonexistentKey (line 198) | func TestMap_Take_NonexistentKey(t *testing.T) { function TestMap_Take_EmptyMap (line 214) | func TestMap_Take_EmptyMap(t *testing.T) { function TestMap_Take_SameKeyTwice (line 225) | func TestMap_Take_SameKeyTwice(t *testing.T) { function TestMap_Seq2 (line 242) | func TestMap_Seq2(t *testing.T) { function TestMap_Seq2_EarlyReturn (line 258) | func TestMap_Seq2_EarlyReturn(t *testing.T) { function TestMap_Seq2_EmptyMap (line 277) | func TestMap_Seq2_EmptyMap(t *testing.T) { function TestMap_Seq (line 290) | func TestMap_Seq(t *testing.T) { function TestMap_Seq_EarlyReturn (line 309) | func TestMap_Seq_EarlyReturn(t *testing.T) { function TestMap_Seq_EmptyMap (line 328) | func TestMap_Seq_EmptyMap(t *testing.T) { function TestMap_MarshalJSON (line 341) | func TestMap_MarshalJSON(t *testing.T) { function TestMap_MarshalJSON_EmptyMap (line 361) | func TestMap_MarshalJSON_EmptyMap(t *testing.T) { function TestMap_UnmarshalJSON (line 371) | func TestMap_UnmarshalJSON(t *testing.T) { function TestMap_UnmarshalJSON_EmptyJSON (line 390) | func TestMap_UnmarshalJSON_EmptyJSON(t *testing.T) { function TestMap_UnmarshalJSON_InvalidJSON (line 401) | func TestMap_UnmarshalJSON_InvalidJSON(t *testing.T) { function TestMap_UnmarshalJSON_OverwritesExistingData (line 411) | func TestMap_UnmarshalJSON_OverwritesExistingData(t *testing.T) { function TestMap_JSONRoundTrip (line 430) | func TestMap_JSONRoundTrip(t *testing.T) { function TestMap_ConcurrentAccess (line 454) | func TestMap_ConcurrentAccess(t *testing.T) { function TestMap_ConcurrentReadWrite (line 482) | func TestMap_ConcurrentReadWrite(t *testing.T) { function TestMap_ConcurrentSeq2 (line 527) | func TestMap_ConcurrentSeq2(t *testing.T) { function TestMap_ConcurrentSeq (line 554) | func TestMap_ConcurrentSeq(t *testing.T) { function TestMap_ConcurrentTake (line 585) | func TestMap_ConcurrentTake(t *testing.T) { function TestMap_TypeSafety (line 630) | func TestMap_TypeSafety(t *testing.T) { function TestMap_InterfaceCompliance (line 652) | func TestMap_InterfaceCompliance(t *testing.T) { function BenchmarkMap_Set (line 659) | func BenchmarkMap_Set(b *testing.B) { function BenchmarkMap_Get (line 667) | func BenchmarkMap_Get(b *testing.B) { function BenchmarkMap_Seq2 (line 678) | func BenchmarkMap_Seq2(b *testing.B) { function BenchmarkMap_Seq (line 690) | func BenchmarkMap_Seq(b *testing.B) { function BenchmarkMap_Take (line 702) | func BenchmarkMap_Take(b *testing.B) { function BenchmarkMap_ConcurrentReadWrite (line 722) | func BenchmarkMap_ConcurrentReadWrite(b *testing.B) { FILE: internal/csync/slices.go type LazySlice (line 9) | type LazySlice struct function NewLazySlice (line 16) | func NewLazySlice[K any](load func() []K) *LazySlice[K] { method Seq (line 25) | func (s *LazySlice[K]) Seq() iter.Seq[K] { type Slice (line 37) | type Slice struct function NewSlice (line 43) | func NewSlice[T any]() *Slice[T] { function NewSliceFrom (line 50) | func NewSliceFrom[T any](s []T) *Slice[T] { method Append (line 59) | func (s *Slice[T]) Append(items ...T) { method Get (line 66) | func (s *Slice[T]) Get(index int) (T, bool) { method Len (line 77) | func (s *Slice[T]) Len() int { method SetSlice (line 84) | func (s *Slice[T]) SetSlice(items []T) { method Seq (line 92) | func (s *Slice[T]) Seq() iter.Seq[T] { method Seq2 (line 103) | func (s *Slice[T]) Seq2() iter.Seq2[int, T] { method Copy (line 115) | func (s *Slice[T]) Copy() []T { FILE: internal/csync/slices_test.go function TestLazySlice_Seq (line 14) | func TestLazySlice_Seq(t *testing.T) { function TestLazySlice_SeqWaitsForLoading (line 28) | func TestLazySlice_SeqWaitsForLoading(t *testing.T) { function TestLazySlice_EmptySlice (line 48) | func TestLazySlice_EmptySlice(t *testing.T) { function TestLazySlice_EarlyBreak (line 56) | func TestLazySlice_EarlyBreak(t *testing.T) { function TestSlice (line 79) | func TestSlice(t *testing.T) { FILE: internal/csync/value.go type Value (line 11) | type Value struct function NewValue (line 19) | func NewValue[T any](t T) *Value[T] { method Get (line 33) | func (v *Value[T]) Get() T { method Set (line 40) | func (v *Value[T]) Set(t T) { FILE: internal/csync/value_test.go function TestValue_GetSet (line 10) | func TestValue_GetSet(t *testing.T) { function TestValue_ZeroValue (line 20) | func TestValue_ZeroValue(t *testing.T) { function TestValue_Struct (line 30) | func TestValue_Struct(t *testing.T) { function TestValue_PointerPanics (line 45) | func TestValue_PointerPanics(t *testing.T) { function TestValue_SlicePanics (line 53) | func TestValue_SlicePanics(t *testing.T) { function TestValue_MapPanics (line 61) | func TestValue_MapPanics(t *testing.T) { function TestValue_ConcurrentAccess (line 69) | func TestValue_ConcurrentAccess(t *testing.T) { FILE: internal/csync/versionedmap.go function NewVersionedMap (line 9) | func NewVersionedMap[K comparable, V any]() *VersionedMap[K, V] { type VersionedMap (line 16) | type VersionedMap struct method Get (line 22) | func (m *VersionedMap[K, V]) Get(key K) (V, bool) { method Set (line 27) | func (m *VersionedMap[K, V]) Set(key K, value V) { method Del (line 33) | func (m *VersionedMap[K, V]) Del(key K) { method Seq2 (line 39) | func (m *VersionedMap[K, V]) Seq2() iter.Seq2[K, V] { method Copy (line 44) | func (m *VersionedMap[K, V]) Copy() map[K]V { method Len (line 49) | func (m *VersionedMap[K, V]) Len() int { method Version (line 54) | func (m *VersionedMap[K, V]) Version() uint64 { FILE: internal/csync/versionedmap_test.go function TestVersionedMap_Set (line 9) | func TestVersionedMap_Set(t *testing.T) { function TestVersionedMap_Del (line 23) | func TestVersionedMap_Del(t *testing.T) { function TestVersionedMap_VersionIncrement (line 37) | func TestVersionedMap_VersionIncrement(t *testing.T) { function TestVersionedMap_ConcurrentAccess (line 56) | func TestVersionedMap_ConcurrentAccess(t *testing.T) { FILE: internal/db/connect.go function Connect (line 24) | func Connect(ctx context.Context, dataDir string) (*sql.DB, error) { FILE: internal/db/connect_modernc.go function openDB (line 13) | func openDB(dbPath string) (*sql.DB, error) { FILE: internal/db/connect_ncruces.go function openDB (line 14) | func openDB(dbPath string) (*sql.DB, error) { FILE: internal/db/db.go type DBTX (line 13) | type DBTX interface function New (line 20) | func New(db DBTX) *Queries { function Prepare (line 24) | func Prepare(ctx context.Context, db DBTX) (*Queries, error) { type Queries (line 364) | type Queries struct method Close (line 141) | func (q *Queries) Close() error { method exec (line 331) | func (q *Queries) exec(ctx context.Context, stmt *sql.Stmt, query stri... method query (line 342) | func (q *Queries) query(ctx context.Context, stmt *sql.Stmt, query str... method queryRow (line 353) | func (q *Queries) queryRow(ctx context.Context, stmt *sql.Stmt, query ... method WithTx (line 406) | func (q *Queries) WithTx(tx *sql.Tx) *Queries { FILE: internal/db/files.sql.go constant createFile (line 12) | createFile = `-- name: CreateFile :one type CreateFileParams (line 27) | type CreateFileParams struct method CreateFile (line 35) | func (q *Queries) CreateFile(ctx context.Context, arg CreateFileParams) ... constant deleteFile (line 56) | deleteFile = `-- name: DeleteFile :exec method DeleteFile (line 61) | func (q *Queries) DeleteFile(ctx context.Context, id string) error { constant deleteSessionFiles (line 66) | deleteSessionFiles = `-- name: DeleteSessionFiles :exec method DeleteSessionFiles (line 71) | func (q *Queries) DeleteSessionFiles(ctx context.Context, sessionID stri... constant getFile (line 76) | getFile = `-- name: GetFile :one method GetFile (line 82) | func (q *Queries) GetFile(ctx context.Context, id string) (File, error) { constant getFileByPathAndSession (line 97) | getFileByPathAndSession = `-- name: GetFileByPathAndSession :one type GetFileByPathAndSessionParams (line 105) | type GetFileByPathAndSessionParams struct method GetFileByPathAndSession (line 110) | func (q *Queries) GetFileByPathAndSession(ctx context.Context, arg GetFi... constant listFilesByPath (line 125) | listFilesByPath = `-- name: ListFilesByPath :many method ListFilesByPath (line 132) | func (q *Queries) ListFilesByPath(ctx context.Context, path string) ([]F... constant listFilesBySession (line 163) | listFilesBySession = `-- name: ListFilesBySession :many method ListFilesBySession (line 170) | func (q *Queries) ListFilesBySession(ctx context.Context, sessionID stri... constant listLatestSessionFiles (line 201) | listLatestSessionFiles = `-- name: ListLatestSessionFiles :many method ListLatestSessionFiles (line 213) | func (q *Queries) ListLatestSessionFiles(ctx context.Context, sessionID ... constant listNewFiles (line 244) | listNewFiles = `-- name: ListNewFiles :many method ListNewFiles (line 251) | func (q *Queries) ListNewFiles(ctx context.Context) ([]File, error) { FILE: internal/db/messages.sql.go constant createMessage (line 13) | createMessage = `-- name: CreateMessage :one type CreateMessageParams (line 30) | type CreateMessageParams struct method CreateMessage (line 40) | func (q *Queries) CreateMessage(ctx context.Context, arg CreateMessagePa... constant deleteMessage (line 66) | deleteMessage = `-- name: DeleteMessage :exec method DeleteMessage (line 71) | func (q *Queries) DeleteMessage(ctx context.Context, id string) error { constant deleteSessionMessages (line 76) | deleteSessionMessages = `-- name: DeleteSessionMessages :exec method DeleteSessionMessages (line 81) | func (q *Queries) DeleteSessionMessages(ctx context.Context, sessionID s... constant getMessage (line 86) | getMessage = `-- name: GetMessage :one method GetMessage (line 92) | func (q *Queries) GetMessage(ctx context.Context, id string) (Message, e... constant listAllUserMessages (line 110) | listAllUserMessages = `-- name: ListAllUserMessages :many method ListAllUserMessages (line 117) | func (q *Queries) ListAllUserMessages(ctx context.Context) ([]Message, e... constant listMessagesBySession (line 151) | listMessagesBySession = `-- name: ListMessagesBySession :many method ListMessagesBySession (line 158) | func (q *Queries) ListMessagesBySession(ctx context.Context, sessionID s... constant listUserMessagesBySession (line 192) | listUserMessagesBySession = `-- name: ListUserMessagesBySession :many method ListUserMessagesBySession (line 199) | func (q *Queries) ListUserMessagesBySession(ctx context.Context, session... constant updateMessage (line 233) | updateMessage = `-- name: UpdateMessage :exec type UpdateMessageParams (line 242) | type UpdateMessageParams struct method UpdateMessage (line 248) | func (q *Queries) UpdateMessage(ctx context.Context, arg UpdateMessagePa... FILE: internal/db/migrations/20250424200609_initial.sql type sessions (line 4) | CREATE TABLE IF NOT EXISTS sessions ( FILE: internal/db/migrations/20250624000000_add_created_at_indexes.sql type idx_sessions_created_at (line 4) | CREATE INDEX IF NOT EXISTS idx_sessions_created_at ON sessions (created_at) type idx_messages_created_at (line 5) | CREATE INDEX IF NOT EXISTS idx_messages_created_at ON messages (created_at) type idx_files_created_at (line 6) | CREATE INDEX IF NOT EXISTS idx_files_created_at ON files (created_at) FILE: internal/db/migrations/20260127000000_add_read_files_table.sql type read_files (line 3) | CREATE TABLE IF NOT EXISTS read_files ( type idx_read_files_session_id (line 11) | CREATE INDEX IF NOT EXISTS idx_read_files_session_id ON read_files (sess... type idx_read_files_path (line 12) | CREATE INDEX IF NOT EXISTS idx_read_files_path ON read_files (path) FILE: internal/db/models.go type File (line 11) | type File struct type Message (line 21) | type Message struct type ReadFile (line 34) | type ReadFile struct type Session (line 40) | type Session struct FILE: internal/db/querier.go type Querier (line 11) | type Querier interface FILE: internal/db/read_files.sql.go constant getFileRead (line 12) | getFileRead = `-- name: GetFileRead :one type GetFileReadParams (line 17) | type GetFileReadParams struct method GetFileRead (line 22) | func (q *Queries) GetFileRead(ctx context.Context, arg GetFileReadParams... constant listSessionReadFiles (line 29) | listSessionReadFiles = `-- name: ListSessionReadFiles :many method ListSessionReadFiles (line 35) | func (q *Queries) ListSessionReadFiles(ctx context.Context, sessionID st... constant recordFileRead (line 58) | recordFileRead = `-- name: RecordFileRead :exec type RecordFileReadParams (line 71) | type RecordFileReadParams struct method RecordFileRead (line 76) | func (q *Queries) RecordFileRead(ctx context.Context, arg RecordFileRead... FILE: internal/db/sessions.sql.go constant createSession (line 13) | createSession = `-- name: CreateSession :one type CreateSessionParams (line 39) | type CreateSessionParams struct method CreateSession (line 49) | func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionPa... constant deleteSession (line 76) | deleteSession = `-- name: DeleteSession :exec method DeleteSession (line 81) | func (q *Queries) DeleteSession(ctx context.Context, id string) error { constant getLastSession (line 86) | getLastSession = `-- name: GetLastSession :one method GetLastSession (line 93) | func (q *Queries) GetLastSession(ctx context.Context) (Session, error) { constant getSessionByID (line 112) | getSessionByID = `-- name: GetSessionByID :one method GetSessionByID (line 118) | func (q *Queries) GetSessionByID(ctx context.Context, id string) (Sessio... constant listSessions (line 137) | listSessions = `-- name: ListSessions :many method ListSessions (line 144) | func (q *Queries) ListSessions(ctx context.Context) ([]Session, error) { constant renameSession (line 179) | renameSession = `-- name: RenameSession :exec type RenameSessionParams (line 186) | type RenameSessionParams struct method RenameSession (line 191) | func (q *Queries) RenameSession(ctx context.Context, arg RenameSessionPa... constant updateSession (line 196) | updateSession = `-- name: UpdateSession :one type UpdateSessionParams (line 209) | type UpdateSessionParams struct method UpdateSession (line 219) | func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionPa... constant updateSessionTitleAndUsage (line 246) | updateSessionTitleAndUsage = `-- name: UpdateSessionTitleAndUsage :exec type UpdateSessionTitleAndUsageParams (line 257) | type UpdateSessionTitleAndUsageParams struct method UpdateSessionTitleAndUsage (line 265) | func (q *Queries) UpdateSessionTitleAndUsage(ctx context.Context, arg Up... FILE: internal/db/stats.sql.go constant getAverageResponseTime (line 13) | getAverageResponseTime = `-- name: GetAverageResponseTime :one method GetAverageResponseTime (line 22) | func (q *Queries) GetAverageResponseTime(ctx context.Context) (int64, er... constant getHourDayHeatmap (line 29) | getHourDayHeatmap = `-- name: GetHourDayHeatmap :many type GetHourDayHeatmapRow (line 40) | type GetHourDayHeatmapRow struct method GetHourDayHeatmap (line 46) | func (q *Queries) GetHourDayHeatmap(ctx context.Context) ([]GetHourDayHe... constant getRecentActivity (line 69) | getRecentActivity = `-- name: GetRecentActivity :many type GetRecentActivityRow (line 82) | type GetRecentActivityRow struct method GetRecentActivity (line 89) | func (q *Queries) GetRecentActivity(ctx context.Context) ([]GetRecentAct... constant getToolUsage (line 117) | getToolUsage = `-- name: GetToolUsage :many type GetToolUsageRow (line 128) | type GetToolUsageRow struct method GetToolUsage (line 133) | func (q *Queries) GetToolUsage(ctx context.Context) ([]GetToolUsageRow, ... constant getTotalStats (line 156) | getTotalStats = `-- name: GetTotalStats :one type GetTotalStatsRow (line 169) | type GetTotalStatsRow struct method GetTotalStats (line 179) | func (q *Queries) GetTotalStats(ctx context.Context) (GetTotalStatsRow, ... constant getUsageByDay (line 194) | getUsageByDay = `-- name: GetUsageByDay :many type GetUsageByDayRow (line 207) | type GetUsageByDayRow struct method GetUsageByDay (line 215) | func (q *Queries) GetUsageByDay(ctx context.Context) ([]GetUsageByDayRow... constant getUsageByDayOfWeek (line 244) | getUsageByDayOfWeek = `-- name: GetUsageByDayOfWeek :many type GetUsageByDayOfWeekRow (line 256) | type GetUsageByDayOfWeekRow struct method GetUsageByDayOfWeek (line 263) | func (q *Queries) GetUsageByDayOfWeek(ctx context.Context) ([]GetUsageBy... constant getUsageByHour (line 291) | getUsageByHour = `-- name: GetUsageByHour :many type GetUsageByHourRow (line 301) | type GetUsageByHourRow struct method GetUsageByHour (line 306) | func (q *Queries) GetUsageByHour(ctx context.Context) ([]GetUsageByHourR... constant getUsageByModel (line 329) | getUsageByModel = `-- name: GetUsageByModel :many type GetUsageByModelRow (line 340) | type GetUsageByModelRow struct method GetUsageByModel (line 346) | func (q *Queries) GetUsageByModel(ctx context.Context) ([]GetUsageByMode... FILE: internal/diff/diff.go function GenerateDiff (line 10) | func GenerateDiff(beforeContent, afterContent, fileName string) (string,... FILE: internal/env/env.go type Env (line 7) | type Env interface type osEnv (line 12) | type osEnv struct method Get (line 15) | func (o *osEnv) Get(key string) string { method Env (line 19) | func (o *osEnv) Env() []string { function New (line 23) | func New() Env { type mapEnv (line 27) | type mapEnv struct method Get (line 32) | func (m *mapEnv) Get(key string) string { method Env (line 40) | func (m *mapEnv) Env() []string { function NewFromMap (line 48) | func NewFromMap(m map[string]string) Env { FILE: internal/env/env_test.go function TestOsEnv_Get (line 10) | func TestOsEnv_Get(t *testing.T) { function TestOsEnv_Env (line 24) | func TestOsEnv_Env(t *testing.T) { function TestNewFromMap (line 39) | func TestNewFromMap(t *testing.T) { function TestMapEnv_Get (line 50) | func TestMapEnv_Get(t *testing.T) { function TestMapEnv_Env (line 66) | func TestMapEnv_Env(t *testing.T) { function TestMapEnv_GetEmptyValue (line 105) | func TestMapEnv_GetEmptyValue(t *testing.T) { function TestMapEnv_EnvFormat (line 118) | func TestMapEnv_EnvFormat(t *testing.T) { FILE: internal/event/all.go function AppInitialized (line 9) | func AppInitialized() { function AppExited (line 14) | func AppExited() { function SessionCreated (line 24) | func SessionCreated() { function SessionDeleted (line 28) | func SessionDeleted() { function SessionSwitched (line 32) | func SessionSwitched() { function FilePickerOpened (line 36) | func FilePickerOpened() { function PromptSent (line 40) | func PromptSent(props ...any) { function PromptResponded (line 47) | func PromptResponded(props ...any) { function TokensUsed (line 54) | func TokensUsed(props ...any) { function StatsViewed (line 61) | func StatsViewed() { function SessionListed (line 65) | func SessionListed(json bool) { function SessionShown (line 69) | func SessionShown(json bool) { function SessionLastShown (line 73) | func SessionLastShown(json bool) { function SessionDeletedCommand (line 77) | func SessionDeletedCommand(json bool) { function SessionRenamed (line 81) | func SessionRenamed(json bool) { FILE: internal/event/event.go constant endpoint (line 17) | endpoint = "https://data.charm.land" constant key (line 18) | key = "phc_4zt4VgDWLqbYnJYEwLRxFoaTL2noNrQij0C6E8k3I0V" constant nonInteractiveAttrName (line 20) | nonInteractiveAttrName = "NonInteractive" constant continueSessionByIDAttrName (line 21) | continueSessionByIDAttrName = "ContinueSessionByID" constant continueLastSessionAttrName (line 22) | continueLastSessionAttrName = "ContinueLastSession" function SetNonInteractive (line 38) | func SetNonInteractive(nonInteractive bool) { function SetContinueBySessionID (line 42) | func SetContinueBySessionID(continueBySessionID bool) { function SetContinueLastSession (line 46) | func SetContinueLastSession(continueLastSession bool) { function Init (line 50) | func Init() { function GetID (line 63) | func GetID() string { return distinctId } function Alias (line 65) | func Alias(userID string) { function send (line 80) | func send(event string, props ...any) { function Error (line 96) | func Error(errToLog any, props ...any) { function Flush (line 112) | func Flush() { function pairsToProps (line 121) | func pairsToProps(props ...any) posthog.Properties { function isEven (line 137) | func isEven(n int) bool { FILE: internal/event/event_test.go function TestError (line 10) | func TestError(t *testing.T) { function newDefaultTestError (line 66) | func newDefaultTestError(s string) error { type testError (line 70) | type testError method Error (line 72) | func (e testError) Error() string { FILE: internal/event/identifier.go constant hashKey (line 16) | hashKey = "charm" constant fallbackId (line 17) | fallbackId = "unknown" function getDistinctId (line 20) | func getDistinctId() string { function getMacAddr (line 30) | func getMacAddr() (string, error) { function hashString (line 45) | func hashString(str string) string { FILE: internal/event/logger.go type logger (line 12) | type logger struct method Debugf (line 14) | func (logger) Debugf(format string, args ...any) { method Logf (line 18) | func (logger) Logf(format string, args ...any) { method Warnf (line 22) | func (logger) Warnf(format string, args ...any) { method Errorf (line 26) | func (logger) Errorf(format string, args ...any) { FILE: internal/filepathext/filepath.go function SmartJoin (line 11) | func SmartJoin(one, two string) string { function SmartIsAbs (line 20) | func SmartIsAbs(path string) bool { FILE: internal/filetracker/service.go type Service (line 16) | type Service interface type service (line 28) | type service struct method RecordRead (line 38) | func (s *service) RecordRead(ctx context.Context, sessionID, path stri... method LastReadTime (line 49) | func (s *service) LastReadTime(ctx context.Context, sessionID, path st... method ListReadFiles (line 77) | func (s *service) ListReadFiles(ctx context.Context, sessionID string)... function NewService (line 33) | func NewService(q *db.Queries) Service { function relpath (line 61) | func relpath(path string) string { FILE: internal/filetracker/service_test.go type testEnv (line 13) | type testEnv struct method createSession (line 34) | func (e *testEnv) createSession(t *testing.T, sessionID string) { function setupTest (line 19) | func setupTest(t *testing.T) *testEnv { function TestService_RecordRead (line 43) | func TestService_RecordRead(t *testing.T) { function TestService_LastReadTime_NotFound (line 57) | func TestService_LastReadTime_NotFound(t *testing.T) { function TestService_RecordRead_UpdatesTimestamp (line 64) | func TestService_RecordRead_UpdatesTimestamp(t *testing.T) { function TestService_RecordRead_DifferentSessions (line 85) | func TestService_RecordRead_DifferentSessions(t *testing.T) { function TestService_RecordRead_DifferentPaths (line 102) | func TestService_RecordRead_DifferentPaths(t *testing.T) { FILE: internal/format/spinner.go type Spinner (line 15) | type Spinner struct method Start (line 60) | func (s *Spinner) Start() { method Stop (line 73) | func (s *Spinner) Stop() { type model (line 20) | type model struct method Init (line 25) | func (m model) Init() tea.Cmd { return m.anim.Start() } method View (line 26) | func (m model) View() tea.View { return tea.NewView(m.anim.Render()) } method Update (line 29) | func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { function NewSpinner (line 45) | func NewSpinner(ctx context.Context, cancel context.CancelFunc, animSett... FILE: internal/fsext/drive_other.go function WindowsWorkingDirDrive (line 9) | func WindowsWorkingDirDrive() string { function WindowsSystemDrive (line 14) | func WindowsSystemDrive() string { FILE: internal/fsext/drive_windows.go function WindowsWorkingDirDrive (line 15) | func WindowsWorkingDirDrive() string { function WindowsSystemDrive (line 23) | func WindowsSystemDrive() string { FILE: internal/fsext/expand.go function Expand (line 14) | func Expand(s string) (string, error) { FILE: internal/fsext/fileutil.go type FileInfo (line 18) | type FileInfo struct function SkipHidden (line 23) | func SkipHidden(path string) bool { type FastGlobWalker (line 63) | type FastGlobWalker struct method ShouldSkip (line 75) | func (w *FastGlobWalker) ShouldSkip(path string) bool { method ShouldSkipDir (line 81) | func (w *FastGlobWalker) ShouldSkipDir(path string) bool { function NewFastGlobWalker (line 67) | func NewFastGlobWalker(searchPath string) *FastGlobWalker { function Glob (line 88) | func Glob(pattern string, cwd string, limit int) ([]string, bool, error) { function GlobGitignoreAware (line 93) | func GlobGitignoreAware(pattern string, cwd string, limit int) ([]string... function globWithDoubleStar (line 97) | func globWithDoubleStar(pattern, searchPath string, limit int, gitignore... function ShouldExcludeFile (line 168) | func ShouldExcludeFile(rootPath, filePath string) bool { function PrettyPath (line 175) | func PrettyPath(path string) string { function DirTrim (line 179) | func DirTrim(pwd string, lim int) string { function PathOrPrefix (line 205) | func PathOrPrefix(path, prefix string) string { function HasPrefix (line 214) | func HasPrefix(path, prefix string) bool { function ToUnixLineEndings (line 224) | func ToUnixLineEndings(content string) (string, bool) { function ToWindowsLineEndings (line 232) | func ToWindowsLineEndings(content string) (string, bool) { function truncate (line 239) | func truncate[T any](input []T, limit int) ([]T, bool) { FILE: internal/fsext/fileutil_test.go function TestGlobWithDoubleStar (line 13) | func TestGlobWithDoubleStar(t *testing.T) { FILE: internal/fsext/ignore_test.go function TestCrushIgnore (line 11) | func TestCrushIgnore(t *testing.T) { function TestShouldExcludeFile (line 29) | func TestShouldExcludeFile(t *testing.T) { function TestShouldExcludeFileHierarchical (line 71) | func TestShouldExcludeFileHierarchical(t *testing.T) { function TestShouldExcludeFileCommonPatterns (line 98) | func TestShouldExcludeFileCommonPatterns(t *testing.T) { FILE: internal/fsext/lookup.go function Lookup (line 19) | func Lookup(dir string, targets ...string) ([]string, error) { function LookupClosest (line 59) | func LookupClosest(dir, target string) (string, bool) { function traverseUp (line 88) | func traverseUp(dir string, walkFn func(dir string, owner int) error) er... function probeEnt (line 120) | func probeEnt(fspath string, owner int) error { FILE: internal/fsext/lookup_test.go function TestLookupClosest (line 13) | func TestLookupClosest(t *testing.T) { function TestLookupClosestWithOwnership (line 125) | func TestLookupClosestWithOwnership(t *testing.T) { function TestLookup (line 153) | func TestLookup(t *testing.T) { function TestProbeEnt (line 356) | func TestProbeEnt(t *testing.T) { FILE: internal/fsext/ls.go function parsePatterns (line 100) | func parsePatterns(lines []string, domain []string) []gitignore.Pattern { type directoryLister (line 112) | type directoryLister struct method getDirPatterns (line 141) | func (dl *directoryLister) getDirPatterns(dir string) []gitignore.Patt... method getCombinedMatcher (line 165) | func (dl *directoryLister) getCombinedMatcher(dir string) gitignore.Ma... method shouldIgnore (line 197) | func (dl *directoryLister) shouldIgnore(path string, ignorePatterns []... function NewDirectoryLister (line 122) | func NewDirectoryLister(rootPath string) *directoryLister { function pathToComponents (line 131) | func pathToComponents(path string) []string { function ListDirectory (line 242) | func ListDirectory(initialPath string, ignorePatterns []string, depth, l... FILE: internal/fsext/ls_test.go function TestListDirectory (line 11) | func TestListDirectory(t *testing.T) { function relPaths (line 51) | func relPaths(tb testing.TB, in []string, base string) []string { FILE: internal/fsext/owner_others.go function Owner (line 12) | func Owner(path string) (int, error) { FILE: internal/fsext/owner_windows.go function Owner (line 9) | func Owner(path string) (int, error) { FILE: internal/fsext/paste.go function ParsePastedFiles (line 8) | func ParsePastedFiles(s string) []string { function attemptStat (line 24) | func attemptStat(s string) bool { function windowsTerminalParsePastedFiles (line 33) | func windowsTerminalParsePastedFiles(s string) []string { function unixParsePastedFiles (line 80) | func unixParsePastedFiles(s string) []string { FILE: internal/fsext/paste_test.go function TestParsePastedFiles (line 9) | func TestParsePastedFiles(t *testing.T) { FILE: internal/history/file.go constant InitialVersion (line 15) | InitialVersion = 0 type File (line 18) | type File struct type Service (line 29) | type Service interface type service (line 44) | type service struct method Create (line 58) | func (s *service) Create(ctx context.Context, sessionID, path, content... method CreateVersion (line 65) | func (s *service) CreateVersion(ctx context.Context, sessionID, path, ... method createWithVersion (line 84) | func (s *service) createWithVersion(ctx context.Context, sessionID, pa... method Get (line 137) | func (s *service) Get(ctx context.Context, id string) (File, error) { method GetByPathAndSession (line 145) | func (s *service) GetByPathAndSession(ctx context.Context, path, sessi... method ListBySession (line 156) | func (s *service) ListBySession(ctx context.Context, sessionID string)... method ListLatestSessionFiles (line 168) | func (s *service) ListLatestSessionFiles(ctx context.Context, sessionI... method Delete (line 180) | func (s *service) Delete(ctx context.Context, id string) error { method DeleteSessionFiles (line 193) | func (s *service) DeleteSessionFiles(ctx context.Context, sessionID st... method fromDBItem (line 207) | func (s *service) fromDBItem(item db.File) File { function NewService (line 50) | func NewService(q *db.Queries, db *sql.DB) Service { FILE: internal/home/home.go function init (line 13) | func init() { function Dir (line 20) | func Dir() string { function Short (line 25) | func Short(p string) string { function Long (line 33) | func Long(p string) string { FILE: internal/home/home_test.go function TestDir (line 10) | func TestDir(t *testing.T) { function TestShort (line 14) | func TestShort(t *testing.T) { function TestLong (line 21) | func TestLong(t *testing.T) { FILE: internal/log/http.go function NewHTTPClient (line 14) | func NewHTTPClient() *http.Client { type HTTPRoundTripLogger (line 23) | type HTTPRoundTripLogger struct method RoundTrip (line 28) | func (h *HTTPRoundTripLogger) RoundTrip(req *http.Request) (*http.Resp... function bodyToString (line 81) | func bodyToString(body io.ReadCloser) string { function formatHeaders (line 99) | func formatHeaders(headers http.Header) map[string][]string { function drainBody (line 116) | func drainBody(b io.ReadCloser) (r1, r2 io.ReadCloser, err error) { FILE: internal/log/http_test.go function TestHTTPRoundTripLogger (line 10) | func TestHTTPRoundTripLogger(t *testing.T) { function TestFormatHeaders (line 48) | func TestFormatHeaders(t *testing.T) { FILE: internal/log/log.go function Setup (line 21) | func Setup(logFile string, debug bool) { function Initialized (line 46) | func Initialized() bool { function RecoverPanic (line 50) | func RecoverPanic(name string, cleanup func()) { FILE: internal/lsp/client.go type DiagnosticCounts (line 25) | type DiagnosticCounts struct type Client (line 32) | type Client struct method Initialize (line 98) | func (c *Client) Initialize(ctx context.Context, workspaceDir string) ... method Kill (line 132) | func (c *Client) Kill() { c.client.Kill() } method Close (line 136) | func (c *Client) Close(ctx context.Context) error { method createPowernapClient (line 163) | func (c *Client) createPowernapClient() error { method registerHandlers (line 196) | func (c *Client) registerHandlers() { method Restart (line 211) | func (c *Client) Restart() error { method GetServerState (line 272) | func (c *Client) GetServerState() ServerState { method SetServerState (line 280) | func (c *Client) SetServerState(state ServerState) { method GetName (line 285) | func (c *Client) GetName() string { method SetDiagnosticsCallback (line 290) | func (c *Client) SetDiagnosticsCallback(callback func(name string, cou... method WaitForServerReady (line 295) | func (c *Client) WaitForServerReady(ctx context.Context) error { method HandlesFile (line 341) | func (c *Client) HandlesFile(path string) bool { method OpenFile (line 353) | func (c *Client) OpenFile(ctx context.Context, filepath string) error { method NotifyChange (line 384) | func (c *Client) NotifyChange(ctx context.Context, filepath string) er... method IsFileOpen (line 416) | func (c *Client) IsFileOpen(filepath string) bool { method CloseAllFiles (line 423) | func (c *Client) CloseAllFiles(ctx context.Context) { method GetFileDiagnostics (line 437) | func (c *Client) GetFileDiagnostics(uri protocol.DocumentURI) []protoc... method GetDiagnostics (line 443) | func (c *Client) GetDiagnostics() map[protocol.DocumentURI][]protocol.... method GetDiagnosticCounts (line 452) | func (c *Client) GetDiagnosticCounts() DiagnosticCounts { method OpenFileOnDemand (line 488) | func (c *Client) OpenFileOnDemand(ctx context.Context, filepath string... method RegisterNotificationHandler (line 502) | func (c *Client) RegisterNotificationHandler(method string, handler tr... method RegisterServerRequestHandler (line 507) | func (c *Client) RegisterServerRequestHandler(method string, handler t... method openKeyConfigFiles (line 512) | func (c *Client) openKeyConfigFiles(ctx context.Context) { method WaitForDiagnostics (line 528) | func (c *Client) WaitForDiagnostics(ctx context.Context, d time.Durati... method FindReferences (line 551) | func (c *Client) FindReferences(ctx context.Context, filepath string, ... function New (line 69) | func New( constant closeTimeout (line 129) | closeTimeout = 5 * time.Second type ServerState (line 260) | type ServerState constant StateUnstarted (line 263) | StateUnstarted ServerState = iota constant StateStarting (line 264) | StateStarting constant StateReady (line 265) | StateReady constant StateError (line 266) | StateError constant StateStopped (line 267) | StateStopped constant StateDisabled (line 268) | StateDisabled type OpenFileInfo (line 334) | type OpenFileInfo struct FILE: internal/lsp/client_test.go function TestClient (line 13) | func TestClient(t *testing.T) { function TestNilClient (line 61) | func TestNilClient(t *testing.T) { FILE: internal/lsp/handlers.go function HandleWorkspaceConfiguration (line 14) | func HandleWorkspaceConfiguration(_ context.Context, _ string, params js... function HandleRegisterCapability (line 19) | func HandleRegisterCapability(_ context.Context, _ string, params json.R... function HandleApplyEdit (line 48) | func HandleApplyEdit(encoding powernap.OffsetEncoding) func(_ context.Co... type FileWatchRegistrationHandler (line 66) | type FileWatchRegistrationHandler function RegisterFileWatchHandler (line 72) | func RegisterFileWatchHandler(handler FileWatchRegistrationHandler) { function notifyFileWatchRegistration (line 77) | func notifyFileWatchRegistration(id string, watchers []protocol.FileSyst... function HandleServerMessage (line 84) | func HandleServerMessage(_ context.Context, method string, params json.R... function HandleDiagnostics (line 104) | func HandleDiagnostics(client *Client, params json.RawMessage) { FILE: internal/lsp/manager.go type Manager (line 27) | type Manager struct method Clients (line 70) | func (s *Manager) Clients() *csync.Map[string, *Client] { method SetCallback (line 76) | func (s *Manager) SetCallback(cb func(name string, client *Client)) { method TrackConfigured (line 82) | func (s *Manager) TrackConfigured() { method Start (line 97) | func (s *Manager) Start(ctx context.Context, path string) { method startServer (line 143) | func (s *Manager) startServer(ctx context.Context, name, filepath stri... method isUserConfigured (line 246) | func (s *Manager) isUserConfigured(name string) bool { method buildConfig (line 251) | func (s *Manager) buildConfig(name string, server *powernapconfig.Serv... method KillAll (line 328) | func (s *Manager) KillAll(context.Context) { method StopAll (line 343) | func (s *Manager) StopAll(ctx context.Context) { function NewManager (line 35) | func NewManager(cfg *config.ConfigStore) *Manager { function resolveServerName (line 267) | func resolveServerName(manager *powernapconfig.Manager, name string) str... function handlesFiletype (line 279) | func handlesFiletype(sname string, fileTypes []string, filePath string) ... function hasRootMarkers (line 301) | func hasRootMarkers(dir string, markers []string) bool { function handles (line 317) | func handles(server *powernapconfig.ServerConfig, filePath, workDir stri... FILE: internal/lsp/util/edit.go function applyTextEdits (line 14) | func applyTextEdits(uri protocol.DocumentURI, edits []protocol.TextEdit,... function applyTextEdit (line 89) | func applyTextEdit(lines []string, edit protocol.TextEdit, encoding powe... function applyDocumentChange (line 171) | func applyDocumentChange(change protocol.DocumentChange, encoding powern... function utf32ToByteOffset (line 251) | func utf32ToByteOffset(lineText string, codepointOffset uint32) int { function ApplyWorkspaceEdit (line 269) | func ApplyWorkspaceEdit(edit protocol.WorkspaceEdit, encoding powernap.O... function rangesOverlap (line 291) | func rangesOverlap(r1, r2 protocol.Range) bool { FILE: internal/lsp/util/edit_test.go function TestPositionToByteOffset (line 11) | func TestPositionToByteOffset(t *testing.T) { function TestApplyTextEdit_UTF16 (line 121) | func TestApplyTextEdit_UTF16(t *testing.T) { function TestApplyTextEdit_UTF8 (line 265) | func TestApplyTextEdit_UTF8(t *testing.T) { function TestRangesOverlap (line 319) | func TestRangesOverlap(t *testing.T) { FILE: internal/message/attachment.go type Attachment (line 8) | type Attachment struct method IsText (line 15) | func (a Attachment) IsText() bool { return strings.HasPrefix(a.MimeTy... method IsImage (line 16) | func (a Attachment) IsImage() bool { return strings.HasPrefix(a.MimeTy... function ContainsTextAttachment (line 19) | func ContainsTextAttachment(attachments []Attachment) bool { FILE: internal/message/content.go type MessageRole (line 18) | type MessageRole constant Assistant (line 21) | Assistant MessageRole = "assistant" constant User (line 22) | User MessageRole = "user" constant System (line 23) | System MessageRole = "system" constant Tool (line 24) | Tool MessageRole = "tool" type FinishReason (line 27) | type FinishReason constant FinishReasonEndTurn (line 30) | FinishReasonEndTurn FinishReason = "end_turn" constant FinishReasonMaxTokens (line 31) | FinishReasonMaxTokens FinishReason = "max_tokens" constant FinishReasonToolUse (line 32) | FinishReasonToolUse FinishReason = "tool_use" constant FinishReasonCanceled (line 33) | FinishReasonCanceled FinishReason = "canceled" constant FinishReasonError (line 34) | FinishReasonError FinishReason = "error" constant FinishReasonPermissionDenied (line 35) | FinishReasonPermissionDenied FinishReason = "permission_denied" constant FinishReasonUnknown (line 38) | FinishReasonUnknown FinishReason = "unknown" type ContentPart (line 41) | type ContentPart interface type ReasoningContent (line 45) | type ReasoningContent struct method String (line 55) | func (tc ReasoningContent) String() string { method isPart (line 58) | func (ReasoningContent) isPart() {} type TextContent (line 60) | type TextContent struct method String (line 64) | func (tc TextContent) String() string { method isPart (line 68) | func (TextContent) isPart() {} type ImageURLContent (line 70) | type ImageURLContent struct method String (line 75) | func (iuc ImageURLContent) String() string { method isPart (line 79) | func (ImageURLContent) isPart() {} type BinaryContent (line 81) | type BinaryContent struct method String (line 87) | func (bc BinaryContent) String(p catwalk.InferenceProvider) string { method isPart (line 95) | func (BinaryContent) isPart() {} type ToolCall (line 97) | type ToolCall struct method isPart (line 105) | func (ToolCall) isPart() {} type ToolResult (line 107) | type ToolResult struct method isPart (line 117) | func (ToolResult) isPart() {} type Finish (line 119) | type Finish struct method isPart (line 126) | func (Finish) isPart() {} type Message (line 128) | type Message struct method Content (line 140) | func (m *Message) Content() TextContent { method ReasoningContent (line 149) | func (m *Message) ReasoningContent() ReasoningContent { method ImageURLContent (line 158) | func (m *Message) ImageURLContent() []ImageURLContent { method BinaryContent (line 168) | func (m *Message) BinaryContent() []BinaryContent { method ToolCalls (line 178) | func (m *Message) ToolCalls() []ToolCall { method ToolResults (line 188) | func (m *Message) ToolResults() []ToolResult { method IsFinished (line 198) | func (m *Message) IsFinished() bool { method FinishPart (line 207) | func (m *Message) FinishPart() *Finish { method FinishReason (line 216) | func (m *Message) FinishReason() FinishReason { method IsThinking (line 225) | func (m *Message) IsThinking() bool { method AppendContent (line 232) | func (m *Message) AppendContent(delta string) { method AppendReasoningContent (line 245) | func (m *Message) AppendReasoningContent(delta string) { method AppendThoughtSignature (line 266) | func (m *Message) AppendThoughtSignature(signature string, toolCallID ... method AppendReasoningSignature (line 283) | func (m *Message) AppendReasoningSignature(signature string) { method SetReasoningResponsesData (line 298) | func (m *Message) SetReasoningResponsesData(data *openai.ResponsesReas... method FinishThinking (line 312) | func (m *Message) FinishThinking() { method ThinkingDuration (line 328) | func (m *Message) ThinkingDuration() time.Duration { method FinishToolCall (line 342) | func (m *Message) FinishToolCall(toolCallID string) { method AppendToolCallInput (line 358) | func (m *Message) AppendToolCallInput(toolCallID string, inputDelta st... method AddToolCall (line 374) | func (m *Message) AddToolCall(tc ToolCall) { method SetToolCalls (line 386) | func (m *Message) SetToolCalls(tc []ToolCall) { method AddToolResult (line 401) | func (m *Message) AddToolResult(tr ToolResult) { method SetToolResults (line 405) | func (m *Message) SetToolResults(tr []ToolResult) { method Clone (line 413) | func (m *Message) Clone() Message { method AddFinish (line 420) | func (m *Message) AddFinish(reason FinishReason, message, details stri... method AddImageURL (line 431) | func (m *Message) AddImageURL(url, detail string) { method AddBinary (line 435) | func (m *Message) AddBinary(mimeType string, data []byte) { method ToAIMessage (line 463) | func (m *Message) ToAIMessage() []fantasy.Message { function PromptWithTextAttachments (line 439) | func PromptWithTextAttachments(prompt string, attachments []Attachment) ... FILE: internal/message/content_test.go function makeTestAttachments (line 9) | func makeTestAttachments(n int, contentSize int) []Attachment { function BenchmarkPromptWithTextAttachments (line 22) | func BenchmarkPromptWithTextAttachments(b *testing.B) { FILE: internal/message/message.go type CreateMessageParams (line 15) | type CreateMessageParams struct type Service (line 23) | type Service interface type service (line 35) | type service struct method Delete (line 47) | func (s *service) Delete(ctx context.Context, id string) error { method Create (line 62) | func (s *service) Create(ctx context.Context, sessionID string, params... method DeleteSessionMessages (line 98) | func (s *service) DeleteSessionMessages(ctx context.Context, sessionID... method Update (line 114) | func (s *service) Update(ctx context.Context, message Message) error { method Get (line 139) | func (s *service) Get(ctx context.Context, id string) (Message, error) { method List (line 147) | func (s *service) List(ctx context.Context, sessionID string) ([]Messa... method ListUserMessages (line 162) | func (s *service) ListUserMessages(ctx context.Context, sessionID stri... method ListAllUserMessages (line 177) | func (s *service) ListAllUserMessages(ctx context.Context) ([]Message,... method fromDBItem (line 192) | func (s *service) fromDBItem(item db.Message) (Message, error) { function NewService (line 40) | func NewService(q db.Querier) Service { type partType (line 210) | type partType constant reasoningType (line 213) | reasoningType partType = "reasoning" constant textType (line 214) | textType partType = "text" constant imageURLType (line 215) | imageURLType partType = "image_url" constant binaryType (line 216) | binaryType partType = "binary" constant toolCallType (line 217) | toolCallType partType = "tool_call" constant toolResultType (line 218) | toolResultType partType = "tool_result" constant finishType (line 219) | finishType partType = "finish" type partWrapper (line 222) | type partWrapper struct function marshalParts (line 227) | func marshalParts(parts []ContentPart) ([]byte, error) { function unmarshalParts (line 260) | func unmarshalParts(data []byte) ([]ContentPart, error) { FILE: internal/oauth/copilot/client.go function NewClient (line 19) | func NewClient(isSubAgent, debug bool) *http.Client { type initiatorTransport (line 25) | type initiatorTransport struct method RoundTrip (line 30) | func (t *initiatorTransport) RoundTrip(req *http.Request) (*http.Respo... method roundTrip (line 74) | func (t *initiatorTransport) roundTrip(req *http.Request) (*http.Respo... FILE: internal/oauth/copilot/disk.go function RefreshTokenFromDisk (line 10) | func RefreshTokenFromDisk() (string, bool) { function tokenFilePath (line 29) | func tokenFilePath() string { FILE: internal/oauth/copilot/http.go constant userAgent (line 4) | userAgent = "GitHubCopilotChat/0.32.4" constant editorVersion (line 5) | editorVersion = "vscode/1.105.1" constant editorPluginVersion (line 6) | editorPluginVersion = "copilot-chat/0.32.4" constant integrationID (line 7) | integrationID = "vscode-chat" function Headers (line 10) | func Headers() map[string]string { FILE: internal/oauth/copilot/oauth.go constant clientID (line 18) | clientID = "Iv1.b507a08c87ecfe98" constant deviceCodeURL (line 20) | deviceCodeURL = "https://github.com/login/device/code" constant accessTokenURL (line 21) | accessTokenURL = "https://github.com/login/oauth/access_token" constant copilotTokenURL (line 22) | copilotTokenURL = "https://api.github.com/copilot_internal/v2/token" type DeviceCode (line 27) | type DeviceCode struct function RequestDeviceCode (line 36) | func RequestDeviceCode(ctx context.Context) (*DeviceCode, error) { function PollForToken (line 69) | func PollForToken(ctx context.Context, dc *DeviceCode) (*oauth.Token, er... function tryGetToken (line 105) | func tryGetToken(ctx context.Context, deviceCode string) (*oauth.Token, ... function getCopilotToken (line 149) | func getCopilotToken(ctx context.Context, githubToken string) (*oauth.To... function RefreshToken (line 198) | func RefreshToken(ctx context.Context, githubToken string) (*oauth.Token... FILE: internal/oauth/copilot/urls.go constant SignupURL (line 4) | SignupURL = "https://github.com/github-copilot/signup?editor=crush" constant FreeURL (line 5) | FreeURL = "https://docs.github.com/en/copilot/how-tos/manage-your-acco... FILE: internal/oauth/hyper/device.go type DeviceAuthResponse (line 22) | type DeviceAuthResponse struct type TokenResponse (line 30) | type TokenResponse struct function InitiateDeviceAuth (line 40) | func InitiateDeviceAuth(ctx context.Context) (*DeviceAuthResponse, error) { function deviceName (line 78) | func deviceName() string { function PollForToken (line 87) | func PollForToken(ctx context.Context, deviceCode string, expiresIn int)... function pollOnce (line 118) | func pollOnce(ctx context.Context, deviceCode string) (TokenResponse, er... function ExchangeToken (line 153) | func ExchangeToken(ctx context.Context, refreshToken string) (*oauth.Tok... type IntrospectTokenResponse (line 198) | type IntrospectTokenResponse struct function IntrospectToken (line 210) | func IntrospectToken(ctx context.Context, accessToken string) (*Introspe... FILE: internal/oauth/token.go type Token (line 8) | type Token struct method SetExpiresAt (line 16) | func (t *Token) SetExpiresAt() { method IsExpired (line 21) | func (t *Token) IsExpired() bool { method SetExpiresIn (line 26) | func (t *Token) SetExpiresIn() { FILE: internal/permission/permission.go type CreatePermissionRequest (line 18) | type CreatePermissionRequest struct type PermissionNotification (line 28) | type PermissionNotification struct type PermissionRequest (line 34) | type PermissionRequest struct type Service (line 45) | type Service interface type permissionService (line 57) | type permissionService struct method GrantPersistent (line 76) | func (s *permissionService) GrantPersistent(permission PermissionReque... method Grant (line 97) | func (s *permissionService) Grant(permission PermissionRequest) { method Deny (line 114) | func (s *permissionService) Deny(permission PermissionRequest) { method Request (line 132) | func (s *permissionService) Request(ctx context.Context, opts CreatePe... method AutoApproveSession (line 218) | func (s *permissionService) AutoApproveSession(sessionID string) { method SubscribeNotifications (line 224) | func (s *permissionService) SubscribeNotifications(ctx context.Context... method SetSkipRequests (line 228) | func (s *permissionService) SetSkipRequests(skip bool) { method SkipRequests (line 232) | func (s *permissionService) SkipRequests() bool { function NewPermissionService (line 236) | func NewPermissionService(workingDir string, skip bool, allowedTools []s... FILE: internal/permission/permission_test.go function TestPermissionService_AllowedCommands (line 11) | func TestPermissionService_AllowedCommands(t *testing.T) { function TestPermissionService_SkipMode (line 82) | func TestPermissionService_SkipMode(t *testing.T) { function TestPermissionService_SequentialProperties (line 100) | func TestPermissionService_SequentialProperties(t *testing.T) { FILE: internal/projects/projects.go constant projectsFileName (line 14) | projectsFileName = "projects.json" type Project (line 17) | type Project struct type ProjectList (line 24) | type ProjectList struct function projectsFilePath (line 31) | func projectsFilePath() string { function Load (line 36) | func Load() (*ProjectList, error) { function Save (line 58) | func Save(list *ProjectList) error { function Register (line 78) | func Register(workingDir, dataDir string) error { function List (line 120) | func List() ([]Project, error) { FILE: internal/projects/projects_test.go function TestRegisterAndList (line 9) | func TestRegisterAndList(t *testing.T) { function TestRegisterUpdatesExisting (line 62) | func TestRegisterUpdatesExisting(t *testing.T) { function TestLoadEmptyFile (line 99) | func TestLoadEmptyFile(t *testing.T) { function TestProjectsFilePath (line 115) | func TestProjectsFilePath(t *testing.T) { function TestRegisterWithParentDataDir (line 128) | func TestRegisterWithParentDataDir(t *testing.T) { function TestRegisterWithExternalDataDir (line 158) | func TestRegisterWithExternalDataDir(t *testing.T) { FILE: internal/pubsub/broker.go constant bufferSize (line 8) | bufferSize = 64 type Broker (line 10) | type Broker struct function NewBroker (line 18) | func NewBroker[T any]() *Broker[T] { function NewBrokerWithOptions (line 22) | func NewBrokerWithOptions[T any](channelBufferSize, maxEvents int) *Brok... method Shutdown (line 30) | func (b *Broker[T]) Shutdown() { method Subscribe (line 49) | func (b *Broker[T]) Subscribe(ctx context.Context) <-chan Event[T] { method GetSubscriberCount (line 85) | func (b *Broker[T]) GetSubscriberCount() int { method Publish (line 91) | func (b *Broker[T]) Publish(t EventType, payload T) { FILE: internal/pubsub/events.go constant CreatedEvent (line 6) | CreatedEvent EventType = "created" constant UpdatedEvent (line 7) | UpdatedEvent EventType = "updated" constant DeletedEvent (line 8) | DeletedEvent EventType = "deleted" type Subscriber (line 11) | type Subscriber interface type EventType (line 17) | type EventType type Event (line 20) | type Event struct type Publisher (line 25) | type Publisher interface FILE: internal/session/session.go type TodoStatus (line 18) | type TodoStatus constant TodoStatusPending (line 21) | TodoStatusPending TodoStatus = "pending" constant TodoStatusInProgress (line 22) | TodoStatusInProgress TodoStatus = "in_progress" constant TodoStatusCompleted (line 23) | TodoStatusCompleted TodoStatus = "completed" function HashID (line 27) | func HashID(id string) string { type Todo (line 33) | type Todo struct function HasIncompleteTodos (line 40) | func HasIncompleteTodos(todos []Todo) bool { type Session (line 49) | type Session struct type Service (line 63) | type Service interface type service (line 82) | type service struct method Create (line 88) | func (s *service) Create(ctx context.Context, title string) (Session, ... method CreateTaskSession (line 102) | func (s *service) CreateTaskSession(ctx context.Context, toolCallID, p... method CreateTitleSession (line 116) | func (s *service) CreateTitleSession(ctx context.Context, parentSessio... method Delete (line 130) | func (s *service) Delete(ctx context.Context, id string) error { method Get (line 162) | func (s *service) Get(ctx context.Context, id string) (Session, error) { method GetLast (line 170) | func (s *service) GetLast(ctx context.Context) (Session, error) { method Save (line 178) | func (s *service) Save(ctx context.Context, session Session) (Session,... method UpdateTitleAndUsage (line 209) | func (s *service) UpdateTitleAndUsage(ctx context.Context, sessionID, ... method Rename (line 221) | func (s *service) Rename(ctx context.Context, id string, title string)... method List (line 228) | func (s *service) List(ctx context.Context) ([]Session, error) { method fromDBItem (line 240) | func (s service) fromDBItem(item db.Session) Session { method CreateAgentToolSessionID (line 292) | func (s *service) CreateAgentToolSessionID(messageID, toolCallID strin... method ParseAgentToolSessionID (line 297) | func (s *service) ParseAgentToolSessionID(sessionID string) (messageID... method IsAgentToolSession (line 306) | func (s *service) IsAgentToolSession(sessionID string) bool { function marshalTodos (line 260) | func marshalTodos(todos []Todo) (string, error) { function unmarshalTodos (line 271) | func unmarshalTodos(data string) ([]Todo, error) { function NewService (line 282) | func NewService(q *db.Queries, conn *sql.DB) Service { FILE: internal/shell/background.go constant MaxBackgroundJobs (line 17) | MaxBackgroundJobs = 50 constant CompletedJobRetentionMinutes (line 19) | CompletedJobRetentionMinutes = 8 * 60 type syncBuffer (line 23) | type syncBuffer struct method Write (line 28) | func (sb *syncBuffer) Write(p []byte) (n int, err error) { method WriteString (line 34) | func (sb *syncBuffer) WriteString(s string) (n int, err error) { method String (line 40) | func (sb *syncBuffer) String() string { type BackgroundShell (line 47) | type BackgroundShell struct method GetOutput (line 214) | func (bs *BackgroundShell) GetOutput() (stdout string, stderr string, ... method IsDone (line 224) | func (bs *BackgroundShell) IsDone() bool { method Wait (line 234) | func (bs *BackgroundShell) Wait() { method WaitContext (line 238) | func (bs *BackgroundShell) WaitContext(ctx context.Context) bool { type BackgroundShellManager (line 63) | type BackgroundShellManager struct method Start (line 89) | func (m *BackgroundShellManager) Start(ctx context.Context, workingDir... method Get (line 132) | func (m *BackgroundShellManager) Get(id string) (*BackgroundShell, boo... method Remove (line 138) | func (m *BackgroundShellManager) Remove(id string) error { method Kill (line 147) | func (m *BackgroundShellManager) Kill(id string) error { method List (line 166) | func (m *BackgroundShellManager) List() []string { method Cleanup (line 175) | func (m *BackgroundShellManager) Cleanup() int { method KillAll (line 196) | func (m *BackgroundShellManager) KillAll(ctx context.Context) { function newBackgroundShellManager (line 74) | func newBackgroundShellManager() *BackgroundShellManager { function GetBackgroundShellManager (line 81) | func GetBackgroundShellManager() *BackgroundShellManager { type BackgroundShellInfo (line 159) | type BackgroundShellInfo struct FILE: internal/shell/background_test.go function TestBackgroundShellManager_Start (line 13) | func TestBackgroundShellManager_Start(t *testing.T) { function TestBackgroundShellManager_Get (line 51) | func TestBackgroundShellManager_Get(t *testing.T) { function TestBackgroundShellManager_Kill (line 77) | func TestBackgroundShellManager_Kill(t *testing.T) { function TestBackgroundShellManager_KillNonExistent (line 108) | func TestBackgroundShellManager_KillNonExistent(t *testing.T) { function TestBackgroundShell_IsDone (line 119) | func TestBackgroundShell_IsDone(t *testing.T) { function TestBackgroundShell_WithBlockFuncs (line 142) | func TestBackgroundShell_WithBlockFuncs(t *testing.T) { function TestBackgroundShellManager_List (line 176) | func TestBackgroundShellManager_List(t *testing.T) { function TestBackgroundShellManager_KillAll (line 224) | func TestBackgroundShellManager_KillAll(t *testing.T) { function TestBackgroundShellManager_KillAll_Timeout (line 286) | func TestBackgroundShellManager_KillAll_Timeout(t *testing.T) { function TestBackgroundShell_WaitContext_Completed (line 311) | func TestBackgroundShell_WaitContext_Completed(t *testing.T) { function TestBackgroundShell_WaitContext_Canceled (line 325) | func TestBackgroundShell_WaitContext_Canceled(t *testing.T) { FILE: internal/shell/command_block_test.go function TestCommandBlocking (line 10) | func TestCommandBlocking(t *testing.T) { function TestArgumentsBlocker (line 113) | func TestArgumentsBlocker(t *testing.T) { function TestCommandsBlocker (line 263) | func TestCommandsBlocker(t *testing.T) { function TestSplitArgsFlags (line 312) | func TestSplitArgsFlags(t *testing.T) { FILE: internal/shell/comparison_test.go function TestShellPerformanceComparison (line 10) | func TestShellPerformanceComparison(t *testing.T) { function BenchmarkShellPolling (line 28) | func BenchmarkShellPolling(b *testing.B) { FILE: internal/shell/coreutils.go function init (line 11) | func init() { FILE: internal/shell/shell.go type ShellType (line 31) | type ShellType constant ShellTypePOSIX (line 34) | ShellTypePOSIX ShellType = iota constant ShellTypeCmd (line 35) | ShellTypeCmd constant ShellTypePowerShell (line 36) | ShellTypePowerShell type Logger (line 40) | type Logger interface type noopLogger (line 45) | type noopLogger struct method InfoPersist (line 47) | func (noopLogger) InfoPersist(msg string, keysAndValues ...any) {} type BlockFunc (line 50) | type BlockFunc type Shell (line 53) | type Shell struct method Exec (line 99) | func (s *Shell) Exec(ctx context.Context, command string) (string, str... method ExecStream (line 107) | func (s *Shell) ExecStream(ctx context.Context, command string, stdout... method GetWorkingDir (line 115) | func (s *Shell) GetWorkingDir() string { method SetWorkingDir (line 122) | func (s *Shell) SetWorkingDir(dir string) error { method GetEnv (line 136) | func (s *Shell) GetEnv() []string { method SetEnv (line 146) | func (s *Shell) SetEnv(key, value string) { method SetBlockFuncs (line 162) | func (s *Shell) SetBlockFuncs(blockFuncs []BlockFunc) { method blockHandler (line 221) | func (s *Shell) blockHandler() func(next interp.ExecHandlerFunc) inter... method newInterp (line 240) | func (s *Shell) newInterp(stdout, stderr io.Writer) (*interp.Runner, e... method updateShellFromRunner (line 251) | func (s *Shell) updateShellFromRunner(runner *interp.Runner) { method execCommon (line 262) | func (s *Shell) execCommon(ctx context.Context, command string, stdout... method exec (line 289) | func (s *Shell) exec(ctx context.Context, command string) (string, str... method execStream (line 296) | func (s *Shell) execStream(ctx context.Context, command string, stdout... method execHandlers (line 300) | func (s *Shell) execHandlers() []func(next interp.ExecHandlerFunc) int... type Options (line 62) | type Options struct function NewShell (line 70) | func NewShell(opts *Options) *Shell { function CommandsBlocker (line 169) | func CommandsBlocker(cmds []string) BlockFunc { function ArgumentsBlocker (line 185) | func ArgumentsBlocker(cmd string, args []string, flags []string) BlockFu... function splitArgsFlags (line 203) | func splitArgsFlags(parts []string) (args []string, flags []string) { function IsInterrupt (line 311) | func IsInterrupt(err error) bool { function ExitCode (line 317) | func ExitCode(err error) int { FILE: internal/shell/shell_test.go function BenchmarkShellQuickCommands (line 13) | func BenchmarkShellQuickCommands(b *testing.B) { function TestTestTimeout (line 27) | func TestTestTimeout(t *testing.T) { function TestTestCancel (line 49) | func TestTestCancel(t *testing.T) { function TestRunCommandError (line 66) | func TestRunCommandError(t *testing.T) { function TestRunContinuity (line 80) | func TestRunContinuity(t *testing.T) { function TestCrossPlatformExecution (line 101) | func TestCrossPlatformExecution(t *testing.T) { FILE: internal/skills/skills.go constant SkillFileName (line 20) | SkillFileName = "SKILL.md" constant MaxNameLength (line 21) | MaxNameLength = 64 constant MaxDescriptionLength (line 22) | MaxDescriptionLength = 1024 constant MaxCompatibilityLength (line 23) | MaxCompatibilityLength = 500 type Skill (line 29) | type Skill struct method Validate (line 41) | func (s *Skill) Validate() error { function Parse (line 72) | func Parse(path string) (*Skill, error) { function splitFrontmatter (line 96) | func splitFrontmatter(content string) (frontmatter, body string, err err... function Discover (line 113) | func Discover(paths []string) []*Skill { function ToPromptXML (line 162) | func ToPromptXML(skills []*Skill) string { function escape (line 180) | func escape(s string) string { FILE: internal/skills/skills_test.go function TestParse (line 12) | func TestParse(t *testing.T) { function TestSkillValidate (line 103) | func TestSkillValidate(t *testing.T) { function TestDiscover (line 184) | func TestDiscover(t *testing.T) { function TestToPromptXML (line 229) | func TestToPromptXML(t *testing.T) { function TestToPromptXMLEmpty (line 245) | func TestToPromptXMLEmpty(t *testing.T) { FILE: internal/stringext/string.go function Capitalize (line 10) | func Capitalize(text string) string { function NormalizeSpace (line 17) | func NormalizeSpace(content string) string { FILE: internal/ui/anim/anim.go constant fps (line 22) | fps = 20 constant initialChar (line 23) | initialChar = '.' constant labelGap (line 24) | labelGap = " " constant labelGapWidth (line 25) | labelGapWidth = 1 constant ellipsisAnimSpeed (line 31) | ellipsisAnimSpeed = 8 constant maxBirthOffset (line 35) | maxBirthOffset = time.Second constant prerenderedFrames (line 40) | prerenderedFrames = 10 constant defaultNumCyclingChars (line 43) | defaultNumCyclingChars = 10 function nextID (line 62) | func nextID() int { type animCache (line 67) | type animCache struct function settingsHash (line 79) | func settingsHash(opts Settings) string { type StepMsg (line 87) | type StepMsg struct type Settings (line 90) | type Settings struct type Anim (line 104) | type Anim struct method SetLabel (line 262) | func (a *Anim) SetLabel(newLabel string) { method renderLabel (line 276) | func (a *Anim) renderLabel(label string) { method Width (line 303) | func (a *Anim) Width() (w int) { method Start (line 321) | func (a *Anim) Start() tea.Cmd { method Animate (line 326) | func (a *Anim) Animate(msg StepMsg) tea.Cmd { method Render (line 349) | func (a *Anim) Render() string { method Step (line 383) | func (a *Anim) Step() tea.Cmd { function New (line 122) | func New(opts Settings) *Anim { function makeGradientRamp (line 391) | func makeGradientRamp(size int, stops ...color.Color) []color.Color { function colorIsUnset (line 439) | func colorIsUnset(c color.Color) bool { FILE: internal/ui/attachments/attachments.go constant maxFilename (line 17) | maxFilename = 15 type Keymap (line 19) | type Keymap struct function New (line 25) | func New(renderer *Renderer, keyMap Keymap) *Attachments { type Attachments (line 32) | type Attachments struct method List (line 39) | func (m *Attachments) List() []message.Attachment { return m.list } method Reset (line 40) | func (m *Attachments) Reset() { m.list = nil } method Update (line 42) | func (m *Attachments) Update(msg tea.Msg) bool { method Render (line 77) | func (m *Attachments) Render(width int) string { function NewRenderer (line 81) | func NewRenderer(normalStyle, deletingStyle, imageStyle, textStyle lipgl... type Renderer (line 90) | type Renderer struct method Render (line 94) | func (r *Renderer) Render(attachments []message.Attachment, deleting b... method icon (line 130) | func (r *Renderer) icon(a message.Attachment) lipgloss.Style { FILE: internal/ui/chat/agent.go type NestedToolContainer (line 21) | type NestedToolContainer interface type AgentToolMessageItem (line 28) | type AgentToolMessageItem struct method Animate (line 56) | func (a *AgentToolMessageItem) Animate(msg anim.StepMsg) tea.Cmd { method NestedTools (line 75) | func (a *AgentToolMessageItem) NestedTools() []ToolMessageItem { method SetNestedTools (line 80) | func (a *AgentToolMessageItem) SetNestedTools(tools []ToolMessageItem) { method AddNestedTool (line 86) | func (a *AgentToolMessageItem) AddNestedTool(tool ToolMessageItem) { function NewAgentToolMessageItem (line 40) | func NewAgentToolMessageItem( type AgentToolRenderContext (line 96) | type AgentToolRenderContext struct method RenderTool (line 101) | func (r *AgentToolRenderContext) RenderTool(sty *styles.Styles, width ... type AgenticFetchToolMessageItem (line 172) | type AgenticFetchToolMessageItem struct method NestedTools (line 200) | func (a *AgenticFetchToolMessageItem) NestedTools() []ToolMessageItem { method SetNestedTools (line 205) | func (a *AgenticFetchToolMessageItem) SetNestedTools(tools []ToolMessa... method AddNestedTool (line 211) | func (a *AgenticFetchToolMessageItem) AddNestedTool(tool ToolMessageIt... function NewAgenticFetchToolMessageItem (line 184) | func NewAgenticFetchToolMessageItem( type AgenticFetchToolRenderContext (line 221) | type AgenticFetchToolRenderContext struct method RenderTool (line 232) | func (r *AgenticFetchToolRenderContext) RenderTool(sty *styles.Styles,... type agenticFetchParams (line 226) | type agenticFetchParams struct FILE: internal/ui/chat/assistant.go constant assistantMessageTruncateFormat (line 18) | assistantMessageTruncateFormat = "… (%d lines hidden) [click or space to... constant maxCollapsedThinkingHeight (line 21) | maxCollapsedThinkingHeight = 10 type AssistantMessageItem (line 26) | type AssistantMessageItem struct method StartAnimation (line 60) | func (a *AssistantMessageItem) StartAnimation() tea.Cmd { method Animate (line 68) | func (a *AssistantMessageItem) Animate(msg anim.StepMsg) tea.Cmd { method ID (line 76) | func (a *AssistantMessageItem) ID() string { method RawRender (line 81) | func (a *AssistantMessageItem) RawRender(width int) string { method Render (line 109) | func (a *AssistantMessageItem) Render(width int) string { method renderMessageContent (line 130) | func (a *AssistantMessageItem) renderMessageContent(width int) string { method renderThinking (line 162) | func (a *AssistantMessageItem) renderThinking(thinking string, width i... method renderMarkdown (line 204) | func (a *AssistantMessageItem) renderMarkdown(content string, width in... method renderSpinning (line 213) | func (a *AssistantMessageItem) renderSpinning() string { method renderError (line 223) | func (a *AssistantMessageItem) renderError(width int) string { method isSpinning (line 233) | func (a *AssistantMessageItem) isSpinning() bool { method SetMessage (line 242) | func (a *AssistantMessageItem) SetMessage(message *message.Message) te... method ToggleExpanded (line 253) | func (a *AssistantMessageItem) ToggleExpanded() { method HandleMouseClick (line 259) | func (a *AssistantMessageItem) HandleMouseClick(btn ansi.MouseButton, ... method HandleKeyEvent (line 272) | func (a *AssistantMessageItem) HandleKeyEvent(key tea.KeyMsg) (bool, t... function NewAssistantMessageItem (line 39) | func NewAssistantMessageItem(sty *styles.Styles, message *message.Messag... FILE: internal/ui/chat/bash.go type BashToolMessageItem (line 21) | type BashToolMessageItem struct function NewBashToolMessageItem (line 28) | func NewBashToolMessageItem( type BashToolRenderContext (line 38) | type BashToolRenderContext struct method RenderTool (line 41) | func (b *BashToolRenderContext) RenderTool(sty *styles.Styles, width i... type JobOutputToolMessageItem (line 103) | type JobOutputToolMessageItem struct function NewJobOutputToolMessageItem (line 110) | func NewJobOutputToolMessageItem( type JobOutputToolRenderContext (line 120) | type JobOutputToolRenderContext struct method RenderTool (line 123) | func (j *JobOutputToolRenderContext) RenderTool(sty *styles.Styles, wi... type JobKillToolMessageItem (line 154) | type JobKillToolMessageItem struct function NewJobKillToolMessageItem (line 161) | func NewJobKillToolMessageItem( type JobKillToolRenderContext (line 171) | type JobKillToolRenderContext struct method RenderTool (line 174) | func (j *JobKillToolRenderContext) RenderTool(sty *styles.Styles, widt... function renderJobTool (line 202) | func renderJobTool(sty *styles.Styles, opts *ToolRenderOpts, width int, ... function jobHeader (line 223) | func jobHeader(sty *styles.Styles, status ToolStatus, action, shellID, d... function joinToolParts (line 246) | func joinToolParts(header, body string) string { FILE: internal/ui/chat/diagnostics.go type DiagnosticsToolMessageItem (line 17) | type DiagnosticsToolMessageItem struct function NewDiagnosticsToolMessageItem (line 24) | func NewDiagnosticsToolMessageItem( type DiagnosticsToolRenderContext (line 34) | type DiagnosticsToolRenderContext struct method RenderTool (line 37) | func (d *DiagnosticsToolRenderContext) RenderTool(sty *styles.Styles, ... FILE: internal/ui/chat/docker_mcp.go type DockerMCPToolMessageItem (line 18) | type DockerMCPToolMessageItem struct function NewDockerMCPToolMessageItem (line 25) | func NewDockerMCPToolMessageItem( type DockerMCPToolRenderContext (line 35) | type DockerMCPToolRenderContext struct method RenderTool (line 38) | func (d *DockerMCPToolRenderContext) RenderTool(sty *styles.Styles, wi... method renderMCPServers (line 178) | func (d *DockerMCPToolRenderContext) renderMCPServers(sty *styles.Styl... method makeHeader (line 226) | func (d *DockerMCPToolRenderContext) makeHeader(sty *styles.Styles, to... method formatToolName (line 239) | func (d *DockerMCPToolRenderContext) formatToolName(sty *styles.Styles... method makeCompactHeader (line 269) | func (d *DockerMCPToolRenderContext) makeCompactHeader(sty *styles.Sty... type FindMCPResponse (line 171) | type FindMCPResponse struct function IsDockerMCPTool (line 294) | func IsDockerMCPTool(name string) bool { FILE: internal/ui/chat/fetch.go type FetchToolMessageItem (line 16) | type FetchToolMessageItem struct function NewFetchToolMessageItem (line 23) | func NewFetchToolMessageItem( type FetchToolRenderContext (line 33) | type FetchToolRenderContext struct method RenderTool (line 36) | func (f *FetchToolRenderContext) RenderTool(sty *styles.Styles, width ... function getFileExtensionForFormat (line 75) | func getFileExtensionForFormat(format string) string { type WebFetchToolMessageItem (line 91) | type WebFetchToolMessageItem struct function NewWebFetchToolMessageItem (line 98) | func NewWebFetchToolMessageItem( type WebFetchToolRenderContext (line 108) | type WebFetchToolRenderContext struct method RenderTool (line 111) | func (w *WebFetchToolRenderContext) RenderTool(sty *styles.Styles, wid... type WebSearchToolMessageItem (line 145) | type WebSearchToolMessageItem struct function NewWebSearchToolMessageItem (line 152) | func NewWebSearchToolMessageItem( type WebSearchToolRenderContext (line 162) | type WebSearchToolRenderContext struct method RenderTool (line 165) | func (w *WebSearchToolRenderContext) RenderTool(sty *styles.Styles, wi... FILE: internal/ui/chat/file.go type ViewToolMessageItem (line 19) | type ViewToolMessageItem struct function NewViewToolMessageItem (line 26) | func NewViewToolMessageItem( type ViewToolRenderContext (line 36) | type ViewToolRenderContext struct method RenderTool (line 39) | func (v *ViewToolRenderContext) RenderTool(sty *styles.Styles, width i... type WriteToolMessageItem (line 105) | type WriteToolMessageItem struct function NewWriteToolMessageItem (line 112) | func NewWriteToolMessageItem( type WriteToolRenderContext (line 122) | type WriteToolRenderContext struct method RenderTool (line 125) | func (w *WriteToolRenderContext) RenderTool(sty *styles.Styles, width ... type EditToolMessageItem (line 160) | type EditToolMessageItem struct function NewEditToolMessageItem (line 167) | func NewEditToolMessageItem( type EditToolRenderContext (line 177) | type EditToolRenderContext struct method RenderTool (line 180) | func (e *EditToolRenderContext) RenderTool(sty *styles.Styles, width i... type MultiEditToolMessageItem (line 223) | type MultiEditToolMessageItem struct function NewMultiEditToolMessageItem (line 230) | func NewMultiEditToolMessageItem( type MultiEditToolRenderContext (line 240) | type MultiEditToolRenderContext struct method RenderTool (line 243) | func (m *MultiEditToolRenderContext) RenderTool(sty *styles.Styles, wi... type DownloadToolMessageItem (line 291) | type DownloadToolMessageItem struct function NewDownloadToolMessageItem (line 298) | func NewDownloadToolMessageItem( type DownloadToolRenderContext (line 308) | type DownloadToolRenderContext struct method RenderTool (line 311) | func (d *DownloadToolRenderContext) RenderTool(sty *styles.Styles, wid... FILE: internal/ui/chat/generic.go type GenericToolMessageItem (line 13) | type GenericToolMessageItem struct function NewGenericToolMessageItem (line 20) | func NewGenericToolMessageItem( type GenericToolRenderContext (line 30) | type GenericToolRenderContext struct method RenderTool (line 33) | func (g *GenericToolRenderContext) RenderTool(sty *styles.Styles, widt... function genericPrettyName (line 94) | func genericPrettyName(name string) string { FILE: internal/ui/chat/lsp_restart.go type LSPRestartToolMessageItem (line 12) | type LSPRestartToolMessageItem struct function NewLSPRestartToolMessageItem (line 19) | func NewLSPRestartToolMessageItem( type LSPRestartToolRenderContext (line 29) | type LSPRestartToolRenderContext struct method RenderTool (line 32) | func (r *LSPRestartToolRenderContext) RenderTool(sty *styles.Styles, w... FILE: internal/ui/chat/mcp.go type MCPToolMessageItem (line 14) | type MCPToolMessageItem struct function NewMCPToolMessageItem (line 21) | func NewMCPToolMessageItem( type MCPToolRenderContext (line 31) | type MCPToolRenderContext struct method RenderTool (line 34) | func (b *MCPToolRenderContext) RenderTool(sty *styles.Styles, width in... function prettyName (line 95) | func prettyName(name string) string { function looksLikeMarkdown (line 103) | func looksLikeMarkdown(content string) bool { FILE: internal/ui/chat/messages.go constant MessageLeftPaddingTotal (line 23) | MessageLeftPaddingTotal = 2 constant maxTextWidth (line 26) | maxTextWidth = 120 type Identifiable (line 29) | type Identifiable interface type Animatable (line 34) | type Animatable interface type Expandable (line 40) | type Expandable interface type KeyEventHandler (line 47) | type KeyEventHandler interface type MessageItem (line 53) | type MessageItem interface type HighlightableMessageItem (line 60) | type HighlightableMessageItem interface type FocusableMessageItem (line 66) | type FocusableMessageItem interface type SendMsg (line 72) | type SendMsg struct type highlightableMessageItem (line 77) | type highlightableMessageItem struct method isHighlighted (line 88) | func (h *highlightableMessageItem) isHighlighted() bool { method renderHighlighted (line 93) | func (h *highlightableMessageItem) renderHighlighted(content string, w... method SetHighlight (line 102) | func (h *highlightableMessageItem) SetHighlight(startLine int, startCo... method Highlight (line 117) | func (h *highlightableMessageItem) Highlight() (startLine int, startCo... function defaultHighlighter (line 121) | func defaultHighlighter(sty *styles.Styles) *highlightableMessageItem { type cachedMessageItem (line 137) | type cachedMessageItem struct method getCachedRender (line 146) | func (c *cachedMessageItem) getCachedRender(width int) (string, int, b... method setCachedRender (line 154) | func (c *cachedMessageItem) setCachedRender(rendered string, width, he... method clearCache (line 161) | func (c *cachedMessageItem) clearCache() { type focusableMessageItem (line 168) | type focusableMessageItem struct method SetFocused (line 173) | func (f *focusableMessageItem) SetFocused(focused bool) { function AssistantInfoID (line 178) | func AssistantInfoID(messageID string) string { type AssistantInfoItem (line 183) | type AssistantInfoItem struct method ID (line 206) | func (a *AssistantInfoItem) ID() string { method RawRender (line 211) | func (a *AssistantInfoItem) RawRender(width int) string { method Render (line 223) | func (a *AssistantInfoItem) Render(width int) string { method renderContent (line 232) | func (a *AssistantInfoItem) renderContent(width int) string { function NewAssistantInfoItem (line 194) | func NewAssistantInfoItem(sty *styles.Styles, message *message.Message, ... function cappedMessageWidth (line 256) | func cappedMessageWidth(availableWidth int) int { function ExtractMessageItems (line 265) | func ExtractMessageItems(sty *styles.Styles, msg *message.Message, toolR... function ShouldRenderAssistantMessage (line 302) | func ShouldRenderAssistantMessage(msg *message.Message) bool { function BuildToolResultMap (line 314) | func BuildToolResultMap(messages []*message.Message) map[string]message.... FILE: internal/ui/chat/references.go type ReferencesToolMessageItem (line 13) | type ReferencesToolMessageItem struct function NewReferencesToolMessageItem (line 20) | func NewReferencesToolMessageItem( type ReferencesToolRenderContext (line 30) | type ReferencesToolRenderContext struct method RenderTool (line 33) | func (r *ReferencesToolRenderContext) RenderTool(sty *styles.Styles, w... FILE: internal/ui/chat/search.go type GlobToolMessageItem (line 17) | type GlobToolMessageItem struct function NewGlobToolMessageItem (line 24) | func NewGlobToolMessageItem( type GlobToolRenderContext (line 34) | type GlobToolRenderContext struct method RenderTool (line 37) | func (g *GlobToolRenderContext) RenderTool(sty *styles.Styles, width i... type GrepToolMessageItem (line 76) | type GrepToolMessageItem struct function NewGrepToolMessageItem (line 83) | func NewGrepToolMessageItem( type GrepToolRenderContext (line 93) | type GrepToolRenderContext struct method RenderTool (line 96) | func (g *GrepToolRenderContext) RenderTool(sty *styles.Styles, width i... type LSToolMessageItem (line 141) | type LSToolMessageItem struct function NewLSToolMessageItem (line 148) | func NewLSToolMessageItem( type LSToolRenderContext (line 158) | type LSToolRenderContext struct method RenderTool (line 161) | func (l *LSToolRenderContext) RenderTool(sty *styles.Styles, width int... type SourcegraphToolMessageItem (line 201) | type SourcegraphToolMessageItem struct function NewSourcegraphToolMessageItem (line 208) | func NewSourcegraphToolMessageItem( type SourcegraphToolRenderContext (line 218) | type SourcegraphToolRenderContext struct method RenderTool (line 221) | func (s *SourcegraphToolRenderContext) RenderTool(sty *styles.Styles, ... FILE: internal/ui/chat/todos.go type TodosToolMessageItem (line 21) | type TodosToolMessageItem struct function NewTodosToolMessageItem (line 28) | func NewTodosToolMessageItem( type TodosToolRenderContext (line 38) | type TodosToolRenderContext struct method RenderTool (line 41) | func (t *TodosToolRenderContext) RenderTool(sty *styles.Styles, width ... function FormatTodosList (line 139) | func FormatTodosList(sty *styles.Styles, todos []session.Todo, inProgres... function sortTodos (line 176) | func sortTodos(todos []session.Todo) { function statusOrder (line 183) | func statusOrder(s session.TodoStatus) int { FILE: internal/ui/chat/tools.go constant responseContextHeight (line 26) | responseContextHeight = 10 constant toolBodyLeftPaddingTotal (line 29) | toolBodyLeftPaddingTotal = 2 type ToolStatus (line 32) | type ToolStatus constant ToolStatusAwaitingPermission (line 35) | ToolStatusAwaitingPermission ToolStatus = iota constant ToolStatusRunning (line 36) | ToolStatusRunning constant ToolStatusSuccess (line 37) | ToolStatusSuccess constant ToolStatusError (line 38) | ToolStatusError constant ToolStatusCanceled (line 39) | ToolStatusCanceled type ToolMessageItem (line 43) | type ToolMessageItem interface type Compactable (line 57) | type Compactable interface type SpinningState (line 62) | type SpinningState struct method IsCanceled (line 69) | func (s *SpinningState) IsCanceled() bool { method HasResult (line 74) | func (s *SpinningState) HasResult() bool { type SpinningFunc (line 80) | type SpinningFunc type DefaultToolRenderContext (line 83) | type DefaultToolRenderContext struct method RenderTool (line 86) | func (d *DefaultToolRenderContext) RenderTool(sty *styles.Styles, widt... type ToolRenderOpts (line 91) | type ToolRenderOpts struct method IsPending (line 103) | func (o *ToolRenderOpts) IsPending() bool { method IsCanceled (line 108) | func (o *ToolRenderOpts) IsCanceled() bool { method HasResult (line 113) | func (o *ToolRenderOpts) HasResult() bool { method HasEmptyResult (line 118) | func (o *ToolRenderOpts) HasEmptyResult() bool { type ToolRenderer (line 123) | type ToolRenderer interface type ToolRendererFunc (line 128) | type ToolRendererFunc method RenderTool (line 131) | func (f ToolRendererFunc) RenderTool(sty *styles.Styles, width int, op... type baseToolMessageItem (line 136) | type baseToolMessageItem struct method SetCompact (line 271) | func (t *baseToolMessageItem) SetCompact(compact bool) { method ID (line 277) | func (t *baseToolMessageItem) ID() string { method StartAnimation (line 282) | func (t *baseToolMessageItem) StartAnimation() tea.Cmd { method Animate (line 290) | func (t *baseToolMessageItem) Animate(msg anim.StepMsg) tea.Cmd { method RawRender (line 298) | func (t *baseToolMessageItem) RawRender(width int) string { method Render (line 325) | func (t *baseToolMessageItem) Render(width int) string { method ToolCall (line 342) | func (t *baseToolMessageItem) ToolCall() message.ToolCall { method SetToolCall (line 347) | func (t *baseToolMessageItem) SetToolCall(tc message.ToolCall) { method SetResult (line 353) | func (t *baseToolMessageItem) SetResult(res *message.ToolResult) { method MessageID (line 359) | func (t *baseToolMessageItem) MessageID() string { method SetMessageID (line 364) | func (t *baseToolMessageItem) SetMessageID(id string) { method SetStatus (line 369) | func (t *baseToolMessageItem) SetStatus(status ToolStatus) { method Status (line 375) | func (t *baseToolMessageItem) Status() ToolStatus { method computeStatus (line 380) | func (t *baseToolMessageItem) computeStatus() ToolStatus { method isSpinning (line 391) | func (t *baseToolMessageItem) isSpinning() bool { method SetSpinningFunc (line 403) | func (t *baseToolMessageItem) SetSpinningFunc(fn SpinningFunc) { method ToggleExpanded (line 408) | func (t *baseToolMessageItem) ToggleExpanded() bool { method HandleMouseClick (line 415) | func (t *baseToolMessageItem) HandleMouseClick(btn ansi.MouseButton, x... method HandleKeyEvent (line 420) | func (t *baseToolMessageItem) HandleKeyEvent(key tea.KeyMsg) (bool, te... method formatToolForCopy (line 833) | func (t *baseToolMessageItem) formatToolForCopy() string { method formatParametersForCopy (line 870) | func (t *baseToolMessageItem) formatParametersForCopy() string { method formatResultForCopy (line 1025) | func (t *baseToolMessageItem) formatResultForCopy() string { method formatBashResultForCopy (line 1064) | func (t *baseToolMessageItem) formatBashResultForCopy() string { method formatViewResultForCopy (line 1087) | func (t *baseToolMessageItem) formatViewResultForCopy() string { method formatEditResultForCopy (line 1151) | func (t *baseToolMessageItem) formatEditResultForCopy() string { method formatMultiEditResultForCopy (line 1186) | func (t *baseToolMessageItem) formatMultiEditResultForCopy() string { method formatWriteResultForCopy (line 1220) | func (t *baseToolMessageItem) formatWriteResultForCopy() string { method formatFetchResultForCopy (line 1281) | func (t *baseToolMessageItem) formatFetchResultForCopy() string { method formatAgenticFetchResultForCopy (line 1309) | func (t *baseToolMessageItem) formatAgenticFetchResultForCopy() string { method formatWebFetchResultForCopy (line 1335) | func (t *baseToolMessageItem) formatWebFetchResultForCopy() string { method formatAgentResultForCopy (line 1355) | func (t *baseToolMessageItem) formatAgentResultForCopy() string { function newBaseToolMessageItem (line 163) | func newBaseToolMessageItem( function NewToolMessageItem (line 206) | func NewToolMessageItem( function pendingTool (line 429) | func pendingTool(sty *styles.Styles, name string, anim *anim.Anim, neste... function toolEarlyStateContent (line 447) | func toolEarlyStateContent(sty *styles.Styles, opts *ToolRenderOpts, wid... function toolErrorContent (line 465) | func toolErrorContent(sty *styles.Styles, result *message.ToolResult, wi... function toolIcon (line 478) | func toolIcon(sty *styles.Styles, status ToolStatus) string { function toolParamList (line 493) | func toolParamList(sty *styles.Styles, params []string, width int) string { function toolHeader (line 527) | func toolHeader(sty *styles.Styles, status ToolStatus, name string, widt... function toolOutputPlainContent (line 542) | func toolOutputPlainContent(sty *styles.Styles, content string, width in... function toolOutputCodeContent (line 575) | func toolOutputCodeContent(sty *styles.Styles, path, content string, off... function toolOutputImageContent (line 628) | func toolOutputImageContent(sty *styles.Styles, data, mediaType string) ... function toolOutputSkillContent (line 642) | func toolOutputSkillContent(sty *styles.Styles, name, description string... function getDigits (line 653) | func getDigits(n int) int { function formatSize (line 669) | func formatSize(bytes int) string { function toolOutputDiffContent (line 685) | func toolOutputDiffContent(sty *styles.Styles, file, oldContent, newCont... function formatTimeout (line 719) | func formatTimeout(timeout int) string { function formatNonZero (line 727) | func formatNonZero(value int) string { function toolOutputMultiEditDiffContent (line 735) | func toolOutputMultiEditDiffContent(sty *styles.Styles, file string, met... function roundedEnumerator (line 776) | func roundedEnumerator(lPadding, width int) tree.Enumerator { function toolOutputMarkdownContent (line 794) | func toolOutputMarkdownContent(sty *styles.Styles, content string, width... function prettifyToolName (line 1370) | func prettifyToolName(name string) string { FILE: internal/ui/chat/user.go type UserMessageItem (line 15) | type UserMessageItem struct method RawRender (line 38) | func (m *UserMessageItem) RawRender(width int) string { method Render (line 72) | func (m *UserMessageItem) Render(width int) string { method ID (line 87) | func (m *UserMessageItem) ID() string { method renderAttachments (line 92) | func (m *UserMessageItem) renderAttachments(width int) string { method HandleKeyEvent (line 104) | func (m *UserMessageItem) HandleKeyEvent(key tea.KeyMsg) (bool, tea.Cm... function NewUserMessageItem (line 26) | func NewUserMessageItem(sty *styles.Styles, message *message.Message, at... FILE: internal/ui/common/button.go type ButtonOpts (line 11) | type ButtonOpts struct function Button (line 23) | func Button(t *styles.Styles, opts ButtonOpts) string { function ButtonGroup (line 54) | func ButtonGroup(t *styles.Styles, buttons []ButtonOpts, spacing string)... FILE: internal/ui/common/capabilities.go type Capabilities (line 15) | type Capabilities struct method Update (line 41) | func (c *Capabilities) Update(msg any) { method SupportsTrueColor (line 93) | func (c Capabilities) SupportsTrueColor() bool { method SupportsKittyGraphics (line 98) | func (c Capabilities) SupportsKittyGraphics() bool { method SupportsSixelGraphics (line 103) | func (c Capabilities) SupportsSixelGraphics() bool { method CellSize (line 108) | func (c Capabilities) CellSize() (width, height int) { function QueryCmd (line 71) | func QueryCmd(env uv.Environ) tea.Cmd { function modeSupported (line 115) | func modeSupported(v ansi.ModeSetting) bool { function shouldQueryCapabilities (line 122) | func shouldQueryCapabilities(env uv.Environ) bool { FILE: internal/ui/common/common.go constant MaxAttachmentSize (line 18) | MaxAttachmentSize = int64(5 * 1024 * 1024) type Common (line 24) | type Common struct method Config (line 30) | func (c *Common) Config() *config.Config { method Store (line 35) | func (c *Common) Store() *config.ConfigStore { function DefaultCommon (line 40) | func DefaultCommon(app *app.App) *Common { function CenterRect (line 50) | func CenterRect(area uv.Rectangle, width, height int) uv.Rectangle { function BottomLeftRect (line 62) | func BottomLeftRect(area uv.Rectangle, width, height int) uv.Rectangle { function IsFileTooBig (line 72) | func IsFileTooBig(filePath string, sizeLimit int64) (bool, error) { function CopyToClipboard (line 88) | func CopyToClipboard(text, successMessage string) tea.Cmd { function CopyToClipboardWithCallback (line 95) | func CopyToClipboardWithCallback(text, successMessage string, callback t... FILE: internal/ui/common/diff.go function DiffFormatter (line 11) | func DiffFormatter(s *styles.Styles) *diffview.DiffView { FILE: internal/ui/common/elements.go function PrettyPath (line 19) | func PrettyPath(t *styles.Styles, path string, width int) string { function FormatReasoningEffort (line 25) | func FormatReasoningEffort(effort string) string { type ModelContextInfo (line 33) | type ModelContextInfo struct function ModelInfo (line 41) | func ModelInfo(t *styles.Styles, modelName, providerName, reasoningInfo ... function formatTokensAndCost (line 86) | func formatTokensAndCost(t *styles.Styles, tokens, contextWindow int64, ... type StatusOpts (line 120) | type StatusOpts struct function Status (line 131) | func Status(t *styles.Styles, opts StatusOpts, width int) string { function Section (line 167) | func Section(t *styles.Styles, text string, width int, info ...string) s... function DialogTitle (line 190) | func DialogTitle(t *styles.Styles, title string, width int, fromColor, t... FILE: internal/ui/common/highlight.go function SyntaxHighlight (line 17) | func SyntaxHighlight(st *styles.Styles, source, fileName string, bg colo... FILE: internal/ui/common/interface.go type Model (line 8) | type Model interface FILE: internal/ui/common/markdown.go function MarkdownRenderer (line 10) | func MarkdownRenderer(sty *styles.Styles, width int) *glamour.TermRender... function PlainMarkdownRenderer (line 20) | func PlainMarkdownRenderer(sty *styles.Styles, width int) *glamour.TermR... FILE: internal/ui/common/scrollbar.go function Scrollbar (line 11) | func Scrollbar(s *styles.Styles, height, contentSize, viewportSize, offs... FILE: internal/ui/completions/completions.go constant minHeight (line 20) | minHeight = 1 constant maxHeight (line 21) | maxHeight = 10 constant minWidth (line 22) | minWidth = 10 constant maxWidth (line 23) | maxWidth = 100 type SelectionMsg (line 27) | type SelectionMsg struct type ClosedMsg (line 33) | type ClosedMsg struct type CompletionItemsLoadedMsg (line 36) | type CompletionItemsLoadedMsg struct type Completions (line 42) | type Completions struct method IsOpen (line 79) | func (c *Completions) IsOpen() bool { method Query (line 84) | func (c *Completions) Query() string { method Size (line 89) | func (c *Completions) Size() (width, height int) { method KeyMap (line 95) | func (c *Completions) KeyMap() KeyMap { method Open (line 100) | func (c *Completions) Open(depth, limit int) tea.Cmd { method SetItems (line 116) | func (c *Completions) SetItems(files []FileCompletionValue, resources ... method Close (line 159) | func (c *Completions) Close() { method Filter (line 164) | func (c *Completions) Filter(query string) { method updateSize (line 179) | func (c *Completions) updateSize() { method HasItems (line 199) | func (c *Completions) HasItems() bool { method Update (line 204) | func (c *Completions) Update(msg tea.KeyPressMsg) (tea.Msg, bool) { method selectPrev (line 238) | func (c *Completions) selectPrev() { method selectNext (line 250) | func (c *Completions) selectNext() { method selectCurrent (line 262) | func (c *Completions) selectCurrent(keepOpen bool) tea.Msg { method Render (line 299) | func (c *Completions) Render() string { function New (line 64) | func New(normalStyle, focusedStyle, matchStyle lipgloss.Style) *Completi... function loadFiles (line 312) | func loadFiles(depth, limit int) []FileCompletionValue { function loadMCPResources (line 324) | func loadMCPResources() []ResourceCompletionValue { FILE: internal/ui/completions/item.go type FileCompletionValue (line 12) | type FileCompletionValue struct type ResourceCompletionValue (line 17) | type ResourceCompletionValue struct type CompletionItem (line 25) | type CompletionItem struct method Text (line 50) | func (c *CompletionItem) Text() string { method Value (line 55) | func (c *CompletionItem) Value() any { method Filter (line 60) | func (c *CompletionItem) Filter() string { method SetMatch (line 65) | func (c *CompletionItem) SetMatch(m fuzzy.Match) { method SetFocused (line 71) | func (c *CompletionItem) SetFocused(focused bool) { method Render (line 79) | func (c *CompletionItem) Render(width int) string { function NewCompletionItem (line 39) | func NewCompletionItem(text string, value any, normalStyle, focusedStyle... function renderItem (line 92) | func renderItem( function matchedRanges (line 142) | func matchedRanges(in []int) [][2]int { function bytePosToVisibleCharPos (line 164) | func bytePosToVisibleCharPos(str string, rng [2]int) (int, int) { FILE: internal/ui/completions/keys.go type KeyMap (line 8) | type KeyMap struct method KeyBindings (line 48) | func (k KeyMap) KeyBindings() []key.Binding { method FullHelp (line 58) | func (k KeyMap) FullHelp() [][]key.Binding { method ShortHelp (line 69) | func (k KeyMap) ShortHelp() []key.Binding { function DefaultKeyMap (line 18) | func DefaultKeyMap() KeyMap { FILE: internal/ui/dialog/actions.go type ActionClose (line 22) | type ActionClose struct type ActionOpenDialog (line 28) | type ActionOpenDialog struct type ActionSelectSession (line 33) | type ActionSelectSession struct type ActionSelectModel (line 38) | type ActionSelectModel struct type ActionNewSession (line 47) | type ActionNewSession struct type ActionToggleHelp (line 48) | type ActionToggleHelp struct type ActionToggleCompactMode (line 49) | type ActionToggleCompactMode struct type ActionToggleThinking (line 50) | type ActionToggleThinking struct type ActionTogglePills (line 51) | type ActionTogglePills struct type ActionExternalEditor (line 52) | type ActionExternalEditor struct type ActionToggleYoloMode (line 53) | type ActionToggleYoloMode struct type ActionToggleNotifications (line 54) | type ActionToggleNotifications struct type ActionToggleTransparentBackground (line 55) | type ActionToggleTransparentBackground struct type ActionInitializeProject (line 56) | type ActionInitializeProject struct type ActionSummarize (line 57) | type ActionSummarize struct type ActionSelectReasoningEffort (line 62) | type ActionSelectReasoningEffort struct type ActionPermissionResponse (line 65) | type ActionPermissionResponse struct type ActionRunCustomCommand (line 70) | type ActionRunCustomCommand struct type ActionRunMCPPrompt (line 76) | type ActionRunMCPPrompt struct type ActionEnableDockerMCP (line 85) | type ActionEnableDockerMCP struct type ActionDisableDockerMCP (line 87) | type ActionDisableDockerMCP struct type ActionChangeAPIKeyState (line 92) | type ActionChangeAPIKeyState struct type ActionInitiateOAuth (line 101) | type ActionInitiateOAuth struct type ActionCompleteOAuth (line 110) | type ActionCompleteOAuth struct type ActionOAuthErrored (line 115) | type ActionOAuthErrored struct type ActionCmd (line 122) | type ActionCmd struct type ActionFilePickerSelected (line 128) | type ActionFilePickerSelected struct method Cmd (line 134) | func (a ActionFilePickerSelected) Cmd() tea.Cmd { FILE: internal/ui/dialog/api_key_input.go type APIKeyInputState (line 22) | type APIKeyInputState constant APIKeyInputStateInitial (line 25) | APIKeyInputStateInitial APIKeyInputState = iota constant APIKeyInputStateVerifying (line 26) | APIKeyInputStateVerifying constant APIKeyInputStateVerified (line 27) | APIKeyInputStateVerified constant APIKeyInputStateError (line 28) | APIKeyInputStateError constant APIKeyInputID (line 32) | APIKeyInputID = "api_key_input" type APIKeyInput (line 35) | type APIKeyInput struct method ID (line 102) | func (m *APIKeyInput) ID() string { method HandleMsg (line 107) | func (m *APIKeyInput) HandleMsg(msg tea.Msg) Action { method Draw (line 161) | func (m *APIKeyInput) Draw(scr uv.Screen, area uv.Rectangle) *tea.Curs... method headerView (line 199) | func (m *APIKeyInput) headerView() string { method dialogTitle (line 213) | func (m *APIKeyInput) dialogTitle() string { method inputView (line 233) | func (m *APIKeyInput) inputView() string { method Cursor (line 267) | func (m *APIKeyInput) Cursor() *tea.Cursor { method FullHelp (line 272) | func (m *APIKeyInput) FullHelp() [][]key.Binding { method ShortHelp (line 282) | func (m *APIKeyInput) ShortHelp() []key.Binding { method verifyAPIKey (line 289) | func (m *APIKeyInput) verifyAPIKey() tea.Msg { method saveKeyAndContinue (line 314) | func (m *APIKeyInput) saveKeyAndContinue() Action { function NewAPIKeyInput (line 58) | func NewAPIKeyInput( FILE: internal/ui/dialog/arguments.go constant ArgumentsID (line 24) | ArgumentsID = "arguments" constant maxInputWidth (line 28) | maxInputWidth = 120 constant minInputWidth (line 29) | minInputWidth = 30 constant maxViewportHeight (line 30) | maxViewportHeight = 20 constant argumentsFieldHeight (line 31) | argumentsFieldHeight = 3 type Arguments (line 35) | type Arguments struct method ID (line 120) | func (a *Arguments) ID() string { method focusInput (line 125) | func (a *Arguments) focusInput(newIndex int) { method isFieldVisible (line 139) | func (a *Arguments) isFieldVisible(fieldIndex int) bool { method ensureFieldVisible (line 149) | func (a *Arguments) ensureFieldVisible(fieldIndex int) { method findVisibleFieldByOffset (line 172) | func (a *Arguments) findVisibleFieldByOffset(fromTop bool) int { method HandleMsg (line 186) | func (a *Arguments) HandleMsg(msg tea.Msg) Action { method Cursor (line 249) | func (a *Arguments) Cursor(descriptionHeight int) *tea.Cursor { method Draw (line 259) | func (a *Arguments) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor { method StartLoading (line 369) | func (a *Arguments) StartLoading() tea.Cmd { method StopLoading (line 378) | func (a *Arguments) StopLoading() { method ShortHelp (line 383) | func (a *Arguments) ShortHelp() []key.Binding { method FullHelp (line 392) | func (a *Arguments) FullHelp() [][]key.Binding { function NewArguments (line 63) | func NewArguments(com *common.Common, title, description string, argumen... FILE: internal/ui/dialog/commands.go constant CommandsID (line 21) | CommandsID = "commands" type CommandType (line 24) | type CommandType method String (line 27) | func (c CommandType) String() string { return []string{"System", "User... constant sidebarCompactModeBreakpoint (line 30) | sidebarCompactModeBreakpoint = 120 constant SystemCommands (line 34) | SystemCommands CommandType = iota constant UserCommands (line 35) | UserCommands constant MCPPrompts (line 36) | MCPPrompts type dockerMCPAvailabilityCheckedMsg (line 40) | type dockerMCPAvailabilityCheckedMsg struct type Commands (line 44) | type Commands struct method ID (line 152) | func (c *Commands) ID() string { method HandleMsg (line 157) | func (c *Commands) HandleMsg(msg tea.Msg) Action { method InitialCmd (line 234) | func (c *Commands) InitialCmd() tea.Cmd { method Cursor (line 243) | func (c *Commands) Cursor() *tea.Cursor { method Draw (line 275) | func (c *Commands) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor { method ShortHelp (line 318) | func (c *Commands) ShortHelp() []key.Binding { method FullHelp (line 328) | func (c *Commands) FullHelp() [][]key.Binding { method nextCommandType (line 336) | func (c *Commands) nextCommandType() CommandType { method previousCommandType (line 359) | func (c *Commands) previousCommandType() CommandType { method setCommandItems (line 382) | func (c *Commands) setCommandItems(commandType CommandType) { method defaultCommands (line 420) | func (c *Commands) defaultCommands() []*CommandItem { method SetCustomCommands (line 534) | func (c *Commands) SetCustomCommands(customCommands []commands.CustomC... method SetMCPPrompts (line 542) | func (c *Commands) SetMCPPrompts(mcpPrompts []commands.MCPPrompt) { method StartLoading (line 550) | func (a *Commands) StartLoading() tea.Cmd { method StopLoading (line 559) | func (a *Commands) StopLoading() { function NewCommands (line 81) | func NewCommands(com *common.Common, sessionID string, hasSession, hasTo... function checkDockerMCPAvailabilityCmd (line 228) | func checkDockerMCPAvailabilityCmd() tea.Cmd { function commandsRadioView (line 248) | func commandsRadioView(sty *styles.Styles, selected CommandType, hasUser... FILE: internal/ui/dialog/commands_item.go type CommandItem (line 9) | type CommandItem struct method Filter (line 34) | func (c *CommandItem) Filter() string { method ID (line 39) | func (c *CommandItem) ID() string { method SetFocused (line 44) | func (c *CommandItem) SetFocused(focused bool) { method SetMatch (line 52) | func (c *CommandItem) SetMatch(m fuzzy.Match) { method Action (line 58) | func (c *CommandItem) Action() Action { method Shortcut (line 63) | func (c *CommandItem) Shortcut() string { method Render (line 68) | func (c *CommandItem) Render(width int) string { function NewCommandItem (line 23) | func NewCommandItem(t *styles.Styles, id, title, shortcut string, action... FILE: internal/ui/dialog/common.go function InputCursor (line 15) | func InputCursor(t *styles.Styles, cur *tea.Cursor) *tea.Cursor { type RenderContext (line 43) | type RenderContext struct method AddPart (line 91) | func (rc *RenderContext) AddPart(part string) { method Render (line 98) | func (rc *RenderContext) Render() string { function NewRenderContext (line 78) | func NewRenderContext(t *styles.Styles, width int) *RenderContext { FILE: internal/ui/dialog/dialog.go constant defaultDialogMaxWidth (line 14) | defaultDialogMaxWidth = 70 constant defaultDialogHeight (line 16) | defaultDialogHeight = 20 constant titleContentHeight (line 18) | titleContentHeight = 1 constant inputContentHeight (line 20) | inputContentHeight = 1 type Action (line 30) | type Action type Dialog (line 33) | type Dialog interface type LoadingDialog (line 45) | type LoadingDialog interface type Overlay (line 51) | type Overlay struct method HasDialogs (line 63) | func (d *Overlay) HasDialogs() bool { method ContainsDialog (line 68) | func (d *Overlay) ContainsDialog(dialogID string) bool { method OpenDialog (line 78) | func (d *Overlay) OpenDialog(dialog Dialog) { method CloseDialog (line 83) | func (d *Overlay) CloseDialog(dialogID string) { method CloseFrontDialog (line 93) | func (d *Overlay) CloseFrontDialog() { method Dialog (line 101) | func (d *Overlay) Dialog(dialogID string) Dialog { method DialogLast (line 111) | func (d *Overlay) DialogLast() Dialog { method BringToFront (line 119) | func (d *Overlay) BringToFront(dialogID string) { method Update (line 131) | func (d *Overlay) Update(msg tea.Msg) tea.Msg { method StartLoading (line 147) | func (d *Overlay) StartLoading() tea.Cmd { method StopLoading (line 157) | func (d *Overlay) StopLoading() { method Draw (line 199) | func (d *Overlay) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor { method removeDialog (line 208) | func (d *Overlay) removeDialog(idx int) { function NewOverlay (line 56) | func NewOverlay(dialogs ...Dialog) *Overlay { function DrawCenterCursor (line 166) | func DrawCenterCursor(scr uv.Screen, area uv.Rectangle, view string, cur... function DrawCenter (line 177) | func DrawCenter(scr uv.Screen, area uv.Rectangle, view string) { function DrawOnboarding (line 182) | func DrawOnboarding(scr uv.Screen, area uv.Rectangle, view string) { function DrawOnboardingCursor (line 188) | func DrawOnboardingCursor(scr uv.Screen, area uv.Rectangle, view string,... FILE: internal/ui/dialog/filepicker.go constant FilePickerID (line 24) | FilePickerID = "filepicker" type FilePicker (line 27) | type FilePicker struct method CellSize (line 51) | func (f *FilePicker) CellSize() fimage.CellSize { method SetImageCapabilities (line 114) | func (f *FilePicker) SetImageCapabilities(caps *common.Capabilities) { method WorkingDir (line 125) | func (f *FilePicker) WorkingDir() string { method ShortHelp (line 140) | func (f *FilePicker) ShortHelp() []key.Binding { method FullHelp (line 149) | func (f *FilePicker) FullHelp() [][]key.Binding { method ID (line 165) | func (f *FilePicker) ID() string { method HandleMsg (line 170) | func (f *FilePicker) HandleMsg(msg tea.Msg) Action { method Draw (line 223) | func (f *FilePicker) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor { method imagePreview (line 264) | func (f *FilePicker) imagePreview(imgPrevWidth, imgPrevHeight int) str... function NewFilePicker (line 61) | func NewFilePicker(com *common.Common) (*FilePicker, tea.Cmd) { constant filePickerMinWidth (line 218) | filePickerMinWidth = 70 constant filePickerMinHeight (line 219) | filePickerMinHeight = 10 function loadImage (line 299) | func loadImage(path string) (img image.Image, err error) { FILE: internal/ui/dialog/models.go type ModelType (line 20) | type ModelType method String (line 28) | func (mt ModelType) String() string { method Config (line 40) | func (mt ModelType) Config() config.SelectedModelType { method Placeholder (line 52) | func (mt ModelType) Placeholder() string { constant ModelTypeLarge (line 23) | ModelTypeLarge ModelType = iota constant ModelTypeSmall (line 24) | ModelTypeSmall constant onboardingModelInputPlaceholder (line 64) | onboardingModelInputPlaceholder = "Find your fave" constant largeModelInputPlaceholder (line 65) | largeModelInputPlaceholder = "Choose a model for large, complex tasks" constant smallModelInputPlaceholder (line 66) | smallModelInputPlaceholder = "Choose a model for small, simple tasks" constant ModelsID (line 70) | ModelsID = "models" constant defaultModelsDialogMaxWidth (line 72) | defaultModelsDialogMaxWidth = 73 type Models (line 75) | type Models struct method ID (line 159) | func (m *Models) ID() string { method HandleMsg (line 164) | func (m *Models) HandleMsg(msg tea.Msg) Action { method Cursor (line 232) | func (m *Models) Cursor() *tea.Cursor { method modelTypeRadioView (line 237) | func (m *Models) modelTypeRadioView() string { method Draw (line 257) | func (m *Models) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor { method ShortHelp (line 310) | func (m *Models) ShortHelp() []key.Binding { method FullHelp (line 330) | func (m *Models) FullHelp() [][]key.Binding { method isSelectedConfigured (line 334) | func (m *Models) isSelectedConfigured() bool { method setProviderItems (line 349) | func (m *Models) setProviderItems() error { function NewModels (line 99) | func NewModels(com *common.Common, isOnboarding bool) (*Models, error) { function modelKey (line 516) | func modelKey(providerID, modelID string) string { FILE: internal/ui/dialog/models_item.go type ModelGroup (line 14) | type ModelGroup struct method AppendItems (line 32) | func (m *ModelGroup) AppendItems(items ...*ModelItem) { method Render (line 37) | func (m *ModelGroup) Render(width int) string { function NewModelGroup (line 22) | func NewModelGroup(t *styles.Styles, title string, configured bool, item... type ModelItem (line 52) | type ModelItem struct method SelectedModel (line 65) | func (m *ModelItem) SelectedModel() config.SelectedModel { method SelectedModelType (line 75) | func (m *ModelItem) SelectedModelType() config.SelectedModelType { method Filter (line 94) | func (m *ModelItem) Filter() string { method ID (line 99) | func (m *ModelItem) ID() string { method Render (line 104) | func (m *ModelItem) Render(width int) string { method SetFocused (line 119) | func (m *ModelItem) SetFocused(focused bool) { method SetMatch (line 127) | func (m *ModelItem) SetMatch(fm fuzzy.Match) { function NewModelItem (line 82) | func NewModelItem(t *styles.Styles, prov catwalk.Provider, model catwalk... FILE: internal/ui/dialog/models_list.go type ModelsList (line 15) | type ModelsList struct method Len (line 34) | func (f *ModelsList) Len() int { method SetGroups (line 43) | func (f *ModelsList) SetGroups(groups ...ModelGroup) { method SetFilter (line 58) | func (f *ModelsList) SetFilter(q string) { method SetSelected (line 65) | func (f *ModelsList) SetSelected(index int) { method SetSelectedItem (line 86) | func (f *ModelsList) SetSelectedItem(itemID string) { method SelectNext (line 106) | func (f *ModelsList) SelectNext() (v bool) { method SelectPrev (line 120) | func (f *ModelsList) SelectPrev() (v bool) { method SelectFirst (line 133) | func (f *ModelsList) SelectFirst() (v bool) { method SelectLast (line 147) | func (f *ModelsList) SelectLast() (v bool) { method IsSelectedFirst (line 160) | func (f *ModelsList) IsSelectedFirst() bool { method IsSelectedLast (line 169) | func (f *ModelsList) IsSelectedLast() bool { method VisibleItems (line 178) | func (f *ModelsList) VisibleItems() []list.Item { method Render (line 259) | func (f *ModelsList) Render() string { function NewModelsList (line 23) | func NewModelsList(sty *styles.Styles, groups ...ModelGroup) *ModelsList { type modelGroups (line 264) | type modelGroups method Len (line 266) | func (m modelGroups) Len() int { method String (line 274) | func (m modelGroups) String(i int) string { FILE: internal/ui/dialog/oauth.go type OAuthProvider (line 22) | type OAuthProvider interface type OAuthState (line 30) | type OAuthState constant OAuthStateInitializing (line 33) | OAuthStateInitializing OAuthState = iota constant OAuthStateDisplay (line 34) | OAuthStateDisplay constant OAuthStateSuccess (line 35) | OAuthStateSuccess constant OAuthStateError (line 36) | OAuthStateError constant OAuthID (line 40) | OAuthID = "oauth" type OAuth (line 43) | type OAuth struct method ID (line 117) | func (m *OAuth) ID() string { method HandleMsg (line 122) | func (m *OAuth) HandleMsg(msg tea.Msg) Action { method Draw (line 183) | func (m *OAuth) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor { method dialogContent (line 198) | func (m *OAuth) dialogContent() string { method headerContent (line 218) | func (m *OAuth) headerContent() string { method innerDialogContent (line 233) | func (m *OAuth) innerDialogContent() string { method FullHelp (line 322) | func (m *OAuth) FullHelp() [][]key.Binding { method ShortHelp (line 327) | func (m *OAuth) ShortHelp() []key.Binding { method copyCode (line 349) | func (d *OAuth) copyCode() tea.Cmd { method copyCodeAndOpenURL (line 359) | func (d *OAuth) copyCodeAndOpenURL() tea.Cmd { method saveKeyAndContinue (line 375) | func (m *OAuth) saveKeyAndContinue() Action { function newOAuth (line 75) | func newOAuth( FILE: internal/ui/dialog/oauth_copilot.go function NewOAuthCopilot (line 15) | func NewOAuthCopilot( type OAuthCopilot (line 25) | type OAuthCopilot struct method name (line 32) | func (m *OAuthCopilot) name() string { method initiateAuth (line 36) | func (m *OAuthCopilot) initiateAuth() tea.Msg { method startPolling (line 56) | func (m *OAuthCopilot) startPolling(deviceCode string, expiresIn int) ... method stopPolling (line 73) | func (m *OAuthCopilot) stopPolling() tea.Msg { FILE: internal/ui/dialog/oauth_hyper.go function NewOAuthHyper (line 15) | func NewOAuthHyper( type OAuthHyper (line 25) | type OAuthHyper struct method name (line 31) | func (m *OAuthHyper) name() string { method initiateAuth (line 35) | func (m *OAuthHyper) initiateAuth() tea.Msg { method startPolling (line 61) | func (m *OAuthHyper) startPolling(deviceCode string, expiresIn int) te... method stopPolling (line 91) | func (m *OAuthHyper) stopPolling() tea.Msg { FILE: internal/ui/dialog/permissions.go constant PermissionsID (line 23) | PermissionsID = "permissions" type PermissionAction (line 26) | type PermissionAction constant PermissionAllow (line 29) | PermissionAllow PermissionAction = "allow" constant PermissionAllowForSession (line 30) | PermissionAllowForSession PermissionAction = "allow_session" constant PermissionDeny (line 31) | PermissionDeny PermissionAction = "deny" constant diffMaxWidth (line 37) | diffMaxWidth = 180 constant diffSizeRatio (line 39) | diffSizeRatio = 0.8 constant simpleMaxWidth (line 41) | simpleMaxWidth = 100 constant simpleSizeRatio (line 43) | simpleSizeRatio = 0.6 constant simpleHeightRatio (line 45) | simpleHeightRatio = 0.5 constant splitModeMinWidth (line 47) | splitModeMinWidth = 140 constant layoutSpacingLines (line 49) | layoutSpacingLines = 4 constant minWindowWidth (line 51) | minWindowWidth = 77 constant minWindowHeight (line 53) | minWindowHeight = 20 type Permissions (line 57) | type Permissions struct method calculateContentWidth (line 216) | func (p *Permissions) calculateContentWidth(width int) int { method ID (line 223) | func (*Permissions) ID() string { method HandleMsg (line 228) | func (p *Permissions) HandleMsg(msg tea.Msg) Action { method selectCurrentOption (line 299) | func (p *Permissions) selectCurrentOption() tea.Msg { method respond (line 310) | func (p *Permissions) respond(action PermissionAction) tea.Msg { method hasDiffView (line 317) | func (p *Permissions) hasDiffView() bool { method isSplitMode (line 325) | func (p *Permissions) isSplitMode() bool { method scrollLeft (line 334) | func (p *Permissions) scrollLeft() { method scrollRight (line 339) | func (p *Permissions) scrollRight() { method Draw (line 345) | func (p *Permissions) Draw(scr uv.Screen, area uv.Rectangle) *tea.Curs... method renderHeader (line 443) | func (p *Permissions) renderHeader(contentWidth int) string { method renderKeyValue (line 490) | func (p *Permissions) renderKeyValue(key, value string, width int) str... method renderToolName (line 501) | func (p *Permissions) renderToolName(width int) string { method renderContent (line 524) | func (p *Permissions) renderContent(width int) string { method renderBashContent (line 549) | func (p *Permissions) renderBashContent(width int) string { method renderEditContent (line 558) | func (p *Permissions) renderEditContent(contentWidth int) string { method renderWriteContent (line 566) | func (p *Permissions) renderWriteContent(contentWidth int) string { method renderMultiEditContent (line 574) | func (p *Permissions) renderMultiEditContent(contentWidth int) string { method renderDiff (line 582) | func (p *Permissions) renderDiff(filePath, oldContent, newContent stri... method renderDownloadContent (line 611) | func (p *Permissions) renderDownloadContent(width int) string { method renderFetchContent (line 625) | func (p *Permissions) renderFetchContent(width int) string { method renderAgenticFetchContent (line 634) | func (p *Permissions) renderAgenticFetchContent(width int) string { method renderViewContent (line 650) | func (p *Permissions) renderViewContent(width int) string { method renderLSContent (line 667) | func (p *Permissions) renderLSContent(width int) string { method renderDefaultContent (line 681) | func (p *Permissions) renderDefaultContent(width int) string { method renderContentPanel (line 727) | func (p *Permissions) renderContentPanel(content string, width int) st... method renderButtons (line 732) | func (p *Permissions) renderButtons(contentWidth int) string { method canScroll (line 756) | func (p *Permissions) canScroll() bool { method ShortHelp (line 766) | func (p *Permissions) ShortHelp() []key.Binding { method FullHelp (line 788) | func (p *Permissions) FullHelp() [][]key.Binding { type permissionsKeyMap (line 81) | type permissionsKeyMap struct function defaultPermissionsKeyMap (line 100) | func defaultPermissionsKeyMap() permissionsKeyMap { type PermissionsOption (line 169) | type PermissionsOption function WithDiffMode (line 172) | func WithDiffMode(split bool) PermissionsOption { function NewPermissions (line 179) | func NewPermissions(com *common.Common, perm permission.PermissionReques... constant horizontalScrollStep (line 332) | horizontalScrollStep = 5 function prettyName (line 518) | func prettyName(name string) string { FILE: internal/ui/dialog/quit.go constant QuitID (line 12) | QuitID = "quit" type Quit (line 15) | type Quit struct method ID (line 66) | func (*Quit) ID() string { method HandleMsg (line 71) | func (q *Quit) HandleMsg(msg tea.Msg) Action { method Draw (line 97) | func (q *Quit) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor { method ShortHelp (line 120) | func (q *Quit) ShortHelp() []key.Binding { method FullHelp (line 128) | func (q *Quit) FullHelp() [][]key.Binding { function NewQuit (line 32) | func NewQuit(com *common.Common) *Quit { FILE: internal/ui/dialog/reasoning.go constant ReasoningID (line 20) | ReasoningID = "reasoning" constant reasoningDialogMaxWidth (line 21) | reasoningDialogMaxWidth = 50 constant reasoningDialogMaxHeight (line 22) | reasoningDialogMaxHeight = 10 type Reasoning (line 26) | type Reasoning struct method ID (line 100) | func (r *Reasoning) ID() string { method HandleMsg (line 105) | func (r *Reasoning) HandleMsg(msg tea.Msg) Action { method Cursor (line 153) | func (r *Reasoning) Cursor() *tea.Cursor { method Draw (line 158) | func (r *Reasoning) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor { method ShortHelp (line 196) | func (r *Reasoning) ShortHelp() []key.Binding { method FullHelp (line 205) | func (r *Reasoning) FullHelp() [][]key.Binding { method setReasoningItems (line 220) | func (r *Reasoning) setReasoningItems() error { type ReasoningItem (line 42) | type ReasoningItem struct method Filter (line 264) | func (r *ReasoningItem) Filter() string { method ID (line 269) | func (r *ReasoningItem) ID() string { method SetFocused (line 274) | func (r *ReasoningItem) SetFocused(focused bool) { method SetMatch (line 282) | func (r *ReasoningItem) SetMatch(m fuzzy.Match) { method Render (line 288) | func (r *ReasoningItem) Render(width int) string { function NewReasoning (line 58) | func NewReasoning(com *common.Common) (*Reasoning, error) { FILE: internal/ui/dialog/sessions.go constant SessionsID (line 20) | SessionsID = "session" type sessionsMode (line 22) | type sessionsMode constant sessionsModeNormal (line 26) | sessionsModeNormal sessionsMode = iota constant sessionsModeDeleting (line 27) | sessionsModeDeleting constant sessionsModeUpdating (line 28) | sessionsModeUpdating type Session (line 32) | type Session struct method ID (line 137) | func (s *Session) ID() string { method HandleMsg (line 142) | func (s *Session) HandleMsg(msg tea.Msg) Action { method Cursor (line 225) | func (s *Session) Cursor() *tea.Cursor { method Draw (line 230) | func (s *Session) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor { method selectedSessionItem (line 321) | func (s *Session) selectedSessionItem() *SessionItem { method confirmDeleteSession (line 328) | func (s *Session) confirmDeleteSession() Action { method removeSession (line 339) | func (s *Session) removeSession(id string) { method deleteSessionCmd (line 350) | func (s *Session) deleteSessionCmd(id string) tea.Cmd { method confirmRenameSession (line 360) | func (s *Session) confirmRenameSession() Action { method updateSession (line 377) | func (s *Session) updateSession(session session.Session) { method updateSessionCmd (line 386) | func (s *Session) updateSessionCmd(session session.Session) tea.Cmd { method isCurrentSessionBusy (line 396) | func (s *Session) isCurrentSessionBusy() bool { method ShortHelp (line 410) | func (s *Session) ShortHelp() []key.Binding { method FullHelp (line 434) | func (s *Session) FullHelp() [][]key.Binding { function NewSessions (line 60) | func NewSessions(com *common.Common, selectedSessionID string) (*Session... FILE: internal/ui/dialog/sessions_item.go type ListItem (line 21) | type ListItem interface type SessionItem (line 31) | type SessionItem struct method Filter (line 44) | func (s *SessionItem) Filter() string { method ID (line 49) | func (s *SessionItem) ID() string { method SetMatch (line 54) | func (s *SessionItem) SetMatch(m fuzzy.Match) { method InputValue (line 60) | func (s *SessionItem) InputValue() string { method HandleInput (line 65) | func (s *SessionItem) HandleInput(msg tea.Msg) tea.Cmd { method Cursor (line 72) | func (s *SessionItem) Cursor() *tea.Cursor { method Render (line 77) | func (s *SessionItem) Render(width int) string { method SetFocused (line 178) | func (s *SessionItem) SetFocused(focused bool) { type ListItemStyles (line 104) | type ListItemStyles struct function renderItem (line 111) | func renderItem(t ListItemStyles, title string, info string, focused boo... function sessionItems (line 187) | func sessionItems(t *styles.Styles, mode sessionsMode, sessions ...sessi... function matchedRanges (line 205) | func matchedRanges(in []int) [][2]int { function bytePosToVisibleCharPos (line 226) | func bytePosToVisibleCharPos(str string, rng [2]int) (int, int) { FILE: internal/ui/diffview/chroma.go type chromaFormatter (line 18) | type chromaFormatter struct method Format (line 23) | func (c chromaFormatter) Format(w io.Writer, style *chroma.Style, it c... FILE: internal/ui/diffview/diffview.go constant leadingSymbolsSize (line 18) | leadingSymbolsSize = 2 constant lineNumPadding (line 19) | lineNumPadding = 1 type file (line 22) | type file struct type layout (line 27) | type layout constant layoutUnified (line 30) | layoutUnified layout = iota + 1 constant layoutSplit (line 31) | layoutSplit type DiffView (line 35) | type DiffView struct method Unified (line 86) | func (dv *DiffView) Unified() *DiffView { method Split (line 92) | func (dv *DiffView) Split() *DiffView { method Before (line 98) | func (dv *DiffView) Before(path, content string) *DiffView { method After (line 106) | func (dv *DiffView) After(path, content string) *DiffView { method clearCaches (line 114) | func (dv *DiffView) clearCaches() { method ContextLines (line 121) | func (dv *DiffView) ContextLines(contextLines int) *DiffView { method Style (line 127) | func (dv *DiffView) Style(style Style) *DiffView { method LineNumbers (line 133) | func (dv *DiffView) LineNumbers(lineNumbers bool) *DiffView { method Height (line 139) | func (dv *DiffView) Height(height int) *DiffView { method Width (line 145) | func (dv *DiffView) Width(width int) *DiffView { method XOffset (line 151) | func (dv *DiffView) XOffset(xOffset int) *DiffView { method YOffset (line 157) | func (dv *DiffView) YOffset(yOffset int) *DiffView { method InfiniteYScroll (line 163) | func (dv *DiffView) InfiniteYScroll(infiniteYScroll bool) *DiffView { method TabWidth (line 170) | func (dv *DiffView) TabWidth(tabWidth int) *DiffView { method ChromaStyle (line 177) | func (dv *DiffView) ChromaStyle(style *chroma.Style) *DiffView { method clearSyntaxCache (line 185) | func (dv *DiffView) clearSyntaxCache() { method String (line 195) | func (dv *DiffView) String() string { method normalizeLineEndings (line 232) | func (dv *DiffView) normalizeLineEndings() { method replaceTabs (line 239) | func (dv *DiffView) replaceTabs() { method computeDiff (line 246) | func (dv *DiffView) computeDiff() error { method convertDiffToSplit (line 267) | func (dv *DiffView) convertDiffToSplit() { method adjustStyles (line 279) | func (dv *DiffView) adjustStyles() { method detectNumDigits (line 292) | func (dv *DiffView) detectNumDigits() { method detectTotalLines (line 302) | func (dv *DiffView) detectTotalLines() { method preventInfiniteYScroll (line 317) | func (dv *DiffView) preventInfiniteYScroll() { method detectCodeWidth (line 334) | func (dv *DiffView) detectCodeWidth() { method detectUnifiedCodeWidth (line 346) | func (dv *DiffView) detectUnifiedCodeWidth() { method detectSplitCodeWidth (line 361) | func (dv *DiffView) detectSplitCodeWidth() { method resizeCodeWidth (line 381) | func (dv *DiffView) resizeCodeWidth() { method renderUnified (line 398) | func (dv *DiffView) renderUnified() string { method renderSplit (line 507) | func (dv *DiffView) renderSplit() string { method hunkLineFor (line 664) | func (dv *DiffView) hunkLineFor(h *udiff.Hunk) string { method hunkShownLines (line 678) | func (dv *DiffView) hunkShownLines(h *udiff.Hunk) (before, after int) { method lineStyleForType (line 693) | func (dv *DiffView) lineStyleForType(t udiff.OpKind) LineStyle { method hightlightCode (line 706) | func (dv *DiffView) hightlightCode(source string, bgColor color.Color)... method createSyntaxCacheKey (line 742) | func (dv *DiffView) createSyntaxCacheKey(source string, bgColor color.... method getChromaLexer (line 754) | func (dv *DiffView) getChromaLexer() chroma.Lexer { method getChromaFormatter (line 770) | func (dv *DiffView) getChromaFormatter(bgColor color.Color) chroma.For... function New (line 73) | func New() *DiffView { FILE: internal/ui/diffview/diffview_test.go type TestFunc (line 46) | type TestFunc type TestFuncs (line 47) | type TestFuncs function TestDiffView (line 135) | func TestDiffView(t *testing.T) { function TestDiffViewTabs (line 166) | func TestDiffViewTabs(t *testing.T) { function TestDiffViewLineBreakIssue (line 186) | func TestDiffViewLineBreakIssue(t *testing.T) { function TestDiffViewWidth (line 206) | func TestDiffViewWidth(t *testing.T) { function TestDiffViewHeight (line 235) | func TestDiffViewHeight(t *testing.T) { function TestDiffViewXOffset (line 258) | func TestDiffViewXOffset(t *testing.T) { function TestDiffViewYOffset (line 284) | func TestDiffViewYOffset(t *testing.T) { function TestDiffViewYOffsetInfinite (line 308) | func TestDiffViewYOffsetInfinite(t *testing.T) { function assertLineWidth (line 333) | func assertLineWidth(t *testing.T, expected int, output string) { function assertHeight (line 343) | func assertHeight(t *testing.T, expected int, output string) { FILE: internal/ui/diffview/split.go type splitHunk (line 10) | type splitHunk struct type splitLine (line 16) | type splitLine struct function hunkToSplit (line 21) | func hunkToSplit(h *udiff.Hunk) (sh splitHunk) { FILE: internal/ui/diffview/style.go type LineStyle (line 9) | type LineStyle struct type Style (line 18) | type Style struct function DefaultLightStyle (line 27) | func DefaultLightStyle() Style { function DefaultDarkStyle (line 77) | func DefaultDarkStyle() Style { FILE: internal/ui/diffview/udiff_test.go function TestUdiff (line 12) | func TestUdiff(t *testing.T) { FILE: internal/ui/diffview/util.go function pad (line 10) | func pad(v any, width int) string { function isEven (line 19) | func isEven(n int) bool { function isOdd (line 23) | func isOdd(n int) bool { function btoi (line 27) | func btoi(b bool) int { function ternary (line 34) | func ternary[T any](cond bool, t, f T) T { FILE: internal/ui/diffview/util_test.go function TestPad (line 7) | func TestPad(t *testing.T) { FILE: internal/ui/image/image.go type TransmittedMsg (line 24) | type TransmittedMsg struct type Encoding (line 29) | type Encoding method Transmit (line 127) | func (e Encoding) Transmit(id string, img image.Image, cs CellSize, co... method Render (line 193) | func (e Encoding) Render(id string, cols, rows int) string { constant EncodingBlocks (line 33) | EncodingBlocks Encoding = iota constant EncodingKitty (line 34) | EncodingKitty type imageKey (line 37) | type imageKey struct method Hash (line 45) | func (k imageKey) Hash() uint32 { method ID (line 52) | func (k imageKey) ID() string { type CellSize (line 57) | type CellSize struct type cachedImage (line 61) | type cachedImage struct function ResetCache (line 72) | func ResetCache() { function fitImage (line 80) | func fitImage(id string, img image.Image, cs CellSize, cols, rows int) i... function HasTransmitted (line 116) | func HasTransmitted(id string, cols, rows int) bool { FILE: internal/ui/image/image_test.go function TestResetCache (line 10) | func TestResetCache(t *testing.T) { function TestResetIdempotent (line 35) | func TestResetIdempotent(t *testing.T) { FILE: internal/ui/list/filterable.go type FilterableItem (line 8) | type FilterableItem interface type MatchSettable (line 16) | type MatchSettable interface type FilterableList (line 22) | type FilterableList struct method SetItems (line 40) | func (f *FilterableList) SetItems(items ...FilterableItem) { method AppendItems (line 50) | func (f *FilterableList) AppendItems(items ...FilterableItem) { method PrependItems (line 60) | func (f *FilterableList) PrependItems(items ...FilterableItem) { method SetFilter (line 70) | func (f *FilterableList) SetFilter(q string) { method FilteredItems (line 91) | func (f *FilterableList) FilteredItems() []Item { method Render (line 122) | func (f *FilterableList) Render() string { function NewFilterableList (line 29) | func NewFilterableList(items ...FilterableItem) *FilterableList { type FilterableItemsSource (line 78) | type FilterableItemsSource method Len (line 81) | func (f FilterableItemsSource) Len() int { method String (line 86) | func (f FilterableItemsSource) String(i int) string { FILE: internal/ui/list/focus.go function FocusedRenderCallback (line 5) | func FocusedRenderCallback(list *List) RenderCallback { FILE: internal/ui/list/highlight.go type Highlighter (line 22) | type Highlighter function HighlightContent (line 25) | func HighlightContent(content string, area image.Rectangle, startLine, s... function Highlight (line 46) | func Highlight(content string, area image.Rectangle, startLine, startCol... function HighlightBuffer (line 56) | func HighlightBuffer(content string, area image.Rectangle, startLine, st... function ToHighlighter (line 138) | func ToHighlighter(lgStyle lipgloss.Style) Highlighter { function ToStyle (line 148) | func ToStyle(lgStyle lipgloss.Style) uv.Style { function AdjustArea (line 193) | func AdjustArea(area image.Rectangle, style lipgloss.Style) image.Rectan... FILE: internal/ui/list/item.go type Item (line 10) | type Item interface type RawRenderable (line 18) | type RawRenderable interface type Focusable (line 25) | type Focusable interface type Highlightable (line 31) | type Highlightable interface type MouseClickable (line 40) | type MouseClickable interface type SpacerItem (line 47) | type SpacerItem struct method Render (line 59) | func (s *SpacerItem) Render(width int) string { function NewSpacerItem (line 52) | func NewSpacerItem(height int) *SpacerItem { FILE: internal/ui/list/list.go type List (line 10) | type List struct method RegisterRenderCallback (line 58) | func (l *List) RegisterRenderCallback(cb RenderCallback) { method SetSize (line 63) | func (l *List) SetSize(width, height int) { method SetGap (line 69) | func (l *List) SetGap(gap int) { method Gap (line 74) | func (l *List) Gap() int { method AtBottom (line 79) | func (l *List) AtBottom() bool { method SetReverse (line 103) | func (l *List) SetReverse(reverse bool) { method Width (line 108) | func (l *List) Width() int { method Height (line 113) | func (l *List) Height() int { method Len (line 118) | func (l *List) Len() int { method lastOffsetItem (line 124) | func (l *List) lastOffsetItem() (int, int, int) { method getItem (line 147) | func (l *List) getItem(idx int) renderedItem { method ScrollToIndex (line 173) | func (l *List) ScrollToIndex(index int) { method ScrollBy (line 185) | func (l *List) ScrollBy(lines int) { method VisibleItemIndices (line 248) | func (l *List) VisibleItemIndices() (startIdx, endIdx int) { method Render (line 279) | func (l *List) Render() string { method PrependItems (line 339) | func (l *List) PrependItems(items ...Item) { method SetItems (line 352) | func (l *List) SetItems(items ...Item) { method setItems (line 358) | func (l *List) setItems(evict bool, items ...Item) { method AppendItems (line 366) | func (l *List) AppendItems(items ...Item) { method RemoveItem (line 371) | func (l *List) RemoveItem(idx int) { method Focused (line 396) | func (l *List) Focused() bool { method Focus (line 401) | func (l *List) Focus() { method Blur (line 406) | func (l *List) Blur() { method ScrollToTop (line 411) | func (l *List) ScrollToTop() { method ScrollToBottom (line 417) | func (l *List) ScrollToBottom() { method ScrollToSelected (line 428) | func (l *List) ScrollToSelected() { method SelectedItemInView (line 462) | func (l *List) SelectedItemInView() bool { method SetSelected (line 472) | func (l *List) SetSelected(index int) { method Selected (line 482) | func (l *List) Selected() int { method IsSelectedFirst (line 487) | func (l *List) IsSelectedFirst() bool { method IsSelectedLast (line 492) | func (l *List) IsSelectedLast() bool { method SelectPrev (line 498) | func (l *List) SelectPrev() bool { method SelectNext (line 517) | func (l *List) SelectNext() bool { method SelectFirst (line 536) | func (l *List) SelectFirst() bool { method SelectLast (line 546) | func (l *List) SelectLast() bool { method WrapToStart (line 556) | func (l *List) WrapToStart() bool { method WrapToEnd (line 570) | func (l *List) WrapToEnd() bool { method SelectedItem (line 584) | func (l *List) SelectedItem() Item { method SelectFirstInView (line 592) | func (l *List) SelectFirstInView() { method SelectLastInView (line 598) | func (l *List) SelectLastInView() { method ItemAt (line 604) | func (l *List) ItemAt(index int) Item { method ItemIndexAtPosition (line 614) | func (l *List) ItemIndexAtPosition(x, y int) (itemIdx int, itemY int) { method findItemAtY (line 621) | func (l *List) findItemAtY(_, y int) (itemIdx int, itemY int) { type renderedItem (line 39) | type renderedItem struct function NewList (line 45) | func NewList(items ...Item) *List { type RenderCallback (line 54) | type RenderCallback FILE: internal/ui/logo/logo.go type letterform (line 18) | type letterform constant diag (line 20) | diag = `╱` type Opts (line 23) | type Opts struct function Render (line 37) | func Render(s *styles.Styles, version string, compact bool, o Opts) stri... function SmallRender (line 120) | func SmallRender(t *styles.Styles, width int) string { function renderWord (line 133) | func renderWord(spacing int, stretchIndex int, letterforms ...letterform... function letterC (line 157) | func letterC(stretch bool) string { function letterH (line 187) | func letterH(stretch bool) string { function letterR (line 217) | func letterR(stretch bool) string { function letterSStylized (line 253) | func letterSStylized(stretch bool) string { function letterU (line 289) | func letterU(stretch bool) string { function joinLetterform (line 317) | func joinLetterform(letters ...string) string { type letterformProps (line 323) | type letterformProps struct function stretchLetterformPart (line 332) | func stretchLetterformPart(s string, p letterformProps) string { FILE: internal/ui/logo/rand.go function cachedRandN (line 13) | func cachedRandN(n int) int { FILE: internal/ui/model/chat.go constant doubleClickThreshold (line 21) | doubleClickThreshold = 400 * time.Millisecond constant clickTolerance (line 22) | clickTolerance = 2 type DelayedClickMsg (line 27) | type DelayedClickMsg struct type Chat (line 35) | type Chat struct method Height (line 87) | func (m *Chat) Height() int { method Draw (line 92) | func (m *Chat) Draw(scr uv.Screen, area uv.Rectangle) { method SetSize (line 97) | func (m *Chat) SetSize(width, height int) { method Len (line 106) | func (m *Chat) Len() int { method SetMessages (line 111) | func (m *Chat) SetMessages(msgs ...chat.MessageItem) { method AppendMessages (line 131) | func (m *Chat) AppendMessages(msgs ...chat.MessageItem) { method UpdateNestedToolIDs (line 149) | func (m *Chat) UpdateNestedToolIDs(containerID string) { method Animate (line 174) | func (m *Chat) Animate(msg anim.StepMsg) tea.Cmd { method RestartPausedVisibleAnimations (line 203) | func (m *Chat) RestartPausedVisibleAnimations() tea.Cmd { method Focus (line 237) | func (m *Chat) Focus() { method Blur (line 242) | func (m *Chat) Blur() { method AtBottom (line 247) | func (m *Chat) AtBottom() bool { method Follow (line 253) | func (m *Chat) Follow() bool { method ScrollToBottom (line 258) | func (m *Chat) ScrollToBottom() { method ScrollToTop (line 264) | func (m *Chat) ScrollToTop() { method ScrollBy (line 270) | func (m *Chat) ScrollBy(lines int) { method ScrollToSelected (line 276) | func (m *Chat) ScrollToSelected() { method ScrollToIndex (line 282) | func (m *Chat) ScrollToIndex(index int) { method ScrollToTopAndAnimate (line 289) | func (m *Chat) ScrollToTopAndAnimate() tea.Cmd { method ScrollToBottomAndAnimate (line 296) | func (m *Chat) ScrollToBottomAndAnimate() tea.Cmd { method ScrollByAndAnimate (line 303) | func (m *Chat) ScrollByAndAnimate(lines int) tea.Cmd { method ScrollToSelectedAndAnimate (line 310) | func (m *Chat) ScrollToSelectedAndAnimate() tea.Cmd { method SelectedItemInView (line 316) | func (m *Chat) SelectedItemInView() bool { method isSelectable (line 320) | func (m *Chat) isSelectable(index int) bool { method SetSelected (line 330) | func (m *Chat) SetSelected(index int) { method SelectPrev (line 356) | func (m *Chat) SelectPrev() { method SelectNext (line 368) | func (m *Chat) SelectNext() { method SelectFirst (line 380) | func (m *Chat) SelectFirst() { method SelectLast (line 398) | func (m *Chat) SelectLast() { method SelectFirstInView (line 416) | func (m *Chat) SelectFirstInView() { method SelectLastInView (line 427) | func (m *Chat) SelectLastInView() { method ClearMessages (line 438) | func (m *Chat) ClearMessages() { method RemoveMessage (line 446) | func (m *Chat) RemoveMessage(id string) { method MessageItem (line 470) | func (m *Chat) MessageItem(id string) chat.MessageItem { method ToggleExpandedSelectedItem (line 483) | func (m *Chat) ToggleExpandedSelectedItem() { method HandleKeyMsg (line 495) | func (m *Chat) HandleKeyMsg(key tea.KeyMsg) (bool, tea.Cmd) { method HandleMouseDown (line 508) | func (m *Chat) HandleMouseDown(x, y int) (bool, tea.Cmd) { method HandleDelayedClick (line 579) | func (m *Chat) HandleDelayedClick(msg DelayedClickMsg) bool { method HandleMouseUp (line 610) | func (m *Chat) HandleMouseUp(x, y int) bool { method HandleMouseDrag (line 620) | func (m *Chat) HandleMouseDrag(x, y int) bool { method HasHighlight (line 642) | func (m *Chat) HasHighlight() bool { method HighlightContent (line 649) | func (m *Chat) HighlightContent() string { method ClearMouse (line 683) | func (m *Chat) ClearMouse() { method applyHighlightRange (line 695) | func (m *Chat) applyHighlightRange(idx, selectedIdx int, item list.Ite... method getHighlightRange (line 736) | func (m *Chat) getHighlightRange() (startItemIdx, startLine, startCol,... method selectWord (line 771) | func (m *Chat) selectWord(itemIdx, x, itemY int) { method selectLine (line 821) | func (m *Chat) selectLine(itemIdx, itemY int) { function NewChat (line 70) | func NewChat(com *common.Common) *Chat { function findWordBoundaries (line 858) | func findWordBoundaries(line string, col int) (startCol, endCol int) { function abs (line 901) | func abs(x int) int { FILE: internal/ui/model/clipboard.go type clipboardFormat (line 5) | type clipboardFormat constant clipboardFormatText (line 8) | clipboardFormatText clipboardFormat = iota constant clipboardFormatImage (line 9) | clipboardFormatImage FILE: internal/ui/model/clipboard_not_supported.go function readClipboard (line 5) | func readClipboard(clipboardFormat) ([]byte, error) { FILE: internal/ui/model/clipboard_supported.go function readClipboard (line 7) | func readClipboard(f clipboardFormat) ([]byte, error) { FILE: internal/ui/model/filter.go function MouseEventFilter (line 11) | func MouseEventFilter(m tea.Model, msg tea.Msg) tea.Msg { FILE: internal/ui/model/header.go constant headerDiag (line 20) | headerDiag = "╱" constant minHeaderDiags (line 21) | minHeaderDiags = 3 constant leftPadding (line 22) | leftPadding = 1 constant rightPadding (line 23) | rightPadding = 1 constant diagToDetailsSpacing (line 24) | diagToDetailsSpacing = 1 type header (line 27) | type header struct method drawHeader (line 49) | func (h *header) drawHeader( function newHeader (line 38) | func newHeader(com *common.Common) *header { function renderHeaderDetails (line 108) | func renderHeaderDetails( FILE: internal/ui/model/history.go type promptHistoryLoadedMsg (line 13) | type promptHistoryLoadedMsg struct method loadPromptHistory (line 18) | func (m *UI) loadPromptHistory() tea.Cmd { method handleHistoryUp (line 45) | func (m *UI) handleHistoryUp(msg tea.Msg) tea.Cmd { method handleHistoryDown (line 70) | func (m *UI) handleHistoryDown(msg tea.Msg) tea.Cmd { method handleHistoryEscape (line 97) | func (m *UI) handleHistoryEscape(msg tea.Msg) tea.Cmd { method updateHistoryDraft (line 115) | func (m *UI) updateHistoryDraft(oldValue string) { method historyPrev (line 124) | func (m *UI) historyPrev() bool { method historyNext (line 144) | func (m *UI) historyNext() bool { method historyReset (line 163) | func (m *UI) historyReset() { method isAtEditorStart (line 169) | func (m *UI) isAtEditorStart() bool { method isAtEditorEnd (line 174) | func (m *UI) isAtEditorEnd() bool { FILE: internal/ui/model/keys.go type KeyMap (line 5) | type KeyMap struct function DefaultKeyMap (line 69) | func DefaultKeyMap() KeyMap { FILE: internal/ui/model/landing.go method selectedLargeModel (line 12) | func (m *UI) selectedLargeModel() *agent.Model { method landingView (line 22) | func (m *UI) landingView() string { FILE: internal/ui/model/lsp.go type LSPInfo (line 18) | type LSPInfo struct method lspInfo (line 25) | func (m *UI) lspInfo(width, maxItems int, isSection bool) string { function lspDiagnostics (line 59) | func lspDiagnostics(t *styles.Styles, diagnostics map[protocol.Diagnosti... function lspList (line 78) | func lspList(t *styles.Styles, lsps []LSPInfo, width, maxItems int) stri... FILE: internal/ui/model/mcp.go method mcpInfo (line 16) | func (m *UI) mcpInfo(width, maxItems int, isSection bool) string { function mcpCounts (line 39) | func mcpCounts(t *styles.Styles, counts mcp.Counts) string { function mcpList (line 55) | func mcpList(t *styles.Styles, mcps []mcp.ClientInfo, width, maxItems in... FILE: internal/ui/model/onboarding.go method markProjectInitialized (line 20) | func (m *UI) markProjectInitialized() tea.Msg { method updateInitializeView (line 30) | func (m *UI) updateInitializeView(msg tea.KeyPressMsg) (cmds []tea.Cmd) { method initializeProject (line 49) | func (m *UI) initializeProject() tea.Cmd { method skipInitializeProject (line 71) | func (m *UI) skipInitializeProject() tea.Cmd { method initializeView (line 79) | func (m *UI) initializeView() string { FILE: internal/ui/model/pills.go function pillStyle (line 15) | func pillStyle(focused, panelFocused bool, t *styles.Styles) lipgloss.St... constant pillHeightWithBorder (line 24) | pillHeightWithBorder = 3 constant maxTaskDisplayLength (line 26) | maxTaskDisplayLength = 40 constant maxQueueDisplayLength (line 28) | maxQueueDisplayLength = 60 type pillSection (line 32) | type pillSection constant pillSectionTodos (line 35) | pillSectionTodos pillSection = iota constant pillSectionQueue (line 36) | pillSectionQueue function hasIncompleteTodos (line 40) | func hasIncompleteTodos(todos []session.Todo) bool { function hasInProgressTodo (line 45) | func hasInProgressTodo(todos []session.Todo) bool { function queuePill (line 55) | func queuePill(queue int, focused, panelFocused bool, t *styles.Styles) ... function todoPill (line 70) | func todoPill(todos []session.Todo, spinnerView string, focused, panelFo... function todoList (line 114) | func todoList(sessionTodos []session.Todo, spinnerView string, t *styles... function queueList (line 119) | func queueList(queueItems []string, t *styles.Styles) string { method togglePillsExpanded (line 138) | func (m *UI) togglePillsExpanded() tea.Cmd { method switchPillSection (line 165) | func (m *UI) switchPillSection(dir int) tea.Cmd { method pillsAreaHeight (line 186) | func (m *UI) pillsAreaHeight() int { method renderPills (line 209) | func (m *UI) renderPills() { FILE: internal/ui/model/session.go type loadSessionMsg (line 25) | type loadSessionMsg struct method lspFilePaths (line 33) | func (msg loadSessionMsg) lspFilePaths() []string { type SessionFile (line 56) | type SessionFile struct method loadSession (line 67) | func (m *UI) loadSession(sessionID string) tea.Cmd { method loadSessionFiles (line 92) | func (m *UI) loadSessionFiles(sessionID string) ([]SessionFile, error) { method handleFileEvent (line 143) | func (m *UI) handleFileEvent(file history.File) tea.Cmd { method filesInfo (line 163) | func (m *UI) filesInfo(cwd string, width, maxItems int, isSection bool) ... function fileList (line 187) | func fileList(t *styles.Styles, cwd string, filesWithChanges []SessionFi... method startLSPs (line 236) | func (m *UI) startLSPs(paths []string) tea.Cmd { FILE: internal/ui/model/sidebar.go method modelInfo (line 16) | func (m *UI) modelInfo(width int) string { function getDynamicHeightLimits (line 56) | func getDynamicHeightLimits(availableHeight int) (maxFiles, maxLSPs, max... method drawSidebar (line 103) | func (m *UI) drawSidebar(scr uv.Screen, area uv.Rectangle) { FILE: internal/ui/model/status.go constant DefaultStatusTTL (line 17) | DefaultStatusTTL = 5 * time.Second type Status (line 20) | type Status struct method SetInfoMsg (line 39) | func (s *Status) SetInfoMsg(msg util.InfoMsg) { method ClearInfoMsg (line 44) | func (s *Status) ClearInfoMsg() { method SetWidth (line 49) | func (s *Status) SetWidth(width int) { method ShowingAll (line 56) | func (s *Status) ShowingAll() bool { method ToggleHelp (line 61) | func (s *Status) ToggleHelp() { method SetHideHelp (line 66) | func (s *Status) SetHideHelp(hideHelp bool) { method Draw (line 71) | func (s *Status) Draw(scr uv.Screen, area uv.Rectangle) { function NewStatus (line 29) | func NewStatus(com *common.Common, km help.KeyMap) *Status { function clearInfoMsgCmd (line 117) | func clearInfoMsgCmd(ttl time.Duration) tea.Cmd { FILE: internal/ui/model/ui.go constant MouseScrollThreshold (line 61) | MouseScrollThreshold = 5 constant compactModeWidthBreakpoint (line 65) | compactModeWidthBreakpoint = 120 constant compactModeHeightBreakpoint (line 66) | compactModeHeightBreakpoint = 30 constant pasteLinesThreshold (line 70) | pasteLinesThreshold = 10 constant sessionDetailsMaxHeight (line 73) | sessionDetailsMaxHeight = 20 type uiFocusState (line 76) | type uiFocusState constant uiFocusNone (line 80) | uiFocusNone uiFocusState = iota constant uiFocusEditor (line 81) | uiFocusEditor constant uiFocusMain (line 82) | uiFocusMain type uiState (line 85) | type uiState constant uiOnboarding (line 89) | uiOnboarding uiState = iota constant uiInitialize (line 90) | uiInitialize constant uiLanding (line 91) | uiLanding constant uiChat (line 92) | uiChat type openEditorMsg (line 95) | type openEditorMsg struct type cancelTimerExpiredMsg (line 101) | type cancelTimerExpiredMsg struct type userCommandsLoadedMsg (line 103) | type userCommandsLoadedMsg struct type mcpPromptsLoadedMsg (line 107) | type mcpPromptsLoadedMsg struct type mcpStateChangedMsg (line 111) | type mcpStateChangedMsg struct type sendMessageMsg (line 116) | type sendMessageMsg struct type closeDialogMsg (line 122) | type closeDialogMsg struct type copyChatHighlightMsg (line 125) | type copyChatHighlightMsg struct type sessionFilesUpdatesMsg (line 128) | type sessionFilesUpdatesMsg struct type UI (line 134) | type UI struct method Init (line 345) | func (m *UI) Init() tea.Cmd { method loadInitialSession (line 364) | func (m *UI) loadInitialSession() tea.Cmd { method sendNotification (line 385) | func (m *UI) sendNotification(n notification.Notification) tea.Cmd { method shouldSendNotification (line 402) | func (m *UI) shouldSendNotification() bool { method setState (line 411) | func (m *UI) setState(state uiState, focus uiFocusState) { method loadCustomCommands (line 423) | func (m *UI) loadCustomCommands() tea.Cmd { method loadMCPrompts (line 434) | func (m *UI) loadMCPrompts() tea.Msg { method Update (line 447) | func (m *UI) Update(msg tea.Msg) (tea.Model, tea.Cmd) { method setSessionMessages (line 874) | func (m *UI) setSessionMessages(msgs []message.Message) tea.Cmd { method loadNestedToolCalls (line 926) | func (m *UI) loadNestedToolCalls(items []chat.MessageItem) { method appendSessionMessage (line 985) | func (m *UI) appendSessionMessage(msg message.Message) tea.Cmd { method handleClickFocus (line 1053) | func (m *UI) handleClickFocus(msg tea.MouseClickMsg) (cmd tea.Cmd) { method updateSessionMessage (line 1074) | func (m *UI) updateSessionMessage(msg message.Message) tea.Cmd { method handleChildSessionMessage (line 1136) | func (m *UI) handleChildSessionMessage(event pubsub.Event[message.Mess... method handleDialogMsg (line 1228) | func (m *UI) handleDialogMsg(msg tea.Msg) tea.Cmd { method openAuthenticationDialog (line 1566) | func (m *UI) openAuthenticationDialog(provider catwalk.Provider, model... method handleKeyPressMsg (line 1592) | func (m *UI) handleKeyPressMsg(msg tea.KeyPressMsg) tea.Cmd { method drawHeader (line 1952) | func (m *UI) drawHeader(scr uv.Screen, area uv.Rectangle) { method Draw (line 1964) | func (m *UI) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor { method View (line 2086) | func (m *UI) View() tea.View { method ShortHelp (line 2119) | func (m *UI) ShortHelp() []key.Binding { method FullHelp (line 2192) | func (m *UI) FullHelp() [][]key.Binding { method toggleCompactMode (line 2330) | func (m *UI) toggleCompactMode() tea.Cmd { method updateLayoutAndSize (line 2344) | func (m *UI) updateLayoutAndSize() { method updateSize (line 2363) | func (m *UI) updateSize() { method generateLayout (line 2386) | func (m *UI) generateLayout(w, h int) uiLayout { method openEditor (line 2557) | func (m *UI) openEditor(value string) tea.Cmd { method setEditorPrompt (line 2597) | func (m *UI) setEditorPrompt(yolo bool) { method normalPromptFunc (line 2607) | func (m *UI) normalPromptFunc(info textarea.PromptInfo) string { method yoloPromptFunc (line 2623) | func (m *UI) yoloPromptFunc(info textarea.PromptInfo) string { method closeCompletions (line 2639) | func (m *UI) closeCompletions() { method insertCompletionText (line 2648) | func (m *UI) insertCompletionText(text string) bool { method insertFileCompletion (line 2665) | func (m *UI) insertFileCompletion(path string) tea.Cmd { method insertMCPResourceCompletion (line 2705) | func (m *UI) insertMCPResourceCompletion(item completions.ResourceComp... method completionsPosition (line 2756) | func (m *UI) completionsPosition() image.Point { method textareaWord (line 2771) | func (m *UI) textareaWord() string { method isAgentBusy (line 2782) | func (m *UI) isAgentBusy() bool { method hasSession (line 2789) | func (m *UI) hasSession() bool { method randomizePlaceholders (line 2817) | func (m *UI) randomizePlaceholders() { method renderEditorView (line 2823) | func (m *UI) renderEditorView(width int) string { method cacheSidebarLogo (line 2836) | func (m *UI) cacheSidebarLogo(width int) { method sendMessage (line 2841) | func (m *UI) sendMessage(content string, attachments ...message.Attach... method cancelAgent (line 2903) | func (m *UI) cancelAgent() tea.Cmd { method openDialog (line 2935) | func (m *UI) openDialog(id string) tea.Cmd { method openQuitDialog (line 2966) | func (m *UI) openQuitDialog() tea.Cmd { method openModelsDialog (line 2979) | func (m *UI) openModelsDialog() tea.Cmd { method openCommandsDialog (line 2998) | func (m *UI) openCommandsDialog() tea.Cmd { method openReasoningDialog (line 3024) | func (m *UI) openReasoningDialog() tea.Cmd { method openSessionsDialog (line 3042) | func (m *UI) openSessionsDialog() tea.Cmd { method openFilesDialog (line 3064) | func (m *UI) openFilesDialog() tea.Cmd { method openPermissionsDialog (line 3079) | func (m *UI) openPermissionsDialog(perm permission.PermissionRequest) ... method handlePermissionNotification (line 3095) | func (m *UI) handlePermissionNotification(notification permission.Perm... method handleAgentNotification (line 3112) | func (m *UI) handleAgentNotification(n notify.Notification) tea.Cmd { method newSession (line 3127) | func (m *UI) newSession() tea.Cmd { method handlePasteMsg (line 3154) | func (m *UI) handlePasteMsg(msg tea.PasteMsg) tea.Cmd { method handleFilePathPaste (line 3222) | func (m *UI) handleFilePathPaste(path string) tea.Cmd { method pasteImageFromClipboard (line 3255) | func (m *UI) pasteImageFromClipboard() tea.Msg { method pasteIdx (line 3328) | func (m *UI) pasteIdx() int { method drawSessionDetails (line 3344) | func (m *UI) drawSessionDetails(scr uv.Screen, area uv.Rectangle) { method runMCPPrompt (line 3393) | func (m *UI) runMCPPrompt(clientID, promptID string, arguments map[str... method handleStateChanged (line 3420) | func (m *UI) handleStateChanged() tea.Cmd { method copyChatHighlight (line 3454) | func (m *UI) copyChatHighlight() tea.Cmd { method enableDockerMCP (line 3466) | func (m *UI) enableDockerMCP() tea.Msg { method disableDockerMCP (line 3492) | func (m *UI) disableDockerMCP() tea.Msg { function New (line 250) | func New(com *common.Common, initialSessionID string, continueLast bool)... function substituteArgs (line 1558) | func substituteArgs(content string, args map[string]string) string { type uiLayout (line 2528) | type uiLayout struct function isWhitespace (line 2776) | func isWhitespace(b byte) bool { function mimeOf (line 2794) | func mimeOf(content []byte) string { constant cancelTimerDuration (line 2891) | cancelTimerDuration = 2 * time.Second function cancelTimerCmd (line 2894) | func cancelTimerCmd() tea.Cmd { function handleMCPPromptsEvent (line 3429) | func handleMCPPromptsEvent(name string) tea.Cmd { function handleMCPToolsEvent (line 3436) | func handleMCPToolsEvent(cfg *config.ConfigStore, name string) tea.Cmd { function handleMCPResourcesEvent (line 3447) | func handleMCPResourcesEvent(name string) tea.Cmd { function renderLogo (line 3508) | func renderLogo(t *styles.Styles, compact bool, width int) string { FILE: internal/ui/notification/native.go type NativeBackend (line 11) | type NativeBackend struct method Send (line 28) | func (b *NativeBackend) Send(n Notification) error { method SetNotifyFunc (line 42) | func (b *NativeBackend) SetNotifyFunc(fn func(title, message string, i... method ResetNotifyFunc (line 47) | func (b *NativeBackend) ResetNotifyFunc() { function NewNativeBackend (line 19) | func NewNativeBackend(icon any) *NativeBackend { FILE: internal/ui/notification/noop.go type NoopBackend (line 5) | type NoopBackend struct method Send (line 8) | func (NoopBackend) Send(_ Notification) error { FILE: internal/ui/notification/notification.go type Notification (line 5) | type Notification struct type Backend (line 13) | type Backend interface FILE: internal/ui/notification/notification_test.go function TestNoopBackend_Send (line 10) | func TestNoopBackend_Send(t *testing.T) { function TestNativeBackend_Send (line 21) | func TestNativeBackend_Send(t *testing.T) { FILE: internal/ui/styles/grad.go function ForegroundGrad (line 16) | func ForegroundGrad(t *Styles, input string, bold bool, color1, color2 c... function ApplyForegroundGrad (line 46) | func ApplyForegroundGrad(t *Styles, input string, color1, color2 color.C... function ApplyBoldForegroundGrad (line 60) | func ApplyBoldForegroundGrad(t *Styles, input string, color1, color2 col... function blendColors (line 74) | func blendColors(size int, stops ...color.Color) []color.Color { FILE: internal/ui/styles/styles.go constant CheckIcon (line 20) | CheckIcon string = "✓" constant SpinnerIcon (line 21) | SpinnerIcon string = "⋯" constant LoadingIcon (line 22) | LoadingIcon string = "⟳" constant ModelIcon (line 23) | ModelIcon string = "◇" constant ArrowRightIcon (line 25) | ArrowRightIcon string = "→" constant ToolPending (line 27) | ToolPending string = "●" constant ToolSuccess (line 28) | ToolSuccess string = "✓" constant ToolError (line 29) | ToolError string = "×" constant RadioOn (line 31) | RadioOn string = "◉" constant RadioOff (line 32) | RadioOff string = "○" constant BorderThin (line 34) | BorderThin string = "│" constant BorderThick (line 35) | BorderThick string = "▌" constant SectionSeparator (line 37) | SectionSeparator string = "─" constant TodoCompletedIcon (line 39) | TodoCompletedIcon string = "✓" constant TodoPendingIcon (line 40) | TodoPendingIcon string = "•" constant TodoInProgressIcon (line 41) | TodoInProgressIcon string = "→" constant ImageIcon (line 43) | ImageIcon string = "■" constant TextIcon (line 44) | TextIcon string = "≡" constant ScrollbarThumb (line 46) | ScrollbarThumb string = "┃" constant ScrollbarTrack (line 47) | ScrollbarTrack string = "│" constant LSPErrorIcon (line 49) | LSPErrorIcon string = "E" constant LSPWarningIcon (line 50) | LSPWarningIcon string = "W" constant LSPInfoIcon (line 51) | LSPInfoIcon string = "I" constant LSPHintIcon (line 52) | LSPHintIcon string = "H" constant defaultMargin (line 56) | defaultMargin = 2 constant defaultListIndent (line 57) | defaultListIndent = 2 type Styles (line 60) | type Styles struct method ChromaTheme (line 457) | func (s *Styles) ChromaTheme() chroma.StyleEntries { method DialogHelpStyles (line 496) | func (s *Styles) DialogHelpStyles() help.Styles { function DefaultStyles (line 501) | func DefaultStyles() Styles { function chromaStyle (line 1379) | func chromaStyle(style ansi.StylePrimitive) string { FILE: internal/ui/util/util.go type Cursor (line 15) | type Cursor interface function CmdHandler (line 19) | func CmdHandler(msg tea.Msg) tea.Cmd { function ReportError (line 25) | func ReportError(err error) tea.Cmd { type InfoType (line 30) | type InfoType constant InfoTypeInfo (line 33) | InfoTypeInfo InfoType = iota constant InfoTypeSuccess (line 34) | InfoTypeSuccess constant InfoTypeWarn (line 35) | InfoTypeWarn constant InfoTypeError (line 36) | InfoTypeError constant InfoTypeUpdate (line 37) | InfoTypeUpdate function NewInfoMsg (line 40) | func NewInfoMsg(info string) InfoMsg { function NewWarnMsg (line 47) | func NewWarnMsg(warn string) InfoMsg { function NewErrorMsg (line 54) | func NewErrorMsg(err error) InfoMsg { function ReportInfo (line 61) | func ReportInfo(info string) tea.Cmd { function ReportWarn (line 65) | func ReportWarn(warn string) tea.Cmd { type InfoMsg (line 70) | type InfoMsg struct method IsEmpty (line 79) | func (m InfoMsg) IsEmpty() bool { type ClearStatusMsg (line 75) | type ClearStatusMsg struct function ExecShell (line 87) | func ExecShell(ctx context.Context, cmdStr string, callback tea.ExecCall... FILE: internal/update/update.go constant githubApiUrl (line 15) | githubApiUrl = "https://api.github.com/repos/charmbracelet/crush/release... constant userAgent (line 16) | userAgent = "crush/1.0" type Info (line 23) | type Info struct method IsDevelopment (line 33) | func (i Info) IsDevelopment() bool { method Available (line 43) | func (i Info) Available() bool { function Check (line 58) | func Check(ctx context.Context, current string, client Client) (Info, er... type Release (line 76) | type Release struct type Client (line 82) | type Client interface type github (line 86) | type github struct method Latest (line 89) | func (c *github) Latest(ctx context.Context) (*Release, error) { FILE: internal/update/update_test.go function TestCheckForUpdate_Old (line 10) | func TestCheckForUpdate_Old(t *testing.T) { function TestCheckForUpdate_Beta (line 17) | func TestCheckForUpdate_Beta(t *testing.T) { type testClient (line 40) | type testClient struct method Latest (line 43) | func (t testClient) Latest(ctx context.Context) (*Release, error) { FILE: internal/version/version.go function init (line 13) | func init() { FILE: main.go function main (line 13) | func main() {