@mseep/claudian 2.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (687) hide show
  1. package/.env.local.example +2 -0
  2. package/.github/workflows/ci.yml +59 -0
  3. package/.github/workflows/claude-code-review.yml +57 -0
  4. package/.github/workflows/claude.yml +50 -0
  5. package/.github/workflows/duplicate-issues.yml +22 -0
  6. package/.github/workflows/release.yml +73 -0
  7. package/.github/workflows/stale.yml +21 -0
  8. package/.node-version +1 -0
  9. package/AGENTS.md +3 -0
  10. package/CLAUDE.md +80 -0
  11. package/LICENSE +21 -0
  12. package/README.md +190 -0
  13. package/assets/Preview.png +0 -0
  14. package/assets/sponsors/MOMA.png +0 -0
  15. package/bun.lock +1618 -0
  16. package/esbuild.config.mjs +195 -0
  17. package/eslint.config.mjs +143 -0
  18. package/jest.config.js +41 -0
  19. package/main.js +104915 -0
  20. package/manifest.json +10 -0
  21. package/package.json +65 -0
  22. package/scripts/build-css.mjs +119 -0
  23. package/scripts/build.mjs +19 -0
  24. package/scripts/postinstall.mjs +25 -0
  25. package/scripts/rendererSafeUnref.js +205 -0
  26. package/scripts/run-jest.js +19 -0
  27. package/scripts/sync-version.js +16 -0
  28. package/src/app/settings/ClaudianSettingsStorage.ts +435 -0
  29. package/src/app/settings/defaultSettings.ts +54 -0
  30. package/src/app/storage/SharedStorageService.ts +106 -0
  31. package/src/core/CLAUDE.md +84 -0
  32. package/src/core/auxiliary/AuxQueryRunner.ts +11 -0
  33. package/src/core/auxiliary/QueryBackedInlineEditService.ts +73 -0
  34. package/src/core/auxiliary/QueryBackedInstructionRefineService.ts +78 -0
  35. package/src/core/auxiliary/QueryBackedTitleGenerationService.ts +90 -0
  36. package/src/core/bootstrap/SessionStorage.ts +179 -0
  37. package/src/core/bootstrap/StoragePaths.ts +7 -0
  38. package/src/core/bootstrap/storage.ts +20 -0
  39. package/src/core/commands/builtInCommands.ts +141 -0
  40. package/src/core/mcp/McpConfigParser.ts +102 -0
  41. package/src/core/mcp/McpServerManager.ts +119 -0
  42. package/src/core/mcp/McpTester.ts +310 -0
  43. package/src/core/prompt/inlineEdit.ts +252 -0
  44. package/src/core/prompt/instructionRefine.ts +72 -0
  45. package/src/core/prompt/mainAgent.ts +213 -0
  46. package/src/core/prompt/titleGeneration.ts +44 -0
  47. package/src/core/providers/ProviderRegistry.ts +253 -0
  48. package/src/core/providers/ProviderSettingsCoordinator.ts +434 -0
  49. package/src/core/providers/ProviderWorkspaceRegistry.ts +119 -0
  50. package/src/core/providers/commands/ProviderCommandCatalog.ts +21 -0
  51. package/src/core/providers/commands/ProviderCommandEntry.ts +33 -0
  52. package/src/core/providers/commands/hiddenCommands.ts +74 -0
  53. package/src/core/providers/modelRouting.ts +17 -0
  54. package/src/core/providers/modelSelection.ts +72 -0
  55. package/src/core/providers/providerConfig.ts +34 -0
  56. package/src/core/providers/providerEnvironment.ts +364 -0
  57. package/src/core/providers/types.ts +544 -0
  58. package/src/core/runtime/ChatRuntime.ts +66 -0
  59. package/src/core/runtime/QueuedTurn.ts +97 -0
  60. package/src/core/runtime/types.ts +118 -0
  61. package/src/core/security/ApprovalManager.ts +142 -0
  62. package/src/core/storage/HomeFileAdapter.ts +75 -0
  63. package/src/core/storage/VaultFileAdapter.ts +132 -0
  64. package/src/core/tools/todo.ts +65 -0
  65. package/src/core/tools/toolIcons.ts +80 -0
  66. package/src/core/tools/toolInput.ts +119 -0
  67. package/src/core/tools/toolNames.ts +149 -0
  68. package/src/core/tools/toolResultContent.ts +26 -0
  69. package/src/core/types/agent.ts +28 -0
  70. package/src/core/types/chat.ts +177 -0
  71. package/src/core/types/diff.ts +31 -0
  72. package/src/core/types/index.ts +78 -0
  73. package/src/core/types/mcp.ts +97 -0
  74. package/src/core/types/plugins.ts +9 -0
  75. package/src/core/types/provider.ts +1 -0
  76. package/src/core/types/settings.ts +152 -0
  77. package/src/core/types/tools.ts +80 -0
  78. package/src/features/chat/CLAUDE.md +136 -0
  79. package/src/features/chat/ClaudianView.ts +762 -0
  80. package/src/features/chat/constants.ts +114 -0
  81. package/src/features/chat/controllers/BrowserSelectionController.ts +295 -0
  82. package/src/features/chat/controllers/CanvasSelectionController.ts +142 -0
  83. package/src/features/chat/controllers/ConversationController.ts +1103 -0
  84. package/src/features/chat/controllers/InputController.ts +1707 -0
  85. package/src/features/chat/controllers/NavigationController.ts +209 -0
  86. package/src/features/chat/controllers/SelectionController.ts +430 -0
  87. package/src/features/chat/controllers/StreamController.ts +1560 -0
  88. package/src/features/chat/controllers/contextRowVisibility.ts +18 -0
  89. package/src/features/chat/rendering/DiffRenderer.ts +134 -0
  90. package/src/features/chat/rendering/InlineAskUserQuestion.ts +702 -0
  91. package/src/features/chat/rendering/InlineExitPlanMode.ts +263 -0
  92. package/src/features/chat/rendering/InlinePlanApproval.ts +183 -0
  93. package/src/features/chat/rendering/MessageRenderer.ts +907 -0
  94. package/src/features/chat/rendering/SubagentRenderer.ts +678 -0
  95. package/src/features/chat/rendering/ThinkingBlockRenderer.ts +126 -0
  96. package/src/features/chat/rendering/TodoListRenderer.ts +5 -0
  97. package/src/features/chat/rendering/ToolCallRenderer.ts +1161 -0
  98. package/src/features/chat/rendering/WriteEditRenderer.ts +232 -0
  99. package/src/features/chat/rendering/collapsible.ts +101 -0
  100. package/src/features/chat/rendering/subagentLifecycleResolution.ts +25 -0
  101. package/src/features/chat/rendering/todoUtils.ts +29 -0
  102. package/src/features/chat/rewind.ts +31 -0
  103. package/src/features/chat/services/BangBashService.ts +56 -0
  104. package/src/features/chat/services/SubagentManager.ts +1107 -0
  105. package/src/features/chat/state/ChatState.ts +436 -0
  106. package/src/features/chat/state/types.ts +138 -0
  107. package/src/features/chat/tabs/Tab.ts +1886 -0
  108. package/src/features/chat/tabs/TabBar.ts +179 -0
  109. package/src/features/chat/tabs/TabManager.ts +1021 -0
  110. package/src/features/chat/tabs/providerResolution.ts +34 -0
  111. package/src/features/chat/tabs/types.ts +287 -0
  112. package/src/features/chat/ui/BangBashModeManager.ts +121 -0
  113. package/src/features/chat/ui/FileContext.ts +385 -0
  114. package/src/features/chat/ui/ImageContext.ts +366 -0
  115. package/src/features/chat/ui/InputToolbar.ts +1244 -0
  116. package/src/features/chat/ui/InstructionModeManager.ts +158 -0
  117. package/src/features/chat/ui/NavigationSidebar.ts +126 -0
  118. package/src/features/chat/ui/StatusPanel.ts +589 -0
  119. package/src/features/chat/ui/file-context/state/FileContextState.ts +83 -0
  120. package/src/features/chat/ui/file-context/view/FileChipsView.ts +70 -0
  121. package/src/features/chat/ui/textareaResize.ts +47 -0
  122. package/src/features/chat/utils/usageInfo.ts +26 -0
  123. package/src/features/inline-edit/ui/InlineEditModal.ts +895 -0
  124. package/src/features/inline-edit/ui/inlineEditMarkdownPreview.ts +55 -0
  125. package/src/features/settings/ClaudianSettings.ts +672 -0
  126. package/src/features/settings/keyboardNavigation.ts +60 -0
  127. package/src/features/settings/ui/EnvSnippetManager.ts +430 -0
  128. package/src/features/settings/ui/EnvironmentSettingsSection.ts +85 -0
  129. package/src/features/settings/ui/McpServerModal.ts +335 -0
  130. package/src/features/settings/ui/McpSettingsManager.ts +400 -0
  131. package/src/features/settings/ui/McpTestModal.ts +346 -0
  132. package/src/i18n/constants.ts +58 -0
  133. package/src/i18n/i18n.ts +140 -0
  134. package/src/i18n/locales/de.json +322 -0
  135. package/src/i18n/locales/en.json +322 -0
  136. package/src/i18n/locales/es.json +322 -0
  137. package/src/i18n/locales/fr.json +322 -0
  138. package/src/i18n/locales/ja.json +322 -0
  139. package/src/i18n/locales/ko.json +322 -0
  140. package/src/i18n/locales/pt.json +322 -0
  141. package/src/i18n/locales/ru.json +322 -0
  142. package/src/i18n/locales/zh-CN.json +322 -0
  143. package/src/i18n/locales/zh-TW.json +322 -0
  144. package/src/i18n/types.ts +248 -0
  145. package/src/main.ts +772 -0
  146. package/src/providers/acp/AcpClientConnection.ts +361 -0
  147. package/src/providers/acp/AcpJsonRpcTransport.ts +427 -0
  148. package/src/providers/acp/AcpSessionConfig.ts +139 -0
  149. package/src/providers/acp/AcpSessionUpdateNormalizer.ts +371 -0
  150. package/src/providers/acp/AcpSubprocess.ts +155 -0
  151. package/src/providers/acp/AcpToolStreamAdapter.ts +132 -0
  152. package/src/providers/acp/buildAcpUsageInfo.ts +41 -0
  153. package/src/providers/acp/index.ts +9 -0
  154. package/src/providers/acp/methodNames.ts +50 -0
  155. package/src/providers/acp/types.ts +566 -0
  156. package/src/providers/claude/CLAUDE.md +78 -0
  157. package/src/providers/claude/agents/AgentManager.ts +225 -0
  158. package/src/providers/claude/agents/AgentStorage.ts +101 -0
  159. package/src/providers/claude/app/ClaudeWorkspaceServices.ts +90 -0
  160. package/src/providers/claude/auxiliary/ClaudeInlineEditService.ts +122 -0
  161. package/src/providers/claude/auxiliary/ClaudeInstructionRefineService.ts +90 -0
  162. package/src/providers/claude/auxiliary/ClaudeTitleGenerationService.ts +129 -0
  163. package/src/providers/claude/auxiliary/extractAssistantText.ts +28 -0
  164. package/src/providers/claude/capabilities.ts +17 -0
  165. package/src/providers/claude/cli/findClaudeCLIPath.ts +261 -0
  166. package/src/providers/claude/commands/ClaudeCommandCatalog.ts +149 -0
  167. package/src/providers/claude/commands/probeRuntimeCommands.ts +86 -0
  168. package/src/providers/claude/env/ClaudeSettingsReconciler.ts +90 -0
  169. package/src/providers/claude/env/claudeModelEnv.ts +86 -0
  170. package/src/providers/claude/history/ClaudeConversationHistoryService.ts +446 -0
  171. package/src/providers/claude/history/ClaudeHistoryStore.ts +170 -0
  172. package/src/providers/claude/history/sdkAsyncSubagent.ts +92 -0
  173. package/src/providers/claude/history/sdkBranchFilter.ts +271 -0
  174. package/src/providers/claude/history/sdkHistoryTypes.ts +61 -0
  175. package/src/providers/claude/history/sdkMessageParsing.ts +413 -0
  176. package/src/providers/claude/history/sdkSessionPaths.ts +98 -0
  177. package/src/providers/claude/history/sdkSubagentSidecar.ts +261 -0
  178. package/src/providers/claude/hooks/SubagentHooks.ts +31 -0
  179. package/src/providers/claude/modelLabels.ts +77 -0
  180. package/src/providers/claude/modelOptions.ts +113 -0
  181. package/src/providers/claude/modelSelection.ts +17 -0
  182. package/src/providers/claude/plugins/PluginManager.ts +194 -0
  183. package/src/providers/claude/prompt/ClaudeTurnEncoder.ts +46 -0
  184. package/src/providers/claude/registration.ts +39 -0
  185. package/src/providers/claude/runtime/ClaudeApprovalHandler.ts +153 -0
  186. package/src/providers/claude/runtime/ClaudeChatRuntime.ts +1812 -0
  187. package/src/providers/claude/runtime/ClaudeCliResolver.ts +94 -0
  188. package/src/providers/claude/runtime/ClaudeDynamicUpdates.ts +164 -0
  189. package/src/providers/claude/runtime/ClaudeMessageChannel.ts +209 -0
  190. package/src/providers/claude/runtime/ClaudeQueryOptionsBuilder.ts +315 -0
  191. package/src/providers/claude/runtime/ClaudeRewindService.ts +220 -0
  192. package/src/providers/claude/runtime/ClaudeSessionManager.ts +92 -0
  193. package/src/providers/claude/runtime/ClaudeTaskResultInterpreter.ts +172 -0
  194. package/src/providers/claude/runtime/ClaudeUserMessageFactory.ts +83 -0
  195. package/src/providers/claude/runtime/claudeColdStartQuery.ts +152 -0
  196. package/src/providers/claude/runtime/customSpawn.ts +87 -0
  197. package/src/providers/claude/runtime/types.ts +134 -0
  198. package/src/providers/claude/sdk/messages.ts +17 -0
  199. package/src/providers/claude/sdk/toolResultContent.ts +4 -0
  200. package/src/providers/claude/sdk/typeGuards.ts +14 -0
  201. package/src/providers/claude/sdk/types.ts +15 -0
  202. package/src/providers/claude/security/ClaudePermissionUpdates.ts +44 -0
  203. package/src/providers/claude/settings.ts +138 -0
  204. package/src/providers/claude/storage/AgentVaultStorage.ts +101 -0
  205. package/src/providers/claude/storage/CCSettingsStorage.ts +153 -0
  206. package/src/providers/claude/storage/ClaudianSettingsStorage.ts +6 -0
  207. package/src/providers/claude/storage/McpStorage.ts +139 -0
  208. package/src/providers/claude/storage/SessionStorage.ts +5 -0
  209. package/src/providers/claude/storage/SkillStorage.ts +61 -0
  210. package/src/providers/claude/storage/SlashCommandStorage.ts +96 -0
  211. package/src/providers/claude/storage/StorageService.ts +185 -0
  212. package/src/providers/claude/stream/toolInputStreamState.ts +318 -0
  213. package/src/providers/claude/stream/transformClaudeMessage.ts +586 -0
  214. package/src/providers/claude/types/agent.ts +2 -0
  215. package/src/providers/claude/types/models.ts +168 -0
  216. package/src/providers/claude/types/plugins.ts +14 -0
  217. package/src/providers/claude/types/providerState.ts +16 -0
  218. package/src/providers/claude/types/settings.ts +98 -0
  219. package/src/providers/claude/ui/AgentSettings.ts +389 -0
  220. package/src/providers/claude/ui/ClaudeChatUIConfig.ts +113 -0
  221. package/src/providers/claude/ui/ClaudeSettingsTab.ts +407 -0
  222. package/src/providers/claude/ui/PluginSettingsManager.ts +149 -0
  223. package/src/providers/claude/ui/SlashCommandSettings.ts +527 -0
  224. package/src/providers/codex/CLAUDE.md +64 -0
  225. package/src/providers/codex/agents/CodexAgentMentionProvider.ts +33 -0
  226. package/src/providers/codex/app/CodexWorkspaceServices.ts +76 -0
  227. package/src/providers/codex/auxiliary/CodexInlineEditService.ts +9 -0
  228. package/src/providers/codex/auxiliary/CodexInstructionRefineService.ts +9 -0
  229. package/src/providers/codex/auxiliary/CodexTaskResultInterpreter.ts +29 -0
  230. package/src/providers/codex/auxiliary/CodexTitleGenerationService.ts +22 -0
  231. package/src/providers/codex/capabilities.ts +16 -0
  232. package/src/providers/codex/commands/CodexSkillCatalog.ts +180 -0
  233. package/src/providers/codex/env/CodexSettingsReconciler.ts +68 -0
  234. package/src/providers/codex/history/CodexConversationHistoryService.ts +212 -0
  235. package/src/providers/codex/history/CodexHistoryStore.ts +1672 -0
  236. package/src/providers/codex/modelOptions.ts +99 -0
  237. package/src/providers/codex/modelSelection.ts +17 -0
  238. package/src/providers/codex/normalization/codexSubagentNormalization.ts +227 -0
  239. package/src/providers/codex/normalization/codexToolNormalization.ts +390 -0
  240. package/src/providers/codex/prompt/encodeCodexTurn.ts +57 -0
  241. package/src/providers/codex/registration.ts +29 -0
  242. package/src/providers/codex/runtime/CodexAppServerProcess.ts +105 -0
  243. package/src/providers/codex/runtime/CodexAuxQueryRunner.ts +180 -0
  244. package/src/providers/codex/runtime/CodexBinaryLocator.ts +49 -0
  245. package/src/providers/codex/runtime/CodexChatRuntime.ts +1296 -0
  246. package/src/providers/codex/runtime/CodexCliResolver.ts +65 -0
  247. package/src/providers/codex/runtime/CodexExecutionTargetResolver.ts +104 -0
  248. package/src/providers/codex/runtime/CodexLaunchSpecBuilder.ts +85 -0
  249. package/src/providers/codex/runtime/CodexNotificationRouter.ts +1033 -0
  250. package/src/providers/codex/runtime/CodexPathMapper.ts +155 -0
  251. package/src/providers/codex/runtime/CodexRpcTransport.ts +171 -0
  252. package/src/providers/codex/runtime/CodexRuntimeContext.ts +109 -0
  253. package/src/providers/codex/runtime/CodexServerRequestRouter.ts +331 -0
  254. package/src/providers/codex/runtime/CodexSessionFileTail.ts +792 -0
  255. package/src/providers/codex/runtime/CodexSessionManager.ts +39 -0
  256. package/src/providers/codex/runtime/codexAppServerSupport.ts +58 -0
  257. package/src/providers/codex/runtime/codexAppServerTypes.ts +705 -0
  258. package/src/providers/codex/runtime/codexLaunchTypes.ts +30 -0
  259. package/src/providers/codex/settings.ts +236 -0
  260. package/src/providers/codex/skills/CodexSkillListingService.ts +173 -0
  261. package/src/providers/codex/storage/CodexSkillStorage.ts +250 -0
  262. package/src/providers/codex/storage/CodexSubagentStorage.ts +212 -0
  263. package/src/providers/codex/types/index.ts +16 -0
  264. package/src/providers/codex/types/models.ts +46 -0
  265. package/src/providers/codex/types/subagent.ts +23 -0
  266. package/src/providers/codex/ui/CodexChatUIConfig.ts +128 -0
  267. package/src/providers/codex/ui/CodexSettingsTab.ts +432 -0
  268. package/src/providers/codex/ui/CodexSkillSettings.ts +275 -0
  269. package/src/providers/codex/ui/CodexSubagentSettings.ts +400 -0
  270. package/src/providers/defaultProviderConfigs.ts +14 -0
  271. package/src/providers/index.ts +30 -0
  272. package/src/providers/opencode/agents/OpencodeAgentMentionProvider.ts +42 -0
  273. package/src/providers/opencode/app/OpencodeRuntimeCommandLoader.ts +67 -0
  274. package/src/providers/opencode/app/OpencodeWorkspaceServices.ts +55 -0
  275. package/src/providers/opencode/auxiliary/OpencodeInlineEditService.ts +13 -0
  276. package/src/providers/opencode/auxiliary/OpencodeInstructionRefineService.ts +12 -0
  277. package/src/providers/opencode/auxiliary/OpencodeTaskResultInterpreter.ts +29 -0
  278. package/src/providers/opencode/auxiliary/OpencodeTitleGenerationService.ts +27 -0
  279. package/src/providers/opencode/capabilities.ts +16 -0
  280. package/src/providers/opencode/commands/OpencodeCommandCatalog.ts +92 -0
  281. package/src/providers/opencode/discoveryState.ts +135 -0
  282. package/src/providers/opencode/env/OpencodeSettingsReconciler.ts +178 -0
  283. package/src/providers/opencode/history/OpencodeConversationHistoryService.ts +84 -0
  284. package/src/providers/opencode/history/OpencodeHistoryStore.ts +472 -0
  285. package/src/providers/opencode/history/OpencodeSqliteReader.ts +284 -0
  286. package/src/providers/opencode/internal/compareCollections.ts +72 -0
  287. package/src/providers/opencode/internal/providerProjection.ts +15 -0
  288. package/src/providers/opencode/models.ts +378 -0
  289. package/src/providers/opencode/modes.ts +150 -0
  290. package/src/providers/opencode/normalization/opencodeToolNormalization.ts +406 -0
  291. package/src/providers/opencode/registration.ts +27 -0
  292. package/src/providers/opencode/runtime/OpencodeAuxQueryRunner.ts +436 -0
  293. package/src/providers/opencode/runtime/OpencodeChatRuntime.ts +1603 -0
  294. package/src/providers/opencode/runtime/OpencodeCliResolver.ts +57 -0
  295. package/src/providers/opencode/runtime/OpencodeLaunchArtifacts.ts +231 -0
  296. package/src/providers/opencode/runtime/OpencodePaths.ts +113 -0
  297. package/src/providers/opencode/runtime/OpencodeRuntimeEnvironment.ts +18 -0
  298. package/src/providers/opencode/runtime/buildOpencodePrompt.ts +66 -0
  299. package/src/providers/opencode/settings.ts +427 -0
  300. package/src/providers/opencode/storage/OpencodeAgentStorage.ts +346 -0
  301. package/src/providers/opencode/types/agent.ts +37 -0
  302. package/src/providers/opencode/types/index.ts +9 -0
  303. package/src/providers/opencode/ui/OpencodeAgentSettings.ts +579 -0
  304. package/src/providers/opencode/ui/OpencodeChatUIConfig.ts +316 -0
  305. package/src/providers/opencode/ui/OpencodeSettingsTab.ts +674 -0
  306. package/src/providers/pi/app/PiRuntimeCommandLoader.ts +57 -0
  307. package/src/providers/pi/app/PiWorkspaceServices.ts +39 -0
  308. package/src/providers/pi/auxiliary/PiInlineEditService.ts +9 -0
  309. package/src/providers/pi/auxiliary/PiInstructionRefineService.ts +9 -0
  310. package/src/providers/pi/auxiliary/PiTaskResultInterpreter.ts +29 -0
  311. package/src/providers/pi/auxiliary/PiTitleGenerationService.ts +19 -0
  312. package/src/providers/pi/capabilities.ts +16 -0
  313. package/src/providers/pi/commands/PiCommandCatalog.ts +92 -0
  314. package/src/providers/pi/env/PiSettingsReconciler.ts +180 -0
  315. package/src/providers/pi/history/PiConversationHistoryService.ts +123 -0
  316. package/src/providers/pi/history/PiHistoryStore.ts +664 -0
  317. package/src/providers/pi/internal/compareCollections.ts +4 -0
  318. package/src/providers/pi/internal/providerProjection.ts +18 -0
  319. package/src/providers/pi/models.ts +302 -0
  320. package/src/providers/pi/normalizations/piEventNormalization.ts +211 -0
  321. package/src/providers/pi/normalizations/piToolNormalization.ts +97 -0
  322. package/src/providers/pi/registration.ts +30 -0
  323. package/src/providers/pi/runtime/PiAuxQueryRunner.ts +216 -0
  324. package/src/providers/pi/runtime/PiChatRuntime.ts +1064 -0
  325. package/src/providers/pi/runtime/PiCliResolver.ts +53 -0
  326. package/src/providers/pi/runtime/PiExtensionUiBridge.ts +161 -0
  327. package/src/providers/pi/runtime/PiJsonl.ts +71 -0
  328. package/src/providers/pi/runtime/PiLaunchSpec.ts +70 -0
  329. package/src/providers/pi/runtime/PiModelDiscoveryService.ts +92 -0
  330. package/src/providers/pi/runtime/PiRpcPayloads.ts +18 -0
  331. package/src/providers/pi/runtime/PiRpcTransport.ts +243 -0
  332. package/src/providers/pi/runtime/PiSubprocess.ts +159 -0
  333. package/src/providers/pi/runtime/buildPiPrompt.ts +62 -0
  334. package/src/providers/pi/runtime/buildPiUsageInfo.ts +69 -0
  335. package/src/providers/pi/settings.ts +468 -0
  336. package/src/providers/pi/types.ts +64 -0
  337. package/src/providers/pi/ui/ObsidianPiExtensionUiRenderer.ts +251 -0
  338. package/src/providers/pi/ui/PiChatUIConfig.ts +265 -0
  339. package/src/providers/pi/ui/PiExtensionUiRenderer.ts +12 -0
  340. package/src/providers/pi/ui/PiSettingsTab.ts +642 -0
  341. package/src/shared/components/ResumeSessionDropdown.ts +185 -0
  342. package/src/shared/components/SelectableDropdown.ts +140 -0
  343. package/src/shared/components/SelectionHighlight.ts +77 -0
  344. package/src/shared/components/SlashCommandDropdown.ts +421 -0
  345. package/src/shared/icons.ts +180 -0
  346. package/src/shared/mention/MentionDropdownController.ts +627 -0
  347. package/src/shared/mention/VaultMentionCache.ts +106 -0
  348. package/src/shared/mention/VaultMentionDataProvider.ts +51 -0
  349. package/src/shared/mention/types.ts +67 -0
  350. package/src/shared/modals/ConfirmModal.ts +60 -0
  351. package/src/shared/modals/ForkTargetModal.ts +47 -0
  352. package/src/shared/modals/InstructionConfirmModal.ts +281 -0
  353. package/src/style/CLAUDE.md +49 -0
  354. package/src/style/accessibility.css +40 -0
  355. package/src/style/base/animations.css +44 -0
  356. package/src/style/base/container.css +20 -0
  357. package/src/style/base/variables.css +46 -0
  358. package/src/style/base/visibility.css +15 -0
  359. package/src/style/components/code.css +97 -0
  360. package/src/style/components/context-footer.css +76 -0
  361. package/src/style/components/header.css +27 -0
  362. package/src/style/components/history.css +221 -0
  363. package/src/style/components/input.css +312 -0
  364. package/src/style/components/messages.css +262 -0
  365. package/src/style/components/nav-sidebar.css +58 -0
  366. package/src/style/components/status-panel.css +202 -0
  367. package/src/style/components/subagent.css +248 -0
  368. package/src/style/components/tabs.css +112 -0
  369. package/src/style/components/thinking.css +88 -0
  370. package/src/style/components/toolcalls.css +278 -0
  371. package/src/style/features/ask-user-question.css +315 -0
  372. package/src/style/features/diff.css +197 -0
  373. package/src/style/features/file-context.css +188 -0
  374. package/src/style/features/file-link.css +22 -0
  375. package/src/style/features/image-context.css +179 -0
  376. package/src/style/features/image-embed.css +40 -0
  377. package/src/style/features/image-modal.css +52 -0
  378. package/src/style/features/inline-edit.css +278 -0
  379. package/src/style/features/plan-mode.css +103 -0
  380. package/src/style/features/resume-session.css +119 -0
  381. package/src/style/features/slash-commands.css +91 -0
  382. package/src/style/index.css +63 -0
  383. package/src/style/modals/fork-target.css +21 -0
  384. package/src/style/modals/instruction.css +161 -0
  385. package/src/style/modals/mcp-modal.css +241 -0
  386. package/src/style/settings/agent-settings.css +2 -0
  387. package/src/style/settings/base.css +300 -0
  388. package/src/style/settings/env-snippets.css +366 -0
  389. package/src/style/settings/mcp-settings.css +211 -0
  390. package/src/style/settings/plugin-settings.css +164 -0
  391. package/src/style/settings/provider-model-picker.css +367 -0
  392. package/src/style/settings/slash-settings.css +16 -0
  393. package/src/style/toolbar/external-context.css +177 -0
  394. package/src/style/toolbar/mcp-selector.css +176 -0
  395. package/src/style/toolbar/mode-selector.css +19 -0
  396. package/src/style/toolbar/model-selector.css +99 -0
  397. package/src/style/toolbar/permission-toggle.css +56 -0
  398. package/src/style/toolbar/service-tier-toggle.css +39 -0
  399. package/src/style/toolbar/thinking-selector.css +83 -0
  400. package/src/types/smol-toml.d.ts +4 -0
  401. package/src/utils/agent.ts +50 -0
  402. package/src/utils/animationFrame.ts +46 -0
  403. package/src/utils/browser.ts +46 -0
  404. package/src/utils/canvas.ts +14 -0
  405. package/src/utils/cliBinaryLocator.ts +97 -0
  406. package/src/utils/context.ts +117 -0
  407. package/src/utils/contextMentionResolver.ts +154 -0
  408. package/src/utils/date.ts +31 -0
  409. package/src/utils/diff.ts +384 -0
  410. package/src/utils/editor.ts +104 -0
  411. package/src/utils/electronCompat.ts +53 -0
  412. package/src/utils/env.ts +465 -0
  413. package/src/utils/externalContext.ts +143 -0
  414. package/src/utils/externalContextScanner.ts +135 -0
  415. package/src/utils/fileLink.ts +263 -0
  416. package/src/utils/frontmatter.ts +194 -0
  417. package/src/utils/imageEmbed.ts +139 -0
  418. package/src/utils/inlineEdit.ts +22 -0
  419. package/src/utils/interrupt.ts +23 -0
  420. package/src/utils/markdown.ts +25 -0
  421. package/src/utils/markdownMath.ts +130 -0
  422. package/src/utils/mcp.ts +96 -0
  423. package/src/utils/obsidianCompat.ts +23 -0
  424. package/src/utils/path.ts +342 -0
  425. package/src/utils/session.ts +240 -0
  426. package/src/utils/slashCommand.ts +152 -0
  427. package/src/utils/subagentJsonl.ts +52 -0
  428. package/src/utils/windowsCmdShim.ts +98 -0
  429. package/tests/__mocks__/claude-agent-sdk.ts +317 -0
  430. package/tests/__mocks__/codex-sdk.ts +88 -0
  431. package/tests/__mocks__/obsidian.ts +434 -0
  432. package/tests/helpers/mockElement.ts +403 -0
  433. package/tests/helpers/sdkMessages.ts +291 -0
  434. package/tests/integration/core/agent/ClaudianService.test.ts +1845 -0
  435. package/tests/integration/core/mcp/mcp.test.ts +905 -0
  436. package/tests/integration/features/chat/imagePersistence.test.ts +38 -0
  437. package/tests/integration/main.test.ts +1701 -0
  438. package/tests/setupWindow.ts +26 -0
  439. package/tests/tsconfig.json +7 -0
  440. package/tests/unit/core/commands/builtInCommands.test.ts +239 -0
  441. package/tests/unit/core/mcp/McpServerManager.test.ts +405 -0
  442. package/tests/unit/core/mcp/McpTester.test.ts +282 -0
  443. package/tests/unit/core/mcp/createNodeFetch.test.ts +188 -0
  444. package/tests/unit/core/providers/ProviderRegistry.test.ts +275 -0
  445. package/tests/unit/core/providers/ProviderSettingsCoordinator.test.ts +490 -0
  446. package/tests/unit/core/providers/ProviderWorkspaceRegistry.test.ts +84 -0
  447. package/tests/unit/core/providers/modelRouting.test.ts +91 -0
  448. package/tests/unit/core/providers/modelSelection.test.ts +155 -0
  449. package/tests/unit/core/providers/providerEnvironment.test.ts +162 -0
  450. package/tests/unit/core/providers/tabLifecycle.test.ts +217 -0
  451. package/tests/unit/core/security/ApprovalManager.test.ts +152 -0
  452. package/tests/unit/core/storage/VaultFileAdapter.test.ts +535 -0
  453. package/tests/unit/core/tools/todo.test.ts +227 -0
  454. package/tests/unit/core/tools/toolIcons.test.ts +75 -0
  455. package/tests/unit/core/tools/toolInput.test.ts +350 -0
  456. package/tests/unit/core/tools/toolNames.test.ts +464 -0
  457. package/tests/unit/core/types/mcp.test.ts +115 -0
  458. package/tests/unit/features/chat/ClaudianView.test.ts +404 -0
  459. package/tests/unit/features/chat/controllers/BrowserSelectionController.test.ts +179 -0
  460. package/tests/unit/features/chat/controllers/CanvasSelectionController.test.ts +216 -0
  461. package/tests/unit/features/chat/controllers/ConversationController.test.ts +2764 -0
  462. package/tests/unit/features/chat/controllers/InputController.test.ts +3188 -0
  463. package/tests/unit/features/chat/controllers/NavigationController.test.ts +640 -0
  464. package/tests/unit/features/chat/controllers/SelectionController.test.ts +695 -0
  465. package/tests/unit/features/chat/controllers/StreamController.test.ts +2534 -0
  466. package/tests/unit/features/chat/controllers/contextRowVisibility.test.ts +46 -0
  467. package/tests/unit/features/chat/controllers/index.test.ts +16 -0
  468. package/tests/unit/features/chat/rendering/DiffRenderer.test.ts +355 -0
  469. package/tests/unit/features/chat/rendering/InlineAskUserQuestion.test.ts +1035 -0
  470. package/tests/unit/features/chat/rendering/InlineExitPlanMode.test.ts +191 -0
  471. package/tests/unit/features/chat/rendering/InlinePlanApproval.test.ts +126 -0
  472. package/tests/unit/features/chat/rendering/MessageRenderer.test.ts +2004 -0
  473. package/tests/unit/features/chat/rendering/SubagentRenderer.test.ts +917 -0
  474. package/tests/unit/features/chat/rendering/ThinkingBlockRenderer.test.ts +124 -0
  475. package/tests/unit/features/chat/rendering/TodoListRenderer.test.ts +173 -0
  476. package/tests/unit/features/chat/rendering/ToolCallRenderer.test.ts +909 -0
  477. package/tests/unit/features/chat/rendering/WriteEditRenderer.test.ts +474 -0
  478. package/tests/unit/features/chat/rendering/collapsible.test.ts +158 -0
  479. package/tests/unit/features/chat/rendering/todoUtils.test.ts +105 -0
  480. package/tests/unit/features/chat/rewind.test.ts +56 -0
  481. package/tests/unit/features/chat/services/BangBashService.test.ts +142 -0
  482. package/tests/unit/features/chat/services/InstructionRefineService.test.ts +371 -0
  483. package/tests/unit/features/chat/services/SubagentManager.test.ts +1759 -0
  484. package/tests/unit/features/chat/services/TitleGenerationService.test.ts +480 -0
  485. package/tests/unit/features/chat/state/ChatState.test.ts +581 -0
  486. package/tests/unit/features/chat/tabs/Tab.test.ts +4287 -0
  487. package/tests/unit/features/chat/tabs/TabBar.test.ts +357 -0
  488. package/tests/unit/features/chat/tabs/TabManager.test.ts +2962 -0
  489. package/tests/unit/features/chat/tabs/index.test.ts +11 -0
  490. package/tests/unit/features/chat/ui/BangBashModeManager.test.ts +321 -0
  491. package/tests/unit/features/chat/ui/ExternalContextSelector.test.ts +555 -0
  492. package/tests/unit/features/chat/ui/FileContextManager.test.ts +876 -0
  493. package/tests/unit/features/chat/ui/ImageContext.test.ts +777 -0
  494. package/tests/unit/features/chat/ui/InputToolbar.test.ts +1139 -0
  495. package/tests/unit/features/chat/ui/InstructionModeManager.test.ts +243 -0
  496. package/tests/unit/features/chat/ui/NavigationSidebar.test.ts +570 -0
  497. package/tests/unit/features/chat/ui/StatusPanel.test.ts +953 -0
  498. package/tests/unit/features/chat/ui/file-context/state/FileContextState.test.ts +155 -0
  499. package/tests/unit/features/chat/ui/textareaResize.test.ts +102 -0
  500. package/tests/unit/features/chat/utils/usageInfo.test.ts +56 -0
  501. package/tests/unit/features/inline-edit/InlineEditService.test.ts +1199 -0
  502. package/tests/unit/features/inline-edit/ui/InlineEditModal.openAndWait.test.ts +1482 -0
  503. package/tests/unit/features/inline-edit/ui/InlineEditModal.test.ts +495 -0
  504. package/tests/unit/features/inline-edit/ui/inlineEditMarkdownPreview.test.ts +92 -0
  505. package/tests/unit/features/settings/AgentSettings.test.ts +82 -0
  506. package/tests/unit/features/settings/keyboardNavigation.test.ts +73 -0
  507. package/tests/unit/features/settings/ui/CodexSkillSettings.test.ts +294 -0
  508. package/tests/unit/features/settings/ui/CodexSubagentSettings.test.ts +207 -0
  509. package/tests/unit/i18n/constants.test.ts +43 -0
  510. package/tests/unit/i18n/i18n.test.ts +244 -0
  511. package/tests/unit/i18n/locales.test.ts +134 -0
  512. package/tests/unit/providers/acp/AcpClientConnection.test.ts +248 -0
  513. package/tests/unit/providers/acp/AcpJsonRpcTransport.test.ts +186 -0
  514. package/tests/unit/providers/acp/AcpSessionConfig.test.ts +247 -0
  515. package/tests/unit/providers/acp/AcpSessionUpdateNormalizer.test.ts +145 -0
  516. package/tests/unit/providers/acp/AcpSubprocess.test.ts +105 -0
  517. package/tests/unit/providers/acp/buildAcpUsageInfo.test.ts +51 -0
  518. package/tests/unit/providers/claude/agents/AgentManager.test.ts +590 -0
  519. package/tests/unit/providers/claude/agents/AgentStorage.test.ts +434 -0
  520. package/tests/unit/providers/claude/agents/index.test.ts +10 -0
  521. package/tests/unit/providers/claude/commands/ClaudeCommandCatalog.test.ts +396 -0
  522. package/tests/unit/providers/claude/commands/probeRuntimeCommands.test.ts +92 -0
  523. package/tests/unit/providers/claude/env/ClaudeSettingsReconciler.test.ts +57 -0
  524. package/tests/unit/providers/claude/env/claudeModelEnv.test.ts +228 -0
  525. package/tests/unit/providers/claude/hooks/SubagentHooks.test.ts +83 -0
  526. package/tests/unit/providers/claude/plugins/PluginManager.test.ts +832 -0
  527. package/tests/unit/providers/claude/plugins/index.test.ts +7 -0
  528. package/tests/unit/providers/claude/prompt/ClaudeTurnEncoder.test.ts +145 -0
  529. package/tests/unit/providers/claude/prompt/instructionRefine.test.ts +185 -0
  530. package/tests/unit/providers/claude/prompt/systemPrompt.test.ts +163 -0
  531. package/tests/unit/providers/claude/prompt/titleGeneration.test.ts +20 -0
  532. package/tests/unit/providers/claude/runtime/ClaudeTaskResultInterpreter.test.ts +28 -0
  533. package/tests/unit/providers/claude/runtime/ClaudianService.test.ts +3796 -0
  534. package/tests/unit/providers/claude/runtime/MessageChannel.test.ts +421 -0
  535. package/tests/unit/providers/claude/runtime/QueryOptionsBuilder.test.ts +775 -0
  536. package/tests/unit/providers/claude/runtime/SessionManager.test.ts +182 -0
  537. package/tests/unit/providers/claude/runtime/claudeColdStartQuery.test.ts +331 -0
  538. package/tests/unit/providers/claude/runtime/customSpawn.test.ts +374 -0
  539. package/tests/unit/providers/claude/runtime/index.test.ts +13 -0
  540. package/tests/unit/providers/claude/runtime/types.test.ts +190 -0
  541. package/tests/unit/providers/claude/sdk/typeGuards.test.ts +50 -0
  542. package/tests/unit/providers/claude/security/ClaudePermissionUpdates.test.ts +198 -0
  543. package/tests/unit/providers/claude/storage/AgentVaultStorage.test.ts +413 -0
  544. package/tests/unit/providers/claude/storage/CCSettingsStorage.test.ts +408 -0
  545. package/tests/unit/providers/claude/storage/ClaudianSettingsStorage.test.ts +653 -0
  546. package/tests/unit/providers/claude/storage/McpStorage.test.ts +619 -0
  547. package/tests/unit/providers/claude/storage/SessionStorage.test.ts +680 -0
  548. package/tests/unit/providers/claude/storage/SkillStorage.test.ts +275 -0
  549. package/tests/unit/providers/claude/storage/SlashCommandStorage.test.ts +612 -0
  550. package/tests/unit/providers/claude/storage/storage.test.ts +360 -0
  551. package/tests/unit/providers/claude/storage/storageService.convenience.test.ts +447 -0
  552. package/tests/unit/providers/claude/stream/transformSDKMessage.test.ts +1729 -0
  553. package/tests/unit/providers/claude/types/types.test.ts +726 -0
  554. package/tests/unit/providers/claude/ui/ClaudeChatUIConfig.test.ts +173 -0
  555. package/tests/unit/providers/claude/ui/ClaudeSettingsTab.test.ts +466 -0
  556. package/tests/unit/providers/codex/agents/CodexAgentMentionProvider.test.ts +89 -0
  557. package/tests/unit/providers/codex/auxiliary/CodexInstructionRefineService.test.ts +81 -0
  558. package/tests/unit/providers/codex/capabilities.test.ts +39 -0
  559. package/tests/unit/providers/codex/commands/CodexSkillCatalog.test.ts +413 -0
  560. package/tests/unit/providers/codex/env/CodexSettingsReconciler.test.ts +106 -0
  561. package/tests/unit/providers/codex/fixtures/codex-session-abort.jsonl +9 -0
  562. package/tests/unit/providers/codex/fixtures/codex-session-agent-lifecycle.jsonl +12 -0
  563. package/tests/unit/providers/codex/fixtures/codex-session-persisted-tools.jsonl +15 -0
  564. package/tests/unit/providers/codex/fixtures/codex-session-simple.jsonl +10 -0
  565. package/tests/unit/providers/codex/fixtures/codex-session-tools.jsonl +12 -0
  566. package/tests/unit/providers/codex/fixtures/codex-session-websearch-persisted.jsonl +3 -0
  567. package/tests/unit/providers/codex/fixtures/codex-session-websearch.jsonl +7 -0
  568. package/tests/unit/providers/codex/history/CodexConversationHistoryService.test.ts +690 -0
  569. package/tests/unit/providers/codex/history/CodexHistoryStore.test.ts +2202 -0
  570. package/tests/unit/providers/codex/normalization/codexSubagentNormalization.test.ts +81 -0
  571. package/tests/unit/providers/codex/normalization/codexToolNormalization.test.ts +322 -0
  572. package/tests/unit/providers/codex/prompt/encodeCodexTurn.test.ts +168 -0
  573. package/tests/unit/providers/codex/runtime/CodexAppServerProcess.test.ts +255 -0
  574. package/tests/unit/providers/codex/runtime/CodexAuxQueryRunner.test.ts +130 -0
  575. package/tests/unit/providers/codex/runtime/CodexBinaryLocator.test.ts +90 -0
  576. package/tests/unit/providers/codex/runtime/CodexChatRuntime.test.ts +2445 -0
  577. package/tests/unit/providers/codex/runtime/CodexCliResolver.test.ts +103 -0
  578. package/tests/unit/providers/codex/runtime/CodexExecutionTargetResolver.test.ts +105 -0
  579. package/tests/unit/providers/codex/runtime/CodexLaunchSpecBuilder.test.ts +150 -0
  580. package/tests/unit/providers/codex/runtime/CodexNotificationRouter.test.ts +1248 -0
  581. package/tests/unit/providers/codex/runtime/CodexPathMapper.test.ts +51 -0
  582. package/tests/unit/providers/codex/runtime/CodexRpcTransport.test.ts +220 -0
  583. package/tests/unit/providers/codex/runtime/CodexRuntimeContext.test.ts +107 -0
  584. package/tests/unit/providers/codex/runtime/CodexServerRequestRouter.test.ts +537 -0
  585. package/tests/unit/providers/codex/runtime/CodexSessionFileTail.test.ts +1305 -0
  586. package/tests/unit/providers/codex/runtime/CodexSessionManager.test.ts +82 -0
  587. package/tests/unit/providers/codex/runtime/codexAppServerTypes.test.ts +336 -0
  588. package/tests/unit/providers/codex/settings.test.ts +189 -0
  589. package/tests/unit/providers/codex/skills/CodexSkillListingService.test.ts +178 -0
  590. package/tests/unit/providers/codex/storage/CodexSkillStorage.test.ts +342 -0
  591. package/tests/unit/providers/codex/storage/CodexSubagentStorage.test.ts +376 -0
  592. package/tests/unit/providers/codex/ui/CodexChatUIConfig.test.ts +211 -0
  593. package/tests/unit/providers/codex/ui/CodexSettingsTab.test.ts +578 -0
  594. package/tests/unit/providers/defaultProviderConfigs.test.ts +18 -0
  595. package/tests/unit/providers/opencode/OpencodeAuxQueryRunner.test.ts +355 -0
  596. package/tests/unit/providers/opencode/OpencodeChatRuntime.test.ts +808 -0
  597. package/tests/unit/providers/opencode/OpencodeCliResolver.test.ts +93 -0
  598. package/tests/unit/providers/opencode/OpencodeCommandCatalog.test.ts +75 -0
  599. package/tests/unit/providers/opencode/OpencodeConversationHistoryService.test.ts +103 -0
  600. package/tests/unit/providers/opencode/OpencodeHistoryStore.test.ts +418 -0
  601. package/tests/unit/providers/opencode/OpencodeLaunchArtifacts.test.ts +268 -0
  602. package/tests/unit/providers/opencode/OpencodePaths.test.ts +35 -0
  603. package/tests/unit/providers/opencode/OpencodeRuntimeCommandLoader.test.ts +129 -0
  604. package/tests/unit/providers/opencode/OpencodeSettingsReconciler.test.ts +96 -0
  605. package/tests/unit/providers/opencode/OpencodeSettingsTab.test.ts +649 -0
  606. package/tests/unit/providers/opencode/OpencodeSqliteReader.test.ts +185 -0
  607. package/tests/unit/providers/opencode/agents/OpencodeAgentMentionProvider.test.ts +56 -0
  608. package/tests/unit/providers/opencode/buildOpencodePrompt.test.ts +87 -0
  609. package/tests/unit/providers/opencode/capabilities.test.ts +39 -0
  610. package/tests/unit/providers/opencode/models.test.ts +273 -0
  611. package/tests/unit/providers/opencode/modes.test.ts +151 -0
  612. package/tests/unit/providers/opencode/opencodeToolNormalization.test.ts +197 -0
  613. package/tests/unit/providers/opencode/settings.test.ts +469 -0
  614. package/tests/unit/providers/opencode/storage/OpencodeAgentStorage.test.ts +377 -0
  615. package/tests/unit/providers/opencode/ui/OpencodeAgentSettings.test.ts +91 -0
  616. package/tests/unit/providers/pi/PiRuntimeCommandLoader.test.ts +149 -0
  617. package/tests/unit/providers/pi/capabilities.test.ts +20 -0
  618. package/tests/unit/providers/pi/commands/PiCommandCatalog.test.ts +69 -0
  619. package/tests/unit/providers/pi/env/PiSettingsReconciler.test.ts +61 -0
  620. package/tests/unit/providers/pi/history/PiConversationHistoryService.test.ts +147 -0
  621. package/tests/unit/providers/pi/history/PiHistoryStore.test.ts +523 -0
  622. package/tests/unit/providers/pi/models.test.ts +96 -0
  623. package/tests/unit/providers/pi/registration.test.ts +54 -0
  624. package/tests/unit/providers/pi/runtime/PiAuxQueryRunner.test.ts +172 -0
  625. package/tests/unit/providers/pi/runtime/PiChatRuntime.test.ts +830 -0
  626. package/tests/unit/providers/pi/runtime/PiCliResolver.test.ts +105 -0
  627. package/tests/unit/providers/pi/runtime/PiEventNormalization.test.ts +147 -0
  628. package/tests/unit/providers/pi/runtime/PiExtensionUiBridge.test.ts +98 -0
  629. package/tests/unit/providers/pi/runtime/PiJsonl.test.ts +42 -0
  630. package/tests/unit/providers/pi/runtime/PiLaunchSpec.test.ts +92 -0
  631. package/tests/unit/providers/pi/runtime/PiModelDiscoveryService.test.ts +135 -0
  632. package/tests/unit/providers/pi/runtime/PiRpcPayloads.test.ts +15 -0
  633. package/tests/unit/providers/pi/runtime/PiRpcTransport.test.ts +116 -0
  634. package/tests/unit/providers/pi/runtime/PiSubprocess.test.ts +151 -0
  635. package/tests/unit/providers/pi/runtime/buildPiPrompt.test.ts +84 -0
  636. package/tests/unit/providers/pi/runtime/buildPiUsageInfo.test.ts +69 -0
  637. package/tests/unit/providers/pi/settings.test.ts +253 -0
  638. package/tests/unit/providers/pi/ui/PiChatUIConfig.test.ts +161 -0
  639. package/tests/unit/providers/pi/ui/PiSettingsTab.test.ts +492 -0
  640. package/tests/unit/scripts/rendererSafeUnref.test.ts +101 -0
  641. package/tests/unit/shared/components/ResumeSessionDropdown.test.ts +356 -0
  642. package/tests/unit/shared/components/SelectableDropdown.test.ts +406 -0
  643. package/tests/unit/shared/components/SlashCommandDropdown.provider.test.ts +354 -0
  644. package/tests/unit/shared/components/SlashCommandDropdown.test.ts +508 -0
  645. package/tests/unit/shared/icons.test.ts +56 -0
  646. package/tests/unit/shared/index.test.ts +46 -0
  647. package/tests/unit/shared/mention/MentionDropdownController.test.ts +823 -0
  648. package/tests/unit/shared/mention/VaultFileCache.test.ts +195 -0
  649. package/tests/unit/shared/mention/VaultFolderCache.test.ts +143 -0
  650. package/tests/unit/shared/mention/VaultMentionDataProvider.test.ts +87 -0
  651. package/tests/unit/shared/modals/ConfirmModal.test.ts +111 -0
  652. package/tests/unit/shared/modals/ForkTargetModal.test.ts +101 -0
  653. package/tests/unit/shared/modals/InstructionConfirmModal.test.ts +305 -0
  654. package/tests/unit/utils/agent.test.ts +395 -0
  655. package/tests/unit/utils/animationFrame.test.ts +59 -0
  656. package/tests/unit/utils/browser.test.ts +73 -0
  657. package/tests/unit/utils/canvas.test.ts +54 -0
  658. package/tests/unit/utils/claudeCli.test.ts +294 -0
  659. package/tests/unit/utils/cliBinaryLocator.test.ts +33 -0
  660. package/tests/unit/utils/context.test.ts +288 -0
  661. package/tests/unit/utils/contextMentionResolver.test.ts +270 -0
  662. package/tests/unit/utils/date.test.ts +80 -0
  663. package/tests/unit/utils/diff.test.ts +291 -0
  664. package/tests/unit/utils/editor.test.ts +249 -0
  665. package/tests/unit/utils/electronCompat.test.ts +87 -0
  666. package/tests/unit/utils/env.test.ts +1240 -0
  667. package/tests/unit/utils/externalContext.test.ts +336 -0
  668. package/tests/unit/utils/externalContextScanner.test.ts +186 -0
  669. package/tests/unit/utils/fileLink.dom.test.ts +273 -0
  670. package/tests/unit/utils/fileLink.handler.test.ts +64 -0
  671. package/tests/unit/utils/fileLink.test.ts +233 -0
  672. package/tests/unit/utils/frontmatter.test.ts +434 -0
  673. package/tests/unit/utils/imageEmbed.test.ts +407 -0
  674. package/tests/unit/utils/inlineEdit.test.ts +63 -0
  675. package/tests/unit/utils/interrupt.test.ts +73 -0
  676. package/tests/unit/utils/markdown.test.ts +35 -0
  677. package/tests/unit/utils/markdownMath.test.ts +54 -0
  678. package/tests/unit/utils/mcp.test.ts +256 -0
  679. package/tests/unit/utils/obsidianCompat.test.ts +18 -0
  680. package/tests/unit/utils/path.test.ts +677 -0
  681. package/tests/unit/utils/sdkSession.test.ts +2359 -0
  682. package/tests/unit/utils/session.test.ts +971 -0
  683. package/tests/unit/utils/slashCommand.test.ts +778 -0
  684. package/tests/unit/utils/utils.test.ts +809 -0
  685. package/tsconfig.jest.json +8 -0
  686. package/tsconfig.json +26 -0
  687. package/versions.json +4 -0
@@ -0,0 +1,322 @@
1
+ {
2
+ "common": {
3
+ "save": "保存",
4
+ "cancel": "キャンセル",
5
+ "delete": "削除",
6
+ "edit": "編集",
7
+ "add": "追加",
8
+ "remove": "削除",
9
+ "clear": "クリア",
10
+ "clearAll": "すべてクリア",
11
+ "loading": "読み込み中",
12
+ "error": "エラー",
13
+ "success": "成功",
14
+ "warning": "警告",
15
+ "confirm": "確認",
16
+ "settings": "設定",
17
+ "advanced": "詳細",
18
+ "enabled": "有効",
19
+ "disabled": "無効",
20
+ "platform": "プラットフォーム",
21
+ "refresh": "更新",
22
+ "rewind": "巻き戻し"
23
+ },
24
+ "chat": {
25
+ "rewind": {
26
+ "confirmMessage": "この時点に巻き戻しますか?このメッセージ以降のファイル変更が元に戻されます。手動またはbashで編集されたファイルには影響しません。",
27
+ "confirmMessageConversationOnly": "会話をこの時点に巻き戻しますか?ファイル変更は保持されます。",
28
+ "confirmButton": "巻き戻す",
29
+ "ariaLabel": "ここに巻き戻す",
30
+ "menuConversationOnly": "会話のみ巻き戻す",
31
+ "menuCodeAndConversation": "コード + 会話を巻き戻す",
32
+ "notice": "巻き戻し完了:{count} 個のファイルを復元",
33
+ "noticeConversationOnly": "会話を巻き戻しました。ファイル変更は保持されました",
34
+ "noticeSaveFailed": "巻き戻し完了:{count} 個のファイルを復元しましたが、状態を保存できませんでした:{error}",
35
+ "noticeConversationOnlySaveFailed": "会話を巻き戻しましたが、状態を保存できませんでした:{error}",
36
+ "failed": "巻き戻しに失敗:{error}",
37
+ "cannot": "巻き戻しできません:{error}",
38
+ "unavailableStreaming": "ストリーミング中は巻き戻しできません",
39
+ "unavailableNoUuid": "巻き戻しできません:メッセージ識別子がありません"
40
+ },
41
+ "fork": {
42
+ "ariaLabel": "会話を分岐",
43
+ "chooseTarget": "会話を分岐",
44
+ "targetNewTab": "新しいタブ",
45
+ "targetCurrentTab": "現在のタブ",
46
+ "maxTabsReached": "分岐できません:最大 {count} タブに達しました",
47
+ "notice": "新しいタブに分岐しました",
48
+ "noticeCurrentTab": "現在のタブで分岐しました",
49
+ "failed": "分岐に失敗:{error}",
50
+ "unavailableStreaming": "ストリーミング中は分岐できません",
51
+ "unavailableNoUuid": "分岐できません:メッセージ識別子がありません",
52
+ "unavailableNoResponse": "分岐できません:分岐元の応答がありません",
53
+ "errorMessageNotFound": "メッセージが見つかりません",
54
+ "errorNoSession": "セッション ID がありません",
55
+ "errorNoActiveTab": "アクティブなタブがありません",
56
+ "commandNoMessages": "フォークできません: 会話にメッセージがありません",
57
+ "commandNoAssistantUuid": "フォークできません: 識別子付きのアシスタント応答がありません"
58
+ },
59
+ "bangBash": {
60
+ "placeholder": "> bash コマンドを実行...",
61
+ "commandPanel": "コマンドパネル",
62
+ "copyAriaLabel": "最新のコマンド出力をコピー",
63
+ "clearAriaLabel": "bash 出力をクリア",
64
+ "commandLabel": "{command}",
65
+ "statusLabel": "状態: {status}",
66
+ "collapseOutput": "コマンド出力を折りたたむ",
67
+ "expandOutput": "コマンド出力を展開",
68
+ "running": "実行中...",
69
+ "copyFailed": "クリップボードへのコピーに失敗しました"
70
+ }
71
+ },
72
+ "settings": {
73
+ "title": "Claudian 設定",
74
+ "tabs": {
75
+ "general": "一般",
76
+ "claude": "Claude",
77
+ "codex": "Codex"
78
+ },
79
+ "display": "表示",
80
+ "conversations": "会話",
81
+ "content": "コンテンツ",
82
+ "input": "入力",
83
+ "setup": "セットアップ",
84
+ "models": "モデル",
85
+ "experimental": "実験的機能",
86
+ "userName": {
87
+ "name": "Claudian はどのように呼びますか?",
88
+ "desc": "パーソナライズされた挨拶に使用する名前(空欄で一般の挨拶)"
89
+ },
90
+ "excludedTags": {
91
+ "name": "除外タグ",
92
+ "desc": "これらのタグを含むノートは自動的にコンテキストとして読み込まれません(1行に1つ、#なし)"
93
+ },
94
+ "mediaFolder": {
95
+ "name": "メディアフォルダ",
96
+ "desc": "添付ファイル/画像を格納するフォルダ。ノートが ![[image.jpg]] を使用する場合、Claude はここで探します。空欄でリポジトリのルートを使用。"
97
+ },
98
+ "systemPrompt": {
99
+ "name": "カスタムシステムプロンプト",
100
+ "desc": "デフォルトのシステムプロンプトに追加される追加指示"
101
+ },
102
+ "autoTitle": {
103
+ "name": "会話タイトルを自動生成",
104
+ "desc": "最初のユーザーメッセージ送信後に会話タイトルを自動的に生成します。"
105
+ },
106
+ "titleModel": {
107
+ "name": "タイトル生成モデル",
108
+ "desc": "会話タイトルを自動生成するために使用されるモデル。",
109
+ "auto": "自動 (Haiku)"
110
+ },
111
+ "navMappings": {
112
+ "name": "Vimスタイルナビゲーションマッピング",
113
+ "desc": "1行に1つのマッピング。形式:\"map <キー> <アクション>\"(アクション:scrollUp, scrollDown, focusInput)。"
114
+ },
115
+ "requireCommandOrControlEnterToSend": {
116
+ "name": "送信に Command/Ctrl+Enter を必須にする",
117
+ "desc": "有効にすると、Enter は改行を挿入します。macOS では Command+Enter、Windows と Linux では Ctrl+Enter で送信します。"
118
+ },
119
+ "hotkeys": "ホットキー",
120
+ "inlineEditHotkey": {
121
+ "name": "インライン編集",
122
+ "descWithKey": "現在のホットキー: {hotkey}",
123
+ "descNoKey": "ホットキー未設定",
124
+ "btnChange": "変更",
125
+ "btnSet": "設定"
126
+ },
127
+ "openChatHotkey": {
128
+ "name": "チャットを開く",
129
+ "descWithKey": "現在のホットキー: {hotkey}",
130
+ "descNoKey": "ホットキー未設定",
131
+ "btnChange": "変更",
132
+ "btnSet": "設定"
133
+ },
134
+ "newSessionHotkey": {
135
+ "name": "新規セッション",
136
+ "descWithKey": "現在のホットキー: {hotkey}",
137
+ "descNoKey": "ホットキー未設定",
138
+ "btnChange": "変更",
139
+ "btnSet": "設定"
140
+ },
141
+ "newTabHotkey": {
142
+ "name": "新規タブ",
143
+ "descWithKey": "現在のホットキー: {hotkey}",
144
+ "descNoKey": "ホットキー未設定",
145
+ "btnChange": "変更",
146
+ "btnSet": "設定"
147
+ },
148
+ "closeTabHotkey": {
149
+ "name": "タブを閉じる",
150
+ "descWithKey": "現在のホットキー: {hotkey}",
151
+ "descNoKey": "ホットキー未設定",
152
+ "btnChange": "変更",
153
+ "btnSet": "設定"
154
+ },
155
+ "slashCommands": {
156
+ "name": "コマンドとスキル",
157
+ "desc": ".claude/commands/ と .claude/skills/ に保存された Vault レベルのコマンドとスキルを管理します。/名前 でトリガーされます。"
158
+ },
159
+ "hiddenSlashCommands": {
160
+ "name": "非表示のコマンドとスキル",
161
+ "desc": "ドロップダウンから特定のコマンドとスキルを非表示にします。Claudian に関係のない Claude Code の項目を隠すのに便利です。先頭のスラッシュなしで名前を1行に1つ入力してください。",
162
+ "placeholder": "commit\nbuild\ntest"
163
+ },
164
+ "mcpServers": {
165
+ "name": "MCP サーバー",
166
+ "desc": ".claude/mcp.json に保存された Vault レベルの MCP サーバー設定を管理します。コンテキスト保存モードのサーバーは @mention でアクティブにする必要があります。"
167
+ },
168
+ "plugins": {
169
+ "name": "Claude Code プラグイン",
170
+ "desc": "~/.claude/plugins から検出された Claude Code プラグインを管理します。有効化されたプラグインは Vault ごとに .claude/settings.json に保存されます。"
171
+ },
172
+ "subagents": {
173
+ "name": "サブエージェント",
174
+ "desc": ".claude/agents/ に保存された Vault レベルのサブエージェントを管理します。各 Markdown ファイルがカスタムエージェントを1つ定義します。",
175
+ "noAgents": "サブエージェントが設定されていません。+ をクリックして作成してください。",
176
+ "deleteConfirm": "サブエージェント「{name}」を削除しますか?",
177
+ "saveFailed": "サブエージェントの保存に失敗しました: {message}",
178
+ "refreshFailed": "サブエージェントを更新できませんでした: {message}",
179
+ "deleteFailed": "サブエージェントの削除に失敗しました: {message}",
180
+ "renameCleanupFailed": "警告: 「{name}」の古いファイルを削除できませんでした",
181
+ "created": "サブエージェント「{name}」を作成しました",
182
+ "updated": "サブエージェント「{name}」を更新しました",
183
+ "deleted": "サブエージェント「{name}」を削除しました",
184
+ "duplicateName": "「{name}」という名前のエージェントは既に存在します",
185
+ "descriptionRequired": "説明は必須です",
186
+ "promptRequired": "システムプロンプトは必須です",
187
+ "modal": {
188
+ "titleEdit": "サブエージェントを編集",
189
+ "titleAdd": "サブエージェントを追加",
190
+ "name": "名前",
191
+ "nameDesc": "小文字、数字、ハイフンのみ使用できます",
192
+ "namePlaceholder": "code-reviewer",
193
+ "description": "説明",
194
+ "descriptionDesc": "このエージェントの簡単な説明",
195
+ "descriptionPlaceholder": "コードのバグやスタイルをレビューします",
196
+ "advancedOptions": "詳細オプション",
197
+ "model": "モデル",
198
+ "modelDesc": "このエージェントのモデル上書き",
199
+ "tools": "ツール",
200
+ "toolsDesc": "許可するツールのカンマ区切りリスト(空欄 = すべて)",
201
+ "disallowedTools": "禁止ツール",
202
+ "disallowedToolsDesc": "禁止するツールのカンマ区切りリスト",
203
+ "skills": "スキル",
204
+ "skillsDesc": "スキルのカンマ区切りリスト",
205
+ "prompt": "システムプロンプト",
206
+ "promptDesc": "エージェントへの指示",
207
+ "promptPlaceholder": "あなたはコードレビュアーです。与えられたコードを分析して..."
208
+ }
209
+ },
210
+ "safety": "セキュリティ",
211
+ "loadUserSettings": {
212
+ "name": "ユーザーClaude設定を読み込む",
213
+ "desc": "~/.claude/settings.json を読み込みます。有効にすると、ユーザーの Claude Code 許可ルールがセキュリティモードをバイパスする可能性があります。"
214
+ },
215
+ "claudeSafeMode": {
216
+ "name": "Safe mode",
217
+ "desc": "Permission mode used when the Safe toggle is active."
218
+ },
219
+ "codexSafeMode": {
220
+ "name": "Safe mode",
221
+ "desc": "Sandbox mode used when the Safe toggle is active."
222
+ },
223
+ "environment": "環境",
224
+ "customVariables": {
225
+ "name": "カスタム変数",
226
+ "desc": "Claude SDKの環境変数(KEY=VALUE形式、1行に1つ)。exportプレフィックス対応。"
227
+ },
228
+ "envSnippets": {
229
+ "name": "スニペット",
230
+ "addBtn": "スニペットを追加",
231
+ "noSnippets": "保存された環境変数スニペットはありません。+をクリックして現在の設定を保存してください。",
232
+ "nameRequired": "スニペットの名前を入力してください",
233
+ "modal": {
234
+ "titleEdit": "スニペットを編集",
235
+ "titleSave": "スニペットを保存",
236
+ "name": "名前",
237
+ "namePlaceholder": "この設定のわかりやすい名前",
238
+ "description": "説明",
239
+ "descPlaceholder": "任意の説明",
240
+ "envVars": "環境変数",
241
+ "envVarsPlaceholder": "KEY=VALUE形式、1行に1つ(exportプレフィックス対応)",
242
+ "save": "保存",
243
+ "update": "更新",
244
+ "cancel": "キャンセル"
245
+ }
246
+ },
247
+ "customModelOverrides": {
248
+ "name": "カスタムモデルの上書き",
249
+ "desc": "カスタムモデルのモデルセレクター表示名とコンテキストウィンドウサイズを設定します。"
250
+ },
251
+ "customModelAliases": {
252
+ "placeholder": "エイリアス"
253
+ },
254
+ "customContextLimits": {
255
+ "name": "カスタムコンテキスト制限",
256
+ "desc": "カスタムモデルのコンテキストウィンドウサイズを設定します。デフォルト(200kトークン)を使用する場合は空欄のままにしてください。",
257
+ "invalid": "無効な形式です。使用:256k、1m、または正確な数値(1000-10000000)。"
258
+ },
259
+ "enableOpus1M": {
260
+ "name": "Opus 1Mコンテキストウィンドウ",
261
+ "desc": "モデルセレクターにOpus 1Mを表示します。Max、Team、Enterpriseプランに含まれます。APIおよびProユーザーは追加使用量が必要です。"
262
+ },
263
+ "enableSonnet1M": {
264
+ "name": "Sonnet 1Mコンテキストウィンドウ",
265
+ "desc": "モデルセレクターにSonnet 1Mを表示します。Max、Team、Enterpriseプランでは追加使用量が必要です。APIおよびProユーザーは追加使用量が必要です。"
266
+ },
267
+ "customModels": {
268
+ "name": "Custom models",
269
+ "desc": "Append additional Claude model IDs to the picker, one per line. Environment model overrides still replace the picker.",
270
+ "placeholder": "claude-opus-4-6\nclaude-opus-4-6[1m]\nclaude-opus-4-5-20251101"
271
+ },
272
+ "enableChrome": {
273
+ "name": "Chrome拡張機能を有効化",
274
+ "desc": "claude-in-chrome拡張機能を通じてClaudeがChromeと連携できるようにします。拡張機能のインストールが必要です。セッションの再起動が必要です。"
275
+ },
276
+ "enableBangBash": {
277
+ "name": "bash モード (!) を有効化",
278
+ "desc": "入力欄が空の状態で ! を入力すると bash モードに入ります。Node.js の child_process 経由でコマンドを直接実行します。ビューの再オープンが必要です。",
279
+ "validation": {
280
+ "noNode": "PATH に Node.js が見つかりません。Node.js をインストールするか、PATH 設定を確認してください。"
281
+ }
282
+ },
283
+ "maxTabs": {
284
+ "name": "最大チャットタブ数",
285
+ "desc": "同時に開ける最大チャットタブ数(3-10)。各タブは個別の Claude セッションを使用します。",
286
+ "warning": "5 タブを超えるとパフォーマンスやメモリ使用量に影響する可能性があります。"
287
+ },
288
+ "enableAutoScroll": {
289
+ "name": "ストリーミング中の自動スクロール",
290
+ "desc": "Claudeが応答をストリーミングしている間、自動的に下にスクロールします。無効にすると上部に留まり、最初から読むことができます。"
291
+ },
292
+ "deferMathRenderingDuringStreaming": {
293
+ "name": "ストリーミング中の数式レンダリングを遅延",
294
+ "desc": "応答のストリーミング中は生の LaTeX を表示し、各テキストブロックの完了時に一度だけ数式をレンダリングします。"
295
+ },
296
+ "expandFileEditsByDefault": {
297
+ "name": "ファイル編集をデフォルトで展開",
298
+ "desc": "Write と Edit の diff が最初に表示されるとき、展開した状態で表示します。"
299
+ },
300
+ "chatViewPlacement": {
301
+ "name": "Claudian を開く場所",
302
+ "desc": "チャットパネルを作成するときに開く場所を選択します",
303
+ "rightSidebar": "右サイドバー",
304
+ "leftSidebar": "左サイドバー",
305
+ "mainTab": "メインエディタタブ"
306
+ },
307
+ "cliPath": {
308
+ "name": "Claude CLI パス",
309
+ "desc": "Claude Code CLI のカスタムパス。空欄で自動検出を使用。",
310
+ "descWindows": "ネイティブインストーラーの場合は claude.exe を使用。npm/pnpm/yarn やその他のパッケージマネージャーでのインストールの場合は cli-wrapper.cjs パスを使用(claude.cmd ではない)。",
311
+ "descUnix": "\"which claude\" の出力を貼り付けてください - ネイティブと npm/pnpm/yarn インストールの両方で動作します。",
312
+ "validation": {
313
+ "notExist": "パスが存在しません",
314
+ "isDirectory": "パスはディレクトリでファイルではありません"
315
+ }
316
+ },
317
+ "language": {
318
+ "name": "言語",
319
+ "desc": "プラグインインターフェースの表示言語を変更"
320
+ }
321
+ }
322
+ }
@@ -0,0 +1,322 @@
1
+ {
2
+ "common": {
3
+ "save": "저장",
4
+ "cancel": "취소",
5
+ "delete": "삭제",
6
+ "edit": "편집",
7
+ "add": "추가",
8
+ "remove": "제거",
9
+ "clear": "지우기",
10
+ "clearAll": "모두 지우기",
11
+ "loading": "로딩 중",
12
+ "error": "오류",
13
+ "success": "성공",
14
+ "warning": "경고",
15
+ "confirm": "확인",
16
+ "settings": "설정",
17
+ "advanced": "고급",
18
+ "enabled": "활성화",
19
+ "disabled": "비활성화",
20
+ "platform": "플랫폼",
21
+ "refresh": "새로고침",
22
+ "rewind": "되감기"
23
+ },
24
+ "chat": {
25
+ "rewind": {
26
+ "confirmMessage": "이 시점으로 되감으시겠습니까? 이 메시지 이후의 파일 변경 사항이 되돌려집니다. 수동으로 또는 bash를 통해 편집된 파일에는 영향을 미치지 않습니다.",
27
+ "confirmMessageConversationOnly": "대화를 이 시점으로 되감으시겠습니까? 파일 변경 사항은 유지됩니다.",
28
+ "confirmButton": "되감기",
29
+ "ariaLabel": "여기로 되감기",
30
+ "menuConversationOnly": "대화만 되감기",
31
+ "menuCodeAndConversation": "코드 + 대화 되감기",
32
+ "notice": "되감기 완료: {count}개 파일 복원됨",
33
+ "noticeConversationOnly": "대화를 되감았습니다. 파일 변경 사항은 유지되었습니다",
34
+ "noticeSaveFailed": "되감기 완료: {count}개 파일 복원됨, 하지만 상태를 저장하지 못했습니다: {error}",
35
+ "noticeConversationOnlySaveFailed": "대화를 되감았지만 상태를 저장하지 못했습니다: {error}",
36
+ "failed": "되감기 실패: {error}",
37
+ "cannot": "되감기 불가: {error}",
38
+ "unavailableStreaming": "스트리밍 중에는 되감기할 수 없습니다",
39
+ "unavailableNoUuid": "되감기 불가: 메시지 식별자 누락"
40
+ },
41
+ "fork": {
42
+ "ariaLabel": "대화 분기",
43
+ "chooseTarget": "대화 분기",
44
+ "targetNewTab": "새 탭",
45
+ "targetCurrentTab": "현재 탭",
46
+ "maxTabsReached": "분기 불가: 최대 {count}개 탭에 도달했습니다",
47
+ "notice": "새 탭으로 분기됨",
48
+ "noticeCurrentTab": "현재 탭에서 분기됨",
49
+ "failed": "분기 실패: {error}",
50
+ "unavailableStreaming": "스트리밍 중에는 분기할 수 없습니다",
51
+ "unavailableNoUuid": "분기 불가: 메시지 식별자 누락",
52
+ "unavailableNoResponse": "분기 불가: 분기할 응답이 없습니다",
53
+ "errorMessageNotFound": "메시지를 찾을 수 없습니다",
54
+ "errorNoSession": "사용 가능한 세션 ID가 없습니다",
55
+ "errorNoActiveTab": "활성 탭이 없습니다",
56
+ "commandNoMessages": "포크할 수 없습니다: 대화에 메시지가 없습니다",
57
+ "commandNoAssistantUuid": "포크할 수 없습니다: 식별자가 있는 어시스턴트 응답이 없습니다"
58
+ },
59
+ "bangBash": {
60
+ "placeholder": "> bash 명령 실행...",
61
+ "commandPanel": "명령 패널",
62
+ "copyAriaLabel": "최신 명령 출력을 복사",
63
+ "clearAriaLabel": "bash 출력 지우기",
64
+ "commandLabel": "{command}",
65
+ "statusLabel": "상태: {status}",
66
+ "collapseOutput": "명령 출력 접기",
67
+ "expandOutput": "명령 출력 펼치기",
68
+ "running": "실행 중...",
69
+ "copyFailed": "클립보드에 복사하지 못했습니다"
70
+ }
71
+ },
72
+ "settings": {
73
+ "title": "Claudian 설정",
74
+ "tabs": {
75
+ "general": "일반",
76
+ "claude": "Claude",
77
+ "codex": "Codex"
78
+ },
79
+ "display": "표시",
80
+ "conversations": "대화",
81
+ "content": "콘텐츠",
82
+ "input": "입력",
83
+ "setup": "설정",
84
+ "models": "모델",
85
+ "experimental": "실험적 기능",
86
+ "userName": {
87
+ "name": "Claudian이 당신을 어떻게 불러야 합니까?",
88
+ "desc": "개인화된 인사에 사용할 이름 (비워두면 일반 인사)"
89
+ },
90
+ "excludedTags": {
91
+ "name": "제외 태그",
92
+ "desc": "이 태그가 포함된 노트는 자동으로 컨텍스트로 로드되지 않습니다 (한 줄에 하나, # 제외)"
93
+ },
94
+ "mediaFolder": {
95
+ "name": "미디어 폴더",
96
+ "desc": "첨부 파일/이미지를 저장할 폴더. 노트가 ![[image.jpg]]를 사용할 때 Claude가 여기서 찾습니다. 비워두면 저장소 루트 사용."
97
+ },
98
+ "systemPrompt": {
99
+ "name": "커스텀 시스템 프롬프트",
100
+ "desc": "기본 시스템 프롬프트에 추가되는 추가 지침"
101
+ },
102
+ "autoTitle": {
103
+ "name": "대화 제목 자동 생성",
104
+ "desc": "첫 번째 사용자 메시지 전송 후 자동으로 대화 제목을 생성합니다."
105
+ },
106
+ "titleModel": {
107
+ "name": "제목 생성 모델",
108
+ "desc": "대화 제목을 자동 생성하는 데 사용되는 모델.",
109
+ "auto": "자동 (Haiku)"
110
+ },
111
+ "navMappings": {
112
+ "name": "Vim 스타일 네비게이션 매핑",
113
+ "desc": "한 줄에 하나의 매핑. 형식: \"map <키> <동작>\" (동작: scrollUp, scrollDown, focusInput)."
114
+ },
115
+ "requireCommandOrControlEnterToSend": {
116
+ "name": "Command/Ctrl+Enter로 보내기 필수",
117
+ "desc": "활성화하면 Enter는 줄바꿈을 삽입합니다. macOS에서는 Command+Enter, Windows와 Linux에서는 Ctrl+Enter로 보냅니다."
118
+ },
119
+ "hotkeys": "단축키",
120
+ "inlineEditHotkey": {
121
+ "name": "인라인 편집",
122
+ "descWithKey": "현재 단축키: {hotkey}",
123
+ "descNoKey": "단축키 미설정",
124
+ "btnChange": "변경",
125
+ "btnSet": "단축키 설정"
126
+ },
127
+ "openChatHotkey": {
128
+ "name": "채팅 열기",
129
+ "descWithKey": "현재 단축키: {hotkey}",
130
+ "descNoKey": "단축키 미설정",
131
+ "btnChange": "변경",
132
+ "btnSet": "단축키 설정"
133
+ },
134
+ "newSessionHotkey": {
135
+ "name": "새 세션",
136
+ "descWithKey": "현재 단축키: {hotkey}",
137
+ "descNoKey": "단축키 미설정",
138
+ "btnChange": "변경",
139
+ "btnSet": "단축키 설정"
140
+ },
141
+ "newTabHotkey": {
142
+ "name": "새 탭",
143
+ "descWithKey": "현재 단축키: {hotkey}",
144
+ "descNoKey": "단축키 미설정",
145
+ "btnChange": "변경",
146
+ "btnSet": "단축키 설정"
147
+ },
148
+ "closeTabHotkey": {
149
+ "name": "탭 닫기",
150
+ "descWithKey": "현재 단축키: {hotkey}",
151
+ "descNoKey": "단축키 미설정",
152
+ "btnChange": "변경",
153
+ "btnSet": "단축키 설정"
154
+ },
155
+ "slashCommands": {
156
+ "name": "명령어와 스킬",
157
+ "desc": ".claude/commands/ 및 .claude/skills/에 저장된 Vault 수준의 명령어와 스킬을 관리합니다. /이름으로 트리거됩니다."
158
+ },
159
+ "hiddenSlashCommands": {
160
+ "name": "숨겨진 명령어와 스킬",
161
+ "desc": "드롭다운에서 특정 명령어와 스킬을 숨깁니다. Claudian과 관련 없는 Claude Code 항목을 숨기는 데 유용합니다. 앞의 슬래시 없이 이름을 한 줄에 하나씩 입력하세요.",
162
+ "placeholder": "commit\nbuild\ntest"
163
+ },
164
+ "mcpServers": {
165
+ "name": "MCP 서버",
166
+ "desc": ".claude/mcp.json에 저장된 Vault 수준의 MCP 서버 구성을 관리합니다. 컨텍스트 저장 모드 서버는 @mention으로 활성화해야 합니다."
167
+ },
168
+ "plugins": {
169
+ "name": "Claude Code 플러그인",
170
+ "desc": "~/.claude/plugins에서 발견된 Claude Code 플러그인을 관리합니다. 활성화된 플러그인은 .claude/settings.json에 Vault별로 저장됩니다."
171
+ },
172
+ "subagents": {
173
+ "name": "서브에이전트",
174
+ "desc": ".claude/agents/에 저장된 Vault 수준의 서브에이전트를 관리합니다. 각 Markdown 파일이 하나의 커스텀 에이전트를 정의합니다.",
175
+ "noAgents": "구성된 서브에이전트가 없습니다. +를 클릭해 새로 만드세요.",
176
+ "deleteConfirm": "서브에이전트 \"{name}\"을 삭제하시겠습니까?",
177
+ "saveFailed": "서브에이전트를 저장하지 못했습니다: {message}",
178
+ "refreshFailed": "서브에이전트를 새로고침하지 못했습니다: {message}",
179
+ "deleteFailed": "서브에이전트를 삭제하지 못했습니다: {message}",
180
+ "renameCleanupFailed": "경고: \"{name}\"의 이전 파일을 제거하지 못했습니다",
181
+ "created": "서브에이전트 \"{name}\"를 생성했습니다",
182
+ "updated": "서브에이전트 \"{name}\"를 업데이트했습니다",
183
+ "deleted": "서브에이전트 \"{name}\"를 삭제했습니다",
184
+ "duplicateName": "\"{name}\"이라는 이름의 에이전트가 이미 있습니다",
185
+ "descriptionRequired": "설명은 필수입니다",
186
+ "promptRequired": "시스템 프롬프트는 필수입니다",
187
+ "modal": {
188
+ "titleEdit": "서브에이전트 편집",
189
+ "titleAdd": "서브에이전트 추가",
190
+ "name": "이름",
191
+ "nameDesc": "소문자, 숫자, 하이픈만 사용할 수 있습니다",
192
+ "namePlaceholder": "code-reviewer",
193
+ "description": "설명",
194
+ "descriptionDesc": "이 에이전트에 대한 간단한 설명",
195
+ "descriptionPlaceholder": "코드의 버그와 스타일을 검토합니다",
196
+ "advancedOptions": "고급 옵션",
197
+ "model": "모델",
198
+ "modelDesc": "이 에이전트에 사용할 모델 재정의",
199
+ "tools": "도구",
200
+ "toolsDesc": "허용할 도구를 쉼표로 구분해 입력하세요 (비워두면 모두 허용)",
201
+ "disallowedTools": "금지 도구",
202
+ "disallowedToolsDesc": "금지할 도구를 쉼표로 구분해 입력하세요",
203
+ "skills": "스킬",
204
+ "skillsDesc": "스킬 목록을 쉼표로 구분해 입력하세요",
205
+ "prompt": "시스템 프롬프트",
206
+ "promptDesc": "에이전트용 지침",
207
+ "promptPlaceholder": "당신은 코드 리뷰어입니다. 주어진 코드를 분석하여..."
208
+ }
209
+ },
210
+ "safety": "보안",
211
+ "loadUserSettings": {
212
+ "name": "사용자 Claude 설정 로드",
213
+ "desc": "~/.claude/settings.json을 로드합니다. 활성화하면 사용자의 Claude Code 허용 규칙이 보안 모드를 우회할 수 있습니다."
214
+ },
215
+ "claudeSafeMode": {
216
+ "name": "Safe mode",
217
+ "desc": "Permission mode used when the Safe toggle is active."
218
+ },
219
+ "codexSafeMode": {
220
+ "name": "Safe mode",
221
+ "desc": "Sandbox mode used when the Safe toggle is active."
222
+ },
223
+ "environment": "환경",
224
+ "customVariables": {
225
+ "name": "커스텀 변수",
226
+ "desc": "Claude SDK 환경 변수 (KEY=VALUE 형식, 한 줄에 하나). export 접두사 지원."
227
+ },
228
+ "envSnippets": {
229
+ "name": "스니펫",
230
+ "addBtn": "스니펫 추가",
231
+ "noSnippets": "저장된 환경 변수 스니펫이 없습니다. +를 클릭하여 현재 구성을 저장하세요.",
232
+ "nameRequired": "스니펫 이름을 입력하세요",
233
+ "modal": {
234
+ "titleEdit": "스니펫 편집",
235
+ "titleSave": "스니펫 저장",
236
+ "name": "이름",
237
+ "namePlaceholder": "이 구성에 대한 설명적인 이름",
238
+ "description": "설명",
239
+ "descPlaceholder": "선택적 설명",
240
+ "envVars": "환경 변수",
241
+ "envVarsPlaceholder": "KEY=VALUE 형식, 한 줄에 하나 (export 접두사 지원)",
242
+ "save": "저장",
243
+ "update": "업데이트",
244
+ "cancel": "취소"
245
+ }
246
+ },
247
+ "customModelOverrides": {
248
+ "name": "사용자 정의 모델 재정의",
249
+ "desc": "사용자 정의 모델의 모델 선택기 별칭과 컨텍스트 창 크기를 설정합니다."
250
+ },
251
+ "customModelAliases": {
252
+ "placeholder": "별칭"
253
+ },
254
+ "customContextLimits": {
255
+ "name": "사용자 정의 컨텍스트 제한",
256
+ "desc": "사용자 정의 모델의 컨텍스트 창 크기를 설정합니다. 기본값(200k 토큰)을 사용하려면 비워두세요.",
257
+ "invalid": "잘못된 형식입니다. 사용: 256k, 1m 또는 정확한 숫자(1000-10000000)."
258
+ },
259
+ "enableOpus1M": {
260
+ "name": "Opus 1M 컨텍스트 윈도우",
261
+ "desc": "모델 선택기에서 Opus 1M을 표시합니다. Max, Team, Enterprise 플랜에 포함됩니다. API 및 Pro 사용자는 추가 사용량이 필요합니다."
262
+ },
263
+ "enableSonnet1M": {
264
+ "name": "Sonnet 1M 컨텍스트 윈도우",
265
+ "desc": "모델 선택기에서 Sonnet 1M을 표시합니다. Max, Team, Enterprise 플랜에서 추가 사용량이 필요합니다. API 및 Pro 사용자는 추가 사용량이 필요합니다."
266
+ },
267
+ "customModels": {
268
+ "name": "Custom models",
269
+ "desc": "Append additional Claude model IDs to the picker, one per line. Environment model overrides still replace the picker.",
270
+ "placeholder": "claude-opus-4-6\nclaude-opus-4-6[1m]\nclaude-opus-4-5-20251101"
271
+ },
272
+ "enableChrome": {
273
+ "name": "Chrome 확장 프로그램 활성화",
274
+ "desc": "claude-in-chrome 확장 프로그램을 통해 Claude가 Chrome과 상호작용할 수 있도록 합니다. 확장 프로그램이 설치되어 있어야 합니다. 세션 재시작이 필요합니다."
275
+ },
276
+ "enableBangBash": {
277
+ "name": "bash 모드 (!) 활성화",
278
+ "desc": "입력창이 비어 있을 때 !를 입력하면 bash 모드로 들어갑니다. Node.js child_process를 통해 명령을 직접 실행합니다. 보기를 다시 열어야 합니다.",
279
+ "validation": {
280
+ "noNode": "PATH에서 Node.js를 찾을 수 없습니다. Node.js를 설치하거나 PATH 설정을 확인하세요."
281
+ }
282
+ },
283
+ "maxTabs": {
284
+ "name": "최대 채팅 탭 수",
285
+ "desc": "동시에 열 수 있는 최대 채팅 탭 수(3-10). 각 탭은 별도의 Claude 세션을 사용합니다.",
286
+ "warning": "5개 탭을 초과하면 성능 및 메모리 사용량에 영향을 줄 수 있습니다."
287
+ },
288
+ "enableAutoScroll": {
289
+ "name": "스트리밍 중 자동 스크롤",
290
+ "desc": "Claude가 응답을 스트리밍하는 동안 자동으로 아래로 스크롤합니다. 비활성화하면 상단에 머물러 처음부터 읽을 수 있습니다."
291
+ },
292
+ "deferMathRenderingDuringStreaming": {
293
+ "name": "스트리밍 중 수식 렌더링 지연",
294
+ "desc": "응답이 스트리밍되는 동안 원본 LaTeX를 표시하고 각 텍스트 블록이 완료되면 수식을 한 번 렌더링합니다."
295
+ },
296
+ "expandFileEditsByDefault": {
297
+ "name": "파일 편집을 기본적으로 펼치기",
298
+ "desc": "Write 및 Edit diff가 처음 표시될 때 펼친 상태로 보여줍니다."
299
+ },
300
+ "chatViewPlacement": {
301
+ "name": "Claudian 열 위치",
302
+ "desc": "채팅 패널이 생성될 때 열릴 위치를 선택합니다",
303
+ "rightSidebar": "오른쪽 사이드바",
304
+ "leftSidebar": "왼쪽 사이드바",
305
+ "mainTab": "메인 편집기 탭"
306
+ },
307
+ "cliPath": {
308
+ "name": "Claude CLI 경로",
309
+ "desc": "Claude Code CLI의 사용자 정의 경로. 비워두면 자동 감지 사용.",
310
+ "descWindows": "네이티브 설치 프로그램의 경우 claude.exe를 사용하세요. npm/pnpm/yarn 또는 기타 패키지 관리자 설치의 경우 cli-wrapper.cjs 경로를 사용하세요 (claude.cmd가 아님).",
311
+ "descUnix": "\"which claude\"의 출력을 붙여넣으세요 - 네이티브 및 npm/pnpm/yarn 설치 모두에서 작동합니다.",
312
+ "validation": {
313
+ "notExist": "경로가 존재하지 않습니다",
314
+ "isDirectory": "경로가 디렉토리입니다 파일이 아닙니다"
315
+ }
316
+ },
317
+ "language": {
318
+ "name": "언어",
319
+ "desc": "플러그인 인터페이스의 표시 언어 변경"
320
+ }
321
+ }
322
+ }