@nanocollective/nanocoder 1.17.3 → 1.19.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 (688) hide show
  1. package/README.md +178 -13
  2. package/assets/nanocoder-vscode.vsix +0 -0
  3. package/dist/ai-sdk-client-empty-message.spec.d.ts +2 -0
  4. package/dist/ai-sdk-client-empty-message.spec.d.ts.map +1 -0
  5. package/dist/ai-sdk-client-empty-message.spec.js +124 -0
  6. package/dist/ai-sdk-client-empty-message.spec.js.map +1 -0
  7. package/dist/ai-sdk-client.d.ts +19 -3
  8. package/dist/ai-sdk-client.d.ts.map +1 -1
  9. package/dist/ai-sdk-client.js +359 -211
  10. package/dist/ai-sdk-client.js.map +1 -1
  11. package/dist/app/utils/appUtils.d.ts +1 -1
  12. package/dist/app/utils/appUtils.d.ts.map +1 -1
  13. package/dist/app/utils/appUtils.js +80 -14
  14. package/dist/app/utils/appUtils.js.map +1 -1
  15. package/dist/app.d.ts +22 -1
  16. package/dist/app.d.ts.map +1 -1
  17. package/dist/app.js +369 -53
  18. package/dist/app.js.map +1 -1
  19. package/dist/cli.js +37 -2
  20. package/dist/cli.js.map +1 -1
  21. package/dist/cli.spec.d.ts +2 -0
  22. package/dist/cli.spec.d.ts.map +1 -0
  23. package/dist/cli.spec.js +101 -0
  24. package/dist/cli.spec.js.map +1 -0
  25. package/dist/client-factory.d.ts.map +1 -1
  26. package/dist/client-factory.js +2 -2
  27. package/dist/client-factory.js.map +1 -1
  28. package/dist/commands/checkpoint.d.ts +6 -0
  29. package/dist/commands/checkpoint.d.ts.map +1 -0
  30. package/dist/commands/checkpoint.js +277 -0
  31. package/dist/commands/checkpoint.js.map +1 -0
  32. package/dist/commands/clear.d.ts.map +1 -1
  33. package/dist/commands/clear.js +1 -1
  34. package/dist/commands/clear.js.map +1 -1
  35. package/dist/commands/custom-commands.d.ts.map +1 -1
  36. package/dist/commands/custom-commands.js +4 -4
  37. package/dist/commands/custom-commands.js.map +1 -1
  38. package/dist/commands/exit.d.ts.map +1 -1
  39. package/dist/commands/exit.js.map +1 -1
  40. package/dist/commands/export.d.ts.map +1 -1
  41. package/dist/commands/export.js +2 -2
  42. package/dist/commands/export.js.map +1 -1
  43. package/dist/commands/help.d.ts.map +1 -1
  44. package/dist/commands/help.js +5 -5
  45. package/dist/commands/help.js.map +1 -1
  46. package/dist/commands/index.d.ts +2 -2
  47. package/dist/commands/index.d.ts.map +1 -1
  48. package/dist/commands/index.js +2 -2
  49. package/dist/commands/index.js.map +1 -1
  50. package/dist/commands/init.d.ts.map +1 -1
  51. package/dist/commands/init.js +15 -14
  52. package/dist/commands/init.js.map +1 -1
  53. package/dist/commands/lsp.d.ts.map +1 -1
  54. package/dist/commands/lsp.js +6 -6
  55. package/dist/commands/lsp.js.map +1 -1
  56. package/dist/commands/mcp.d.ts +1 -1
  57. package/dist/commands/mcp.d.ts.map +1 -1
  58. package/dist/commands/mcp.js +6 -6
  59. package/dist/commands/mcp.js.map +1 -1
  60. package/dist/commands/model-database.d.ts +8 -0
  61. package/dist/commands/model-database.d.ts.map +1 -0
  62. package/dist/commands/model-database.js +193 -0
  63. package/dist/commands/model-database.js.map +1 -0
  64. package/dist/commands/model.d.ts.map +1 -1
  65. package/dist/commands/model.js.map +1 -1
  66. package/dist/commands/provider.d.ts.map +1 -1
  67. package/dist/commands/provider.js.map +1 -1
  68. package/dist/commands/setup-config.js +1 -1
  69. package/dist/commands/setup-config.js.map +1 -1
  70. package/dist/commands/status.d.ts.map +1 -1
  71. package/dist/commands/status.js.map +1 -1
  72. package/dist/commands/theme.d.ts.map +1 -1
  73. package/dist/commands/theme.js.map +1 -1
  74. package/dist/commands/update.d.ts.map +1 -1
  75. package/dist/commands/update.js +5 -5
  76. package/dist/commands/update.js.map +1 -1
  77. package/dist/commands/usage.d.ts.map +1 -1
  78. package/dist/commands/usage.js +4 -4
  79. package/dist/commands/usage.js.map +1 -1
  80. package/dist/commands.d.ts.map +1 -1
  81. package/dist/commands.js +1 -1
  82. package/dist/commands.js.map +1 -1
  83. package/dist/components/assistant-message.d.ts.map +1 -1
  84. package/dist/components/assistant-message.js +5 -4
  85. package/dist/components/assistant-message.js.map +1 -1
  86. package/dist/components/bash-execution-indicator.d.ts.map +1 -1
  87. package/dist/components/bash-execution-indicator.js +2 -2
  88. package/dist/components/bash-execution-indicator.js.map +1 -1
  89. package/dist/components/cancelling-indicator.js +3 -3
  90. package/dist/components/cancelling-indicator.js.map +1 -1
  91. package/dist/components/chat-queue.d.ts.map +1 -1
  92. package/dist/components/chat-queue.js +1 -1
  93. package/dist/components/chat-queue.js.map +1 -1
  94. package/dist/components/checkpoint-display.d.ts +8 -0
  95. package/dist/components/checkpoint-display.d.ts.map +1 -0
  96. package/dist/components/checkpoint-display.js +29 -0
  97. package/dist/components/checkpoint-display.js.map +1 -0
  98. package/dist/components/checkpoint-selector.d.ts +11 -0
  99. package/dist/components/checkpoint-selector.d.ts.map +1 -0
  100. package/dist/components/checkpoint-selector.js +55 -0
  101. package/dist/components/checkpoint-selector.js.map +1 -0
  102. package/dist/components/error-message.d.ts.map +1 -1
  103. package/dist/components/error-message.js +4 -4
  104. package/dist/components/error-message.js.map +1 -1
  105. package/dist/components/info-message.d.ts.map +1 -1
  106. package/dist/components/info-message.js +4 -4
  107. package/dist/components/info-message.js.map +1 -1
  108. package/dist/components/model-selector.d.ts.map +1 -1
  109. package/dist/components/model-selector.js +7 -7
  110. package/dist/components/model-selector.js.map +1 -1
  111. package/dist/components/provider-selector.d.ts.map +1 -1
  112. package/dist/components/provider-selector.js +6 -6
  113. package/dist/components/provider-selector.js.map +1 -1
  114. package/dist/components/security-disclaimer.d.ts.map +1 -1
  115. package/dist/components/security-disclaimer.js +4 -4
  116. package/dist/components/security-disclaimer.js.map +1 -1
  117. package/dist/components/status.d.ts +5 -0
  118. package/dist/components/status.d.ts.map +1 -1
  119. package/dist/components/status.js +36 -7
  120. package/dist/components/status.js.map +1 -1
  121. package/dist/components/success-message.d.ts.map +1 -1
  122. package/dist/components/success-message.js +4 -4
  123. package/dist/components/success-message.js.map +1 -1
  124. package/dist/components/theme-selector.d.ts.map +1 -1
  125. package/dist/components/theme-selector.js +8 -8
  126. package/dist/components/theme-selector.js.map +1 -1
  127. package/dist/components/tool-confirmation.d.ts.map +1 -1
  128. package/dist/components/tool-confirmation.js +7 -7
  129. package/dist/components/tool-confirmation.js.map +1 -1
  130. package/dist/components/tool-execution-indicator.d.ts.map +1 -1
  131. package/dist/components/tool-execution-indicator.js +2 -2
  132. package/dist/components/tool-execution-indicator.js.map +1 -1
  133. package/dist/components/tool-message.d.ts.map +1 -1
  134. package/dist/components/tool-message.js +4 -5
  135. package/dist/components/tool-message.js.map +1 -1
  136. package/dist/components/ui/titled-box.d.ts +16 -0
  137. package/dist/components/ui/titled-box.d.ts.map +1 -0
  138. package/dist/components/ui/titled-box.js +10 -0
  139. package/dist/components/ui/titled-box.js.map +1 -0
  140. package/dist/components/usage/progress-bar.d.ts.map +1 -1
  141. package/dist/components/usage/progress-bar.js +3 -0
  142. package/dist/components/usage/progress-bar.js.map +1 -1
  143. package/dist/components/usage/usage-display.d.ts.map +1 -1
  144. package/dist/components/usage/usage-display.js +7 -4
  145. package/dist/components/usage/usage-display.js.map +1 -1
  146. package/dist/components/user-input.d.ts.map +1 -1
  147. package/dist/components/user-input.js +9 -8
  148. package/dist/components/user-input.js.map +1 -1
  149. package/dist/components/user-message.d.ts.map +1 -1
  150. package/dist/components/user-message.js +1 -1
  151. package/dist/components/user-message.js.map +1 -1
  152. package/dist/components/vscode-extension-prompt.js +3 -3
  153. package/dist/components/vscode-extension-prompt.js.map +1 -1
  154. package/dist/components/warning-message.d.ts.map +1 -1
  155. package/dist/components/warning-message.js +4 -4
  156. package/dist/components/warning-message.js.map +1 -1
  157. package/dist/components/welcome-message.d.ts.map +1 -1
  158. package/dist/components/welcome-message.js +4 -4
  159. package/dist/components/welcome-message.js.map +1 -1
  160. package/dist/config/index.d.ts.map +1 -1
  161. package/dist/config/index.js +7 -7
  162. package/dist/config/index.js.map +1 -1
  163. package/dist/config/index.spec.js +4 -4
  164. package/dist/config/index.spec.js.map +1 -1
  165. package/dist/config/paths.spec.js +1 -1
  166. package/dist/config/paths.spec.js.map +1 -1
  167. package/dist/config/preferences.d.ts +0 -2
  168. package/dist/config/preferences.d.ts.map +1 -1
  169. package/dist/config/preferences.js +1 -11
  170. package/dist/config/preferences.js.map +1 -1
  171. package/dist/context/mode-context.d.ts +12 -0
  172. package/dist/context/mode-context.d.ts.map +1 -0
  173. package/dist/context/mode-context.js +21 -0
  174. package/dist/context/mode-context.js.map +1 -0
  175. package/dist/context/mode-context.spec.d.ts +2 -0
  176. package/dist/context/mode-context.spec.d.ts.map +1 -0
  177. package/dist/context/mode-context.spec.js +61 -0
  178. package/dist/context/mode-context.spec.js.map +1 -0
  179. package/dist/custom-commands/executor.d.ts.map +1 -1
  180. package/dist/custom-commands/executor.js.map +1 -1
  181. package/dist/custom-commands/loader.d.ts.map +1 -1
  182. package/dist/custom-commands/loader.js +1 -1
  183. package/dist/custom-commands/loader.js.map +1 -1
  184. package/dist/custom-commands/parser.d.ts.map +1 -1
  185. package/dist/custom-commands/parser.js.map +1 -1
  186. package/dist/hooks/useAppInitialization.d.ts +9 -5
  187. package/dist/hooks/useAppInitialization.d.ts.map +1 -1
  188. package/dist/hooks/useAppInitialization.js +119 -45
  189. package/dist/hooks/useAppInitialization.js.map +1 -1
  190. package/dist/hooks/useAppState.d.ts +28 -9
  191. package/dist/hooks/useAppState.d.ts.map +1 -1
  192. package/dist/hooks/useAppState.js +28 -8
  193. package/dist/hooks/useAppState.js.map +1 -1
  194. package/dist/hooks/useChatHandler.d.ts +5 -3
  195. package/dist/hooks/useChatHandler.d.ts.map +1 -1
  196. package/dist/hooks/useChatHandler.js +218 -118
  197. package/dist/hooks/useChatHandler.js.map +1 -1
  198. package/dist/hooks/useDirectoryTrust.js +1 -1
  199. package/dist/hooks/useDirectoryTrust.js.map +1 -1
  200. package/dist/hooks/useInputState.js +2 -2
  201. package/dist/hooks/useInputState.js.map +1 -1
  202. package/dist/hooks/useModeHandlers.d.ts +5 -5
  203. package/dist/hooks/useModeHandlers.d.ts.map +1 -1
  204. package/dist/hooks/useModeHandlers.js +12 -12
  205. package/dist/hooks/useModeHandlers.js.map +1 -1
  206. package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
  207. package/dist/hooks/useTerminalWidth.js +3 -3
  208. package/dist/hooks/useTerminalWidth.js.map +1 -1
  209. package/dist/hooks/useTheme.d.ts.map +1 -1
  210. package/dist/hooks/useTheme.js +1 -1
  211. package/dist/hooks/useTheme.js.map +1 -1
  212. package/dist/hooks/useToolHandler.d.ts +1 -1
  213. package/dist/hooks/useToolHandler.d.ts.map +1 -1
  214. package/dist/hooks/useToolHandler.js +4 -4
  215. package/dist/hooks/useToolHandler.js.map +1 -1
  216. package/dist/hooks/useUIState.d.ts +1 -1
  217. package/dist/hooks/useUIState.d.ts.map +1 -1
  218. package/dist/hooks/useUIState.js.map +1 -1
  219. package/dist/hooks/useVSCodeServer.js +2 -2
  220. package/dist/hooks/useVSCodeServer.js.map +1 -1
  221. package/dist/init/agents-template-generator.d.ts +1 -1
  222. package/dist/init/agents-template-generator.d.ts.map +1 -1
  223. package/dist/init/agents-template-generator.js.map +1 -1
  224. package/dist/init/existing-rules-extractor.js +1 -1
  225. package/dist/init/existing-rules-extractor.js.map +1 -1
  226. package/dist/init/file-scanner.js +2 -2
  227. package/dist/init/file-scanner.js.map +1 -1
  228. package/dist/init/framework-detector.js +1 -1
  229. package/dist/init/framework-detector.js.map +1 -1
  230. package/dist/init/project-analyzer.d.ts +1 -1
  231. package/dist/init/project-analyzer.d.ts.map +1 -1
  232. package/dist/init/project-analyzer.js +3 -3
  233. package/dist/init/project-analyzer.js.map +1 -1
  234. package/dist/lsp/lsp-client.d.ts +1 -1
  235. package/dist/lsp/lsp-client.d.ts.map +1 -1
  236. package/dist/lsp/lsp-client.js +1 -1
  237. package/dist/lsp/lsp-client.js.map +1 -1
  238. package/dist/lsp/lsp-client.spec.js +1 -2
  239. package/dist/lsp/lsp-client.spec.js.map +1 -1
  240. package/dist/lsp/lsp-manager.d.ts +1 -1
  241. package/dist/lsp/lsp-manager.d.ts.map +1 -1
  242. package/dist/lsp/lsp-manager.js.map +1 -1
  243. package/dist/lsp/lsp-manager.spec.js +1 -1
  244. package/dist/lsp/lsp-manager.spec.js.map +1 -1
  245. package/dist/lsp/protocol.spec.js +1 -1
  246. package/dist/lsp/protocol.spec.js.map +1 -1
  247. package/dist/lsp/server-discovery.spec.js +1 -1
  248. package/dist/lsp/server-discovery.spec.js.map +1 -1
  249. package/dist/markdown-parser/index.spec.js.map +1 -1
  250. package/dist/markdown-parser/table-parser.spec.js.map +1 -1
  251. package/dist/mcp/mcp-client.d.ts +3 -2
  252. package/dist/mcp/mcp-client.d.ts.map +1 -1
  253. package/dist/mcp/mcp-client.js +279 -96
  254. package/dist/mcp/mcp-client.js.map +1 -1
  255. package/dist/mcp/transport-factory.d.ts +1 -1
  256. package/dist/mcp/transport-factory.d.ts.map +1 -1
  257. package/dist/mcp/transport-factory.js +16 -3
  258. package/dist/mcp/transport-factory.js.map +1 -1
  259. package/dist/mcp/transport-factory.spec.js +30 -48
  260. package/dist/mcp/transport-factory.spec.js.map +1 -1
  261. package/dist/message-handler.d.ts +1 -1
  262. package/dist/message-handler.d.ts.map +1 -1
  263. package/dist/message-handler.js +1 -1
  264. package/dist/message-handler.js.map +1 -1
  265. package/dist/model-database/database-engine.d.ts +25 -0
  266. package/dist/model-database/database-engine.d.ts.map +1 -0
  267. package/dist/model-database/database-engine.js +37 -0
  268. package/dist/model-database/database-engine.js.map +1 -0
  269. package/dist/model-database/database-engine.spec.d.ts +2 -0
  270. package/dist/model-database/database-engine.spec.d.ts.map +1 -0
  271. package/dist/model-database/database-engine.spec.js +413 -0
  272. package/dist/model-database/database-engine.spec.js.map +1 -0
  273. package/dist/model-database/model-database.d.ts +30 -0
  274. package/dist/model-database/model-database.d.ts.map +1 -0
  275. package/dist/model-database/model-database.js +82 -0
  276. package/dist/model-database/model-database.js.map +1 -0
  277. package/dist/model-database/model-database.spec.d.ts +2 -0
  278. package/dist/model-database/model-database.spec.d.ts.map +1 -0
  279. package/dist/model-database/model-database.spec.js +322 -0
  280. package/dist/model-database/model-database.spec.js.map +1 -0
  281. package/dist/model-database/model-engine.d.ts +25 -0
  282. package/dist/model-database/model-engine.d.ts.map +1 -0
  283. package/dist/model-database/model-engine.js +49 -0
  284. package/dist/model-database/model-engine.js.map +1 -0
  285. package/dist/model-database/model-engine.spec.d.ts +2 -0
  286. package/dist/model-database/model-engine.spec.d.ts.map +1 -0
  287. package/dist/model-database/model-engine.spec.js +381 -0
  288. package/dist/model-database/model-engine.spec.js.map +1 -0
  289. package/dist/model-database/model-fetcher.d.ts +14 -0
  290. package/dist/model-database/model-fetcher.d.ts.map +1 -0
  291. package/dist/model-database/model-fetcher.js +249 -0
  292. package/dist/model-database/model-fetcher.js.map +1 -0
  293. package/dist/model-database/model-fetcher.spec.d.ts +2 -0
  294. package/dist/model-database/model-fetcher.spec.d.ts.map +1 -0
  295. package/dist/model-database/model-fetcher.spec.js +498 -0
  296. package/dist/model-database/model-fetcher.spec.js.map +1 -0
  297. package/dist/models/models-cache.d.ts +1 -1
  298. package/dist/models/models-cache.d.ts.map +1 -1
  299. package/dist/models/models-cache.js +1 -1
  300. package/dist/models/models-cache.js.map +1 -1
  301. package/dist/models/models-dev-client.d.ts.map +1 -1
  302. package/dist/models/models-dev-client.js +23 -7
  303. package/dist/models/models-dev-client.js.map +1 -1
  304. package/dist/prompt-history.js +2 -2
  305. package/dist/prompt-history.js.map +1 -1
  306. package/dist/services/checkpoint-manager.d.ts +68 -0
  307. package/dist/services/checkpoint-manager.d.ts.map +1 -0
  308. package/dist/services/checkpoint-manager.js +345 -0
  309. package/dist/services/checkpoint-manager.js.map +1 -0
  310. package/dist/services/checkpoint-manager.spec.d.ts +2 -0
  311. package/dist/services/checkpoint-manager.spec.d.ts.map +1 -0
  312. package/dist/services/checkpoint-manager.spec.js +353 -0
  313. package/dist/services/checkpoint-manager.spec.js.map +1 -0
  314. package/dist/services/file-snapshot.d.ts +32 -0
  315. package/dist/services/file-snapshot.d.ts.map +1 -0
  316. package/dist/services/file-snapshot.js +161 -0
  317. package/dist/services/file-snapshot.js.map +1 -0
  318. package/dist/services/file-snapshot.spec.d.ts +2 -0
  319. package/dist/services/file-snapshot.spec.d.ts.map +1 -0
  320. package/dist/services/file-snapshot.spec.js +285 -0
  321. package/dist/services/file-snapshot.spec.js.map +1 -0
  322. package/dist/test-utils/render-with-theme.d.ts +7 -0
  323. package/dist/test-utils/render-with-theme.d.ts.map +1 -0
  324. package/dist/test-utils/render-with-theme.js +38 -0
  325. package/dist/test-utils/render-with-theme.js.map +1 -0
  326. package/dist/tokenization/tokenizer-factory.js +2 -2
  327. package/dist/tokenization/tokenizer-factory.js.map +1 -1
  328. package/dist/tokenization/tokenizer-factory.spec.js +2 -2
  329. package/dist/tokenization/tokenizer-factory.spec.js.map +1 -1
  330. package/dist/tokenization/tokenizers/anthropic-tokenizer.d.ts +1 -1
  331. package/dist/tokenization/tokenizers/anthropic-tokenizer.d.ts.map +1 -1
  332. package/dist/tokenization/tokenizers/anthropic-tokenizer.js.map +1 -1
  333. package/dist/tokenization/tokenizers/anthropic-tokenizer.spec.js.map +1 -1
  334. package/dist/tokenization/tokenizers/fallback-tokenizer.d.ts +1 -1
  335. package/dist/tokenization/tokenizers/fallback-tokenizer.d.ts.map +1 -1
  336. package/dist/tokenization/tokenizers/fallback-tokenizer.spec.js.map +1 -1
  337. package/dist/tokenization/tokenizers/llama-tokenizer.d.ts +1 -1
  338. package/dist/tokenization/tokenizers/llama-tokenizer.d.ts.map +1 -1
  339. package/dist/tokenization/tokenizers/llama-tokenizer.js.map +1 -1
  340. package/dist/tokenization/tokenizers/llama-tokenizer.spec.js.map +1 -1
  341. package/dist/tokenization/tokenizers/openai-tokenizer.d.ts +1 -1
  342. package/dist/tokenization/tokenizers/openai-tokenizer.d.ts.map +1 -1
  343. package/dist/tokenization/tokenizers/openai-tokenizer.js.map +1 -1
  344. package/dist/tokenization/tokenizers/openai-tokenizer.spec.js.map +1 -1
  345. package/dist/tool-calling/json-parser.d.ts.map +1 -1
  346. package/dist/tool-calling/json-parser.js +12 -14
  347. package/dist/tool-calling/json-parser.js.map +1 -1
  348. package/dist/tool-calling/json-parser.spec.js +7 -7
  349. package/dist/tool-calling/json-parser.spec.js.map +1 -1
  350. package/dist/tool-calling/tool-parser.d.ts.map +1 -1
  351. package/dist/tool-calling/tool-parser.js +38 -10
  352. package/dist/tool-calling/tool-parser.js.map +1 -1
  353. package/dist/tool-calling/tool-parser.spec.js +82 -4
  354. package/dist/tool-calling/tool-parser.spec.js.map +1 -1
  355. package/dist/tool-calling/xml-parser.d.ts.map +1 -1
  356. package/dist/tool-calling/xml-parser.js +21 -23
  357. package/dist/tool-calling/xml-parser.js.map +1 -1
  358. package/dist/tool-calling/xml-parser.spec.js +23 -3
  359. package/dist/tool-calling/xml-parser.spec.js.map +1 -1
  360. package/dist/tools/create-file.d.ts +24 -2
  361. package/dist/tools/create-file.d.ts.map +1 -1
  362. package/dist/tools/create-file.js +20 -16
  363. package/dist/tools/create-file.js.map +1 -1
  364. package/dist/tools/delete-lines.d.ts +18 -2
  365. package/dist/tools/delete-lines.d.ts.map +1 -1
  366. package/dist/tools/delete-lines.js +22 -17
  367. package/dist/tools/delete-lines.js.map +1 -1
  368. package/dist/tools/execute-bash.d.ts +2 -2
  369. package/dist/tools/execute-bash.d.ts.map +1 -1
  370. package/dist/tools/execute-bash.js +13 -12
  371. package/dist/tools/execute-bash.js.map +1 -1
  372. package/dist/tools/execute-function.spec.d.ts +2 -0
  373. package/dist/tools/execute-function.spec.d.ts.map +1 -0
  374. package/dist/tools/execute-function.spec.js +141 -0
  375. package/dist/tools/execute-function.spec.js.map +1 -0
  376. package/dist/tools/fetch-url.d.ts +16 -2
  377. package/dist/tools/fetch-url.d.ts.map +1 -1
  378. package/dist/tools/fetch-url.js +13 -13
  379. package/dist/tools/fetch-url.js.map +1 -1
  380. package/dist/tools/find-files.d.ts +18 -2
  381. package/dist/tools/find-files.d.ts.map +1 -1
  382. package/dist/tools/find-files.js +13 -11
  383. package/dist/tools/find-files.js.map +1 -1
  384. package/dist/tools/index.d.ts +2 -3
  385. package/dist/tools/index.d.ts.map +1 -1
  386. package/dist/tools/index.js +35 -25
  387. package/dist/tools/index.js.map +1 -1
  388. package/dist/tools/insert-lines.d.ts +18 -2
  389. package/dist/tools/insert-lines.d.ts.map +1 -1
  390. package/dist/tools/insert-lines.js +21 -16
  391. package/dist/tools/insert-lines.js.map +1 -1
  392. package/dist/tools/lsp-get-diagnostics.d.ts +10 -2
  393. package/dist/tools/lsp-get-diagnostics.d.ts.map +1 -1
  394. package/dist/tools/lsp-get-diagnostics.js +13 -11
  395. package/dist/tools/lsp-get-diagnostics.js.map +1 -1
  396. package/dist/tools/needs-approval.spec.d.ts +2 -0
  397. package/dist/tools/needs-approval.spec.d.ts.map +1 -0
  398. package/dist/tools/needs-approval.spec.js +308 -0
  399. package/dist/tools/needs-approval.spec.js.map +1 -0
  400. package/dist/tools/read-file.d.ts +2 -2
  401. package/dist/tools/read-file.d.ts.map +1 -1
  402. package/dist/tools/read-file.js +16 -18
  403. package/dist/tools/read-file.js.map +1 -1
  404. package/dist/tools/replace-lines.d.ts +19 -2
  405. package/dist/tools/replace-lines.d.ts.map +1 -1
  406. package/dist/tools/replace-lines.js +21 -16
  407. package/dist/tools/replace-lines.js.map +1 -1
  408. package/dist/tools/search-file-contents.d.ts +20 -2
  409. package/dist/tools/search-file-contents.d.ts.map +1 -1
  410. package/dist/tools/search-file-contents.js +17 -14
  411. package/dist/tools/search-file-contents.js.map +1 -1
  412. package/dist/tools/tool-manager.d.ts +1 -1
  413. package/dist/tools/tool-manager.d.ts.map +1 -1
  414. package/dist/tools/tool-manager.js +1 -1
  415. package/dist/tools/tool-manager.js.map +1 -1
  416. package/dist/tools/tool-registry.d.ts +1 -1
  417. package/dist/tools/tool-registry.d.ts.map +1 -1
  418. package/dist/tools/web-search.d.ts +2 -2
  419. package/dist/tools/web-search.d.ts.map +1 -1
  420. package/dist/tools/web-search.js +14 -14
  421. package/dist/tools/web-search.js.map +1 -1
  422. package/dist/types/app.d.ts +7 -4
  423. package/dist/types/app.d.ts.map +1 -1
  424. package/dist/types/checkpoint.d.ts +43 -0
  425. package/dist/types/checkpoint.d.ts.map +1 -0
  426. package/dist/types/checkpoint.js +2 -0
  427. package/dist/types/checkpoint.js.map +1 -0
  428. package/dist/types/config.d.ts +0 -1
  429. package/dist/types/config.d.ts.map +1 -1
  430. package/dist/types/core-connection-status.spec.d.ts +2 -0
  431. package/dist/types/core-connection-status.spec.d.ts.map +1 -0
  432. package/dist/types/core-connection-status.spec.js +52 -0
  433. package/dist/types/core-connection-status.spec.js.map +1 -0
  434. package/dist/types/core.d.ts +34 -29
  435. package/dist/types/core.d.ts.map +1 -1
  436. package/dist/types/core.js +1 -1
  437. package/dist/types/core.js.map +1 -1
  438. package/dist/types/index.d.ts +1 -0
  439. package/dist/types/index.d.ts.map +1 -1
  440. package/dist/types/index.js +1 -0
  441. package/dist/types/index.js.map +1 -1
  442. package/dist/types/system.d.ts +5 -30
  443. package/dist/types/system.d.ts.map +1 -1
  444. package/dist/usage/calculator.spec.js +1 -1
  445. package/dist/usage/calculator.spec.js.map +1 -1
  446. package/dist/usage/storage.d.ts +1 -1
  447. package/dist/usage/storage.d.ts.map +1 -1
  448. package/dist/usage/storage.js +9 -3
  449. package/dist/usage/storage.js.map +1 -1
  450. package/dist/usage/storage.spec.js +3 -3
  451. package/dist/usage/storage.spec.js.map +1 -1
  452. package/dist/usage/tracker.d.ts.map +1 -1
  453. package/dist/usage/tracker.js +1 -1
  454. package/dist/usage/tracker.js.map +1 -1
  455. package/dist/usage/tracker.spec.js +4 -4
  456. package/dist/usage/tracker.spec.js.map +1 -1
  457. package/dist/utils/atomic-deletion.spec.js +1 -1
  458. package/dist/utils/atomic-deletion.spec.js.map +1 -1
  459. package/dist/utils/checkpoint-utils.d.ts +12 -0
  460. package/dist/utils/checkpoint-utils.d.ts.map +1 -0
  461. package/dist/utils/checkpoint-utils.js +85 -0
  462. package/dist/utils/checkpoint-utils.js.map +1 -0
  463. package/dist/utils/checkpoint-utils.spec.d.ts +2 -0
  464. package/dist/utils/checkpoint-utils.spec.d.ts.map +1 -0
  465. package/dist/utils/checkpoint-utils.spec.js +182 -0
  466. package/dist/utils/checkpoint-utils.spec.js.map +1 -0
  467. package/dist/utils/error-formatter.d.ts +35 -0
  468. package/dist/utils/error-formatter.d.ts.map +1 -1
  469. package/dist/utils/error-formatter.js +123 -0
  470. package/dist/utils/error-formatter.js.map +1 -1
  471. package/dist/utils/file-autocomplete.js +2 -2
  472. package/dist/utils/file-autocomplete.js.map +1 -1
  473. package/dist/utils/file-autocomplete.spec.js +1 -1
  474. package/dist/utils/file-autocomplete.spec.js.map +1 -1
  475. package/dist/utils/file-content-loader.js +1 -1
  476. package/dist/utils/file-content-loader.js.map +1 -1
  477. package/dist/utils/file-content-loader.spec.js +4 -4
  478. package/dist/utils/file-content-loader.spec.js.map +1 -1
  479. package/dist/utils/file-mention-handler.js.map +1 -1
  480. package/dist/utils/file-mention-handler.spec.js +4 -4
  481. package/dist/utils/file-mention-handler.spec.js.map +1 -1
  482. package/dist/utils/file-mention-parser.spec.js +2 -2
  483. package/dist/utils/file-mention-parser.spec.js.map +1 -1
  484. package/dist/utils/installation-detector.js +2 -2
  485. package/dist/utils/installation-detector.js.map +1 -1
  486. package/dist/utils/installation-detector.spec.js +10 -17
  487. package/dist/utils/installation-detector.spec.js.map +1 -1
  488. package/dist/utils/logging/config.d.ts +41 -0
  489. package/dist/utils/logging/config.d.ts.map +1 -0
  490. package/dist/utils/logging/config.js +188 -0
  491. package/dist/utils/logging/config.js.map +1 -0
  492. package/dist/utils/logging/config.spec.d.ts +2 -0
  493. package/dist/utils/logging/config.spec.d.ts.map +1 -0
  494. package/dist/utils/logging/config.spec.js +233 -0
  495. package/dist/utils/logging/config.spec.js.map +1 -0
  496. package/dist/utils/logging/console-facade.d.ts +93 -0
  497. package/dist/utils/logging/console-facade.d.ts.map +1 -0
  498. package/dist/utils/logging/console-facade.js +295 -0
  499. package/dist/utils/logging/console-facade.js.map +1 -0
  500. package/dist/utils/logging/console-facade.spec.d.ts +2 -0
  501. package/dist/utils/logging/console-facade.spec.d.ts.map +1 -0
  502. package/dist/utils/logging/console-facade.spec.js +143 -0
  503. package/dist/utils/logging/console-facade.spec.js.map +1 -0
  504. package/dist/utils/logging/correlation.d.ts +139 -0
  505. package/dist/utils/logging/correlation.d.ts.map +1 -0
  506. package/dist/utils/logging/correlation.js +410 -0
  507. package/dist/utils/logging/correlation.js.map +1 -0
  508. package/dist/utils/logging/correlation.spec.d.ts +2 -0
  509. package/dist/utils/logging/correlation.spec.d.ts.map +1 -0
  510. package/dist/utils/logging/correlation.spec.js +449 -0
  511. package/dist/utils/logging/correlation.spec.js.map +1 -0
  512. package/dist/utils/logging/formatters.d.ts +70 -0
  513. package/dist/utils/logging/formatters.d.ts.map +1 -0
  514. package/dist/utils/logging/formatters.js +186 -0
  515. package/dist/utils/logging/formatters.js.map +1 -0
  516. package/dist/utils/logging/formatters.spec.d.ts +2 -0
  517. package/dist/utils/logging/formatters.spec.d.ts.map +1 -0
  518. package/dist/utils/logging/formatters.spec.js +356 -0
  519. package/dist/utils/logging/formatters.spec.js.map +1 -0
  520. package/dist/utils/logging/health-monitor.d.ts +216 -0
  521. package/dist/utils/logging/health-monitor.d.ts.map +1 -0
  522. package/dist/utils/logging/health-monitor.js +760 -0
  523. package/dist/utils/logging/health-monitor.js.map +1 -0
  524. package/dist/utils/logging/health-monitor.spec.d.ts +2 -0
  525. package/dist/utils/logging/health-monitor.spec.d.ts.map +1 -0
  526. package/dist/utils/logging/health-monitor.spec.js +305 -0
  527. package/dist/utils/logging/health-monitor.spec.js.map +1 -0
  528. package/dist/utils/logging/index.d.ts +100 -0
  529. package/dist/utils/logging/index.d.ts.map +1 -0
  530. package/dist/utils/logging/index.js +186 -0
  531. package/dist/utils/logging/index.js.map +1 -0
  532. package/dist/utils/logging/index.spec.d.ts +2 -0
  533. package/dist/utils/logging/index.spec.d.ts.map +1 -0
  534. package/dist/utils/logging/index.spec.js +214 -0
  535. package/dist/utils/logging/index.spec.js.map +1 -0
  536. package/dist/utils/logging/integration.spec.d.ts +2 -0
  537. package/dist/utils/logging/integration.spec.d.ts.map +1 -0
  538. package/dist/utils/logging/integration.spec.js +312 -0
  539. package/dist/utils/logging/integration.spec.js.map +1 -0
  540. package/dist/utils/logging/log-method-factory.d.ts +43 -0
  541. package/dist/utils/logging/log-method-factory.d.ts.map +1 -0
  542. package/dist/utils/logging/log-method-factory.js +176 -0
  543. package/dist/utils/logging/log-method-factory.js.map +1 -0
  544. package/dist/utils/logging/log-method-factory.spec.d.ts +2 -0
  545. package/dist/utils/logging/log-method-factory.spec.d.ts.map +1 -0
  546. package/dist/utils/logging/log-method-factory.spec.js +428 -0
  547. package/dist/utils/logging/log-method-factory.spec.js.map +1 -0
  548. package/dist/utils/logging/log-query.d.ts +275 -0
  549. package/dist/utils/logging/log-query.d.ts.map +1 -0
  550. package/dist/utils/logging/log-query.js +621 -0
  551. package/dist/utils/logging/log-query.js.map +1 -0
  552. package/dist/utils/logging/log-query.spec.d.ts +2 -0
  553. package/dist/utils/logging/log-query.spec.d.ts.map +1 -0
  554. package/dist/utils/logging/log-query.spec.js +737 -0
  555. package/dist/utils/logging/log-query.spec.js.map +1 -0
  556. package/dist/utils/logging/logger-provider.d.ts +73 -0
  557. package/dist/utils/logging/logger-provider.d.ts.map +1 -0
  558. package/dist/utils/logging/logger-provider.js +298 -0
  559. package/dist/utils/logging/logger-provider.js.map +1 -0
  560. package/dist/utils/logging/logger-provider.spec.d.ts +2 -0
  561. package/dist/utils/logging/logger-provider.spec.d.ts.map +1 -0
  562. package/dist/utils/logging/logger-provider.spec.js +204 -0
  563. package/dist/utils/logging/logger-provider.spec.js.map +1 -0
  564. package/dist/utils/logging/performance.d.ts +147 -0
  565. package/dist/utils/logging/performance.d.ts.map +1 -0
  566. package/dist/utils/logging/performance.js +520 -0
  567. package/dist/utils/logging/performance.js.map +1 -0
  568. package/dist/utils/logging/performance.spec.d.ts +2 -0
  569. package/dist/utils/logging/performance.spec.d.ts.map +1 -0
  570. package/dist/utils/logging/performance.spec.js +139 -0
  571. package/dist/utils/logging/performance.spec.js.map +1 -0
  572. package/dist/utils/logging/pino-logger.d.ts +22 -0
  573. package/dist/utils/logging/pino-logger.d.ts.map +1 -0
  574. package/dist/utils/logging/pino-logger.js +372 -0
  575. package/dist/utils/logging/pino-logger.js.map +1 -0
  576. package/dist/utils/logging/pino-logger.spec.d.ts +2 -0
  577. package/dist/utils/logging/pino-logger.spec.d.ts.map +1 -0
  578. package/dist/utils/logging/pino-logger.spec.js +294 -0
  579. package/dist/utils/logging/pino-logger.spec.js.map +1 -0
  580. package/dist/utils/logging/redaction.d.ts +38 -0
  581. package/dist/utils/logging/redaction.d.ts.map +1 -0
  582. package/dist/utils/logging/redaction.js +210 -0
  583. package/dist/utils/logging/redaction.js.map +1 -0
  584. package/dist/utils/logging/redaction.spec.d.ts +2 -0
  585. package/dist/utils/logging/redaction.spec.d.ts.map +1 -0
  586. package/dist/utils/logging/redaction.spec.js +338 -0
  587. package/dist/utils/logging/redaction.spec.js.map +1 -0
  588. package/dist/utils/logging/request-tracker.d.ts +189 -0
  589. package/dist/utils/logging/request-tracker.d.ts.map +1 -0
  590. package/dist/utils/logging/request-tracker.js +569 -0
  591. package/dist/utils/logging/request-tracker.js.map +1 -0
  592. package/dist/utils/logging/request-tracker.spec.d.ts +2 -0
  593. package/dist/utils/logging/request-tracker.spec.d.ts.map +1 -0
  594. package/dist/utils/logging/request-tracker.spec.js +868 -0
  595. package/dist/utils/logging/request-tracker.spec.js.map +1 -0
  596. package/dist/utils/logging/transports.d.ts +55 -0
  597. package/dist/utils/logging/transports.d.ts.map +1 -0
  598. package/dist/utils/logging/transports.js +252 -0
  599. package/dist/utils/logging/transports.js.map +1 -0
  600. package/dist/utils/logging/transports.spec.d.ts +2 -0
  601. package/dist/utils/logging/transports.spec.d.ts.map +1 -0
  602. package/dist/utils/logging/transports.spec.js +390 -0
  603. package/dist/utils/logging/transports.spec.js.map +1 -0
  604. package/dist/utils/logging/types.d.ts +173 -0
  605. package/dist/utils/logging/types.d.ts.map +1 -0
  606. package/dist/utils/logging/types.js +5 -0
  607. package/dist/utils/logging/types.js.map +1 -0
  608. package/dist/utils/message-queue.d.ts +64 -4
  609. package/dist/utils/message-queue.d.ts.map +1 -1
  610. package/dist/utils/message-queue.js +282 -28
  611. package/dist/utils/message-queue.js.map +1 -1
  612. package/dist/utils/paste-utils.spec.js +1 -1
  613. package/dist/utils/paste-utils.spec.js.map +1 -1
  614. package/dist/utils/prompt-processor.d.ts +2 -3
  615. package/dist/utils/prompt-processor.d.ts.map +1 -1
  616. package/dist/utils/prompt-processor.js +4 -52
  617. package/dist/utils/prompt-processor.js.map +1 -1
  618. package/dist/utils/tool-cancellation.spec.js.map +1 -1
  619. package/dist/utils/tool-result-display.d.ts +2 -2
  620. package/dist/utils/tool-result-display.d.ts.map +1 -1
  621. package/dist/utils/tool-result-display.js +3 -3
  622. package/dist/utils/tool-result-display.js.map +1 -1
  623. package/dist/utils/update-checker.d.ts.map +1 -1
  624. package/dist/utils/update-checker.js +1 -1
  625. package/dist/utils/update-checker.js.map +1 -1
  626. package/dist/utils/update-checker.spec.js +2 -2
  627. package/dist/utils/update-checker.spec.js.map +1 -1
  628. package/dist/vscode/extension-installer.js +1 -1
  629. package/dist/vscode/extension-installer.js.map +1 -1
  630. package/dist/vscode/extension-installer.spec.js +1 -1
  631. package/dist/vscode/extension-installer.spec.js.map +1 -1
  632. package/dist/vscode/protocol.spec.js +1 -1
  633. package/dist/vscode/protocol.spec.js.map +1 -1
  634. package/dist/vscode/vscode-server.d.ts.map +1 -1
  635. package/dist/vscode/vscode-server.js +2 -2
  636. package/dist/vscode/vscode-server.js.map +1 -1
  637. package/dist/vscode/vscode-server.spec.js.map +1 -1
  638. package/dist/wizard/config-wizard.d.ts.map +1 -1
  639. package/dist/wizard/config-wizard.js +16 -12
  640. package/dist/wizard/config-wizard.js.map +1 -1
  641. package/dist/wizard/steps/location-step.js +4 -4
  642. package/dist/wizard/steps/location-step.js.map +1 -1
  643. package/dist/wizard/steps/mcp-step.d.ts.map +1 -1
  644. package/dist/wizard/steps/mcp-step.js +4 -4
  645. package/dist/wizard/steps/mcp-step.js.map +1 -1
  646. package/dist/wizard/steps/provider-step.d.ts.map +1 -1
  647. package/dist/wizard/steps/provider-step.js +4 -4
  648. package/dist/wizard/steps/provider-step.js.map +1 -1
  649. package/dist/wizard/steps/summary-step.d.ts.map +1 -1
  650. package/dist/wizard/steps/summary-step.js +2 -2
  651. package/dist/wizard/steps/summary-step.js.map +1 -1
  652. package/dist/wizard/templates/provider-templates.d.ts.map +1 -1
  653. package/dist/wizard/templates/provider-templates.js +66 -2
  654. package/dist/wizard/templates/provider-templates.js.map +1 -1
  655. package/dist/wizard/validation-array.spec.js +1 -1
  656. package/dist/wizard/validation-array.spec.js.map +1 -1
  657. package/dist/wizard/validation.spec.js +1 -1
  658. package/dist/wizard/validation.spec.js.map +1 -1
  659. package/package.json +28 -26
  660. package/source/app/prompts/main-prompt.md +29 -96
  661. package/dist/commands/recommendations.d.ts +0 -8
  662. package/dist/commands/recommendations.d.ts.map +0 -1
  663. package/dist/commands/recommendations.js +0 -311
  664. package/dist/commands/recommendations.js.map +0 -1
  665. package/dist/commands/streaming.d.ts +0 -3
  666. package/dist/commands/streaming.d.ts.map +0 -1
  667. package/dist/commands/streaming.js +0 -23
  668. package/dist/commands/streaming.js.map +0 -1
  669. package/dist/components/thinking-indicator.d.ts +0 -3
  670. package/dist/components/thinking-indicator.d.ts.map +0 -1
  671. package/dist/components/thinking-indicator.js +0 -69
  672. package/dist/components/thinking-indicator.js.map +0 -1
  673. package/dist/recommendations/model-database.d.ts +0 -8
  674. package/dist/recommendations/model-database.d.ts.map +0 -1
  675. package/dist/recommendations/model-database.js +0 -514
  676. package/dist/recommendations/model-database.js.map +0 -1
  677. package/dist/recommendations/model-engine.d.ts +0 -16
  678. package/dist/recommendations/model-engine.d.ts.map +0 -1
  679. package/dist/recommendations/model-engine.js +0 -185
  680. package/dist/recommendations/model-engine.js.map +0 -1
  681. package/dist/recommendations/recommendation-engine.d.ts +0 -39
  682. package/dist/recommendations/recommendation-engine.d.ts.map +0 -1
  683. package/dist/recommendations/recommendation-engine.js +0 -144
  684. package/dist/recommendations/recommendation-engine.js.map +0 -1
  685. package/dist/system/detector.d.ts +0 -18
  686. package/dist/system/detector.d.ts.map +0 -1
  687. package/dist/system/detector.js +0 -140
  688. package/dist/system/detector.js.map +0 -1
@@ -0,0 +1,141 @@
1
+ import { tmpdir } from 'os';
2
+ import { resolve } from 'path';
3
+ import test from 'ava';
4
+ import { readFile, unlink, writeFile } from 'fs/promises';
5
+ import { createFileTool } from './create-file.js';
6
+ import { executeBashTool } from './execute-bash.js';
7
+ import { readFileTool } from './read-file.js';
8
+ // ============================================================================
9
+ // Tests for AI SDK v6 Native Tools
10
+ // ============================================================================
11
+ // These tests validate that the native AI SDK tools work correctly with their
12
+ // execute functions. Since tools now only export the native AI SDK tool,
13
+ // there's no separate handler to compare against.
14
+ // ============================================================================
15
+ // Bash Execute Function
16
+ // ============================================================================
17
+ test('execute_bash tool works correctly', async (t) => {
18
+ const result = (await executeBashTool.tool.execute({ command: 'echo "test"' }, {
19
+ toolCallId: 'test-1',
20
+ messages: [],
21
+ }));
22
+ t.truthy(result);
23
+ t.regex(result, /test/);
24
+ });
25
+ test('execute_bash includes exit code', async (t) => {
26
+ const result = (await executeBashTool.tool.execute({ command: 'echo "success"' }, {
27
+ toolCallId: 'test-2',
28
+ messages: [],
29
+ }));
30
+ t.truthy(result);
31
+ t.regex(result, /EXIT_CODE: 0/);
32
+ });
33
+ test('execute_bash captures stderr', async (t) => {
34
+ const result = (await executeBashTool.tool.execute({ command: 'echo "error" >&2' }, {
35
+ toolCallId: 'test-3',
36
+ messages: [],
37
+ }));
38
+ t.truthy(result);
39
+ t.regex(result, /STDERR:/);
40
+ t.regex(result, /error/);
41
+ });
42
+ test('execute_bash tool name constant is correct', t => {
43
+ t.is(executeBashTool.name, 'execute_bash');
44
+ });
45
+ // ============================================================================
46
+ // Read File Execute Function
47
+ // ============================================================================
48
+ test('read_file reads existing file', async (t) => {
49
+ const testFile = resolve(tmpdir(), `nanocoder-test-${Date.now()}.txt`);
50
+ await writeFile(testFile, 'test content', 'utf-8');
51
+ try {
52
+ const result = (await readFileTool.tool.execute({ path: testFile }, {
53
+ toolCallId: 'test-4',
54
+ messages: [],
55
+ }));
56
+ t.truthy(result);
57
+ t.regex(result, /test content/);
58
+ }
59
+ finally {
60
+ await unlink(testFile).catch(() => { });
61
+ }
62
+ });
63
+ test('read_file handles non-existent file', async (t) => {
64
+ const nonExistentFile = resolve(tmpdir(), 'non-existent-file.txt');
65
+ await t.throwsAsync(async () => {
66
+ await readFileTool.tool.execute({ path: nonExistentFile }, {
67
+ toolCallId: 'test-5',
68
+ messages: [],
69
+ });
70
+ }, { message: /does not exist|no such file or directory|ENOENT/i });
71
+ });
72
+ test('read_file reads with line ranges', async (t) => {
73
+ const testFile = resolve(tmpdir(), `nanocoder-test-${Date.now()}.txt`);
74
+ await writeFile(testFile, 'line1\nline2\nline3\nline4\nline5', 'utf-8');
75
+ try {
76
+ const result = (await readFileTool.tool.execute({ path: testFile, start_line: 2, end_line: 4 }, {
77
+ toolCallId: 'test-6',
78
+ messages: [],
79
+ }));
80
+ t.truthy(result);
81
+ t.regex(result, /line2/);
82
+ t.regex(result, /line3/);
83
+ t.regex(result, /line4/);
84
+ t.notRegex(result, /line1/);
85
+ t.notRegex(result, /line5/);
86
+ }
87
+ finally {
88
+ await unlink(testFile).catch(() => { });
89
+ }
90
+ });
91
+ test('read_file tool name constant is correct', t => {
92
+ t.is(readFileTool.name, 'read_file');
93
+ });
94
+ // ============================================================================
95
+ // Create File Execute Function
96
+ // ============================================================================
97
+ test('create_file creates file', async (t) => {
98
+ const testFile = resolve(tmpdir(), `nanocoder-test-${Date.now()}.txt`);
99
+ try {
100
+ const result = (await createFileTool.tool.execute({
101
+ path: testFile,
102
+ content: 'created by test',
103
+ }, {
104
+ toolCallId: 'test-7',
105
+ messages: [],
106
+ }));
107
+ t.is(result, 'File written successfully');
108
+ // Verify file was created
109
+ const content = await readFile(testFile, 'utf-8');
110
+ t.is(content, 'created by test');
111
+ }
112
+ finally {
113
+ await unlink(testFile).catch(() => { });
114
+ }
115
+ });
116
+ test('create_file overwrites existing file', async (t) => {
117
+ const testFile = resolve(tmpdir(), `nanocoder-test-${Date.now()}.txt`);
118
+ try {
119
+ // Create initial file
120
+ await writeFile(testFile, 'old content', 'utf-8');
121
+ // Overwrite with create_file
122
+ const result = (await createFileTool.tool.execute({
123
+ path: testFile,
124
+ content: 'new content',
125
+ }, {
126
+ toolCallId: 'test-8',
127
+ messages: [],
128
+ }));
129
+ t.is(result, 'File written successfully');
130
+ // Verify file was overwritten
131
+ const content = await readFile(testFile, 'utf-8');
132
+ t.is(content, 'new content');
133
+ }
134
+ finally {
135
+ await unlink(testFile).catch(() => { });
136
+ }
137
+ });
138
+ test('create_file tool name constant is correct', t => {
139
+ t.is(createFileTool.name, 'create_file');
140
+ });
141
+ //# sourceMappingURL=execute-function.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-function.spec.js","sourceRoot":"","sources":["../../source/tools/execute-function.spec.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,17 @@
1
- import type { ToolDefinition } from '../types/index.js';
2
- export declare const fetchUrlTool: ToolDefinition;
1
+ import React from 'react';
2
+ interface FetchArgs {
3
+ url: string;
4
+ }
5
+ export declare const fetchUrlTool: {
6
+ name: "fetch_url";
7
+ tool: import("ai").Tool<FetchArgs, string>;
8
+ formatter: (args: FetchArgs, result?: string) => Promise<React.ReactElement>;
9
+ validator: (args: FetchArgs) => Promise<{
10
+ valid: true;
11
+ } | {
12
+ valid: false;
13
+ error: string;
14
+ }>;
15
+ };
16
+ export {};
3
17
  //# sourceMappingURL=fetch-url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-url.d.ts","sourceRoot":"","sources":["../../source/tools/fetch-url.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAiKlD,eAAO,MAAM,YAAY,EAAE,cAO1B,CAAC"}
1
+ {"version":3,"file":"fetch-url.d.ts","sourceRoot":"","sources":["../../source/tools/fetch-url.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,UAAU,SAAS;IAClB,GAAG,EAAE,MAAM,CAAC;CACZ;AA4JD,eAAO,MAAM,YAAY;;;sBA9ClB,SAAS,WACN,MAAM,KACb,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;sBAKvB,SAAS,KACb,OAAO,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAC,GAAG;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC;CA2CxD,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { convertToMarkdown } from '@nanocollective/get-md';
3
+ import { Box, Text } from 'ink';
3
4
  import React from 'react';
4
- import { Text, Box } from 'ink';
5
- import { tool, jsonSchema } from '../types/core.js';
6
- import { ThemeContext } from '../hooks/useTheme.js';
7
5
  import ToolMessage from '../components/tool-message.js';
6
+ import { ThemeContext } from '../hooks/useTheme.js';
7
+ import { jsonSchema, tool } from '../types/core.js';
8
8
  const executeFetchUrl = async (args) => {
9
9
  // Validate URL
10
10
  try {
@@ -33,7 +33,6 @@ const executeFetchUrl = async (args) => {
33
33
  throw new Error(`Failed to fetch URL: ${message}`);
34
34
  }
35
35
  };
36
- // AI SDK tool definition
37
36
  const fetchUrlCoreTool = tool({
38
37
  description: 'Fetch and parse markdown content from a URL',
39
38
  inputSchema: jsonSchema({
@@ -46,7 +45,11 @@ const fetchUrlCoreTool = tool({
46
45
  },
47
46
  required: ['url'],
48
47
  }),
49
- // NO execute function - prevents AI SDK auto-execution
48
+ // Low risk: read-only operation, never requires approval
49
+ needsApproval: false,
50
+ execute: async (args, _options) => {
51
+ return await executeFetchUrl(args);
52
+ },
50
53
  });
51
54
  // Create a component that will re-render when theme changes
52
55
  const FetchUrlFormatter = React.memo(({ args, result }) => {
@@ -68,10 +71,10 @@ const FetchUrlFormatter = React.memo(({ args, result }) => {
68
71
  const messageContent = (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.tool, children: "\u2692 fetch_url" }), _jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "URL: " }), _jsx(Text, { color: colors.white, children: url })] }), result && (_jsxs(_Fragment, { children: [_jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Content: " }), _jsxs(Text, { color: colors.white, children: [contentSize.toLocaleString(), " characters (~", estimatedTokens, ' ', "tokens)"] })] }), wasTruncated && (_jsx(Box, { children: _jsx(Text, { color: colors.warning, children: "\u26A0 Content was truncated to 100KB" }) }))] }))] }));
69
72
  return _jsx(ToolMessage, { message: messageContent, hideBox: true });
70
73
  });
71
- const formatter = (args, result) => {
74
+ const fetchUrlFormatter = (args, result) => {
72
75
  return Promise.resolve(_jsx(FetchUrlFormatter, { args: args, result: result }));
73
76
  };
74
- const validator = (args) => {
77
+ const fetchUrlValidator = (args) => {
75
78
  // Validate URL format
76
79
  try {
77
80
  const parsedUrl = new URL(args.url);
@@ -104,13 +107,10 @@ const validator = (args) => {
104
107
  });
105
108
  }
106
109
  };
107
- // Nanocoder tool definition with AI SDK core tool + custom extensions
108
110
  export const fetchUrlTool = {
109
111
  name: 'fetch_url',
110
- tool: fetchUrlCoreTool, // Native AI SDK tool (no execute)
111
- handler: executeFetchUrl,
112
- formatter,
113
- validator,
114
- requiresConfirmation: false,
112
+ tool: fetchUrlCoreTool,
113
+ formatter: fetchUrlFormatter,
114
+ validator: fetchUrlValidator,
115
115
  };
116
116
  //# sourceMappingURL=fetch-url.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-url.js","sourceRoot":"","sources":["../../source/tools/fetch-url.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-url.js","sourceRoot":"","sources":["../../source/tools/fetch-url.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,19 @@
1
- import type { ToolDefinition } from '../types/index.js';
2
- export declare const findFilesTool: ToolDefinition;
1
+ import React from 'react';
2
+ interface FindFilesArgs {
3
+ pattern: string;
4
+ maxResults?: number;
5
+ }
6
+ interface FindFilesFormatterProps {
7
+ args: {
8
+ pattern: string;
9
+ maxResults?: number;
10
+ };
11
+ result?: string;
12
+ }
13
+ export declare const findFilesTool: {
14
+ name: "find_files";
15
+ tool: import("ai").Tool<FindFilesArgs, string>;
16
+ formatter: (args: FindFilesFormatterProps["args"], result?: string) => React.ReactElement;
17
+ };
18
+ export {};
3
19
  //# sourceMappingURL=find-files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"find-files.d.ts","sourceRoot":"","sources":["../../source/tools/find-files.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAiPlD,eAAO,MAAM,aAAa,EAAE,cAM3B,CAAC"}
1
+ {"version":3,"file":"find-files.d.ts","sourceRoot":"","sources":["../../source/tools/find-files.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,OAAO,CAAC;AAmI1B,UAAU,aAAa;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAwDD,UAAU,uBAAuB;IAChC,IAAI,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAkDD,eAAO,MAAM,aAAa;;;sBATnB,uBAAuB,CAAC,MAAM,CAAC,WAC5B,MAAM,KACb,KAAK,CAAC,YAAY;CAWpB,CAAC"}
@@ -1,14 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { exec } from 'node:child_process';
3
- import { promisify } from 'node:util';
4
- import { readFileSync, existsSync } from 'node:fs';
3
+ import { existsSync, readFileSync } from 'node:fs';
5
4
  import { join } from 'node:path';
6
- import React from 'react';
5
+ import { promisify } from 'node:util';
7
6
  import ignore from 'ignore';
8
- import { Text, Box } from 'ink';
9
- import { tool, jsonSchema } from '../types/core.js';
10
- import { ThemeContext } from '../hooks/useTheme.js';
7
+ import { Box, Text } from 'ink';
8
+ import React from 'react';
11
9
  import ToolMessage from '../components/tool-message.js';
10
+ import { ThemeContext } from '../hooks/useTheme.js';
11
+ import { jsonSchema, tool } from '../types/core.js';
12
12
  const execAsync = promisify(exec);
13
13
  /**
14
14
  * Load and parse .gitignore file, returns an ignore instance
@@ -134,7 +134,6 @@ const executeFindFiles = async (args) => {
134
134
  throw new Error(`File search failed: ${errorMessage}`);
135
135
  }
136
136
  };
137
- // AI SDK tool definition
138
137
  const findFilesCoreTool = tool({
139
138
  description: 'Find files and directories by path pattern or name. Use glob patterns like "*.tsx", "**/*.ts", "src/**/*.js", or "*.{ts,tsx}". Returns a list of matching file and directory paths. Does NOT search file contents - use search_file_contents for that.',
140
139
  inputSchema: jsonSchema({
@@ -151,6 +150,11 @@ const findFilesCoreTool = tool({
151
150
  },
152
151
  required: ['pattern'],
153
152
  }),
153
+ // Low risk: read-only operation, never requires approval
154
+ needsApproval: false,
155
+ execute: async (args, _options) => {
156
+ return await executeFindFiles(args);
157
+ },
154
158
  });
155
159
  const FindFilesFormatter = React.memo(({ args, result }) => {
156
160
  const themeContext = React.useContext(ThemeContext);
@@ -170,7 +174,7 @@ const FindFilesFormatter = React.memo(({ args, result }) => {
170
174
  const messageContent = (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.tool, children: "\u2692 find_files" }), _jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Pattern: " }), _jsx(Text, { color: colors.white, children: args.pattern })] }), _jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Results: " }), _jsx(Text, { color: colors.white, children: fileCount })] })] }));
171
175
  return _jsx(ToolMessage, { message: messageContent, hideBox: true });
172
176
  });
173
- const formatter = (args, result) => {
177
+ const findFilesFormatter = (args, result) => {
174
178
  if (result && result.startsWith('Error:')) {
175
179
  return _jsx(_Fragment, {});
176
180
  }
@@ -179,8 +183,6 @@ const formatter = (args, result) => {
179
183
  export const findFilesTool = {
180
184
  name: 'find_files',
181
185
  tool: findFilesCoreTool,
182
- handler: executeFindFiles,
183
- formatter,
184
- requiresConfirmation: false,
186
+ formatter: findFilesFormatter,
185
187
  };
186
188
  //# sourceMappingURL=find-files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"find-files.js","sourceRoot":"","sources":["../../source/tools/find-files.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-files.js","sourceRoot":"","sources":["../../source/tools/find-files.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
+ import type { AISDKCoreTool, ToolHandler } from '../types/index.js';
1
2
  import React from 'react';
2
- import type { ToolHandler, ToolDefinition, AISDKCoreTool } from '../types/index.js';
3
- export declare const toolDefinitions: ToolDefinition[];
4
- export declare const toolRegistry: Record<string, ToolHandler>;
5
3
  export declare const nativeToolsRegistry: Record<string, AISDKCoreTool>;
4
+ export declare const toolRegistry: Record<string, ToolHandler>;
6
5
  export declare const toolFormatters: Record<string, (args: any) => string | Promise<string> | React.ReactElement | Promise<React.ReactElement>>;
7
6
  export declare const toolValidators: Record<string, (args: any) => Promise<{
8
7
  valid: true;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/tools/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AAE9E,eAAO,MAAM,eAAe,EAAE,cAAc,EAY3C,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAEpD,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CACO,CAAC;AAGtE,eAAO,MAAM,cAAc,EAAE,MAAM,CAClC,MAAM,EACN,CAEC,IAAI,EAAE,GAAG,KAEP,MAAM,GACN,OAAO,CAAC,MAAM,CAAC,GACf,KAAK,CAAC,YAAY,GAClB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAW9B,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,MAAM,CAClC,MAAM,EAEN,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAC,GAAG;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC,CAWrE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/tools/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACX,aAAa,EAEb,WAAW,EACX,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CACN,CAAC;AAIzD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAepD,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,MAAM,CAClC,MAAM,EACN,CAEC,IAAI,EAAE,GAAG,KAEP,MAAM,GACN,OAAO,CAAC,MAAM,CAAC,GACf,KAAK,CAAC,YAAY,GAClB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAmB9B,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,MAAM,CAClC,MAAM,EAEN,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAC,GAAG;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC,CAarE,CAAC"}
@@ -1,15 +1,17 @@
1
- import { readFileTool } from '../tools/read-file.js';
2
1
  import { createFileTool } from '../tools/create-file.js';
3
- import { insertLinesTool } from '../tools/insert-lines.js';
4
- import { replaceLinesTool } from '../tools/replace-lines.js';
5
2
  import { deleteLinesTool } from '../tools/delete-lines.js';
6
3
  import { executeBashTool } from '../tools/execute-bash.js';
7
- import { webSearchTool } from '../tools/web-search.js';
8
4
  import { fetchUrlTool } from '../tools/fetch-url.js';
9
5
  import { findFilesTool } from '../tools/find-files.js';
10
- import { searchFileContentsTool } from '../tools/search-file-contents.js';
6
+ import { insertLinesTool } from '../tools/insert-lines.js';
11
7
  import { getDiagnosticsTool } from '../tools/lsp-get-diagnostics.js';
12
- export const toolDefinitions = [
8
+ import { readFileTool } from '../tools/read-file.js';
9
+ import { replaceLinesTool } from '../tools/replace-lines.js';
10
+ import { searchFileContentsTool } from '../tools/search-file-contents.js';
11
+ import { webSearchTool } from '../tools/web-search.js';
12
+ // Array of all tool exports from individual tool files
13
+ // Each tool exports: { name, tool, formatter?, validator? }
14
+ const allTools = [
13
15
  readFileTool,
14
16
  createFileTool,
15
17
  insertLinesTool,
@@ -22,28 +24,36 @@ export const toolDefinitions = [
22
24
  searchFileContentsTool,
23
25
  getDiagnosticsTool,
24
26
  ];
27
+ // Export native AI SDK tools registry (for passing directly to AI SDK)
28
+ export const nativeToolsRegistry = Object.fromEntries(allTools.map(t => [t.name, t.tool]));
25
29
  // Export handlers for manual execution (human-in-the-loop)
26
- export const toolRegistry = Object.fromEntries(toolDefinitions.map(def => [def.name, def.handler]));
27
- // Native AI SDK tools registry (for passing directly to AI SDK)
28
- export const nativeToolsRegistry = Object.fromEntries(toolDefinitions.map(def => [def.name, def.tool]));
30
+ // These are extracted from the AI SDK tools' execute functions
31
+ export const toolRegistry = Object.fromEntries(allTools.map(t => [
32
+ t.name,
33
+ // Extract the execute function from the AI SDK tool
34
+ // biome-ignore lint/suspicious/noExplicitAny: Dynamic typing required
35
+ async (args) => {
36
+ // Call the tool's execute function with a dummy options object
37
+ // The actual options will be provided by AI SDK during automatic execution
38
+ // biome-ignore lint/suspicious/noExplicitAny: Dynamic typing required
39
+ return await t.tool.execute(args, {
40
+ toolCallId: 'manual',
41
+ messages: [],
42
+ });
43
+ },
44
+ ]));
29
45
  // Export formatter registry for the UI
30
- export const toolFormatters = Object.fromEntries(toolDefinitions
31
- .filter(def => def.formatter)
32
- .map(def => {
33
- const formatter = def.formatter;
34
- if (!formatter) {
35
- throw new Error(`Formatter is undefined for tool ${def.name}`);
46
+ export const toolFormatters = allTools.reduce((acc, t) => {
47
+ if ('formatter' in t && t.formatter) {
48
+ acc[t.name] = t.formatter;
36
49
  }
37
- return [def.name, formatter];
38
- }));
50
+ return acc;
51
+ }, {});
39
52
  // Export validator registry
40
- export const toolValidators = Object.fromEntries(toolDefinitions
41
- .filter(def => def.validator)
42
- .map(def => {
43
- const validator = def.validator;
44
- if (!validator) {
45
- throw new Error(`Validator is undefined for tool ${def.name}`);
53
+ export const toolValidators = allTools.reduce((acc, t) => {
54
+ if ('validator' in t && t.validator) {
55
+ acc[t.name] = t.validator;
46
56
  }
47
- return [def.name, validator];
48
- }));
57
+ return acc;
58
+ }, {});
49
59
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AAI/D,MAAM,CAAC,MAAM,eAAe,GAAqB;IAChD,YAAY;IACZ,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,aAAa;IACb,YAAY;IACZ,aAAa;IACb,sBAAsB;IACtB,kBAAkB;CAClB,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,YAAY,GAAgC,MAAM,CAAC,WAAW,CAC1E,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CACnD,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,mBAAmB,GAC/B,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEtE,uCAAuC;AACvC,MAAM,CAAC,MAAM,cAAc,GAUvB,MAAM,CAAC,WAAW,CACrB,eAAe;KACb,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;KAC5B,GAAG,CAAC,GAAG,CAAC,EAAE;IACV,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IAChC,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC9B,CAAC,CAAC,CACH,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,cAAc,GAIvB,MAAM,CAAC,WAAW,CACrB,eAAe;KACb,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;KAC5B,GAAG,CAAC,GAAG,CAAC,EAAE;IACV,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IAChC,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC9B,CAAC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAQjD,uDAAuD;AACvD,4DAA4D;AAC5D,MAAM,QAAQ,GAA0B;IACvC,YAAY;IACZ,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,aAAa;IACb,YAAY;IACZ,aAAa;IACb,sBAAsB;IACtB,kBAAkB;CAClB,CAAC;AAEF,uEAAuE;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAC/B,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEzD,2DAA2D;AAC3D,+DAA+D;AAC/D,MAAM,CAAC,MAAM,YAAY,GAAgC,MAAM,CAAC,WAAW,CAC1E,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACjB,CAAC,CAAC,IAAI;IACN,oDAAoD;IACpD,sEAAsE;IACtE,KAAK,EAAE,IAAS,EAAE,EAAE;QACnB,+DAA+D;QAC/D,2EAA2E;QAC3E,sEAAsE;QACtE,OAAO,MAAO,CAAC,CAAC,IAAY,CAAC,OAAO,CAAC,IAAI,EAAE;YAC1C,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,EAAE;SACZ,CAAC,CAAC;IACJ,CAAC;CACD,CAAC,CACF,CAAC;AAEF,uCAAuC;AACvC,MAAM,CAAC,MAAM,cAAc,GAUvB,QAAQ,CAAC,MAAM,CAClB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;IACV,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QACrC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,EACD,EAUC,CACD,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,cAAc,GAIvB,QAAQ,CAAC,MAAM,CAClB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;IACV,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QACrC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,EACD,EAIC,CACD,CAAC"}
@@ -1,3 +1,19 @@
1
- import type { ToolDefinition } from '../types/index.js';
2
- export declare const insertLinesTool: ToolDefinition;
1
+ import React from 'react';
2
+ interface InsertLinesArgs {
3
+ path: string;
4
+ line_number: number;
5
+ content: string;
6
+ }
7
+ export declare const insertLinesTool: {
8
+ name: "insert_lines";
9
+ tool: import("ai").Tool<InsertLinesArgs, string>;
10
+ formatter: (args: InsertLinesArgs, result?: string) => Promise<React.ReactElement>;
11
+ validator: (args: InsertLinesArgs) => Promise<{
12
+ valid: true;
13
+ } | {
14
+ valid: false;
15
+ error: string;
16
+ }>;
17
+ };
18
+ export {};
3
19
  //# sourceMappingURL=insert-lines.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"insert-lines.d.ts","sourceRoot":"","sources":["../../source/tools/insert-lines.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAgclD,eAAO,MAAM,eAAe,EAAE,cAM7B,CAAC"}
1
+ {"version":3,"file":"insert-lines.d.ts","sourceRoot":"","sources":["../../source/tools/insert-lines.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,UAAU,eAAe;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CAChB;AAsbD,eAAO,MAAM,eAAe;;;sBA/GrB,eAAe,WACZ,MAAM,KACb,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;sBAkDvB,eAAe,KACnB,OAAO,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAC,GAAG;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC;CA+DxD,CAAC"}
@@ -1,15 +1,16 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import React from 'react';
3
- import { resolve } from 'node:path';
4
- import { readFile, writeFile, access } from 'node:fs/promises';
5
2
  import { constants } from 'node:fs';
3
+ import { access, readFile, writeFile } from 'node:fs/promises';
4
+ import { resolve } from 'node:path';
6
5
  import { highlight } from 'cli-highlight';
7
- import { Text, Box } from 'ink';
8
- import { tool, jsonSchema } from '../types/core.js';
6
+ import { Box, Text } from 'ink';
7
+ import React from 'react';
8
+ import ToolMessage from '../components/tool-message.js';
9
9
  import { getColors } from '../config/index.js';
10
+ import { getCurrentMode } from '../context/mode-context.js';
11
+ import { jsonSchema, tool } from '../types/core.js';
10
12
  import { getLanguageFromExtension } from '../utils/programming-language-helper.js';
11
- import ToolMessage from '../components/tool-message.js';
12
- import { isVSCodeConnected, sendFileChangeToVSCode, closeDiffInVSCode, } from '../vscode/index.js';
13
+ import { closeDiffInVSCode, isVSCodeConnected, sendFileChangeToVSCode, } from '../vscode/index.js';
13
14
  const executeInsertLines = async (args) => {
14
15
  const { path, line_number, content } = args;
15
16
  // Validate line number
@@ -40,7 +41,6 @@ const executeInsertLines = async (args) => {
40
41
  }
41
42
  return `Successfully inserted ${insertLines.length} line${insertLines.length > 1 ? 's' : ''} at line ${line_number}.${fileContext}`;
42
43
  };
43
- // AI SDK tool definition
44
44
  const insertLinesCoreTool = tool({
45
45
  description: 'Insert new lines at a specific line number in a file',
46
46
  inputSchema: jsonSchema({
@@ -61,7 +61,14 @@ const insertLinesCoreTool = tool({
61
61
  },
62
62
  required: ['path', 'line_number', 'content'],
63
63
  }),
64
- // NO execute function - prevents AI SDK auto-execution
64
+ // Medium risk: file write operation, requires approval except in auto-accept mode
65
+ needsApproval: () => {
66
+ const mode = getCurrentMode();
67
+ return mode !== 'auto-accept'; // true in normal/plan, false in auto-accept
68
+ },
69
+ execute: async (args, _options) => {
70
+ return await executeInsertLines(args);
71
+ },
65
72
  });
66
73
  const InsertLinesFormatter = React.memo(({ preview }) => {
67
74
  return preview;
@@ -169,7 +176,7 @@ async function formatInsertLinesPreview(args, result, colors) {
169
176
  }
170
177
  // Track VS Code change IDs for cleanup
171
178
  const vscodeChangeIds = new Map();
172
- const formatter = async (args, result) => {
179
+ const insertLinesFormatter = async (args, result) => {
173
180
  const colors = getColors();
174
181
  const { path } = args;
175
182
  const absPath = resolve(path);
@@ -209,7 +216,7 @@ const formatter = async (args, result) => {
209
216
  const preview = await formatInsertLinesPreview(args, result, colors);
210
217
  return _jsx(InsertLinesFormatter, { preview: preview });
211
218
  };
212
- const validator = async (args) => {
219
+ const insertLinesValidator = async (args) => {
213
220
  const { path, line_number } = args;
214
221
  // Check if file exists
215
222
  const absPath = resolve(path);
@@ -259,12 +266,10 @@ const validator = async (args) => {
259
266
  }
260
267
  return { valid: true };
261
268
  };
262
- // Nanocoder tool definition with AI SDK core tool + custom extensions
263
269
  export const insertLinesTool = {
264
270
  name: 'insert_lines',
265
- tool: insertLinesCoreTool, // Native AI SDK tool (no execute)
266
- handler: executeInsertLines,
267
- formatter,
268
- validator,
271
+ tool: insertLinesCoreTool,
272
+ formatter: insertLinesFormatter,
273
+ validator: insertLinesValidator,
269
274
  };
270
275
  //# sourceMappingURL=insert-lines.js.map