gitextract_g0fawvw1/ ├── .eslintrc.cjs ├── .github/ │ └── workflows/ │ ├── ci.yml │ ├── claude-code-review.yml │ ├── claude.yml │ ├── duplicate-issues.yml │ ├── release.yml │ └── stale.yml ├── .gitignore ├── .npmrc ├── AGENTS.md ├── CLAUDE.md ├── LICENSE ├── README.md ├── esbuild.config.mjs ├── jest.config.js ├── manifest.json ├── package.json ├── scripts/ │ ├── build-css.mjs │ ├── build.mjs │ ├── postinstall.mjs │ ├── run-jest.js │ └── sync-version.js ├── src/ │ ├── core/ │ │ ├── CLAUDE.md │ │ ├── agent/ │ │ │ ├── ClaudianService.ts │ │ │ ├── MessageChannel.ts │ │ │ ├── QueryOptionsBuilder.ts │ │ │ ├── SessionManager.ts │ │ │ ├── customSpawn.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── agents/ │ │ │ ├── AgentManager.ts │ │ │ ├── AgentStorage.ts │ │ │ └── index.ts │ │ ├── commands/ │ │ │ ├── builtInCommands.ts │ │ │ └── index.ts │ │ ├── hooks/ │ │ │ ├── SecurityHooks.ts │ │ │ ├── SubagentHooks.ts │ │ │ └── index.ts │ │ ├── mcp/ │ │ │ ├── McpServerManager.ts │ │ │ ├── McpTester.ts │ │ │ └── index.ts │ │ ├── plugins/ │ │ │ ├── PluginManager.ts │ │ │ └── index.ts │ │ ├── prompts/ │ │ │ ├── inlineEdit.ts │ │ │ ├── instructionRefine.ts │ │ │ ├── mainAgent.ts │ │ │ └── titleGeneration.ts │ │ ├── sdk/ │ │ │ ├── index.ts │ │ │ ├── toolResultContent.ts │ │ │ ├── transformSDKMessage.ts │ │ │ ├── typeGuards.ts │ │ │ └── types.ts │ │ ├── security/ │ │ │ ├── ApprovalManager.ts │ │ │ ├── BashPathValidator.ts │ │ │ ├── BlocklistChecker.ts │ │ │ └── index.ts │ │ ├── storage/ │ │ │ ├── AgentVaultStorage.ts │ │ │ ├── CCSettingsStorage.ts │ │ │ ├── ClaudianSettingsStorage.ts │ │ │ ├── McpStorage.ts │ │ │ ├── SessionStorage.ts │ │ │ ├── SkillStorage.ts │ │ │ ├── SlashCommandStorage.ts │ │ │ ├── StorageService.ts │ │ │ ├── VaultFileAdapter.ts │ │ │ ├── index.ts │ │ │ └── migrationConstants.ts │ │ ├── tools/ │ │ │ ├── index.ts │ │ │ ├── todo.ts │ │ │ ├── toolIcons.ts │ │ │ ├── toolInput.ts │ │ │ └── toolNames.ts │ │ └── types/ │ │ ├── agent.ts │ │ ├── chat.ts │ │ ├── diff.ts │ │ ├── index.ts │ │ ├── mcp.ts │ │ ├── models.ts │ │ ├── plugins.ts │ │ ├── sdk.ts │ │ ├── settings.ts │ │ └── tools.ts │ ├── features/ │ │ ├── chat/ │ │ │ ├── CLAUDE.md │ │ │ ├── ClaudianView.ts │ │ │ ├── constants.ts │ │ │ ├── controllers/ │ │ │ │ ├── BrowserSelectionController.ts │ │ │ │ ├── CanvasSelectionController.ts │ │ │ │ ├── ConversationController.ts │ │ │ │ ├── InputController.ts │ │ │ │ ├── NavigationController.ts │ │ │ │ ├── SelectionController.ts │ │ │ │ ├── StreamController.ts │ │ │ │ ├── contextRowVisibility.ts │ │ │ │ └── index.ts │ │ │ ├── rendering/ │ │ │ │ ├── DiffRenderer.ts │ │ │ │ ├── InlineAskUserQuestion.ts │ │ │ │ ├── InlineExitPlanMode.ts │ │ │ │ ├── MessageRenderer.ts │ │ │ │ ├── SubagentRenderer.ts │ │ │ │ ├── ThinkingBlockRenderer.ts │ │ │ │ ├── TodoListRenderer.ts │ │ │ │ ├── ToolCallRenderer.ts │ │ │ │ ├── WriteEditRenderer.ts │ │ │ │ ├── collapsible.ts │ │ │ │ ├── index.ts │ │ │ │ └── todoUtils.ts │ │ │ ├── rewind.ts │ │ │ ├── services/ │ │ │ │ ├── BangBashService.ts │ │ │ │ ├── InstructionRefineService.ts │ │ │ │ ├── SubagentManager.ts │ │ │ │ └── TitleGenerationService.ts │ │ │ ├── state/ │ │ │ │ ├── ChatState.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── tabs/ │ │ │ │ ├── Tab.ts │ │ │ │ ├── TabBar.ts │ │ │ │ ├── TabManager.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ └── ui/ │ │ │ ├── BangBashModeManager.ts │ │ │ ├── FileContext.ts │ │ │ ├── ImageContext.ts │ │ │ ├── InputToolbar.ts │ │ │ ├── InstructionModeManager.ts │ │ │ ├── NavigationSidebar.ts │ │ │ ├── StatusPanel.ts │ │ │ ├── file-context/ │ │ │ │ ├── state/ │ │ │ │ │ └── FileContextState.ts │ │ │ │ └── view/ │ │ │ │ └── FileChipsView.ts │ │ │ └── index.ts │ │ ├── inline-edit/ │ │ │ ├── InlineEditService.ts │ │ │ └── ui/ │ │ │ └── InlineEditModal.ts │ │ └── settings/ │ │ ├── ClaudianSettings.ts │ │ ├── keyboardNavigation.ts │ │ └── ui/ │ │ ├── AgentSettings.ts │ │ ├── EnvSnippetManager.ts │ │ ├── McpServerModal.ts │ │ ├── McpSettingsManager.ts │ │ ├── McpTestModal.ts │ │ ├── PluginSettingsManager.ts │ │ └── SlashCommandSettings.ts │ ├── i18n/ │ │ ├── constants.ts │ │ ├── i18n.ts │ │ ├── index.ts │ │ ├── locales/ │ │ │ ├── de.json │ │ │ ├── en.json │ │ │ ├── es.json │ │ │ ├── fr.json │ │ │ ├── ja.json │ │ │ ├── ko.json │ │ │ ├── pt.json │ │ │ ├── ru.json │ │ │ ├── zh-CN.json │ │ │ └── zh-TW.json │ │ └── types.ts │ ├── main.ts │ ├── shared/ │ │ ├── components/ │ │ │ ├── ResumeSessionDropdown.ts │ │ │ ├── SelectableDropdown.ts │ │ │ ├── SelectionHighlight.ts │ │ │ └── SlashCommandDropdown.ts │ │ ├── icons.ts │ │ ├── index.ts │ │ ├── mention/ │ │ │ ├── MentionDropdownController.ts │ │ │ ├── VaultMentionCache.ts │ │ │ ├── VaultMentionDataProvider.ts │ │ │ └── types.ts │ │ └── modals/ │ │ ├── ConfirmModal.ts │ │ ├── ForkTargetModal.ts │ │ └── InstructionConfirmModal.ts │ ├── style/ │ │ ├── CLAUDE.md │ │ ├── accessibility.css │ │ ├── base/ │ │ │ ├── animations.css │ │ │ ├── container.css │ │ │ └── variables.css │ │ ├── components/ │ │ │ ├── code.css │ │ │ ├── context-footer.css │ │ │ ├── header.css │ │ │ ├── history.css │ │ │ ├── input.css │ │ │ ├── messages.css │ │ │ ├── nav-sidebar.css │ │ │ ├── status-panel.css │ │ │ ├── subagent.css │ │ │ ├── tabs.css │ │ │ ├── thinking.css │ │ │ └── toolcalls.css │ │ ├── features/ │ │ │ ├── ask-user-question.css │ │ │ ├── diff.css │ │ │ ├── file-context.css │ │ │ ├── file-link.css │ │ │ ├── image-context.css │ │ │ ├── image-embed.css │ │ │ ├── image-modal.css │ │ │ ├── inline-edit.css │ │ │ ├── plan-mode.css │ │ │ ├── resume-session.css │ │ │ └── slash-commands.css │ │ ├── index.css │ │ ├── modals/ │ │ │ ├── fork-target.css │ │ │ ├── instruction.css │ │ │ └── mcp-modal.css │ │ ├── settings/ │ │ │ ├── agent-settings.css │ │ │ ├── base.css │ │ │ ├── env-snippets.css │ │ │ ├── mcp-settings.css │ │ │ ├── plugin-settings.css │ │ │ └── slash-settings.css │ │ └── toolbar/ │ │ ├── external-context.css │ │ ├── mcp-selector.css │ │ ├── model-selector.css │ │ ├── permission-toggle.css │ │ └── thinking-selector.css │ └── utils/ │ ├── agent.ts │ ├── browser.ts │ ├── canvas.ts │ ├── claudeCli.ts │ ├── context.ts │ ├── contextMentionResolver.ts │ ├── date.ts │ ├── diff.ts │ ├── editor.ts │ ├── env.ts │ ├── externalContext.ts │ ├── externalContextScanner.ts │ ├── fileLink.ts │ ├── frontmatter.ts │ ├── imageEmbed.ts │ ├── inlineEdit.ts │ ├── interrupt.ts │ ├── markdown.ts │ ├── mcp.ts │ ├── path.ts │ ├── sdkSession.ts │ ├── session.ts │ ├── slashCommand.ts │ └── subagentJsonl.ts ├── tests/ │ ├── __mocks__/ │ │ ├── claude-agent-sdk.ts │ │ └── obsidian.ts │ ├── helpers/ │ │ ├── mockElement.ts │ │ └── sdkMessages.ts │ ├── integration/ │ │ ├── core/ │ │ │ ├── agent/ │ │ │ │ └── ClaudianService.test.ts │ │ │ └── mcp/ │ │ │ └── mcp.test.ts │ │ ├── features/ │ │ │ └── chat/ │ │ │ └── imagePersistence.test.ts │ │ └── main.test.ts │ ├── tsconfig.json │ └── unit/ │ ├── core/ │ │ ├── agent/ │ │ │ ├── ClaudianService.test.ts │ │ │ ├── MessageChannel.test.ts │ │ │ ├── QueryOptionsBuilder.test.ts │ │ │ ├── SessionManager.test.ts │ │ │ ├── customSpawn.test.ts │ │ │ ├── index.test.ts │ │ │ └── types.test.ts │ │ ├── agents/ │ │ │ ├── AgentManager.test.ts │ │ │ ├── AgentStorage.test.ts │ │ │ └── index.test.ts │ │ ├── commands/ │ │ │ └── builtInCommands.test.ts │ │ ├── hooks/ │ │ │ ├── SecurityHooks.test.ts │ │ │ └── SubagentHooks.test.ts │ │ ├── mcp/ │ │ │ ├── McpServerManager.test.ts │ │ │ ├── McpTester.test.ts │ │ │ └── createNodeFetch.test.ts │ │ ├── plugins/ │ │ │ ├── PluginManager.test.ts │ │ │ └── index.test.ts │ │ ├── prompts/ │ │ │ ├── instructionRefine.test.ts │ │ │ ├── systemPrompt.test.ts │ │ │ └── titleGeneration.test.ts │ │ ├── sdk/ │ │ │ ├── transformSDKMessage.test.ts │ │ │ └── typeGuards.test.ts │ │ ├── security/ │ │ │ ├── ApprovalManager.test.ts │ │ │ ├── BashPathValidator.test.ts │ │ │ └── BlocklistChecker.test.ts │ │ ├── storage/ │ │ │ ├── AgentVaultStorage.test.ts │ │ │ ├── CCSettingsStorage.test.ts │ │ │ ├── ClaudianSettingsStorage.test.ts │ │ │ ├── McpStorage.test.ts │ │ │ ├── SessionStorage.test.ts │ │ │ ├── SkillStorage.test.ts │ │ │ ├── SlashCommandStorage.test.ts │ │ │ ├── VaultFileAdapter.test.ts │ │ │ ├── migrationConstants.test.ts │ │ │ ├── storage.test.ts │ │ │ ├── storageService.convenience.test.ts │ │ │ └── storageService.migration.test.ts │ │ ├── tools/ │ │ │ ├── todo.test.ts │ │ │ ├── toolIcons.test.ts │ │ │ ├── toolInput.test.ts │ │ │ └── toolNames.test.ts │ │ └── types/ │ │ ├── mcp.test.ts │ │ └── types.test.ts │ ├── features/ │ │ ├── chat/ │ │ │ ├── controllers/ │ │ │ │ ├── BrowserSelectionController.test.ts │ │ │ │ ├── CanvasSelectionController.test.ts │ │ │ │ ├── ConversationController.test.ts │ │ │ │ ├── InputController.test.ts │ │ │ │ ├── NavigationController.test.ts │ │ │ │ ├── SelectionController.test.ts │ │ │ │ ├── StreamController.test.ts │ │ │ │ ├── contextRowVisibility.test.ts │ │ │ │ └── index.test.ts │ │ │ ├── rendering/ │ │ │ │ ├── DiffRenderer.test.ts │ │ │ │ ├── InlineAskUserQuestion.test.ts │ │ │ │ ├── InlineExitPlanMode.test.ts │ │ │ │ ├── MessageRenderer.test.ts │ │ │ │ ├── SubagentRenderer.test.ts │ │ │ │ ├── ThinkingBlockRenderer.test.ts │ │ │ │ ├── TodoListRenderer.test.ts │ │ │ │ ├── ToolCallRenderer.test.ts │ │ │ │ ├── WriteEditRenderer.test.ts │ │ │ │ ├── collapsible.test.ts │ │ │ │ └── todoUtils.test.ts │ │ │ ├── rewind.test.ts │ │ │ ├── services/ │ │ │ │ ├── BangBashService.test.ts │ │ │ │ ├── InstructionRefineService.test.ts │ │ │ │ ├── SubagentManager.test.ts │ │ │ │ └── TitleGenerationService.test.ts │ │ │ ├── state/ │ │ │ │ └── ChatState.test.ts │ │ │ ├── tabs/ │ │ │ │ ├── Tab.test.ts │ │ │ │ ├── TabBar.test.ts │ │ │ │ ├── TabManager.test.ts │ │ │ │ └── index.test.ts │ │ │ └── ui/ │ │ │ ├── BangBashModeManager.test.ts │ │ │ ├── ExternalContextSelector.test.ts │ │ │ ├── FileContextManager.test.ts │ │ │ ├── ImageContext.test.ts │ │ │ ├── InputToolbar.test.ts │ │ │ ├── InstructionModeManager.test.ts │ │ │ ├── NavigationSidebar.test.ts │ │ │ ├── StatusPanel.test.ts │ │ │ └── file-context/ │ │ │ └── state/ │ │ │ └── FileContextState.test.ts │ │ ├── inline-edit/ │ │ │ ├── InlineEditService.test.ts │ │ │ └── ui/ │ │ │ ├── InlineEditModal.openAndWait.test.ts │ │ │ └── InlineEditModal.test.ts │ │ └── settings/ │ │ ├── AgentSettings.test.ts │ │ └── keyboardNavigation.test.ts │ ├── i18n/ │ │ ├── constants.test.ts │ │ ├── i18n.test.ts │ │ └── locales.test.ts │ ├── shared/ │ │ ├── components/ │ │ │ ├── ResumeSessionDropdown.test.ts │ │ │ ├── SelectableDropdown.test.ts │ │ │ └── SlashCommandDropdown.test.ts │ │ ├── index.test.ts │ │ ├── mention/ │ │ │ ├── MentionDropdownController.test.ts │ │ │ ├── VaultFileCache.test.ts │ │ │ ├── VaultFolderCache.test.ts │ │ │ └── VaultMentionDataProvider.test.ts │ │ └── modals/ │ │ ├── ConfirmModal.test.ts │ │ ├── ForkTargetModal.test.ts │ │ └── InstructionConfirmModal.test.ts │ └── utils/ │ ├── agent.test.ts │ ├── browser.test.ts │ ├── canvas.test.ts │ ├── claudeCli.test.ts │ ├── context.test.ts │ ├── contextMentionResolver.test.ts │ ├── date.test.ts │ ├── diff.test.ts │ ├── editor.test.ts │ ├── env.test.ts │ ├── externalContext.test.ts │ ├── externalContextScanner.test.ts │ ├── fileLink.dom.test.ts │ ├── fileLink.handler.test.ts │ ├── fileLink.test.ts │ ├── frontmatter.test.ts │ ├── imageEmbed.test.ts │ ├── inlineEdit.test.ts │ ├── interrupt.test.ts │ ├── markdown.test.ts │ ├── mcp.test.ts │ ├── path.test.ts │ ├── sdkSession.test.ts │ ├── session.test.ts │ ├── slashCommand.test.ts │ └── utils.test.ts ├── tsconfig.jest.json ├── tsconfig.json └── versions.json