@nanocollective/nanocoder 1.16.4 → 1.17.0

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 (211) hide show
  1. package/README.md +53 -19
  2. package/assets/nanocoder-vscode.vsix +0 -0
  3. package/dist/app.d.ts +6 -1
  4. package/dist/app.d.ts.map +1 -1
  5. package/dist/app.js +54 -18
  6. package/dist/app.js.map +1 -1
  7. package/dist/cli.js +13 -1
  8. package/dist/cli.js.map +1 -1
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +4 -29
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/mcp.d.ts +6 -0
  13. package/dist/commands/mcp.d.ts.map +1 -1
  14. package/dist/commands/mcp.js +25 -3
  15. package/dist/commands/mcp.js.map +1 -1
  16. package/dist/components/tool-confirmation.d.ts.map +1 -1
  17. package/dist/components/tool-confirmation.js +5 -19
  18. package/dist/components/tool-confirmation.js.map +1 -1
  19. package/dist/components/vscode-extension-prompt.d.ts +12 -0
  20. package/dist/components/vscode-extension-prompt.d.ts.map +1 -0
  21. package/dist/components/vscode-extension-prompt.js +115 -0
  22. package/dist/components/vscode-extension-prompt.js.map +1 -0
  23. package/dist/config/themes.js +2 -2
  24. package/dist/hooks/useAppInitialization.d.ts +2 -0
  25. package/dist/hooks/useAppInitialization.d.ts.map +1 -1
  26. package/dist/hooks/useAppInitialization.js +55 -1
  27. package/dist/hooks/useAppInitialization.js.map +1 -1
  28. package/dist/hooks/useChatHandler.d.ts.map +1 -1
  29. package/dist/hooks/useChatHandler.js +10 -71
  30. package/dist/hooks/useChatHandler.js.map +1 -1
  31. package/dist/hooks/useDirectoryTrust.d.ts.map +1 -1
  32. package/dist/hooks/useDirectoryTrust.js +4 -4
  33. package/dist/hooks/useDirectoryTrust.js.map +1 -1
  34. package/dist/hooks/useModeHandlers.d.ts +2 -1
  35. package/dist/hooks/useModeHandlers.d.ts.map +1 -1
  36. package/dist/hooks/useModeHandlers.js +13 -1
  37. package/dist/hooks/useModeHandlers.js.map +1 -1
  38. package/dist/hooks/useToolHandler.d.ts +0 -1
  39. package/dist/hooks/useToolHandler.d.ts.map +1 -1
  40. package/dist/hooks/useToolHandler.js +15 -75
  41. package/dist/hooks/useToolHandler.js.map +1 -1
  42. package/dist/hooks/useVSCodeServer.d.ts +45 -0
  43. package/dist/hooks/useVSCodeServer.d.ts.map +1 -0
  44. package/dist/hooks/useVSCodeServer.js +144 -0
  45. package/dist/hooks/useVSCodeServer.js.map +1 -0
  46. package/dist/lsp/index.d.ts +12 -0
  47. package/dist/lsp/index.d.ts.map +1 -0
  48. package/dist/lsp/index.js +11 -0
  49. package/dist/lsp/index.js.map +1 -0
  50. package/dist/lsp/lsp-client.d.ts +78 -0
  51. package/dist/lsp/lsp-client.d.ts.map +1 -0
  52. package/dist/lsp/lsp-client.js +378 -0
  53. package/dist/lsp/lsp-client.js.map +1 -0
  54. package/dist/lsp/lsp-client.spec.d.ts +2 -0
  55. package/dist/lsp/lsp-client.spec.d.ts.map +1 -0
  56. package/dist/lsp/lsp-client.spec.js +395 -0
  57. package/dist/lsp/lsp-client.spec.js.map +1 -0
  58. package/dist/lsp/lsp-manager.d.ts +124 -0
  59. package/dist/lsp/lsp-manager.d.ts.map +1 -0
  60. package/dist/lsp/lsp-manager.js +313 -0
  61. package/dist/lsp/lsp-manager.js.map +1 -0
  62. package/dist/lsp/lsp-manager.spec.d.ts +2 -0
  63. package/dist/lsp/lsp-manager.spec.d.ts.map +1 -0
  64. package/dist/lsp/lsp-manager.spec.js +388 -0
  65. package/dist/lsp/lsp-manager.spec.js.map +1 -0
  66. package/dist/lsp/protocol.d.ts +313 -0
  67. package/dist/lsp/protocol.d.ts.map +1 -0
  68. package/dist/lsp/protocol.js +70 -0
  69. package/dist/lsp/protocol.js.map +1 -0
  70. package/dist/lsp/protocol.spec.d.ts +2 -0
  71. package/dist/lsp/protocol.spec.d.ts.map +1 -0
  72. package/dist/lsp/protocol.spec.js +406 -0
  73. package/dist/lsp/protocol.spec.js.map +1 -0
  74. package/dist/lsp/server-discovery.d.ts +35 -0
  75. package/dist/lsp/server-discovery.d.ts.map +1 -0
  76. package/dist/lsp/server-discovery.js +291 -0
  77. package/dist/lsp/server-discovery.js.map +1 -0
  78. package/dist/lsp/server-discovery.spec.d.ts +2 -0
  79. package/dist/lsp/server-discovery.spec.d.ts.map +1 -0
  80. package/dist/lsp/server-discovery.spec.js +375 -0
  81. package/dist/lsp/server-discovery.spec.js.map +1 -0
  82. package/dist/mcp/mcp-client.d.ts +18 -0
  83. package/dist/mcp/mcp-client.d.ts.map +1 -1
  84. package/dist/mcp/mcp-client.js +59 -23
  85. package/dist/mcp/mcp-client.js.map +1 -1
  86. package/dist/mcp/mcp-client.spec.d.ts +2 -0
  87. package/dist/mcp/mcp-client.spec.d.ts.map +1 -0
  88. package/dist/mcp/mcp-client.spec.js +64 -0
  89. package/dist/mcp/mcp-client.spec.js.map +1 -0
  90. package/dist/mcp/transport-factory.d.ts +39 -0
  91. package/dist/mcp/transport-factory.d.ts.map +1 -0
  92. package/dist/mcp/transport-factory.js +176 -0
  93. package/dist/mcp/transport-factory.js.map +1 -0
  94. package/dist/mcp/transport-factory.spec.d.ts +2 -0
  95. package/dist/mcp/transport-factory.spec.d.ts.map +1 -0
  96. package/dist/mcp/transport-factory.spec.js +303 -0
  97. package/dist/mcp/transport-factory.spec.js.map +1 -0
  98. package/dist/message-handler.d.ts.map +1 -1
  99. package/dist/message-handler.js +6 -11
  100. package/dist/message-handler.js.map +1 -1
  101. package/dist/models/models-dev-client.spec.js +1 -0
  102. package/dist/models/models-dev-client.spec.js.map +1 -1
  103. package/dist/tools/create-file.d.ts.map +1 -1
  104. package/dist/tools/create-file.js +37 -3
  105. package/dist/tools/create-file.js.map +1 -1
  106. package/dist/tools/delete-lines.d.ts.map +1 -1
  107. package/dist/tools/delete-lines.js +41 -1
  108. package/dist/tools/delete-lines.js.map +1 -1
  109. package/dist/tools/index.d.ts.map +1 -1
  110. package/dist/tools/index.js +2 -0
  111. package/dist/tools/index.js.map +1 -1
  112. package/dist/tools/insert-lines.d.ts.map +1 -1
  113. package/dist/tools/insert-lines.js +40 -1
  114. package/dist/tools/insert-lines.js.map +1 -1
  115. package/dist/tools/lsp-get-diagnostics.d.ts +3 -0
  116. package/dist/tools/lsp-get-diagnostics.d.ts.map +1 -0
  117. package/dist/tools/lsp-get-diagnostics.js +182 -0
  118. package/dist/tools/lsp-get-diagnostics.js.map +1 -0
  119. package/dist/tools/replace-lines.d.ts.map +1 -1
  120. package/dist/tools/replace-lines.js +44 -1
  121. package/dist/tools/replace-lines.js.map +1 -1
  122. package/dist/tools/tool-manager.d.ts +17 -0
  123. package/dist/tools/tool-manager.d.ts.map +1 -1
  124. package/dist/tools/tool-manager.js +12 -0
  125. package/dist/tools/tool-manager.js.map +1 -1
  126. package/dist/types/config.d.ts +27 -0
  127. package/dist/types/config.d.ts.map +1 -1
  128. package/dist/types/mcp.d.ts +23 -1
  129. package/dist/types/mcp.d.ts.map +1 -1
  130. package/dist/utils/error-formatter.d.ts +22 -0
  131. package/dist/utils/error-formatter.d.ts.map +1 -0
  132. package/dist/utils/error-formatter.js +27 -0
  133. package/dist/utils/error-formatter.js.map +1 -0
  134. package/dist/utils/error-formatter.spec.d.ts +2 -0
  135. package/dist/utils/error-formatter.spec.d.ts.map +1 -0
  136. package/dist/utils/error-formatter.spec.js +147 -0
  137. package/dist/utils/error-formatter.spec.js.map +1 -0
  138. package/dist/utils/fuzzy-matching.spec.js +1 -0
  139. package/dist/utils/fuzzy-matching.spec.js.map +1 -1
  140. package/dist/utils/tool-args-parser.d.ts +37 -0
  141. package/dist/utils/tool-args-parser.d.ts.map +1 -0
  142. package/dist/utils/tool-args-parser.js +50 -0
  143. package/dist/utils/tool-args-parser.js.map +1 -0
  144. package/dist/utils/tool-args-parser.spec.d.ts +2 -0
  145. package/dist/utils/tool-args-parser.spec.d.ts.map +1 -0
  146. package/dist/utils/tool-args-parser.spec.js +111 -0
  147. package/dist/utils/tool-args-parser.spec.js.map +1 -0
  148. package/dist/utils/tool-cancellation.d.ts +21 -0
  149. package/dist/utils/tool-cancellation.d.ts.map +1 -0
  150. package/dist/utils/tool-cancellation.js +27 -0
  151. package/dist/utils/tool-cancellation.js.map +1 -0
  152. package/dist/utils/tool-cancellation.spec.d.ts +2 -0
  153. package/dist/utils/tool-cancellation.spec.d.ts.map +1 -0
  154. package/dist/utils/tool-cancellation.spec.js +186 -0
  155. package/dist/utils/tool-cancellation.spec.js.map +1 -0
  156. package/dist/utils/tool-result-display.d.ts +15 -0
  157. package/dist/utils/tool-result-display.d.ts.map +1 -0
  158. package/dist/utils/tool-result-display.js +51 -0
  159. package/dist/utils/tool-result-display.js.map +1 -0
  160. package/dist/vscode/extension-installer.d.ts +24 -0
  161. package/dist/vscode/extension-installer.d.ts.map +1 -0
  162. package/dist/vscode/extension-installer.js +110 -0
  163. package/dist/vscode/extension-installer.js.map +1 -0
  164. package/dist/vscode/extension-installer.spec.d.ts +2 -0
  165. package/dist/vscode/extension-installer.spec.d.ts.map +1 -0
  166. package/dist/vscode/extension-installer.spec.js +132 -0
  167. package/dist/vscode/extension-installer.spec.js.map +1 -0
  168. package/dist/vscode/index.d.ts +14 -0
  169. package/dist/vscode/index.d.ts.map +1 -0
  170. package/dist/vscode/index.js +14 -0
  171. package/dist/vscode/index.js.map +1 -0
  172. package/dist/vscode/protocol.d.ts +101 -0
  173. package/dist/vscode/protocol.d.ts.map +1 -0
  174. package/dist/vscode/protocol.js +7 -0
  175. package/dist/vscode/protocol.js.map +1 -0
  176. package/dist/vscode/protocol.spec.d.ts +2 -0
  177. package/dist/vscode/protocol.spec.d.ts.map +1 -0
  178. package/dist/vscode/protocol.spec.js +354 -0
  179. package/dist/vscode/protocol.spec.js.map +1 -0
  180. package/dist/vscode/vscode-server.d.ts +118 -0
  181. package/dist/vscode/vscode-server.d.ts.map +1 -0
  182. package/dist/vscode/vscode-server.js +303 -0
  183. package/dist/vscode/vscode-server.js.map +1 -0
  184. package/dist/vscode/vscode-server.spec.d.ts +2 -0
  185. package/dist/vscode/vscode-server.spec.d.ts.map +1 -0
  186. package/dist/vscode/vscode-server.spec.js +487 -0
  187. package/dist/vscode/vscode-server.spec.js.map +1 -0
  188. package/dist/wizard/steps/mcp-step.d.ts.map +1 -1
  189. package/dist/wizard/steps/mcp-step.js +139 -72
  190. package/dist/wizard/steps/mcp-step.js.map +1 -1
  191. package/dist/wizard/steps/summary-step.d.ts.map +1 -1
  192. package/dist/wizard/steps/summary-step.js +58 -2
  193. package/dist/wizard/steps/summary-step.js.map +1 -1
  194. package/dist/wizard/templates/mcp-templates.d.ts +20 -2
  195. package/dist/wizard/templates/mcp-templates.d.ts.map +1 -1
  196. package/dist/wizard/templates/mcp-templates.js +351 -7
  197. package/dist/wizard/templates/mcp-templates.js.map +1 -1
  198. package/dist/wizard/templates/mcp-templates.spec.js +257 -0
  199. package/dist/wizard/templates/mcp-templates.spec.js.map +1 -1
  200. package/dist/wizard/validation-array.spec.d.ts +2 -0
  201. package/dist/wizard/validation-array.spec.d.ts.map +1 -0
  202. package/dist/wizard/validation-array.spec.js +221 -0
  203. package/dist/wizard/validation-array.spec.js.map +1 -0
  204. package/dist/wizard/validation.d.ts +26 -1
  205. package/dist/wizard/validation.d.ts.map +1 -1
  206. package/dist/wizard/validation.js +15 -2
  207. package/dist/wizard/validation.js.map +1 -1
  208. package/dist/wizard/validation.spec.js +13 -5
  209. package/dist/wizard/validation.spec.js.map +1 -1
  210. package/package.json +7 -3
  211. package/source/app/prompts/main-prompt.md +6 -0
package/README.md CHANGED
@@ -24,6 +24,7 @@ A local-first CLI coding agent that brings the power of agentic coding tools lik
24
24
  - [Custom Command System](#-custom-command-system)
25
25
  - [Enhanced User Experience](#-enhanced-user-experience)
26
26
  - [Developer Features](#️-developer-features)
27
+ - [VS Code Extension](#vs-code-extension)
27
28
  - [Community](#community)
28
29
 
29
30
  ## FAQs
@@ -133,8 +134,8 @@ If you want to contribute or modify Nanocoder:
133
134
 
134
135
  **Prerequisites:**
135
136
 
136
- - Node.js 18+
137
- - npm
137
+ - Node.js 20+
138
+ - pnpm
138
139
 
139
140
  **Setup:**
140
141
 
@@ -143,25 +144,25 @@ If you want to contribute or modify Nanocoder:
143
144
  ```bash
144
145
  git clone [repo-url]
145
146
  cd nanocoder
146
- npm install
147
+ pnpm install
147
148
  ```
148
149
 
149
150
  2. Build the project:
150
151
 
151
152
  ```bash
152
- npm run build
153
+ pnpm run build
153
154
  ```
154
155
 
155
156
  3. Run locally:
156
157
 
157
158
  ```bash
158
- npm run start
159
+ pnpm run start
159
160
  ```
160
161
 
161
162
  Or build and run in one command:
162
163
 
163
164
  ```bash
164
- npm run dev
165
+ pnpm run dev
165
166
  ```
166
167
 
167
168
  ## Configuration
@@ -330,6 +331,7 @@ Nanocoder supports connecting to MCP servers to extend its capabilities with add
330
331
  "mcpServers": [
331
332
  {
332
333
  "name": "filesystem",
334
+ "transport": "stdio",
333
335
  "command": "npx",
334
336
  "args": [
335
337
  "@modelcontextprotocol/server-filesystem",
@@ -338,6 +340,7 @@ Nanocoder supports connecting to MCP servers to extend its capabilities with add
338
340
  },
339
341
  {
340
342
  "name": "github",
343
+ "transport": "stdio",
341
344
  "command": "npx",
342
345
  "args": ["@modelcontextprotocol/server-github"],
343
346
  "env": {
@@ -345,12 +348,16 @@ Nanocoder supports connecting to MCP servers to extend its capabilities with add
345
348
  }
346
349
  },
347
350
  {
348
- "name": "custom-server",
349
- "command": "python",
350
- "args": ["path/to/server.py"],
351
- "env": {
352
- "API_KEY": "your-api-key"
353
- }
351
+ "name": "remote-search",
352
+ "transport": "http",
353
+ "url": "https://api.example.com/mcp",
354
+ "timeout": 30000
355
+ },
356
+ {
357
+ "name": "websocket-server",
358
+ "transport": "websocket",
359
+ "url": "wss://ws.example.com/mcp",
360
+ "timeout": 60000
354
361
  }
355
362
  ]
356
363
  }
@@ -360,25 +367,40 @@ Nanocoder supports connecting to MCP servers to extend its capabilities with add
360
367
  **MCP Server Configuration:**
361
368
 
362
369
  - `name`: Display name for the MCP server
363
- - `command`: Executable command to start the server
364
- - `args`: Array of command-line arguments
365
- - `env`: Environment variables for the server process
370
+ - `transport`: Transport type (`stdio`, `http`, `websocket`)
371
+ - **For stdio transport:**
372
+ - `command`: Executable command to start the server
373
+ - `args`: Array of command-line arguments
374
+ - `env`: Environment variables for the server process
375
+ - **For http/websocket transport:**
376
+ - `url`: Server endpoint URL
377
+ - `timeout`: Connection timeout in milliseconds (optional)
378
+
379
+ **Transport Types:**
380
+
381
+ - **stdio**: Local command-line servers (most common)
382
+ - **http**: Remote HTTP API endpoints
383
+ - **websocket**: Real-time WebSocket connections
366
384
 
367
385
  When MCP servers are configured, Nanocoder will:
368
386
 
369
387
  - Automatically connect to all configured servers on startup
370
388
  - Make all server tools available to the AI model
371
389
  - Show connected servers and their tools with the `/mcp` command
390
+ - Display transport type and connection details in configuration summary
372
391
 
373
392
  Popular MCP servers:
374
393
 
375
- - **Filesystem**: Enhanced file operations
376
- - **GitHub**: Repository management
377
- - **Brave Search**: Web search capabilities
394
+ - **Filesystem**: Enhanced file operations (stdio)
395
+ - **GitHub**: Repository management (stdio)
396
+ - **Brave Search**: Web search capabilities (http)
378
397
  - **Memory**: Persistent context storage
398
+ - **Context7**: Documentation lookup (http)
399
+ - **DeepWiki**: Wikipedia search (http)
400
+ - **Sequential Thinking**: Advanced reasoning (http)
379
401
  - [View more MCP servers](https://github.com/modelcontextprotocol/servers)
380
402
 
381
- > **Note**: MCP server configuration follows the same location hierarchy as AI provider setup above. Use `/setup-config` for an interactive configuration wizard, or manually edit `agents.config.json` at the project level (current directory) or user level (platform-specific paths listed above).
403
+ > **Note**: MCP server configuration follows the same location hierarchy as AI provider setup above. Use `/setup-config` for an interactive configuration wizard with templates for both local and remote MCP servers, or manually edit `agents.config.json` at the project level (current directory) or user level (platform-specific paths listed above).
382
404
 
383
405
  ### User Preferences
384
406
 
@@ -528,6 +550,18 @@ Generate comprehensive unit tests for {{component}}. Include:
528
550
  - **Project-specific config**: Different settings per project via `agents.config.json`
529
551
  - **Error resilience**: Graceful handling of provider failures and network issues
530
552
 
553
+ ## VS Code Extension
554
+
555
+ Nanocoder includes a VS Code extension that provides live diff previews of file changes directly in your editor. When the AI suggests file modifications, you can see exactly what will change before approving.
556
+
557
+ To get started, run Nanocoder with the `--vscode` flag:
558
+
559
+ ```bash
560
+ nanocoder --vscode
561
+ ```
562
+
563
+ For full documentation including installation options, configuration, and troubleshooting, see the [VS Code Extension Guide](docs/vscode-extension.md).
564
+
531
565
  ## Community
532
566
 
533
567
  We're a small community-led team building Nanocoder and would love your help! Whether you're interested in contributing code, documentation, or just being part of our community, there are several ways to get involved.
Binary file
package/dist/app.d.ts CHANGED
@@ -1,2 +1,7 @@
1
- export default function App(): import("react/jsx-runtime").JSX.Element;
1
+ interface AppProps {
2
+ vscodeMode?: boolean;
3
+ vscodePort?: number;
4
+ }
5
+ export default function App({ vscodeMode, vscodePort }: AppProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
2
7
  //# sourceMappingURL=app.d.ts.map
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../source/app.tsx"],"names":[],"mappings":"AAqCA,MAAM,CAAC,OAAO,UAAU,GAAG,4CAoX1B"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../source/app.tsx"],"names":[],"mappings":"AA0CA,UAAU,QAAQ;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAC,UAAkB,EAAE,UAAU,EAAC,EAAE,QAAQ,2CAmbrE"}
package/dist/app.js CHANGED
@@ -20,6 +20,7 @@ import Spinner from 'ink-spinner';
20
20
  import SecurityDisclaimer from './components/security-disclaimer.js';
21
21
  import { RecommendationsDisplay } from './commands/recommendations.js';
22
22
  import { ConfigWizard } from './wizard/config-wizard.js';
23
+ import { VSCodeExtensionPrompt, shouldPromptExtensionInstall, } from './components/vscode-extension-prompt.js';
23
24
  // Import extracted hooks and utilities
24
25
  import { useAppState } from './hooks/useAppState.js';
25
26
  import { useChatHandler } from './hooks/useChatHandler.js';
@@ -27,17 +28,41 @@ import { useToolHandler } from './hooks/useToolHandler.js';
27
28
  import { useModeHandlers } from './hooks/useModeHandlers.js';
28
29
  import { useAppInitialization } from './hooks/useAppInitialization.js';
29
30
  import { useDirectoryTrust } from './hooks/useDirectoryTrust.js';
31
+ import { useVSCodeServer } from './hooks/useVSCodeServer.js';
30
32
  import { createClearMessagesHandler, handleMessageSubmission, } from './app/utils/appUtils.js';
31
33
  // Provide shared UI state to components
32
34
  import { UIStateProvider } from './hooks/useUIState.js';
33
- export default function App() {
35
+ export default function App({ vscodeMode = false, vscodePort }) {
34
36
  // Use extracted hooks
35
37
  const appState = useAppState();
36
38
  const { exit } = useApp();
37
39
  const { isTrusted, handleConfirmTrust, isTrustLoading, isTrustedError } = useDirectoryTrust();
40
+ // VS Code extension installation prompt state
41
+ const [showExtensionPrompt, setShowExtensionPrompt] = React.useState(() => vscodeMode && shouldPromptExtensionInstall());
42
+ const [extensionPromptComplete, setExtensionPromptComplete] = React.useState(false);
38
43
  const handleExit = () => {
39
44
  exit();
40
45
  };
46
+ // VS Code server integration - handles prompts from VS Code extension
47
+ const handleVSCodePrompt = React.useCallback((prompt, context) => {
48
+ // Build enhanced prompt with context if available
49
+ let enhancedPrompt = prompt;
50
+ if (context?.filePath) {
51
+ enhancedPrompt = `[Context: ${context.filePath}${context.selection ? ` (selection)` : ''}]\n\n${prompt}`;
52
+ }
53
+ // This will be connected to chat handler after initialization
54
+ // For now, store it for processing
55
+ console.log('VS Code prompt received:', enhancedPrompt);
56
+ }, []);
57
+ // Setup VS Code server (returns connection status and methods)
58
+ // The server handles prompts via callback and exposes methods for sending messages
59
+ const _vsCodeServer = useVSCodeServer({
60
+ enabled: vscodeMode,
61
+ port: vscodePort,
62
+ currentModel: appState.currentModel,
63
+ currentProvider: appState.currentProvider,
64
+ onPrompt: handleVSCodePrompt,
65
+ });
41
66
  // Create theme context value
42
67
  const themeContextValue = {
43
68
  currentTheme: appState.currentTheme,
@@ -95,6 +120,23 @@ export default function App() {
95
120
  currentProvider: appState.currentProvider,
96
121
  setDevelopmentMode: appState.setDevelopmentMode,
97
122
  });
123
+ // Setup initialization
124
+ const appInitialization = useAppInitialization({
125
+ setClient: appState.setClient,
126
+ setCurrentModel: appState.setCurrentModel,
127
+ setCurrentProvider: appState.setCurrentProvider,
128
+ setToolManager: appState.setToolManager,
129
+ setCustomCommandLoader: appState.setCustomCommandLoader,
130
+ setCustomCommandExecutor: appState.setCustomCommandExecutor,
131
+ setCustomCommandCache: appState.setCustomCommandCache,
132
+ setStartChat: appState.setStartChat,
133
+ setMcpInitialized: appState.setMcpInitialized,
134
+ setUpdateInfo: appState.setUpdateInfo,
135
+ addToChatQueue: appState.addToChatQueue,
136
+ componentKeyCounter: appState.componentKeyCounter,
137
+ customCommandCache: appState.customCommandCache,
138
+ setIsConfigWizardMode: appState.setIsConfigWizardMode,
139
+ });
98
140
  // Setup mode handlers
99
141
  const modeHandlers = useModeHandlers({
100
142
  client: appState.client,
@@ -113,23 +155,7 @@ export default function App() {
113
155
  setIsConfigWizardMode: appState.setIsConfigWizardMode,
114
156
  addToChatQueue: appState.addToChatQueue,
115
157
  componentKeyCounter: appState.componentKeyCounter,
116
- });
117
- // Setup initialization
118
- useAppInitialization({
119
- setClient: appState.setClient,
120
- setCurrentModel: appState.setCurrentModel,
121
- setCurrentProvider: appState.setCurrentProvider,
122
- setToolManager: appState.setToolManager,
123
- setCustomCommandLoader: appState.setCustomCommandLoader,
124
- setCustomCommandExecutor: appState.setCustomCommandExecutor,
125
- setCustomCommandCache: appState.setCustomCommandCache,
126
- setStartChat: appState.setStartChat,
127
- setMcpInitialized: appState.setMcpInitialized,
128
- setUpdateInfo: appState.setUpdateInfo,
129
- addToChatQueue: appState.addToChatQueue,
130
- componentKeyCounter: appState.componentKeyCounter,
131
- customCommandCache: appState.customCommandCache,
132
- setIsConfigWizardMode: appState.setIsConfigWizardMode,
158
+ reinitializeMCPServers: appInitialization.reinitializeMCPServers,
133
159
  });
134
160
  // Memoize handlers to prevent unnecessary re-renders
135
161
  const clearMessages = React.useMemo(() => createClearMessagesHandler(appState.updateMessages, appState.client), [appState.updateMessages, appState.client]);
@@ -225,6 +251,16 @@ export default function App() {
225
251
  if (!isTrusted) {
226
252
  return (_jsx(SecurityDisclaimer, { onConfirm: handleConfirmTrust, onExit: handleExit }));
227
253
  }
254
+ // Show VS Code extension installation prompt if needed
255
+ if (showExtensionPrompt && !extensionPromptComplete) {
256
+ return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: _jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsx(WelcomeMessage, {}), _jsx(VSCodeExtensionPrompt, { onComplete: () => {
257
+ setShowExtensionPrompt(false);
258
+ setExtensionPromptComplete(true);
259
+ }, onSkip: () => {
260
+ setShowExtensionPrompt(false);
261
+ setExtensionPromptComplete(true);
262
+ } })] }) }));
263
+ }
228
264
  return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: _jsx(UIStateProvider, { children: _jsxs(Box, { flexDirection: "column", padding: 1, width: "100%", children: [_jsx(Box, { flexGrow: 1, flexDirection: "column", minHeight: 0, children: appState.startChat && (_jsx(ChatQueue, { staticComponents: staticComponents, queuedComponents: appState.chatComponents })) }), appState.startChat && (_jsxs(Box, { flexDirection: "column", marginLeft: -1, children: [appState.isCancelling ? (_jsx(CancellingIndicator, {})) : appState.isThinking && !chatHandler.isStreaming ? (_jsx(ThinkingIndicator, {})) : null, chatHandler.isStreaming && chatHandler.streamingContent && (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: themeContextValue.colors.primary, bold: true, children: [appState.currentModel, ":"] }) }), _jsx(Text, { children: chatHandler.streamingContent })] })), appState.isModelSelectionMode ? (_jsx(ModelSelector, { client: appState.client, currentModel: appState.currentModel, onModelSelect: model => void modeHandlers.handleModelSelect(model), onCancel: modeHandlers.handleModelSelectionCancel })) : appState.isProviderSelectionMode ? (_jsx(ProviderSelector, { currentProvider: appState.currentProvider, onProviderSelect: provider => void modeHandlers.handleProviderSelect(provider), onCancel: modeHandlers.handleProviderSelectionCancel })) : appState.isThemeSelectionMode ? (_jsx(ThemeSelector, { onThemeSelect: modeHandlers.handleThemeSelect, onCancel: modeHandlers.handleThemeSelectionCancel })) : appState.isRecommendationsMode ? (_jsx(RecommendationsDisplay, { onCancel: modeHandlers.handleRecommendationsCancel })) : appState.isConfigWizardMode ? (_jsx(ConfigWizard, { projectDir: process.cwd(), onComplete: configPath => void modeHandlers.handleConfigWizardComplete(configPath), onCancel: modeHandlers.handleConfigWizardCancel })) : appState.isToolConfirmationMode &&
229
265
  appState.pendingToolCalls[appState.currentToolIndex] ? (_jsx(ToolConfirmation, { toolCall: appState.pendingToolCalls[appState.currentToolIndex], onConfirm: toolHandler.handleToolConfirmation, onCancel: toolHandler.handleToolConfirmationCancel })) : appState.isToolExecuting &&
230
266
  appState.pendingToolCalls[appState.currentToolIndex] ? (_jsx(ToolExecutionIndicator, { toolName: appState.pendingToolCalls[appState.currentToolIndex]
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../source/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../source/app.tsx"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -2,5 +2,17 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { render } from 'ink';
4
4
  import App from './app.js';
5
- render(_jsx(App, {}));
5
+ // Parse CLI arguments
6
+ const args = process.argv.slice(2);
7
+ const vscodeMode = args.includes('--vscode');
8
+ // Extract VS Code port if specified
9
+ let vscodePort;
10
+ const portArgIndex = args.findIndex(arg => arg === '--vscode-port');
11
+ if (portArgIndex !== -1 && args[portArgIndex + 1]) {
12
+ const port = parseInt(args[portArgIndex + 1], 10);
13
+ if (!isNaN(port) && port > 0 && port < 65536) {
14
+ vscodePort = port;
15
+ }
16
+ }
17
+ render(_jsx(App, { vscodeMode: vscodeMode, vscodePort: vscodePort }));
6
18
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../source/cli.tsx"],"names":[],"mappings":";;AACA,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,MAAM,CAAC,KAAC,GAAG,KAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../source/cli.tsx"],"names":[],"mappings":";;AACA,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,sBAAsB;AACtB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAE7C,oCAAoC;AACpC,IAAI,UAA8B,CAAC;AACnC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC;AACpE,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QAC9C,UAAU,GAAG,IAAI,CAAC;IACnB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAC,GAAG,IAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAI,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../source/commands/init.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAmNtC,eAAO,MAAM,WAAW,EAAE,OAqHzB,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../source/commands/init.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAkMtC,eAAO,MAAM,WAAW,EAAE,OA6GzB,CAAC"}
@@ -12,29 +12,11 @@ import { AgentsTemplateGenerator } from '../init/agents-template-generator.js';
12
12
  import { ExistingRulesExtractor } from '../init/existing-rules-extractor.js';
13
13
  function InitSuccess({ created, analysis, }) {
14
14
  const boxWidth = useTerminalWidth();
15
- return (_jsxs(TitledBox, { borderStyle: "round", titles: ['Project Initialized'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.primary, paddingX: 2, paddingY: 1, flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.primary, bold: true, children: "\u2713 Nanocoder project initialized successfully!" }) }), analysis && (_jsxs(_Fragment, { children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.white, bold: true, children: "Project Analysis:" }) }), _jsxs(Text, { color: colors.secondary, children: ["\u2022 Type: ", analysis.projectType] }), _jsxs(Text, { color: colors.secondary, children: ["\u2022 Primary Language: ", analysis.primaryLanguage] }), analysis.frameworks.length > 0 && (_jsxs(Text, { color: colors.secondary, children: ["\u2022 Frameworks: ", analysis.frameworks.slice(0, 3).join(', ')] })), _jsxs(Text, { color: colors.secondary, children: ["\u2022 Files Analyzed: ", analysis.totalFiles] }), _jsx(Box, { marginBottom: 1 })] })), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.white, bold: true, children: "Files Created:" }) }), created.map((item, index) => (_jsxs(Text, { color: colors.secondary, children: ["\u2022 ", item] }, index))), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.white, children: "Your project is now ready for AI-assisted development!" }), _jsx(Text, { color: colors.secondary, children: "The AGENTS.md file will help AI understand your project context." })] })] }));
15
+ return (_jsxs(TitledBox, { borderStyle: "round", titles: ['Project Initialized'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.primary, paddingX: 2, paddingY: 1, flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.primary, bold: true, children: "\u2713 Nanocoder project initialized successfully!" }) }), analysis && (_jsxs(_Fragment, { children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.white, bold: true, children: "Project Analysis:" }) }), _jsxs(Text, { color: colors.secondary, children: ["\u2022 Type: ", analysis.projectType] }), _jsxs(Text, { color: colors.secondary, children: ["\u2022 Primary Language: ", analysis.primaryLanguage] }), analysis.frameworks.length > 0 && (_jsxs(Text, { color: colors.secondary, children: ["\u2022 Frameworks: ", analysis.frameworks.slice(0, 3).join(', ')] })), _jsxs(Text, { color: colors.secondary, children: ["\u2022 Files Analyzed: ", analysis.totalFiles] }), _jsx(Box, { marginBottom: 1 })] })), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.white, bold: true, children: "Files Created:" }) }), created.map((item, index) => (_jsxs(Text, { color: colors.secondary, children: ["\u2022 ", item] }, index))), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.white, children: "Your project is now ready for AI-assisted development!" }) }), _jsx(Text, { color: colors.secondary, children: "The AGENTS.md file will help AI understand your project context." })] })] }));
16
16
  }
17
17
  function InitError({ message }) {
18
- return _jsx(ErrorMessage, { message: `✗ ${message}` });
18
+ return _jsx(ErrorMessage, { hideBox: true, message: `✗ ${message}` });
19
19
  }
20
- const DEFAULT_CONFIG = {
21
- nanocoder: {
22
- providers: [
23
- {
24
- name: 'OpenRouter',
25
- baseUrl: 'https://openrouter.ai/api/v1',
26
- apiKey: 'your-openrouter-api-key-here',
27
- models: ['openai/gpt-4o-mini', 'anthropic/claude-3-haiku'],
28
- },
29
- {
30
- name: 'Local Ollama',
31
- baseUrl: 'http://localhost:11434/v1',
32
- models: ['llama3.2', 'qwen2.5-coder'],
33
- },
34
- ],
35
- mcpServers: [],
36
- },
37
- };
38
20
  // Enhanced example commands based on detected project type
39
21
  const getExampleCommands = (projectType, primaryLanguage) => {
40
22
  const baseCommands = {
@@ -133,17 +115,15 @@ export const initCommand = {
133
115
  const created = [];
134
116
  try {
135
117
  // Check if already initialized
136
- const configPath = join(cwd, 'agents.config.json');
137
118
  const agentsPath = join(cwd, 'AGENTS.md');
138
119
  const nanocoderDir = join(cwd, '.nanocoder');
139
120
  // Check for existing initialization
140
- const hasConfig = existsSync(configPath);
141
121
  const hasAgents = existsSync(agentsPath);
142
122
  const hasNanocoder = existsSync(nanocoderDir);
143
- if (hasConfig && hasAgents && hasNanocoder) {
123
+ if (hasAgents && hasNanocoder) {
144
124
  return Promise.resolve(React.createElement(InitError, {
145
125
  key: `init-error-${Date.now()}`,
146
- message: 'Project already fully initialized. Found agents.config.json, AGENTS.md, and .nanocoder/ directory.',
126
+ message: 'Project already initialized. Found AGENTS.md and .nanocoder/ directory.',
147
127
  }));
148
128
  }
149
129
  // Show progress indicator for analysis
@@ -155,11 +135,6 @@ export const initCommand = {
155
135
  // Extract existing AI configuration files
156
136
  const rulesExtractor = new ExistingRulesExtractor(cwd);
157
137
  const existingRules = rulesExtractor.extractExistingRules();
158
- // Create agents.config.json if it doesn't exist
159
- if (!hasConfig) {
160
- writeFileSync(configPath, JSON.stringify(DEFAULT_CONFIG, null, 2));
161
- created.push('agents.config.json');
162
- }
163
138
  // Create AGENTS.md based on analysis and existing rules
164
139
  if (!hasAgents) {
165
140
  const agentsContent = AgentsTemplateGenerator.generateAgentsMd(analysis, existingRules);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../source/commands/init.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../source/commands/init.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
1
  import type { Command } from '../types/index.js';
2
+ import { ToolManager } from '../tools/tool-manager.js';
3
+ interface MCPProps {
4
+ toolManager: ToolManager | null;
5
+ }
6
+ export declare function MCP({ toolManager }: MCPProps): import("react/jsx-runtime").JSX.Element;
2
7
  export declare const mcpCommand: Command;
8
+ export {};
3
9
  //# sourceMappingURL=mcp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../source/commands/mcp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAmG3C,eAAO,MAAM,UAAU,EAAE,OAaxB,CAAC"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../source/commands/mcp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAsBjD,UAAU,QAAQ;IACjB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CAChC;AAED,wBAAgB,GAAG,CAAC,EAAC,WAAW,EAAC,EAAE,QAAQ,2CA0H1C;AAED,eAAO,MAAM,UAAU,EAAE,OAaxB,CAAC"}
@@ -5,7 +5,20 @@ import { TitledBox, titleStyles } from '@mishieck/ink-titled-box';
5
5
  import { Box, Text } from 'ink';
6
6
  import { useTerminalWidth } from '../hooks/useTerminalWidth.js';
7
7
  import { useTheme } from '../hooks/useTheme.js';
8
- function MCP({ toolManager }) {
8
+ // Helper function to get transport icons
9
+ function getTransportIcon(transportType) {
10
+ switch (transportType.toLowerCase()) {
11
+ case 'stdio':
12
+ return '💻';
13
+ case 'websocket':
14
+ return '🔄';
15
+ case 'http':
16
+ return '🌐';
17
+ default:
18
+ return '❓';
19
+ }
20
+ }
21
+ export function MCP({ toolManager }) {
9
22
  const boxWidth = useTerminalWidth();
10
23
  const { colors } = useTheme();
11
24
  const connectedServers = toolManager?.getConnectedServers() || [];
@@ -14,17 +27,26 @@ function MCP({ toolManager }) {
14
27
  "mcpServers": [
15
28
  {
16
29
  "name": "example-server",
30
+ "transport": "stdio",
17
31
  "command": "node",
18
32
  "args": ["path/to/server.js"],
19
33
  "env": {
20
34
  "API_KEY": "your-key"
21
35
  }
36
+ },
37
+ {
38
+ "name": "remote-server",
39
+ "transport": "http",
40
+ "url": "https://example.com/mcp",
41
+ "timeout": 30000
22
42
  }
23
43
  ]
24
44
  }
25
- }` }) })] })) : (_jsxs(_Fragment, { children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.primary, children: ["Connected MCP Servers (", connectedServers.length, "):"] }) }), connectedServers.map((serverName, index) => {
45
+ }` }) }), _jsxs(Text, { color: colors.secondary, children: ["Use ", _jsx(Text, { color: colors.primary, children: "/setup-config" }), " to configure servers interactively."] })] })) : (_jsxs(_Fragment, { children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.primary, children: ["Connected MCP Servers (", connectedServers.length, "):"] }) }), connectedServers.map((serverName, index) => {
26
46
  const serverTools = toolManager?.getServerTools(serverName) || [];
27
- return (_jsx(Box, { marginBottom: 1, children: _jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: colors.white, children: ["\u2022 ", _jsx(Text, { color: colors.primary, children: serverName }), ":", ' ', serverTools.length, " tool", serverTools.length !== 1 ? 's' : ''] }), serverTools.length > 0 && (_jsxs(Text, { color: colors.secondary, children: ["Tools:", ' ', serverTools
47
+ const serverInfo = toolManager?.getServerInfo(serverName);
48
+ const transportIcon = getTransportIcon(serverInfo?.transport || 'stdio');
49
+ return (_jsx(Box, { marginBottom: 1, children: _jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: colors.white, children: ["\u2022 ", transportIcon, ' ', _jsx(Text, { color: colors.primary, children: serverName }), ":", ' ', _jsxs(Text, { color: colors.secondary, children: ["(", serverInfo?.transport?.toUpperCase() || 'STDIO', ")"] }), ' ', "\u2022 ", serverTools.length, " tool", serverTools.length !== 1 ? 's' : ''] }), serverInfo?.url && (_jsxs(Text, { color: colors.secondary, children: ["URL: ", serverInfo.url] })), serverInfo?.description && (_jsx(Text, { color: colors.secondary, children: serverInfo.description })), serverInfo?.tags && serverInfo.tags.length > 0 && (_jsxs(Text, { color: colors.secondary, children: ["Tags: ", serverInfo.tags.map(tag => `#${tag}`).join(' ')] })), serverTools.length > 0 && (_jsxs(Text, { color: colors.secondary, children: ["Tools:", ' ', serverTools
28
50
  .map((t) => t.name)
29
51
  .join(', ')] }))] }) }, index));
30
52
  })] })) }, colors.primary));
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../source/commands/mcp.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../source/commands/mcp.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-confirmation.d.ts","sourceRoot":"","sources":["../../source/components/tool-confirmation.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAK3C,UAAU,qBAAqB;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACrB;AAOD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACxC,QAAQ,EACR,SAAS,EACT,QAAQ,GACR,EAAE,qBAAqB,2CA0KvB"}
1
+ {"version":3,"file":"tool-confirmation.d.ts","sourceRoot":"","sources":["../../source/components/tool-confirmation.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAO3C,UAAU,qBAAqB;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACrB;AAOD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACxC,QAAQ,EACR,SAAS,EACT,QAAQ,GACR,EAAE,qBAAqB,2CA0JvB"}
@@ -6,6 +6,8 @@ import { useTheme } from '../hooks/useTheme.js';
6
6
  import { toolFormatters } from '../tools/index.js';
7
7
  import { useTerminalWidth } from '../hooks/useTerminalWidth.js';
8
8
  import { getToolManager } from '../message-handler.js';
9
+ import { parseToolArguments } from '../utils/tool-args-parser.js';
10
+ import { formatError } from '../utils/error-formatter.js';
9
11
  export default function ToolConfirmation({ toolCall, onConfirm, onCancel, }) {
10
12
  const boxWidth = useTerminalWidth();
11
13
  const { colors } = useTheme();
@@ -28,15 +30,7 @@ export default function ToolConfirmation({ toolCall, onConfirm, onCancel, }) {
28
30
  if (validator) {
29
31
  try {
30
32
  // Parse arguments if they're a JSON string
31
- let parsedArgs = toolCall.function.arguments;
32
- if (typeof parsedArgs === 'string') {
33
- try {
34
- parsedArgs = JSON.parse(parsedArgs);
35
- }
36
- catch {
37
- // If parsing fails, use as-is
38
- }
39
- }
33
+ const parsedArgs = parseToolArguments(toolCall.function.arguments);
40
34
  const validationResult = await validator(parsedArgs);
41
35
  if (!validationResult.valid) {
42
36
  setValidationError(validationResult.error);
@@ -47,7 +41,7 @@ export default function ToolConfirmation({ toolCall, onConfirm, onCancel, }) {
47
41
  }
48
42
  catch (error) {
49
43
  console.error('Error running validator:', error);
50
- const errorMsg = `Validation error: ${error instanceof Error ? error.message : String(error)}`;
44
+ const errorMsg = `Validation error: ${formatError(error)}`;
51
45
  setValidationError(errorMsg);
52
46
  setHasValidationError(true);
53
47
  setFormatterPreview(_jsx(Text, { color: colors.error, children: errorMsg }));
@@ -60,15 +54,7 @@ export default function ToolConfirmation({ toolCall, onConfirm, onCancel, }) {
60
54
  setIsLoadingPreview(true);
61
55
  try {
62
56
  // Parse arguments if they're a JSON string
63
- let parsedArgs = toolCall.function.arguments;
64
- if (typeof parsedArgs === 'string') {
65
- try {
66
- parsedArgs = JSON.parse(parsedArgs);
67
- }
68
- catch {
69
- // If parsing fails, use as-is
70
- }
71
- }
57
+ const parsedArgs = parseToolArguments(toolCall.function.arguments);
72
58
  const preview = await formatter(parsedArgs);
73
59
  setFormatterPreview(preview);
74
60
  }