@nanocollective/nanocoder 1.19.2 → 1.20.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 (1114) hide show
  1. package/README.md +16 -4
  2. package/assets/nanocoder-vscode.vsix +0 -0
  3. package/dist/{ai-sdk-client.d.ts → ai-sdk-client/ai-sdk-client.d.ts} +1 -24
  4. package/dist/ai-sdk-client/ai-sdk-client.d.ts.map +1 -0
  5. package/dist/ai-sdk-client/ai-sdk-client.js +122 -0
  6. package/dist/ai-sdk-client/ai-sdk-client.js.map +1 -0
  7. package/dist/ai-sdk-client/chat/chat-handler.d.ts +17 -0
  8. package/dist/ai-sdk-client/chat/chat-handler.d.ts.map +1 -0
  9. package/dist/ai-sdk-client/chat/chat-handler.js +235 -0
  10. package/dist/ai-sdk-client/chat/chat-handler.js.map +1 -0
  11. package/dist/ai-sdk-client/chat/streaming-handler.d.ts +27 -0
  12. package/dist/ai-sdk-client/chat/streaming-handler.d.ts.map +1 -0
  13. package/dist/ai-sdk-client/chat/streaming-handler.js +83 -0
  14. package/dist/ai-sdk-client/chat/streaming-handler.js.map +1 -0
  15. package/dist/ai-sdk-client/chat/tool-processor.d.ts +10 -0
  16. package/dist/ai-sdk-client/chat/tool-processor.d.ts.map +1 -0
  17. package/dist/ai-sdk-client/chat/tool-processor.js +53 -0
  18. package/dist/ai-sdk-client/chat/tool-processor.js.map +1 -0
  19. package/dist/ai-sdk-client/converters/message-converter.d.ts +18 -0
  20. package/dist/ai-sdk-client/converters/message-converter.d.ts.map +1 -0
  21. package/dist/ai-sdk-client/converters/message-converter.js +100 -0
  22. package/dist/ai-sdk-client/converters/message-converter.js.map +1 -0
  23. package/dist/ai-sdk-client/converters/tool-converter.d.ts +26 -0
  24. package/dist/ai-sdk-client/converters/tool-converter.d.ts.map +1 -0
  25. package/dist/ai-sdk-client/converters/tool-converter.js +32 -0
  26. package/dist/ai-sdk-client/converters/tool-converter.js.map +1 -0
  27. package/dist/ai-sdk-client/error-handling/error-extractor.d.ts +6 -0
  28. package/dist/ai-sdk-client/error-handling/error-extractor.d.ts.map +1 -0
  29. package/dist/ai-sdk-client/error-handling/error-extractor.js +15 -0
  30. package/dist/ai-sdk-client/error-handling/error-extractor.js.map +1 -0
  31. package/dist/ai-sdk-client/error-handling/error-parser.d.ts +6 -0
  32. package/dist/ai-sdk-client/error-handling/error-parser.d.ts.map +1 -0
  33. package/dist/ai-sdk-client/error-handling/error-parser.js +131 -0
  34. package/dist/ai-sdk-client/error-handling/error-parser.js.map +1 -0
  35. package/dist/ai-sdk-client/index.d.ts +5 -0
  36. package/dist/ai-sdk-client/index.d.ts.map +1 -0
  37. package/dist/ai-sdk-client/index.js +6 -0
  38. package/dist/ai-sdk-client/index.js.map +1 -0
  39. package/dist/ai-sdk-client/providers/provider-factory.d.ts +8 -0
  40. package/dist/ai-sdk-client/providers/provider-factory.d.ts.map +1 -0
  41. package/dist/ai-sdk-client/providers/provider-factory.js +31 -0
  42. package/dist/ai-sdk-client/providers/provider-factory.js.map +1 -0
  43. package/dist/ai-sdk-client/types.d.ts +10 -0
  44. package/dist/ai-sdk-client/types.d.ts.map +1 -0
  45. package/dist/ai-sdk-client/types.js +2 -0
  46. package/dist/ai-sdk-client/types.js.map +1 -0
  47. package/dist/app/App.d.ts +3 -0
  48. package/dist/app/App.d.ts.map +1 -0
  49. package/dist/app/App.js +432 -0
  50. package/dist/app/App.js.map +1 -0
  51. package/dist/app/components/app-container.d.ts +24 -0
  52. package/dist/app/components/app-container.d.ts.map +1 -0
  53. package/dist/app/components/app-container.js +16 -0
  54. package/dist/app/components/app-container.js.map +1 -0
  55. package/dist/app/components/chat-history.d.ts +23 -0
  56. package/dist/app/components/chat-history.d.ts.map +1 -0
  57. package/dist/app/components/chat-history.js +17 -0
  58. package/dist/app/components/chat-history.js.map +1 -0
  59. package/dist/app/components/chat-input.d.ts +30 -0
  60. package/dist/app/components/chat-input.d.ts.map +1 -0
  61. package/dist/app/components/chat-input.js +31 -0
  62. package/dist/app/components/chat-input.js.map +1 -0
  63. package/dist/app/components/modal-selectors.d.ts +37 -0
  64. package/dist/app/components/modal-selectors.d.ts.map +1 -0
  65. package/dist/app/components/modal-selectors.js +37 -0
  66. package/dist/app/components/modal-selectors.js.map +1 -0
  67. package/dist/app/helpers.d.ts +10 -0
  68. package/dist/app/helpers.d.ts.map +1 -0
  69. package/dist/app/helpers.js +38 -0
  70. package/dist/app/helpers.js.map +1 -0
  71. package/dist/app/index.d.ts +4 -0
  72. package/dist/app/index.d.ts.map +1 -0
  73. package/dist/app/index.js +4 -0
  74. package/dist/app/index.js.map +1 -0
  75. package/dist/app/types.d.ts +33 -0
  76. package/dist/app/types.d.ts.map +1 -0
  77. package/dist/app/types.js +2 -0
  78. package/dist/app/types.js.map +1 -0
  79. package/dist/app/utils/{appUtils.d.ts → app-util.d.ts} +5 -1
  80. package/dist/app/utils/app-util.d.ts.map +1 -0
  81. package/dist/app/utils/app-util.js +301 -0
  82. package/dist/app/utils/app-util.js.map +1 -0
  83. package/dist/app/utils/{conversationState.d.ts → conversation-state.d.ts} +2 -1
  84. package/dist/app/utils/conversation-state.d.ts.map +1 -0
  85. package/dist/app/utils/{conversationState.js → conversation-state.js} +5 -1
  86. package/dist/app/utils/conversation-state.js.map +1 -0
  87. package/dist/cli.js +2 -13
  88. package/dist/cli.js.map +1 -1
  89. package/dist/client-factory.d.ts.map +1 -1
  90. package/dist/client-factory.js +3 -2
  91. package/dist/client-factory.js.map +1 -1
  92. package/dist/commands/checkpoint.d.ts.map +1 -1
  93. package/dist/commands/checkpoint.js +2 -5
  94. package/dist/commands/checkpoint.js.map +1 -1
  95. package/dist/commands/clear.d.ts.map +1 -1
  96. package/dist/commands/clear.js +1 -1
  97. package/dist/commands/clear.js.map +1 -1
  98. package/dist/commands/custom-commands.d.ts.map +1 -1
  99. package/dist/commands/custom-commands.js +4 -4
  100. package/dist/commands/custom-commands.js.map +1 -1
  101. package/dist/commands/exit.d.ts.map +1 -1
  102. package/dist/commands/exit.js +1 -1
  103. package/dist/commands/exit.js.map +1 -1
  104. package/dist/commands/export.d.ts.map +1 -1
  105. package/dist/commands/export.js +3 -3
  106. package/dist/commands/export.js.map +1 -1
  107. package/dist/commands/help.d.ts.map +1 -1
  108. package/dist/commands/help.js +27 -10
  109. package/dist/commands/help.js.map +1 -1
  110. package/dist/commands/index.d.ts +11 -10
  111. package/dist/commands/index.d.ts.map +1 -1
  112. package/dist/commands/index.js +11 -10
  113. package/dist/commands/index.js.map +1 -1
  114. package/dist/commands/init.d.ts.map +1 -1
  115. package/dist/commands/init.js +5 -5
  116. package/dist/commands/init.js.map +1 -1
  117. package/dist/commands/lsp.d.ts.map +1 -1
  118. package/dist/commands/lsp.js +9 -9
  119. package/dist/commands/lsp.js.map +1 -1
  120. package/dist/commands/mcp.d.ts.map +1 -1
  121. package/dist/commands/mcp.js +5 -5
  122. package/dist/commands/mcp.js.map +1 -1
  123. package/dist/commands/model-database.d.ts.map +1 -1
  124. package/dist/commands/model-database.js +13 -12
  125. package/dist/commands/model-database.js.map +1 -1
  126. package/dist/commands/model.d.ts.map +1 -1
  127. package/dist/commands/model.js.map +1 -1
  128. package/dist/commands/provider.d.ts.map +1 -1
  129. package/dist/commands/provider.js.map +1 -1
  130. package/dist/commands/setup-config.d.ts.map +1 -1
  131. package/dist/commands/setup-config.js +2 -2
  132. package/dist/commands/setup-config.js.map +1 -1
  133. package/dist/commands/status.d.ts.map +1 -1
  134. package/dist/commands/status.js.map +1 -1
  135. package/dist/commands/theme.d.ts.map +1 -1
  136. package/dist/commands/theme.js.map +1 -1
  137. package/dist/commands/title-shape.d.ts +3 -0
  138. package/dist/commands/title-shape.d.ts.map +1 -0
  139. package/dist/commands/title-shape.js +54 -0
  140. package/dist/commands/title-shape.js.map +1 -0
  141. package/dist/commands/update.d.ts.map +1 -1
  142. package/dist/commands/update.js +2 -4
  143. package/dist/commands/update.js.map +1 -1
  144. package/dist/commands/usage.d.ts.map +1 -1
  145. package/dist/commands/usage.js +1 -1
  146. package/dist/commands/usage.js.map +1 -1
  147. package/dist/commands.d.ts +2 -2
  148. package/dist/commands.d.ts.map +1 -1
  149. package/dist/commands.js +10 -3
  150. package/dist/commands.js.map +1 -1
  151. package/dist/components/assistant-message.d.ts.map +1 -1
  152. package/dist/components/assistant-message.js +2 -2
  153. package/dist/components/assistant-message.js.map +1 -1
  154. package/dist/components/bash-progress.d.ts +12 -0
  155. package/dist/components/bash-progress.d.ts.map +1 -0
  156. package/dist/components/bash-progress.js +67 -0
  157. package/dist/components/bash-progress.js.map +1 -0
  158. package/dist/components/cancelling-indicator.js +1 -1
  159. package/dist/components/cancelling-indicator.js.map +1 -1
  160. package/dist/components/chat-queue.d.ts.map +1 -1
  161. package/dist/components/chat-queue.js.map +1 -1
  162. package/dist/components/checkpoint-display.d.ts.map +1 -1
  163. package/dist/components/checkpoint-display.js +3 -3
  164. package/dist/components/checkpoint-display.js.map +1 -1
  165. package/dist/components/checkpoint-selector.d.ts.map +1 -1
  166. package/dist/components/checkpoint-selector.js +7 -7
  167. package/dist/components/checkpoint-selector.js.map +1 -1
  168. package/dist/components/development-mode-indicator.d.ts +1 -1
  169. package/dist/components/development-mode-indicator.d.ts.map +1 -1
  170. package/dist/components/development-mode-indicator.js +1 -1
  171. package/dist/components/development-mode-indicator.js.map +1 -1
  172. package/dist/components/message-box.d.ts +14 -0
  173. package/dist/components/message-box.d.ts.map +1 -0
  174. package/dist/components/message-box.js +33 -0
  175. package/dist/components/message-box.js.map +1 -0
  176. package/dist/components/model-selector.d.ts.map +1 -1
  177. package/dist/components/model-selector.js +6 -6
  178. package/dist/components/model-selector.js.map +1 -1
  179. package/dist/components/provider-selector.d.ts.map +1 -1
  180. package/dist/components/provider-selector.js +5 -5
  181. package/dist/components/provider-selector.js.map +1 -1
  182. package/dist/components/security-disclaimer.d.ts.map +1 -1
  183. package/dist/components/security-disclaimer.js +4 -4
  184. package/dist/components/security-disclaimer.js.map +1 -1
  185. package/dist/components/status.d.ts +3 -0
  186. package/dist/components/status.d.ts.map +1 -1
  187. package/dist/components/status.js +18 -6
  188. package/dist/components/status.js.map +1 -1
  189. package/dist/components/theme-selector.d.ts.map +1 -1
  190. package/dist/components/theme-selector.js +14 -6
  191. package/dist/components/theme-selector.js.map +1 -1
  192. package/dist/components/title-shape-selector.d.ts +8 -0
  193. package/dist/components/title-shape-selector.d.ts.map +1 -0
  194. package/dist/components/title-shape-selector.js +108 -0
  195. package/dist/components/title-shape-selector.js.map +1 -0
  196. package/dist/components/tool-confirmation.d.ts.map +1 -1
  197. package/dist/components/tool-confirmation.js +9 -6
  198. package/dist/components/tool-confirmation.js.map +1 -1
  199. package/dist/components/tool-execution-indicator.d.ts.map +1 -1
  200. package/dist/components/tool-execution-indicator.js +1 -1
  201. package/dist/components/tool-execution-indicator.js.map +1 -1
  202. package/dist/components/tool-message.d.ts +1 -0
  203. package/dist/components/tool-message.d.ts.map +1 -1
  204. package/dist/components/tool-message.js +4 -4
  205. package/dist/components/tool-message.js.map +1 -1
  206. package/dist/components/ui/styled-title.d.ts +27 -0
  207. package/dist/components/ui/styled-title.d.ts.map +1 -0
  208. package/dist/components/ui/styled-title.js +182 -0
  209. package/dist/components/ui/styled-title.js.map +1 -0
  210. package/dist/components/ui/titled-box.d.ts +14 -3
  211. package/dist/components/ui/titled-box.d.ts.map +1 -1
  212. package/dist/components/ui/titled-box.js +20 -5
  213. package/dist/components/ui/titled-box.js.map +1 -1
  214. package/dist/components/usage/usage-display.d.ts.map +1 -1
  215. package/dist/components/usage/usage-display.js +3 -3
  216. package/dist/components/usage/usage-display.js.map +1 -1
  217. package/dist/components/user-input.d.ts.map +1 -1
  218. package/dist/components/user-input.js +35 -39
  219. package/dist/components/user-input.js.map +1 -1
  220. package/dist/components/user-message.d.ts.map +1 -1
  221. package/dist/components/user-message.js +14 -3
  222. package/dist/components/user-message.js.map +1 -1
  223. package/dist/components/vscode-extension-prompt.d.ts.map +1 -1
  224. package/dist/components/vscode-extension-prompt.js +7 -6
  225. package/dist/components/vscode-extension-prompt.js.map +1 -1
  226. package/dist/components/welcome-message.d.ts.map +1 -1
  227. package/dist/components/welcome-message.js +10 -10
  228. package/dist/components/welcome-message.js.map +1 -1
  229. package/dist/config/index.d.ts.map +1 -1
  230. package/dist/config/index.js +33 -19
  231. package/dist/config/index.js.map +1 -1
  232. package/dist/config/preferences.d.ts +4 -0
  233. package/dist/config/preferences.d.ts.map +1 -1
  234. package/dist/config/preferences.js +19 -1
  235. package/dist/config/preferences.js.map +1 -1
  236. package/dist/config/themes.d.ts.map +1 -1
  237. package/dist/config/themes.js +132 -32
  238. package/dist/config/themes.js.map +1 -1
  239. package/dist/constants.d.ts +85 -0
  240. package/dist/constants.d.ts.map +1 -0
  241. package/dist/constants.js +109 -0
  242. package/dist/constants.js.map +1 -0
  243. package/dist/custom-commands/loader.d.ts.map +1 -1
  244. package/dist/custom-commands/loader.js +3 -2
  245. package/dist/custom-commands/loader.js.map +1 -1
  246. package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts +36 -0
  247. package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts.map +1 -0
  248. package/dist/hooks/chat-handler/conversation/conversation-loop.js +312 -0
  249. package/dist/hooks/chat-handler/conversation/conversation-loop.js.map +1 -0
  250. package/dist/hooks/chat-handler/conversation/tool-executor.d.ts +12 -0
  251. package/dist/hooks/chat-handler/conversation/tool-executor.d.ts.map +1 -0
  252. package/dist/hooks/chat-handler/conversation/tool-executor.js +63 -0
  253. package/dist/hooks/chat-handler/conversation/tool-executor.js.map +1 -0
  254. package/dist/hooks/chat-handler/index.d.ts +9 -0
  255. package/dist/hooks/chat-handler/index.d.ts.map +1 -0
  256. package/dist/hooks/chat-handler/index.js +9 -0
  257. package/dist/hooks/chat-handler/index.js.map +1 -0
  258. package/dist/hooks/chat-handler/state/streaming-state.d.ts +6 -0
  259. package/dist/hooks/chat-handler/state/streaming-state.d.ts.map +1 -0
  260. package/dist/hooks/chat-handler/state/streaming-state.js +14 -0
  261. package/dist/hooks/chat-handler/state/streaming-state.js.map +1 -0
  262. package/dist/hooks/{useChatHandler.d.ts → chat-handler/types.d.ts} +8 -9
  263. package/dist/hooks/chat-handler/types.d.ts.map +1 -0
  264. package/dist/hooks/chat-handler/types.js +2 -0
  265. package/dist/hooks/chat-handler/types.js.map +1 -0
  266. package/dist/hooks/chat-handler/useChatHandler.d.ts +7 -0
  267. package/dist/hooks/chat-handler/useChatHandler.d.ts.map +1 -0
  268. package/dist/hooks/chat-handler/useChatHandler.js +141 -0
  269. package/dist/hooks/chat-handler/useChatHandler.js.map +1 -0
  270. package/dist/hooks/chat-handler/utils/context-checker.d.ts +15 -0
  271. package/dist/hooks/chat-handler/utils/context-checker.d.ts.map +1 -0
  272. package/dist/hooks/chat-handler/utils/context-checker.js +68 -0
  273. package/dist/hooks/chat-handler/utils/context-checker.js.map +1 -0
  274. package/dist/hooks/chat-handler/utils/message-helpers.d.ts +11 -0
  275. package/dist/hooks/chat-handler/utils/message-helpers.d.ts.map +1 -0
  276. package/dist/hooks/chat-handler/utils/message-helpers.js +20 -0
  277. package/dist/hooks/chat-handler/utils/message-helpers.js.map +1 -0
  278. package/dist/hooks/chat-handler/utils/tool-filters.d.ts +17 -0
  279. package/dist/hooks/chat-handler/utils/tool-filters.d.ts.map +1 -0
  280. package/dist/hooks/chat-handler/utils/tool-filters.js +50 -0
  281. package/dist/hooks/chat-handler/utils/tool-filters.js.map +1 -0
  282. package/dist/hooks/useAppHandlers.d.ts +60 -0
  283. package/dist/hooks/useAppHandlers.d.ts.map +1 -0
  284. package/dist/hooks/useAppHandlers.js +141 -0
  285. package/dist/hooks/useAppHandlers.js.map +1 -0
  286. package/dist/hooks/useAppInitialization.d.ts +3 -3
  287. package/dist/hooks/useAppInitialization.d.ts.map +1 -1
  288. package/dist/hooks/useAppInitialization.js +9 -9
  289. package/dist/hooks/useAppInitialization.js.map +1 -1
  290. package/dist/hooks/useAppState.d.ts +12 -9
  291. package/dist/hooks/useAppState.d.ts.map +1 -1
  292. package/dist/hooks/useAppState.js +42 -17
  293. package/dist/hooks/useAppState.js.map +1 -1
  294. package/dist/hooks/useDirectoryTrust.js +3 -3
  295. package/dist/hooks/useDirectoryTrust.js.map +1 -1
  296. package/dist/hooks/useInputState.d.ts.map +1 -1
  297. package/dist/hooks/useInputState.js +29 -8
  298. package/dist/hooks/useInputState.js.map +1 -1
  299. package/dist/hooks/useModeHandlers.d.ts +8 -4
  300. package/dist/hooks/useModeHandlers.d.ts.map +1 -1
  301. package/dist/hooks/useModeHandlers.js +31 -14
  302. package/dist/hooks/useModeHandlers.js.map +1 -1
  303. package/dist/hooks/useNonInteractiveMode.d.ts +24 -0
  304. package/dist/hooks/useNonInteractiveMode.d.ts.map +1 -0
  305. package/dist/hooks/useNonInteractiveMode.js +96 -0
  306. package/dist/hooks/useNonInteractiveMode.js.map +1 -0
  307. package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
  308. package/dist/hooks/useTerminalWidth.js +4 -3
  309. package/dist/hooks/useTerminalWidth.js.map +1 -1
  310. package/dist/hooks/useTheme.d.ts.map +1 -1
  311. package/dist/hooks/useTheme.js.map +1 -1
  312. package/dist/hooks/useTitleShape.d.ts +17 -0
  313. package/dist/hooks/useTitleShape.d.ts.map +1 -0
  314. package/dist/hooks/useTitleShape.js +23 -0
  315. package/dist/hooks/useTitleShape.js.map +1 -0
  316. package/dist/hooks/useToolHandler.d.ts +4 -3
  317. package/dist/hooks/useToolHandler.d.ts.map +1 -1
  318. package/dist/hooks/useToolHandler.js +49 -16
  319. package/dist/hooks/useToolHandler.js.map +1 -1
  320. package/dist/hooks/useUIState.d.ts +1 -1
  321. package/dist/hooks/useUIState.d.ts.map +1 -1
  322. package/dist/hooks/useUIState.js.map +1 -1
  323. package/dist/hooks/useVSCodeServer.d.ts +4 -2
  324. package/dist/hooks/useVSCodeServer.d.ts.map +1 -1
  325. package/dist/hooks/useVSCodeServer.js +9 -7
  326. package/dist/hooks/useVSCodeServer.js.map +1 -1
  327. package/dist/init/agents-template-generator.d.ts.map +1 -1
  328. package/dist/init/agents-template-generator.js +2 -1
  329. package/dist/init/agents-template-generator.js.map +1 -1
  330. package/dist/init/file-scanner.d.ts +6 -5
  331. package/dist/init/file-scanner.d.ts.map +1 -1
  332. package/dist/init/file-scanner.js +32 -56
  333. package/dist/init/file-scanner.js.map +1 -1
  334. package/dist/init/language-detector.d.ts.map +1 -1
  335. package/dist/init/language-detector.js +3 -2
  336. package/dist/init/language-detector.js.map +1 -1
  337. package/dist/lsp/index.d.ts +2 -2
  338. package/dist/lsp/index.d.ts.map +1 -1
  339. package/dist/lsp/index.js.map +1 -1
  340. package/dist/lsp/lsp-client.d.ts.map +1 -1
  341. package/dist/lsp/lsp-client.js +18 -8
  342. package/dist/lsp/lsp-client.js.map +1 -1
  343. package/dist/lsp/lsp-manager.d.ts +2 -1
  344. package/dist/lsp/lsp-manager.d.ts.map +1 -1
  345. package/dist/lsp/lsp-manager.js +20 -6
  346. package/dist/lsp/lsp-manager.js.map +1 -1
  347. package/dist/lsp/server-discovery.d.ts +25 -1
  348. package/dist/lsp/server-discovery.d.ts.map +1 -1
  349. package/dist/lsp/server-discovery.js +147 -13
  350. package/dist/lsp/server-discovery.js.map +1 -1
  351. package/dist/markdown-parser/index.d.ts +1 -1
  352. package/dist/markdown-parser/index.d.ts.map +1 -1
  353. package/dist/markdown-parser/index.js +9 -4
  354. package/dist/markdown-parser/index.js.map +1 -1
  355. package/dist/markdown-parser/table-parser.d.ts.map +1 -1
  356. package/dist/markdown-parser/table-parser.js +3 -2
  357. package/dist/markdown-parser/table-parser.js.map +1 -1
  358. package/dist/mcp/mcp-client.d.ts +1 -2
  359. package/dist/mcp/mcp-client.d.ts.map +1 -1
  360. package/dist/mcp/mcp-client.js +1 -1
  361. package/dist/mcp/mcp-client.js.map +1 -1
  362. package/dist/mcp/transport-factory.d.ts.map +1 -1
  363. package/dist/mcp/transport-factory.js +73 -3
  364. package/dist/mcp/transport-factory.js.map +1 -1
  365. package/dist/model-database/model-database.d.ts.map +1 -1
  366. package/dist/model-database/model-database.js +4 -2
  367. package/dist/model-database/model-database.js.map +1 -1
  368. package/dist/model-database/model-fetcher.d.ts.map +1 -1
  369. package/dist/model-database/model-fetcher.js +5 -3
  370. package/dist/model-database/model-fetcher.js.map +1 -1
  371. package/dist/models/models-cache.d.ts +2 -2
  372. package/dist/models/models-cache.d.ts.map +1 -1
  373. package/dist/models/models-cache.js +22 -19
  374. package/dist/models/models-cache.js.map +1 -1
  375. package/dist/models/models-dev-client.d.ts.map +1 -1
  376. package/dist/models/models-dev-client.js +12 -8
  377. package/dist/models/models-dev-client.js.map +1 -1
  378. package/dist/prompt-history.d.ts +4 -2
  379. package/dist/prompt-history.d.ts.map +1 -1
  380. package/dist/prompt-history.js +26 -17
  381. package/dist/prompt-history.js.map +1 -1
  382. package/dist/services/bash-executor.d.ts +24 -0
  383. package/dist/services/bash-executor.d.ts.map +1 -0
  384. package/dist/services/bash-executor.js +98 -0
  385. package/dist/services/bash-executor.js.map +1 -0
  386. package/dist/services/checkpoint-manager.d.ts.map +1 -1
  387. package/dist/services/checkpoint-manager.js +31 -20
  388. package/dist/services/checkpoint-manager.js.map +1 -1
  389. package/dist/services/file-snapshot.d.ts.map +1 -1
  390. package/dist/services/file-snapshot.js +96 -39
  391. package/dist/services/file-snapshot.js.map +1 -1
  392. package/dist/test-utils/render-with-theme.d.ts +1 -1
  393. package/dist/test-utils/render-with-theme.d.ts.map +1 -1
  394. package/dist/test-utils/render-with-theme.js +14 -8
  395. package/dist/test-utils/render-with-theme.js.map +1 -1
  396. package/dist/tokenization/tokenizers/anthropic-tokenizer.d.ts.map +1 -1
  397. package/dist/tokenization/tokenizers/anthropic-tokenizer.js.map +1 -1
  398. package/dist/tokenization/tokenizers/llama-tokenizer.d.ts.map +1 -1
  399. package/dist/tokenization/tokenizers/llama-tokenizer.js.map +1 -1
  400. package/dist/tokenization/tokenizers/openai-tokenizer.d.ts.map +1 -1
  401. package/dist/tokenization/tokenizers/openai-tokenizer.js.map +1 -1
  402. package/dist/tools/execute-bash.d.ts +16 -0
  403. package/dist/tools/execute-bash.d.ts.map +1 -1
  404. package/dist/tools/execute-bash.js +66 -70
  405. package/dist/tools/execute-bash.js.map +1 -1
  406. package/dist/tools/fetch-url.d.ts +2 -16
  407. package/dist/tools/fetch-url.d.ts.map +1 -1
  408. package/dist/tools/fetch-url.js +7 -6
  409. package/dist/tools/fetch-url.js.map +1 -1
  410. package/dist/tools/find-files.d.ts +2 -18
  411. package/dist/tools/find-files.d.ts.map +1 -1
  412. package/dist/tools/find-files.js +53 -61
  413. package/dist/tools/find-files.js.map +1 -1
  414. package/dist/tools/git/git-branch-suggest.d.ts +9 -0
  415. package/dist/tools/git/git-branch-suggest.d.ts.map +1 -0
  416. package/dist/tools/git/git-branch-suggest.js +326 -0
  417. package/dist/tools/git/git-branch-suggest.js.map +1 -0
  418. package/dist/tools/git/git-create-pr.d.ts +9 -0
  419. package/dist/tools/git/git-create-pr.d.ts.map +1 -0
  420. package/dist/tools/git/git-create-pr.js +380 -0
  421. package/dist/tools/git/git-create-pr.js.map +1 -0
  422. package/dist/tools/git/git-smart-commit.d.ts +9 -0
  423. package/dist/tools/git/git-smart-commit.d.ts.map +1 -0
  424. package/dist/tools/git/git-smart-commit.js +280 -0
  425. package/dist/tools/git/git-smart-commit.js.map +1 -0
  426. package/dist/tools/git/git-status-enhanced.d.ts +9 -0
  427. package/dist/tools/git/git-status-enhanced.d.ts.map +1 -0
  428. package/dist/tools/git/git-status-enhanced.js +282 -0
  429. package/dist/tools/git/git-status-enhanced.js.map +1 -0
  430. package/dist/tools/git/index.d.ts +16 -0
  431. package/dist/tools/git/index.d.ts.map +1 -0
  432. package/dist/tools/git/index.js +15 -0
  433. package/dist/tools/git/index.js.map +1 -0
  434. package/dist/tools/git/types.d.ts +103 -0
  435. package/dist/tools/git/types.d.ts.map +1 -0
  436. package/dist/tools/git/types.js +7 -0
  437. package/dist/tools/git/types.js.map +1 -0
  438. package/dist/tools/git/utils.d.ts +65 -0
  439. package/dist/tools/git/utils.d.ts.map +1 -0
  440. package/dist/tools/git/utils.js +509 -0
  441. package/dist/tools/git/utils.js.map +1 -0
  442. package/dist/tools/index.d.ts +2 -1
  443. package/dist/tools/index.d.ts.map +1 -1
  444. package/dist/tools/index.js +15 -0
  445. package/dist/tools/index.js.map +1 -1
  446. package/dist/tools/list-directory.d.ts +3 -0
  447. package/dist/tools/list-directory.d.ts.map +1 -0
  448. package/dist/tools/list-directory.js +214 -0
  449. package/dist/tools/list-directory.js.map +1 -0
  450. package/dist/tools/lsp-get-diagnostics.d.ts +2 -10
  451. package/dist/tools/lsp-get-diagnostics.d.ts.map +1 -1
  452. package/dist/tools/lsp-get-diagnostics.js +42 -5
  453. package/dist/tools/lsp-get-diagnostics.js.map +1 -1
  454. package/dist/tools/read-file.d.ts.map +1 -1
  455. package/dist/tools/read-file.js +112 -53
  456. package/dist/tools/read-file.js.map +1 -1
  457. package/dist/tools/search-file-contents.d.ts +2 -20
  458. package/dist/tools/search-file-contents.d.ts.map +1 -1
  459. package/dist/tools/search-file-contents.js +36 -47
  460. package/dist/tools/search-file-contents.js.map +1 -1
  461. package/dist/tools/string-replace.d.ts +2 -18
  462. package/dist/tools/string-replace.d.ts.map +1 -1
  463. package/dist/tools/string-replace.js +149 -36
  464. package/dist/tools/string-replace.js.map +1 -1
  465. package/dist/tools/tool-manager.d.ts +3 -4
  466. package/dist/tools/tool-manager.d.ts.map +1 -1
  467. package/dist/tools/tool-manager.js +6 -7
  468. package/dist/tools/tool-manager.js.map +1 -1
  469. package/dist/tools/tool-registry.d.ts +9 -2
  470. package/dist/tools/tool-registry.d.ts.map +1 -1
  471. package/dist/tools/tool-registry.js +11 -1
  472. package/dist/tools/tool-registry.js.map +1 -1
  473. package/dist/tools/web-search.d.ts.map +1 -1
  474. package/dist/tools/web-search.js +9 -7
  475. package/dist/tools/web-search.js.map +1 -1
  476. package/dist/tools/write-file.d.ts +2 -24
  477. package/dist/tools/write-file.d.ts.map +1 -1
  478. package/dist/tools/write-file.js +34 -5
  479. package/dist/tools/write-file.js.map +1 -1
  480. package/dist/types/app.d.ts +5 -4
  481. package/dist/types/app.d.ts.map +1 -1
  482. package/dist/types/components.d.ts +0 -3
  483. package/dist/types/components.d.ts.map +1 -1
  484. package/dist/types/config.d.ts +2 -0
  485. package/dist/types/config.d.ts.map +1 -1
  486. package/dist/types/core.d.ts +15 -1
  487. package/dist/types/core.d.ts.map +1 -1
  488. package/dist/types/core.js.map +1 -1
  489. package/dist/types/index.d.ts +7 -7
  490. package/dist/types/index.d.ts.map +1 -1
  491. package/dist/types/index.js +7 -7
  492. package/dist/types/index.js.map +1 -1
  493. package/dist/types/markdown-parser.d.ts +1 -1
  494. package/dist/types/markdown-parser.d.ts.map +1 -1
  495. package/dist/types/ui.d.ts +6 -3
  496. package/dist/types/ui.d.ts.map +1 -1
  497. package/dist/usage/calculator.d.ts.map +1 -1
  498. package/dist/usage/calculator.js +5 -5
  499. package/dist/usage/calculator.js.map +1 -1
  500. package/dist/usage/storage.d.ts.map +1 -1
  501. package/dist/usage/storage.js +4 -5
  502. package/dist/usage/storage.js.map +1 -1
  503. package/dist/usage/tracker.d.ts.map +1 -1
  504. package/dist/usage/tracker.js +2 -1
  505. package/dist/usage/tracker.js.map +1 -1
  506. package/dist/utils/bounded-map.d.ts +83 -0
  507. package/dist/utils/bounded-map.d.ts.map +1 -0
  508. package/dist/utils/bounded-map.js +148 -0
  509. package/dist/utils/bounded-map.js.map +1 -0
  510. package/dist/utils/file-autocomplete.d.ts +0 -6
  511. package/dist/utils/file-autocomplete.d.ts.map +1 -1
  512. package/dist/utils/file-autocomplete.js +8 -46
  513. package/dist/utils/file-autocomplete.js.map +1 -1
  514. package/dist/utils/file-cache.d.ts +39 -0
  515. package/dist/utils/file-cache.d.ts.map +1 -0
  516. package/dist/utils/file-cache.js +153 -0
  517. package/dist/utils/file-cache.js.map +1 -0
  518. package/dist/utils/file-content-loader.d.ts +0 -5
  519. package/dist/utils/file-content-loader.d.ts.map +1 -1
  520. package/dist/utils/file-content-loader.js +5 -35
  521. package/dist/utils/file-content-loader.js.map +1 -1
  522. package/dist/utils/file-mention-parser.d.ts +6 -0
  523. package/dist/utils/file-mention-parser.d.ts.map +1 -1
  524. package/dist/utils/file-mention-parser.js +9 -38
  525. package/dist/utils/file-mention-parser.js.map +1 -1
  526. package/dist/utils/file-type-detector.d.ts +17 -0
  527. package/dist/utils/file-type-detector.d.ts.map +1 -0
  528. package/dist/utils/file-type-detector.js +72 -0
  529. package/dist/utils/file-type-detector.js.map +1 -0
  530. package/dist/utils/fuzzy-matching.js +4 -4
  531. package/dist/utils/fuzzy-matching.js.map +1 -1
  532. package/dist/utils/gitignore-loader.d.ts +21 -0
  533. package/dist/utils/gitignore-loader.d.ts.map +1 -0
  534. package/dist/utils/gitignore-loader.js +62 -0
  535. package/dist/utils/gitignore-loader.js.map +1 -0
  536. package/dist/utils/gradient-utils.d.ts +25 -0
  537. package/dist/utils/gradient-utils.d.ts.map +1 -0
  538. package/dist/utils/gradient-utils.js +45 -0
  539. package/dist/utils/gradient-utils.js.map +1 -0
  540. package/dist/utils/indentation-normalizer.d.ts +10 -0
  541. package/dist/utils/indentation-normalizer.d.ts.map +1 -0
  542. package/dist/utils/indentation-normalizer.js +65 -0
  543. package/dist/utils/indentation-normalizer.js.map +1 -0
  544. package/dist/utils/inline-diff.d.ts +15 -0
  545. package/dist/utils/inline-diff.d.ts.map +1 -0
  546. package/dist/utils/inline-diff.js +51 -0
  547. package/dist/utils/inline-diff.js.map +1 -0
  548. package/dist/utils/installation-detector.js +1 -1
  549. package/dist/utils/installation-detector.js.map +1 -1
  550. package/dist/utils/logging/config.d.ts.map +1 -1
  551. package/dist/utils/logging/config.js +1 -2
  552. package/dist/utils/logging/config.js.map +1 -1
  553. package/dist/utils/logging/correlation.d.ts +0 -18
  554. package/dist/utils/logging/correlation.d.ts.map +1 -1
  555. package/dist/utils/logging/correlation.js +3 -34
  556. package/dist/utils/logging/correlation.js.map +1 -1
  557. package/dist/utils/logging/formatters.d.ts.map +1 -1
  558. package/dist/utils/logging/formatters.js +0 -3
  559. package/dist/utils/logging/formatters.js.map +1 -1
  560. package/dist/utils/logging/health-monitor/alerts/alert-manager.d.ts +9 -0
  561. package/dist/utils/logging/health-monitor/alerts/alert-manager.d.ts.map +1 -0
  562. package/dist/utils/logging/health-monitor/alerts/alert-manager.js +66 -0
  563. package/dist/utils/logging/health-monitor/alerts/alert-manager.js.map +1 -0
  564. package/dist/utils/logging/health-monitor/checks/configuration-check.d.ts +9 -0
  565. package/dist/utils/logging/health-monitor/checks/configuration-check.d.ts.map +1 -0
  566. package/dist/utils/logging/health-monitor/checks/configuration-check.js +39 -0
  567. package/dist/utils/logging/health-monitor/checks/configuration-check.js.map +1 -0
  568. package/dist/utils/logging/health-monitor/checks/logging-check.d.ts +9 -0
  569. package/dist/utils/logging/health-monitor/checks/logging-check.d.ts.map +1 -0
  570. package/dist/utils/logging/health-monitor/checks/logging-check.js +55 -0
  571. package/dist/utils/logging/health-monitor/checks/logging-check.js.map +1 -0
  572. package/dist/utils/logging/health-monitor/checks/memory-check.d.ts +9 -0
  573. package/dist/utils/logging/health-monitor/checks/memory-check.d.ts.map +1 -0
  574. package/dist/utils/logging/health-monitor/checks/memory-check.js +61 -0
  575. package/dist/utils/logging/health-monitor/checks/memory-check.js.map +1 -0
  576. package/dist/utils/logging/health-monitor/checks/performance-check.d.ts +9 -0
  577. package/dist/utils/logging/health-monitor/checks/performance-check.d.ts.map +1 -0
  578. package/dist/utils/logging/health-monitor/checks/performance-check.js +48 -0
  579. package/dist/utils/logging/health-monitor/checks/performance-check.js.map +1 -0
  580. package/dist/utils/logging/health-monitor/checks/request-check.d.ts +9 -0
  581. package/dist/utils/logging/health-monitor/checks/request-check.d.ts.map +1 -0
  582. package/dist/utils/logging/health-monitor/checks/request-check.js +65 -0
  583. package/dist/utils/logging/health-monitor/checks/request-check.js.map +1 -0
  584. package/dist/utils/logging/health-monitor/core/health-check-runner.d.ts +9 -0
  585. package/dist/utils/logging/health-monitor/core/health-check-runner.d.ts.map +1 -0
  586. package/dist/utils/logging/health-monitor/core/health-check-runner.js +116 -0
  587. package/dist/utils/logging/health-monitor/core/health-check-runner.js.map +1 -0
  588. package/dist/utils/logging/health-monitor/core/health-monitor.d.ts +49 -0
  589. package/dist/utils/logging/health-monitor/core/health-monitor.d.ts.map +1 -0
  590. package/dist/utils/logging/health-monitor/core/health-monitor.js +297 -0
  591. package/dist/utils/logging/health-monitor/core/health-monitor.js.map +1 -0
  592. package/dist/utils/logging/health-monitor/core/scoring.d.ts +13 -0
  593. package/dist/utils/logging/health-monitor/core/scoring.d.ts.map +1 -0
  594. package/dist/utils/logging/health-monitor/core/scoring.js +63 -0
  595. package/dist/utils/logging/health-monitor/core/scoring.js.map +1 -0
  596. package/dist/utils/logging/health-monitor/index.d.ts +7 -0
  597. package/dist/utils/logging/health-monitor/index.d.ts.map +1 -0
  598. package/dist/utils/logging/health-monitor/index.js +7 -0
  599. package/dist/utils/logging/health-monitor/index.js.map +1 -0
  600. package/dist/utils/logging/health-monitor/instances.d.ts +29 -0
  601. package/dist/utils/logging/health-monitor/instances.d.ts.map +1 -0
  602. package/dist/utils/logging/health-monitor/instances.js +44 -0
  603. package/dist/utils/logging/health-monitor/instances.js.map +1 -0
  604. package/dist/utils/logging/health-monitor/middleware/http-middleware.d.ts +29 -0
  605. package/dist/utils/logging/health-monitor/middleware/http-middleware.d.ts.map +1 -0
  606. package/dist/utils/logging/health-monitor/middleware/http-middleware.js +55 -0
  607. package/dist/utils/logging/health-monitor/middleware/http-middleware.js.map +1 -0
  608. package/dist/utils/logging/{health-monitor.d.ts → health-monitor/types.d.ts} +2 -95
  609. package/dist/utils/logging/health-monitor/types.d.ts.map +1 -0
  610. package/dist/utils/logging/health-monitor/types.js +5 -0
  611. package/dist/utils/logging/health-monitor/types.js.map +1 -0
  612. package/dist/utils/logging/index.d.ts +21 -28
  613. package/dist/utils/logging/index.d.ts.map +1 -1
  614. package/dist/utils/logging/index.js +40 -45
  615. package/dist/utils/logging/index.js.map +1 -1
  616. package/dist/utils/logging/log-method-factory.d.ts.map +1 -1
  617. package/dist/utils/logging/log-method-factory.js +0 -4
  618. package/dist/utils/logging/log-method-factory.js.map +1 -1
  619. package/dist/utils/logging/log-query/aggregation/aggregator.d.ts +13 -0
  620. package/dist/utils/logging/log-query/aggregation/aggregator.d.ts.map +1 -0
  621. package/dist/utils/logging/log-query/aggregation/aggregator.js +119 -0
  622. package/dist/utils/logging/log-query/aggregation/aggregator.js.map +1 -0
  623. package/dist/utils/logging/log-query/aggregation/facet-generator.d.ts +15 -0
  624. package/dist/utils/logging/log-query/aggregation/facet-generator.d.ts.map +1 -0
  625. package/dist/utils/logging/log-query/aggregation/facet-generator.js +39 -0
  626. package/dist/utils/logging/log-query/aggregation/facet-generator.js.map +1 -0
  627. package/dist/utils/logging/log-query/index.d.ts +13 -0
  628. package/dist/utils/logging/log-query/index.d.ts.map +1 -0
  629. package/dist/utils/logging/log-query/index.js +13 -0
  630. package/dist/utils/logging/log-query/index.js.map +1 -0
  631. package/dist/utils/logging/log-query/query/filter-predicates.d.ts +9 -0
  632. package/dist/utils/logging/log-query/query/filter-predicates.d.ts.map +1 -0
  633. package/dist/utils/logging/log-query/query/filter-predicates.js +122 -0
  634. package/dist/utils/logging/log-query/query/filter-predicates.js.map +1 -0
  635. package/dist/utils/logging/log-query/query/query-builder.d.ts +79 -0
  636. package/dist/utils/logging/log-query/query/query-builder.d.ts.map +1 -0
  637. package/dist/utils/logging/log-query/query/query-builder.js +129 -0
  638. package/dist/utils/logging/log-query/query/query-builder.js.map +1 -0
  639. package/dist/utils/logging/log-query/query/query-engine.d.ts +9 -0
  640. package/dist/utils/logging/log-query/query/query-engine.d.ts.map +1 -0
  641. package/dist/utils/logging/log-query/query/query-engine.js +33 -0
  642. package/dist/utils/logging/log-query/query/query-engine.js.map +1 -0
  643. package/dist/utils/logging/log-query/storage/circular-buffer.d.ts +33 -0
  644. package/dist/utils/logging/log-query/storage/circular-buffer.d.ts.map +1 -0
  645. package/dist/utils/logging/log-query/storage/circular-buffer.js +66 -0
  646. package/dist/utils/logging/log-query/storage/circular-buffer.js.map +1 -0
  647. package/dist/utils/logging/log-query/storage/index-manager.d.ts +23 -0
  648. package/dist/utils/logging/log-query/storage/index-manager.d.ts.map +1 -0
  649. package/dist/utils/logging/log-query/storage/index-manager.js +67 -0
  650. package/dist/utils/logging/log-query/storage/index-manager.js.map +1 -0
  651. package/dist/utils/logging/log-query/storage/log-storage.d.ts +37 -0
  652. package/dist/utils/logging/log-query/storage/log-storage.d.ts.map +1 -0
  653. package/dist/utils/logging/log-query/storage/log-storage.js +64 -0
  654. package/dist/utils/logging/log-query/storage/log-storage.js.map +1 -0
  655. package/dist/utils/logging/log-query/types.d.ts +124 -0
  656. package/dist/utils/logging/log-query/types.d.ts.map +1 -0
  657. package/dist/utils/logging/log-query/types.js +5 -0
  658. package/dist/utils/logging/log-query/types.js.map +1 -0
  659. package/dist/utils/logging/log-query/utils/helpers.d.ts +33 -0
  660. package/dist/utils/logging/log-query/utils/helpers.d.ts.map +1 -0
  661. package/dist/utils/logging/log-query/utils/helpers.js +60 -0
  662. package/dist/utils/logging/log-query/utils/helpers.js.map +1 -0
  663. package/dist/utils/logging/log-query/utils/sorting.d.ts +17 -0
  664. package/dist/utils/logging/log-query/utils/sorting.d.ts.map +1 -0
  665. package/dist/utils/logging/log-query/utils/sorting.js +53 -0
  666. package/dist/utils/logging/log-query/utils/sorting.js.map +1 -0
  667. package/dist/utils/logging/logger-provider.d.ts +12 -2
  668. package/dist/utils/logging/logger-provider.d.ts.map +1 -1
  669. package/dist/utils/logging/logger-provider.js +46 -28
  670. package/dist/utils/logging/logger-provider.js.map +1 -1
  671. package/dist/utils/logging/performance.d.ts.map +1 -1
  672. package/dist/utils/logging/performance.js +4 -2
  673. package/dist/utils/logging/performance.js.map +1 -1
  674. package/dist/utils/logging/pino-logger.d.ts +2 -2
  675. package/dist/utils/logging/pino-logger.d.ts.map +1 -1
  676. package/dist/utils/logging/pino-logger.js +52 -163
  677. package/dist/utils/logging/pino-logger.js.map +1 -1
  678. package/dist/utils/logging/request-tracker.d.ts.map +1 -1
  679. package/dist/utils/logging/request-tracker.js +4 -2
  680. package/dist/utils/logging/request-tracker.js.map +1 -1
  681. package/dist/utils/logging/transports.d.ts.map +1 -1
  682. package/dist/utils/logging/transports.js +6 -5
  683. package/dist/utils/logging/transports.js.map +1 -1
  684. package/dist/utils/logging/types.d.ts +2 -6
  685. package/dist/utils/logging/types.d.ts.map +1 -1
  686. package/dist/utils/message-queue.d.ts +1 -1
  687. package/dist/utils/message-queue.d.ts.map +1 -1
  688. package/dist/utils/message-queue.js +4 -6
  689. package/dist/utils/message-queue.js.map +1 -1
  690. package/dist/utils/path-validation.d.ts +69 -0
  691. package/dist/utils/path-validation.d.ts.map +1 -0
  692. package/dist/utils/path-validation.js +109 -0
  693. package/dist/utils/path-validation.js.map +1 -0
  694. package/dist/utils/prompt-processor.d.ts.map +1 -1
  695. package/dist/utils/prompt-processor.js +5 -2
  696. package/dist/utils/prompt-processor.js.map +1 -1
  697. package/dist/utils/token-calculator.d.ts +10 -0
  698. package/dist/utils/token-calculator.d.ts.map +1 -0
  699. package/dist/utils/token-calculator.js +13 -0
  700. package/dist/utils/token-calculator.js.map +1 -0
  701. package/dist/utils/tool-result-display.d.ts +3 -3
  702. package/dist/utils/tool-result-display.d.ts.map +1 -1
  703. package/dist/utils/tool-result-display.js +9 -9
  704. package/dist/utils/tool-result-display.js.map +1 -1
  705. package/dist/utils/update-checker.d.ts.map +1 -1
  706. package/dist/utils/update-checker.js +2 -1
  707. package/dist/utils/update-checker.js.map +1 -1
  708. package/dist/vscode/extension-installer.d.ts.map +1 -1
  709. package/dist/vscode/extension-installer.js +8 -1
  710. package/dist/vscode/extension-installer.js.map +1 -1
  711. package/dist/vscode/index.d.ts +3 -3
  712. package/dist/vscode/index.d.ts.map +1 -1
  713. package/dist/vscode/index.js +3 -3
  714. package/dist/vscode/index.js.map +1 -1
  715. package/dist/vscode/protocol.d.ts +3 -0
  716. package/dist/vscode/protocol.d.ts.map +1 -1
  717. package/dist/vscode/vscode-server.d.ts +19 -2
  718. package/dist/vscode/vscode-server.d.ts.map +1 -1
  719. package/dist/vscode/vscode-server.js +99 -20
  720. package/dist/vscode/vscode-server.js.map +1 -1
  721. package/dist/wizard/config-wizard.d.ts.map +1 -1
  722. package/dist/wizard/config-wizard.js +5 -5
  723. package/dist/wizard/config-wizard.js.map +1 -1
  724. package/dist/wizard/steps/location-step.js +3 -3
  725. package/dist/wizard/steps/location-step.js.map +1 -1
  726. package/dist/wizard/steps/mcp-step.js +2 -2
  727. package/dist/wizard/steps/mcp-step.js.map +1 -1
  728. package/dist/wizard/steps/provider-step.d.ts.map +1 -1
  729. package/dist/wizard/steps/provider-step.js +340 -4
  730. package/dist/wizard/steps/provider-step.js.map +1 -1
  731. package/dist/wizard/steps/summary-step.js +2 -2
  732. package/dist/wizard/steps/summary-step.js.map +1 -1
  733. package/dist/wizard/templates/mcp-templates.d.ts.map +1 -1
  734. package/dist/wizard/templates/mcp-templates.js +7 -6
  735. package/dist/wizard/templates/mcp-templates.js.map +1 -1
  736. package/dist/wizard/templates/provider-templates.d.ts +2 -0
  737. package/dist/wizard/templates/provider-templates.d.ts.map +1 -1
  738. package/dist/wizard/templates/provider-templates.js +29 -4
  739. package/dist/wizard/templates/provider-templates.js.map +1 -1
  740. package/dist/wizard/utils/fetch-cloud-models.d.ts +20 -0
  741. package/dist/wizard/utils/fetch-cloud-models.d.ts.map +1 -0
  742. package/dist/wizard/utils/fetch-cloud-models.js +178 -0
  743. package/dist/wizard/utils/fetch-cloud-models.js.map +1 -0
  744. package/dist/wizard/utils/fetch-local-models.d.ts +29 -0
  745. package/dist/wizard/utils/fetch-local-models.d.ts.map +1 -0
  746. package/dist/wizard/utils/fetch-local-models.js +146 -0
  747. package/dist/wizard/utils/fetch-local-models.js.map +1 -0
  748. package/dist/wizard/validation.d.ts.map +1 -1
  749. package/dist/wizard/validation.js +2 -1
  750. package/dist/wizard/validation.js.map +1 -1
  751. package/package.json +21 -9
  752. package/source/app/prompts/main-prompt.md +127 -1
  753. package/dist/ai-sdk-client-empty-message.spec.d.ts +0 -2
  754. package/dist/ai-sdk-client-empty-message.spec.d.ts.map +0 -1
  755. package/dist/ai-sdk-client-empty-message.spec.js +0 -124
  756. package/dist/ai-sdk-client-empty-message.spec.js.map +0 -1
  757. package/dist/ai-sdk-client-error-handling.spec.d.ts +0 -2
  758. package/dist/ai-sdk-client-error-handling.spec.d.ts.map +0 -1
  759. package/dist/ai-sdk-client-error-handling.spec.js +0 -108
  760. package/dist/ai-sdk-client-error-handling.spec.js.map +0 -1
  761. package/dist/ai-sdk-client-maxretries.spec.d.ts +0 -2
  762. package/dist/ai-sdk-client-maxretries.spec.d.ts.map +0 -1
  763. package/dist/ai-sdk-client-maxretries.spec.js +0 -96
  764. package/dist/ai-sdk-client-maxretries.spec.js.map +0 -1
  765. package/dist/ai-sdk-client-preparestep.spec.d.ts +0 -2
  766. package/dist/ai-sdk-client-preparestep.spec.d.ts.map +0 -1
  767. package/dist/ai-sdk-client-preparestep.spec.js +0 -246
  768. package/dist/ai-sdk-client-preparestep.spec.js.map +0 -1
  769. package/dist/ai-sdk-client.d.ts.map +0 -1
  770. package/dist/ai-sdk-client.js +0 -673
  771. package/dist/ai-sdk-client.js.map +0 -1
  772. package/dist/app/utils/appUtils.d.ts.map +0 -1
  773. package/dist/app/utils/appUtils.js +0 -227
  774. package/dist/app/utils/appUtils.js.map +0 -1
  775. package/dist/app/utils/conversationState.d.ts.map +0 -1
  776. package/dist/app/utils/conversationState.js.map +0 -1
  777. package/dist/app.d.ts +0 -28
  778. package/dist/app.d.ts.map +0 -1
  779. package/dist/app.js +0 -587
  780. package/dist/app.js.map +0 -1
  781. package/dist/cli.spec.d.ts +0 -2
  782. package/dist/cli.spec.d.ts.map +0 -1
  783. package/dist/cli.spec.js +0 -101
  784. package/dist/cli.spec.js.map +0 -1
  785. package/dist/components/bash-execution-indicator.d.ts +0 -4
  786. package/dist/components/bash-execution-indicator.d.ts.map +0 -1
  787. package/dist/components/bash-execution-indicator.js +0 -9
  788. package/dist/components/bash-execution-indicator.js.map +0 -1
  789. package/dist/components/error-message.d.ts +0 -7
  790. package/dist/components/error-message.d.ts.map +0 -1
  791. package/dist/components/error-message.js +0 -12
  792. package/dist/components/error-message.js.map +0 -1
  793. package/dist/components/info-message.d.ts +0 -6
  794. package/dist/components/info-message.d.ts.map +0 -1
  795. package/dist/components/info-message.js +0 -11
  796. package/dist/components/info-message.js.map +0 -1
  797. package/dist/components/success-message.d.ts +0 -6
  798. package/dist/components/success-message.d.ts.map +0 -1
  799. package/dist/components/success-message.js +0 -11
  800. package/dist/components/success-message.js.map +0 -1
  801. package/dist/components/warning-message.d.ts +0 -7
  802. package/dist/components/warning-message.d.ts.map +0 -1
  803. package/dist/components/warning-message.js +0 -12
  804. package/dist/components/warning-message.js.map +0 -1
  805. package/dist/config/index.spec.d.ts +0 -2
  806. package/dist/config/index.spec.d.ts.map +0 -1
  807. package/dist/config/index.spec.js +0 -99
  808. package/dist/config/index.spec.js.map +0 -1
  809. package/dist/config/paths.spec.d.ts +0 -2
  810. package/dist/config/paths.spec.d.ts.map +0 -1
  811. package/dist/config/paths.spec.js +0 -114
  812. package/dist/config/paths.spec.js.map +0 -1
  813. package/dist/context/mode-context.spec.d.ts +0 -2
  814. package/dist/context/mode-context.spec.d.ts.map +0 -1
  815. package/dist/context/mode-context.spec.js +0 -61
  816. package/dist/context/mode-context.spec.js.map +0 -1
  817. package/dist/hooks/useChatHandler.d.ts.map +0 -1
  818. package/dist/hooks/useChatHandler.js +0 -525
  819. package/dist/hooks/useChatHandler.js.map +0 -1
  820. package/dist/lsp/lsp-client.spec.d.ts +0 -2
  821. package/dist/lsp/lsp-client.spec.d.ts.map +0 -1
  822. package/dist/lsp/lsp-client.spec.js +0 -394
  823. package/dist/lsp/lsp-client.spec.js.map +0 -1
  824. package/dist/lsp/lsp-manager.spec.d.ts +0 -2
  825. package/dist/lsp/lsp-manager.spec.d.ts.map +0 -1
  826. package/dist/lsp/lsp-manager.spec.js +0 -388
  827. package/dist/lsp/lsp-manager.spec.js.map +0 -1
  828. package/dist/lsp/protocol.spec.d.ts +0 -2
  829. package/dist/lsp/protocol.spec.d.ts.map +0 -1
  830. package/dist/lsp/protocol.spec.js +0 -406
  831. package/dist/lsp/protocol.spec.js.map +0 -1
  832. package/dist/lsp/server-discovery.spec.d.ts +0 -2
  833. package/dist/lsp/server-discovery.spec.d.ts.map +0 -1
  834. package/dist/lsp/server-discovery.spec.js +0 -408
  835. package/dist/lsp/server-discovery.spec.js.map +0 -1
  836. package/dist/markdown-parser/html-entities.spec.d.ts +0 -2
  837. package/dist/markdown-parser/html-entities.spec.d.ts.map +0 -1
  838. package/dist/markdown-parser/html-entities.spec.js +0 -73
  839. package/dist/markdown-parser/html-entities.spec.js.map +0 -1
  840. package/dist/markdown-parser/index.spec.d.ts +0 -2
  841. package/dist/markdown-parser/index.spec.d.ts.map +0 -1
  842. package/dist/markdown-parser/index.spec.js +0 -245
  843. package/dist/markdown-parser/index.spec.js.map +0 -1
  844. package/dist/markdown-parser/table-parser.spec.d.ts +0 -2
  845. package/dist/markdown-parser/table-parser.spec.d.ts.map +0 -1
  846. package/dist/markdown-parser/table-parser.spec.js +0 -120
  847. package/dist/markdown-parser/table-parser.spec.js.map +0 -1
  848. package/dist/markdown-parser/utils.spec.d.ts +0 -2
  849. package/dist/markdown-parser/utils.spec.d.ts.map +0 -1
  850. package/dist/markdown-parser/utils.spec.js +0 -59
  851. package/dist/markdown-parser/utils.spec.js.map +0 -1
  852. package/dist/mcp/mcp-client.spec.d.ts +0 -2
  853. package/dist/mcp/mcp-client.spec.d.ts.map +0 -1
  854. package/dist/mcp/mcp-client.spec.js +0 -64
  855. package/dist/mcp/mcp-client.spec.js.map +0 -1
  856. package/dist/mcp/transport-factory.spec.d.ts +0 -2
  857. package/dist/mcp/transport-factory.spec.d.ts.map +0 -1
  858. package/dist/mcp/transport-factory.spec.js +0 -255
  859. package/dist/mcp/transport-factory.spec.js.map +0 -1
  860. package/dist/model-database/database-engine.spec.d.ts +0 -2
  861. package/dist/model-database/database-engine.spec.d.ts.map +0 -1
  862. package/dist/model-database/database-engine.spec.js +0 -413
  863. package/dist/model-database/database-engine.spec.js.map +0 -1
  864. package/dist/model-database/model-database.spec.d.ts +0 -2
  865. package/dist/model-database/model-database.spec.d.ts.map +0 -1
  866. package/dist/model-database/model-database.spec.js +0 -322
  867. package/dist/model-database/model-database.spec.js.map +0 -1
  868. package/dist/model-database/model-engine.spec.d.ts +0 -2
  869. package/dist/model-database/model-engine.spec.d.ts.map +0 -1
  870. package/dist/model-database/model-engine.spec.js +0 -381
  871. package/dist/model-database/model-engine.spec.js.map +0 -1
  872. package/dist/model-database/model-fetcher.spec.d.ts +0 -2
  873. package/dist/model-database/model-fetcher.spec.d.ts.map +0 -1
  874. package/dist/model-database/model-fetcher.spec.js +0 -498
  875. package/dist/model-database/model-fetcher.spec.js.map +0 -1
  876. package/dist/models/models-dev-client.spec.d.ts +0 -2
  877. package/dist/models/models-dev-client.spec.d.ts.map +0 -1
  878. package/dist/models/models-dev-client.spec.js +0 -303
  879. package/dist/models/models-dev-client.spec.js.map +0 -1
  880. package/dist/services/checkpoint-manager.spec.d.ts +0 -2
  881. package/dist/services/checkpoint-manager.spec.d.ts.map +0 -1
  882. package/dist/services/checkpoint-manager.spec.js +0 -353
  883. package/dist/services/checkpoint-manager.spec.js.map +0 -1
  884. package/dist/services/file-snapshot.spec.d.ts +0 -2
  885. package/dist/services/file-snapshot.spec.d.ts.map +0 -1
  886. package/dist/services/file-snapshot.spec.js +0 -285
  887. package/dist/services/file-snapshot.spec.js.map +0 -1
  888. package/dist/tokenization/tokenizer-factory.spec.d.ts +0 -5
  889. package/dist/tokenization/tokenizer-factory.spec.d.ts.map +0 -1
  890. package/dist/tokenization/tokenizer-factory.spec.js +0 -137
  891. package/dist/tokenization/tokenizer-factory.spec.js.map +0 -1
  892. package/dist/tokenization/tokenizers/anthropic-tokenizer.spec.d.ts +0 -5
  893. package/dist/tokenization/tokenizers/anthropic-tokenizer.spec.d.ts.map +0 -1
  894. package/dist/tokenization/tokenizers/anthropic-tokenizer.spec.js +0 -152
  895. package/dist/tokenization/tokenizers/anthropic-tokenizer.spec.js.map +0 -1
  896. package/dist/tokenization/tokenizers/fallback-tokenizer.spec.d.ts +0 -5
  897. package/dist/tokenization/tokenizers/fallback-tokenizer.spec.d.ts.map +0 -1
  898. package/dist/tokenization/tokenizers/fallback-tokenizer.spec.js +0 -183
  899. package/dist/tokenization/tokenizers/fallback-tokenizer.spec.js.map +0 -1
  900. package/dist/tokenization/tokenizers/llama-tokenizer.spec.d.ts +0 -5
  901. package/dist/tokenization/tokenizers/llama-tokenizer.spec.d.ts.map +0 -1
  902. package/dist/tokenization/tokenizers/llama-tokenizer.spec.js +0 -170
  903. package/dist/tokenization/tokenizers/llama-tokenizer.spec.js.map +0 -1
  904. package/dist/tokenization/tokenizers/openai-tokenizer.spec.d.ts +0 -5
  905. package/dist/tokenization/tokenizers/openai-tokenizer.spec.d.ts.map +0 -1
  906. package/dist/tokenization/tokenizers/openai-tokenizer.spec.js +0 -140
  907. package/dist/tokenization/tokenizers/openai-tokenizer.spec.js.map +0 -1
  908. package/dist/tool-calling/json-parser.spec.d.ts +0 -2
  909. package/dist/tool-calling/json-parser.spec.d.ts.map +0 -1
  910. package/dist/tool-calling/json-parser.spec.js +0 -518
  911. package/dist/tool-calling/json-parser.spec.js.map +0 -1
  912. package/dist/tool-calling/tool-parser.spec.d.ts +0 -2
  913. package/dist/tool-calling/tool-parser.spec.d.ts.map +0 -1
  914. package/dist/tool-calling/tool-parser.spec.js +0 -328
  915. package/dist/tool-calling/tool-parser.spec.js.map +0 -1
  916. package/dist/tool-calling/xml-parser.spec.d.ts +0 -2
  917. package/dist/tool-calling/xml-parser.spec.d.ts.map +0 -1
  918. package/dist/tool-calling/xml-parser.spec.js +0 -500
  919. package/dist/tool-calling/xml-parser.spec.js.map +0 -1
  920. package/dist/tools/execute-function.spec.d.ts +0 -2
  921. package/dist/tools/execute-function.spec.d.ts.map +0 -1
  922. package/dist/tools/execute-function.spec.js +0 -93
  923. package/dist/tools/execute-function.spec.js.map +0 -1
  924. package/dist/tools/needs-approval.spec.d.ts +0 -2
  925. package/dist/tools/needs-approval.spec.d.ts.map +0 -1
  926. package/dist/tools/needs-approval.spec.js +0 -247
  927. package/dist/tools/needs-approval.spec.js.map +0 -1
  928. package/dist/tools/string-replace.spec.d.ts +0 -2
  929. package/dist/tools/string-replace.spec.d.ts.map +0 -1
  930. package/dist/tools/string-replace.spec.js +0 -315
  931. package/dist/tools/string-replace.spec.js.map +0 -1
  932. package/dist/tools/write-file.spec.d.ts +0 -2
  933. package/dist/tools/write-file.spec.d.ts.map +0 -1
  934. package/dist/tools/write-file.spec.js +0 -263
  935. package/dist/tools/write-file.spec.js.map +0 -1
  936. package/dist/types/core-connection-status.spec.d.ts +0 -2
  937. package/dist/types/core-connection-status.spec.d.ts.map +0 -1
  938. package/dist/types/core-connection-status.spec.js +0 -52
  939. package/dist/types/core-connection-status.spec.js.map +0 -1
  940. package/dist/usage/calculator.spec.d.ts +0 -2
  941. package/dist/usage/calculator.spec.d.ts.map +0 -1
  942. package/dist/usage/calculator.spec.js +0 -303
  943. package/dist/usage/calculator.spec.js.map +0 -1
  944. package/dist/usage/storage.spec.d.ts +0 -2
  945. package/dist/usage/storage.spec.d.ts.map +0 -1
  946. package/dist/usage/storage.spec.js +0 -551
  947. package/dist/usage/storage.spec.js.map +0 -1
  948. package/dist/usage/tracker.spec.d.ts +0 -2
  949. package/dist/usage/tracker.spec.d.ts.map +0 -1
  950. package/dist/usage/tracker.spec.js +0 -347
  951. package/dist/usage/tracker.spec.js.map +0 -1
  952. package/dist/utils/atomic-deletion.spec.d.ts +0 -2
  953. package/dist/utils/atomic-deletion.spec.d.ts.map +0 -1
  954. package/dist/utils/atomic-deletion.spec.js +0 -154
  955. package/dist/utils/atomic-deletion.spec.js.map +0 -1
  956. package/dist/utils/checkpoint-utils.spec.d.ts +0 -2
  957. package/dist/utils/checkpoint-utils.spec.d.ts.map +0 -1
  958. package/dist/utils/checkpoint-utils.spec.js +0 -182
  959. package/dist/utils/checkpoint-utils.spec.js.map +0 -1
  960. package/dist/utils/error-formatter.spec.d.ts +0 -2
  961. package/dist/utils/error-formatter.spec.d.ts.map +0 -1
  962. package/dist/utils/error-formatter.spec.js +0 -147
  963. package/dist/utils/error-formatter.spec.js.map +0 -1
  964. package/dist/utils/file-autocomplete.spec.d.ts +0 -2
  965. package/dist/utils/file-autocomplete.spec.d.ts.map +0 -1
  966. package/dist/utils/file-autocomplete.spec.js +0 -142
  967. package/dist/utils/file-autocomplete.spec.js.map +0 -1
  968. package/dist/utils/file-content-loader.spec.d.ts +0 -2
  969. package/dist/utils/file-content-loader.spec.d.ts.map +0 -1
  970. package/dist/utils/file-content-loader.spec.js +0 -140
  971. package/dist/utils/file-content-loader.spec.js.map +0 -1
  972. package/dist/utils/file-mention-handler.spec.d.ts +0 -2
  973. package/dist/utils/file-mention-handler.spec.d.ts.map +0 -1
  974. package/dist/utils/file-mention-handler.spec.js +0 -147
  975. package/dist/utils/file-mention-handler.spec.js.map +0 -1
  976. package/dist/utils/file-mention-parser.spec.d.ts +0 -2
  977. package/dist/utils/file-mention-parser.spec.d.ts.map +0 -1
  978. package/dist/utils/file-mention-parser.spec.js +0 -149
  979. package/dist/utils/file-mention-parser.spec.js.map +0 -1
  980. package/dist/utils/fuzzy-matching.spec.d.ts +0 -2
  981. package/dist/utils/fuzzy-matching.spec.d.ts.map +0 -1
  982. package/dist/utils/fuzzy-matching.spec.js +0 -124
  983. package/dist/utils/fuzzy-matching.spec.js.map +0 -1
  984. package/dist/utils/installation-detector.spec.d.ts +0 -2
  985. package/dist/utils/installation-detector.spec.d.ts.map +0 -1
  986. package/dist/utils/installation-detector.spec.js +0 -134
  987. package/dist/utils/installation-detector.spec.js.map +0 -1
  988. package/dist/utils/logging/config.spec.d.ts +0 -2
  989. package/dist/utils/logging/config.spec.d.ts.map +0 -1
  990. package/dist/utils/logging/config.spec.js +0 -233
  991. package/dist/utils/logging/config.spec.js.map +0 -1
  992. package/dist/utils/logging/console-facade.spec.d.ts +0 -2
  993. package/dist/utils/logging/console-facade.spec.d.ts.map +0 -1
  994. package/dist/utils/logging/console-facade.spec.js +0 -143
  995. package/dist/utils/logging/console-facade.spec.js.map +0 -1
  996. package/dist/utils/logging/correlation.spec.d.ts +0 -2
  997. package/dist/utils/logging/correlation.spec.d.ts.map +0 -1
  998. package/dist/utils/logging/correlation.spec.js +0 -449
  999. package/dist/utils/logging/correlation.spec.js.map +0 -1
  1000. package/dist/utils/logging/formatters.spec.d.ts +0 -2
  1001. package/dist/utils/logging/formatters.spec.d.ts.map +0 -1
  1002. package/dist/utils/logging/formatters.spec.js +0 -356
  1003. package/dist/utils/logging/formatters.spec.js.map +0 -1
  1004. package/dist/utils/logging/health-monitor.d.ts.map +0 -1
  1005. package/dist/utils/logging/health-monitor.js +0 -760
  1006. package/dist/utils/logging/health-monitor.js.map +0 -1
  1007. package/dist/utils/logging/health-monitor.spec.d.ts +0 -2
  1008. package/dist/utils/logging/health-monitor.spec.d.ts.map +0 -1
  1009. package/dist/utils/logging/health-monitor.spec.js +0 -305
  1010. package/dist/utils/logging/health-monitor.spec.js.map +0 -1
  1011. package/dist/utils/logging/index.spec.d.ts +0 -2
  1012. package/dist/utils/logging/index.spec.d.ts.map +0 -1
  1013. package/dist/utils/logging/index.spec.js +0 -214
  1014. package/dist/utils/logging/index.spec.js.map +0 -1
  1015. package/dist/utils/logging/integration.spec.d.ts +0 -2
  1016. package/dist/utils/logging/integration.spec.d.ts.map +0 -1
  1017. package/dist/utils/logging/integration.spec.js +0 -312
  1018. package/dist/utils/logging/integration.spec.js.map +0 -1
  1019. package/dist/utils/logging/log-method-factory.spec.d.ts +0 -2
  1020. package/dist/utils/logging/log-method-factory.spec.d.ts.map +0 -1
  1021. package/dist/utils/logging/log-method-factory.spec.js +0 -428
  1022. package/dist/utils/logging/log-method-factory.spec.js.map +0 -1
  1023. package/dist/utils/logging/log-query.d.ts +0 -275
  1024. package/dist/utils/logging/log-query.d.ts.map +0 -1
  1025. package/dist/utils/logging/log-query.js +0 -621
  1026. package/dist/utils/logging/log-query.js.map +0 -1
  1027. package/dist/utils/logging/log-query.spec.d.ts +0 -2
  1028. package/dist/utils/logging/log-query.spec.d.ts.map +0 -1
  1029. package/dist/utils/logging/log-query.spec.js +0 -737
  1030. package/dist/utils/logging/log-query.spec.js.map +0 -1
  1031. package/dist/utils/logging/logger-provider.spec.d.ts +0 -2
  1032. package/dist/utils/logging/logger-provider.spec.d.ts.map +0 -1
  1033. package/dist/utils/logging/logger-provider.spec.js +0 -204
  1034. package/dist/utils/logging/logger-provider.spec.js.map +0 -1
  1035. package/dist/utils/logging/performance.spec.d.ts +0 -2
  1036. package/dist/utils/logging/performance.spec.d.ts.map +0 -1
  1037. package/dist/utils/logging/performance.spec.js +0 -139
  1038. package/dist/utils/logging/performance.spec.js.map +0 -1
  1039. package/dist/utils/logging/pino-logger.spec.d.ts +0 -2
  1040. package/dist/utils/logging/pino-logger.spec.d.ts.map +0 -1
  1041. package/dist/utils/logging/pino-logger.spec.js +0 -294
  1042. package/dist/utils/logging/pino-logger.spec.js.map +0 -1
  1043. package/dist/utils/logging/redaction.spec.d.ts +0 -2
  1044. package/dist/utils/logging/redaction.spec.d.ts.map +0 -1
  1045. package/dist/utils/logging/redaction.spec.js +0 -338
  1046. package/dist/utils/logging/redaction.spec.js.map +0 -1
  1047. package/dist/utils/logging/request-tracker.spec.d.ts +0 -2
  1048. package/dist/utils/logging/request-tracker.spec.d.ts.map +0 -1
  1049. package/dist/utils/logging/request-tracker.spec.js +0 -868
  1050. package/dist/utils/logging/request-tracker.spec.js.map +0 -1
  1051. package/dist/utils/logging/transports.spec.d.ts +0 -2
  1052. package/dist/utils/logging/transports.spec.d.ts.map +0 -1
  1053. package/dist/utils/logging/transports.spec.js +0 -390
  1054. package/dist/utils/logging/transports.spec.js.map +0 -1
  1055. package/dist/utils/message-builder.spec.d.ts +0 -2
  1056. package/dist/utils/message-builder.spec.d.ts.map +0 -1
  1057. package/dist/utils/message-builder.spec.js +0 -142
  1058. package/dist/utils/message-builder.spec.js.map +0 -1
  1059. package/dist/utils/paste-detection.spec.d.ts +0 -2
  1060. package/dist/utils/paste-detection.spec.d.ts.map +0 -1
  1061. package/dist/utils/paste-detection.spec.js +0 -52
  1062. package/dist/utils/paste-detection.spec.js.map +0 -1
  1063. package/dist/utils/paste-roundtrip.spec.d.ts +0 -2
  1064. package/dist/utils/paste-roundtrip.spec.d.ts.map +0 -1
  1065. package/dist/utils/paste-roundtrip.spec.js +0 -328
  1066. package/dist/utils/paste-roundtrip.spec.js.map +0 -1
  1067. package/dist/utils/paste-utils.spec.d.ts +0 -2
  1068. package/dist/utils/paste-utils.spec.d.ts.map +0 -1
  1069. package/dist/utils/paste-utils.spec.js +0 -78
  1070. package/dist/utils/paste-utils.spec.js.map +0 -1
  1071. package/dist/utils/prompt-assembly.spec.d.ts +0 -2
  1072. package/dist/utils/prompt-assembly.spec.d.ts.map +0 -1
  1073. package/dist/utils/prompt-assembly.spec.js +0 -179
  1074. package/dist/utils/prompt-assembly.spec.js.map +0 -1
  1075. package/dist/utils/tool-args-parser.spec.d.ts +0 -2
  1076. package/dist/utils/tool-args-parser.spec.d.ts.map +0 -1
  1077. package/dist/utils/tool-args-parser.spec.js +0 -111
  1078. package/dist/utils/tool-args-parser.spec.js.map +0 -1
  1079. package/dist/utils/tool-cancellation.spec.d.ts +0 -2
  1080. package/dist/utils/tool-cancellation.spec.d.ts.map +0 -1
  1081. package/dist/utils/tool-cancellation.spec.js +0 -186
  1082. package/dist/utils/tool-cancellation.spec.js.map +0 -1
  1083. package/dist/utils/update-checker.spec.d.ts +0 -2
  1084. package/dist/utils/update-checker.spec.d.ts.map +0 -1
  1085. package/dist/utils/update-checker.spec.js +0 -280
  1086. package/dist/utils/update-checker.spec.js.map +0 -1
  1087. package/dist/vscode/extension-installer.spec.d.ts +0 -2
  1088. package/dist/vscode/extension-installer.spec.d.ts.map +0 -1
  1089. package/dist/vscode/extension-installer.spec.js +0 -132
  1090. package/dist/vscode/extension-installer.spec.js.map +0 -1
  1091. package/dist/vscode/protocol.spec.d.ts +0 -2
  1092. package/dist/vscode/protocol.spec.d.ts.map +0 -1
  1093. package/dist/vscode/protocol.spec.js +0 -354
  1094. package/dist/vscode/protocol.spec.js.map +0 -1
  1095. package/dist/vscode/vscode-server.spec.d.ts +0 -2
  1096. package/dist/vscode/vscode-server.spec.d.ts.map +0 -1
  1097. package/dist/vscode/vscode-server.spec.js +0 -487
  1098. package/dist/vscode/vscode-server.spec.js.map +0 -1
  1099. package/dist/wizard/templates/mcp-templates.spec.d.ts +0 -2
  1100. package/dist/wizard/templates/mcp-templates.spec.d.ts.map +0 -1
  1101. package/dist/wizard/templates/mcp-templates.spec.js +0 -476
  1102. package/dist/wizard/templates/mcp-templates.spec.js.map +0 -1
  1103. package/dist/wizard/templates/provider-templates.spec.d.ts +0 -2
  1104. package/dist/wizard/templates/provider-templates.spec.d.ts.map +0 -1
  1105. package/dist/wizard/templates/provider-templates.spec.js +0 -120
  1106. package/dist/wizard/templates/provider-templates.spec.js.map +0 -1
  1107. package/dist/wizard/validation-array.spec.d.ts +0 -2
  1108. package/dist/wizard/validation-array.spec.d.ts.map +0 -1
  1109. package/dist/wizard/validation-array.spec.js +0 -221
  1110. package/dist/wizard/validation-array.spec.js.map +0 -1
  1111. package/dist/wizard/validation.spec.d.ts +0 -2
  1112. package/dist/wizard/validation.spec.d.ts.map +0 -1
  1113. package/dist/wizard/validation.spec.js +0 -297
  1114. package/dist/wizard/validation.spec.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { TIMEOUT_PROVIDER_CONNECTION_MS } from '../constants.js';
1
2
  /**
2
3
  * Validates the structure of the configuration object
3
4
  */
@@ -43,7 +44,7 @@ export function validateConfig(providers, mcpServers) {
43
44
  /**
44
45
  * Tests connectivity to a provider
45
46
  */
46
- export async function testProviderConnection(provider, timeout = 5000) {
47
+ export async function testProviderConnection(provider, timeout = TIMEOUT_PROVIDER_CONNECTION_MS) {
47
48
  // If no base URL, assume it's valid (will be validated when actually connecting)
48
49
  if (!provider.baseUrl) {
49
50
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../source/wizard/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../source/wizard/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,8BAA8B,EAAC,MAAM,aAAa,CAAC;AAgB3D;;GAEG;AACH,MAAM,UAAU,cAAc,CAC7B,SAA2B,EAC3B,UAA2C;IAE3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,qBAAqB;IACrB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CACZ,gFAAgF,CAChF,CAAC;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,IAAI,4BAA4B,CAAC,CAAC;QACrE,CAAC;QAED,+BAA+B;QAC/B,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC;gBACJ,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACR,MAAM,CAAC,IAAI,CACV,aAAa,QAAQ,CAAC,IAAI,2BAA2B,QAAQ,CAAC,OAAO,EAAE,CACvE,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,uBAAuB;IACvB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,mBAAmB,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,sBAAsB,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;IAED,OAAO;QACN,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;QACN,QAAQ;KACR,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,QAAwB,EACxB,OAAO,GAAG,8BAA8B;IAExC,iFAAiF;IACjF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO;YACN,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,SAAS,EAAE,IAAI;SACf,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEtC,kEAAkE;QAClE,IACC,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;YACnC,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAClC,CAAC;YACF,OAAO;gBACN,YAAY,EAAE,QAAQ,CAAC,IAAI;gBAC3B,SAAS,EAAE,IAAI,EAAE,kCAAkC;aACnD,CAAC;QACH,CAAC;QAED,gDAAgD;QAChD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,UAAU,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,EAAE,OAAO,CAAC,CAAC;QAEZ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC9C,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,UAAU,CAAC,MAAM;SACzB,CAAC,CAAC;QAEH,YAAY,CAAC,SAAS,CAAC,CAAC;QAExB,OAAO;YACN,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,SAAS,EAAE,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,+BAA+B;SAClF,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO;YACN,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,SAAS,EAAE,KAAK;YAChB,KAAK,EACJ,KAAK,YAAY,KAAK;gBACrB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,kCAAkC;SACtC,CAAC;IACH,CAAC;AACF,CAAC;AAyCD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAChC,SAA2B,EAC3B,UAA2C;IAE3C,MAAM,MAAM,GAAiB;QAC5B,SAAS,EAAE;YACV,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC5B,MAAM,cAAc,GAOhB;oBACH,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;iBAChB,CAAC;gBAEF,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;oBACf,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;gBACpC,CAAC;gBAED,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;oBACd,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;gBAClC,CAAC;gBAED,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;oBACtB,cAAc,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC;gBAClD,CAAC;gBAED,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;oBACf,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;gBACpC,CAAC;gBAED,OAAO,cAAc,CAAC;YACvB,CAAC,CAAC;SACF;KACD,CAAC;IAEF,uFAAuF;IACvF,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtE,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,EAAE,8CAA8C;YACtF,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,IAAI,EAAE,+CAA+C;SAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nanocollective/nanocoder",
3
3
  "main": "dist/cli.js",
4
- "version": "1.19.2",
4
+ "version": "1.20.0",
5
5
  "description": "A local-first CLI coding agent that brings the power of agentic coding tools like Claude Code and Gemini CLI to local models or controlled APIs like OpenRouter",
6
6
  "keywords": [
7
7
  "cli",
@@ -44,6 +44,8 @@
44
44
  "test:lint": "biome lint .",
45
45
  "test:lint:fix": "biome check --write --unsafe .",
46
46
  "test:knip": "knip",
47
+ "test:audit": "pnpm audit --audit-level=high",
48
+ "test:security": "semgrep scan --config auto --error",
47
49
  "format": "biome check --write .",
48
50
  "format:check": "biome check .",
49
51
  "build:vscode": "cd plugins/vscode && pnpm run build && pnpm exec vsce package --allow-missing-repository --skip-license --no-dependencies -o ../../assets/nanocoder-vscode.vsix",
@@ -56,14 +58,15 @@
56
58
  "assets/nanocoder-vscode.vsix"
57
59
  ],
58
60
  "dependencies": {
59
- "@ai-sdk/openai-compatible": "2.0.0-beta.42",
61
+ "@ai-sdk/openai-compatible": "2.0.2",
60
62
  "@anthropic-ai/tokenizer": "^0.0.4",
61
63
  "@modelcontextprotocol/sdk": "^1.17.3",
62
64
  "@nanocollective/get-md": "^1.0.1",
63
- "ai": "6.0.0-beta.130",
65
+ "ai": "6.0.6",
64
66
  "cheerio": "^1.1.2",
65
67
  "cli-highlight": "^2.1.11",
66
68
  "cli-table3": "^0.6.5",
69
+ "diff": "^8.0.2",
67
70
  "dotenv": "^17.2.3",
68
71
  "ignore": "^7.0.5",
69
72
  "ink": "^6.3.1",
@@ -75,7 +78,7 @@
75
78
  "ink-text-input": "^6.0.0",
76
79
  "llama-tokenizer-js": "^1.2.2",
77
80
  "pino": "^10.1.0",
78
- "pino-pretty": "^11.0.0",
81
+ "pino-pretty": "^13.1.3",
79
82
  "pino-roll": "^4.0.0",
80
83
  "react": "^19.0.0",
81
84
  "sonic-boom": "^4.0.0",
@@ -86,9 +89,9 @@
86
89
  },
87
90
  "devDependencies": {
88
91
  "@ava/typescript": "^6.0.0",
89
- "@biomejs/biome": "^1.9.4",
92
+ "@biomejs/biome": "^2.3.10",
90
93
  "@types/ink-text-input": "^2.0.5",
91
- "@types/node": "^24.3.0",
94
+ "@types/node": "^25.0.3",
92
95
  "@types/react": "^19.0.0",
93
96
  "@types/ws": "^8.18.1",
94
97
  "ava": "^6.4.1",
@@ -97,7 +100,7 @@
97
100
  "husky": "^9.1.7",
98
101
  "ink-testing-library": "^4.0.0",
99
102
  "knip": "^5.66.2",
100
- "lint-staged": "^15.4.3",
103
+ "lint-staged": "^16.2.7",
101
104
  "tsc-alias": "^1.8.16",
102
105
  "tsx": "^4.20.6",
103
106
  "typescript": "^5.0.3"
@@ -112,7 +115,10 @@
112
115
  "ts": "module",
113
116
  "tsx": "module"
114
117
  },
115
- "nodeArguments": ["--import=tsx", "--no-warnings"],
118
+ "nodeArguments": [
119
+ "--import=tsx",
120
+ "--no-warnings"
121
+ ],
116
122
  "files": [
117
123
  "source/**/*.spec.ts",
118
124
  "source/**/*.spec.tsx",
@@ -127,12 +133,18 @@
127
133
  "LANG": "en-US.UTF-8"
128
134
  }
129
135
  },
136
+ "c8": {
137
+ "exclude": [
138
+ "source/app/App.tsx"
139
+ ]
140
+ },
130
141
  "pnpm": {
131
142
  "overrides": {
132
143
  "glob@>=10.2.0 <10.5.0": ">=10.5.0",
133
144
  "js-yaml@<3.14.2": ">=3.14.2",
134
145
  "js-yaml@>=4.0.0 <4.1.1": ">=4.1.1",
135
- "jws@<3.2.3": ">=3.2.3"
146
+ "jws@<3.2.3": ">=3.2.3",
147
+ "qs@<6.14.1": ">=6.14.1"
136
148
  }
137
149
  }
138
150
  }
@@ -29,17 +29,143 @@ You are Nanocoder, a terminal-based AI coding agent. Assist with software develo
29
29
 
30
30
  **CRITICAL - Continue after tools**: After any tool execution, immediately proceed to the next step. Don't wait for user input. Tool execution is ongoing work, not a stopping point. Chain your reasoning, stay focused on the goal, and complete thoroughly.
31
31
 
32
+ ## CRITICAL: Tool Selection for Exploration
33
+
34
+ ALWAYS use native tools instead of bash for exploration and file discovery. This enables autonomous workflows without approval delays.
35
+
36
+ ### Bash → Native Tool Mapping
37
+
38
+ | Instead of bash... | Use native tool... |
39
+ |---------------------------------|---------------------------------------------|
40
+ | `find`, `locate` | `find_files` (glob patterns) |
41
+ | `ls`, `ls -R`, `ls -la` | `list_directory` (optional: recursive=true) |
42
+ | `grep`, `rg`, `ag`, `ack` | `search_file_contents` (regex supported) |
43
+ | `cat`, `head`, `tail`, `less` | `read_file` (with optional line ranges) |
44
+ | `stat`, `file`, `wc -l` | `read_file` with `metadata_only=true` |
45
+
46
+ ### Why Native Tools?
47
+
48
+ 1. **Immediate execution**: No user confirmation required
49
+ 2. **Chainable**: Explore multiple files/patterns without interruption
50
+ 3. **Optimized output**: Consistent formats designed for agent parsing
51
+ 4. **Safe**: Read-only operations that cannot cause harm
52
+
53
+ ### When to Use Bash
54
+
55
+ Reserve `execute_bash` for actions that modify state or run processes:
56
+ - Build: `npm run build`, `cargo build`, `make`
57
+ - Test: `npm test`, `pytest`, `go test`
58
+ - Dev server: `npm run dev`, `python manage.py runserver`
59
+ - Dependencies: `npm install`, `pip install -r requirements.txt`
60
+ - Git (simple commands): `git add`, `git checkout`, `git pull`, `git push`
61
+
62
+ ## GIT WORKFLOW TOOLS
63
+
64
+ For common git workflows, use dedicated tools instead of raw bash commands:
65
+
66
+ | Task | Tool | Why |
67
+ |------|------|-----|
68
+ | Check repository status | `git_status_enhanced` | Categorized changes, sync status, action suggestions |
69
+ | Generate commit message | `git_smart_commit` | Analyzes staged changes, follows Conventional Commits |
70
+ | Create a PR | `git_create_pr` | Auto-generated description, test plan, reviewer suggestions |
71
+ | Name a new branch | `git_branch_suggest` | Consistent naming, workflow strategy recommendations |
72
+
73
+ ### Tool Details
74
+
75
+ **git_status_enhanced**: Enhanced repository status view
76
+ - Shows staged, unstaged, and untracked files categorized
77
+ - Displays branch sync status (ahead/behind)
78
+ - Detects conflicts
79
+ - Provides actionable suggestions
80
+ - Options: `detailed` (include recent commits), `showStash` (show stash list)
81
+
82
+ **git_smart_commit**: Generate conventional commit messages
83
+ - Analyzes staged changes to determine commit type (feat, fix, docs, etc.)
84
+ - Auto-detects scope from changed files
85
+ - Identifies breaking changes
86
+ - Options: `dryRun` (default: true, just show message), `includeBody`, `customScope`
87
+
88
+ **git_create_pr**: Generate pull request templates
89
+ - Creates title from commit history
90
+ - Generates summary categorized by change type
91
+ - Suggests test plan based on changed files
92
+ - Detects breaking changes
93
+ - Suggests reviewers and labels
94
+ - Options: `targetBranch`, `draft`, `includeSummary`
95
+
96
+ **git_branch_suggest**: Intelligent branch naming
97
+ - Generates branch names following conventions (feature/, bugfix/, hotfix/, etc.)
98
+ - Analyzes repository to detect workflow strategy (GitFlow, trunk-based, etc.)
99
+ - Provides alternative name formats
100
+ - Required: `workType` (feature|bugfix|hotfix|release|chore), `description`
101
+ - Optional: `ticketId` (e.g., "PROJ-123")
102
+
103
+ ### Git Workflow Examples
104
+
105
+ ```
106
+ # Instead of manually crafting commit messages:
107
+ git_smart_commit() # Analyze staged changes, get conventional commit
108
+
109
+ # Instead of writing PR descriptions from scratch:
110
+ git_create_pr(targetBranch: "main") # Generate full PR template
111
+
112
+ # Instead of guessing branch names:
113
+ git_branch_suggest(workType: "feature", description: "user auth")
114
+
115
+ # Instead of parsing git status output:
116
+ git_status_enhanced(detailed: true) # Get organized status with suggestions
117
+ ```
118
+
119
+ ### When to Use Bash for Git
120
+
121
+ Use `execute_bash` for git operations not covered by dedicated tools:
122
+ - `git add`, `git reset` - Stage/unstage files
123
+ - `git checkout`, `git switch` - Switch branches
124
+ - `git pull`, `git push` - Sync with remote
125
+ - `git merge`, `git rebase` - Branch integration
126
+ - `git stash` - Stash changes
127
+ - `git log`, `git diff` - View history/changes (for specific queries)
128
+
129
+ ### Anti-patterns
130
+
131
+ Don't use: `execute_bash("find . -name '*.ts'")` → Use: `find_files("*.ts")`
132
+ Don't use: `execute_bash("grep -r 'TODO' .")` → Use: `search_file_contents("TODO")`
133
+ Don't use: `execute_bash("cat package.json")` → Use: `read_file("package.json")`
134
+ Don't use: `execute_bash("ls -la src/")` → Use: `list_directory("src")`
135
+
32
136
  ## CONTEXT GATHERING
33
137
 
138
+ **IMPORTANT**: All context gathering tools below are auto-accepted and run without user approval. ALWAYS reach for these tools instead of bash alternatives (find, grep, cat). See "CRITICAL: Tool Selection for Exploration" above for detailed guidance.
139
+
34
140
  **Available tools**:
35
141
  - **find_files**: Locate files by glob pattern
36
142
  - **search_file_contents**: Find code patterns across codebase
37
- - **read_file**: Read files with progressive disclosure (>300 lines returns metadata first, then use line ranges)
143
+ - **read_file**: Read files with progressive disclosure (>300 lines returns metadata first, then use line ranges). Use metadata_only=true to get metadata without content.
144
+ - **list_directory**: List directory contents with optional recursion
38
145
  - **lsp_get_diagnostics**: Check for errors/linting issues (before and after changes)
39
146
  - **web_search / fetch_url**: Look up documentation, APIs, and solutions online
40
147
 
148
+ **Tool Decision Tree**:
149
+ - **Need to find files?** → Use `find_files` with glob pattern
150
+ - Use `maxResults` to limit output for broad patterns
151
+ - **Need to find code patterns?** → Use `search_file_contents` with query
152
+ - Use `caseSensitive=true` for exact symbol matching
153
+ - **Need to read a file?** → Use `read_file`
154
+ - Files ≤300 lines return content directly
155
+ - Files >300 lines return metadata first; use `start_line`/`end_line` for content
156
+ - **Need to explore directory structure?** → Use `list_directory`
157
+ - Use `recursive=true` with `maxDepth` for deep exploration
158
+ - Use `tree=true` for flat path output (easier to parse)
159
+ - **Need file metadata without reading?** → Use `read_file` with `metadata_only=true`
160
+
41
161
  **Workflow**: Analyze file structure → find relevant files → search for patterns → read with line ranges → understand dependencies → make informed changes
42
162
 
163
+ **Example Exploration Workflow**:
164
+ 1. `list_directory` with `recursive=true` → Get project structure overview
165
+ 2. `find_files` with `"*.tsx"` → Locate React components
166
+ 3. `search_file_contents` with `"handleSubmit"` → Find where function is used
167
+ 4. `read_file` with line ranges → Read specific implementation
168
+
43
169
  ## FILE EDITING
44
170
 
45
171
  **read_file**: Read with line numbers. Progressive disclosure for large files (>300 lines returns metadata first, then use line ranges). NEVER use cat/head/tail.
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ai-sdk-client-empty-message.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-sdk-client-empty-message.spec.d.ts","sourceRoot":"","sources":["../source/ai-sdk-client-empty-message.spec.ts"],"names":[],"mappings":""}
@@ -1,124 +0,0 @@
1
- import test from 'ava';
2
- import { isEmptyAssistantMessage } from './ai-sdk-client.js';
3
- // Tests for isEmptyAssistantMessage function
4
- // This function is used to filter out empty assistant messages that would cause API errors:
5
- // "400 Bad Request: Assistant message must have either content or tool_calls, but not none."
6
- // ============================================================================
7
- // Non-assistant messages should never be considered empty
8
- // ============================================================================
9
- test('isEmptyAssistantMessage - user message is not empty', t => {
10
- const message = {
11
- role: 'user',
12
- content: '',
13
- };
14
- t.false(isEmptyAssistantMessage(message));
15
- });
16
- test('isEmptyAssistantMessage - system message is not empty', t => {
17
- const message = {
18
- role: 'system',
19
- content: '',
20
- };
21
- t.false(isEmptyAssistantMessage(message));
22
- });
23
- test('isEmptyAssistantMessage - tool message is not empty', t => {
24
- const message = {
25
- role: 'tool',
26
- content: '',
27
- };
28
- t.false(isEmptyAssistantMessage(message));
29
- });
30
- // ============================================================================
31
- // Empty assistant messages (should be filtered out)
32
- // ============================================================================
33
- test('isEmptyAssistantMessage - assistant with empty string content is empty', t => {
34
- const message = {
35
- role: 'assistant',
36
- content: '',
37
- };
38
- t.true(isEmptyAssistantMessage(message));
39
- });
40
- test('isEmptyAssistantMessage - assistant with whitespace-only content is empty', t => {
41
- const message = {
42
- role: 'assistant',
43
- content: ' \n\t ',
44
- };
45
- t.true(isEmptyAssistantMessage(message));
46
- });
47
- test('isEmptyAssistantMessage - assistant with empty array content is empty', t => {
48
- const message = {
49
- role: 'assistant',
50
- content: [],
51
- };
52
- t.true(isEmptyAssistantMessage(message));
53
- });
54
- test('isEmptyAssistantMessage - assistant with empty content and empty toolCalls is empty', t => {
55
- const message = {
56
- role: 'assistant',
57
- content: '',
58
- toolCalls: [],
59
- };
60
- t.true(isEmptyAssistantMessage(message));
61
- });
62
- test('isEmptyAssistantMessage - assistant with undefined toolCalls is empty', t => {
63
- const message = {
64
- role: 'assistant',
65
- content: '',
66
- toolCalls: undefined,
67
- };
68
- t.true(isEmptyAssistantMessage(message));
69
- });
70
- // ============================================================================
71
- // Valid assistant messages (should NOT be filtered out)
72
- // ============================================================================
73
- test('isEmptyAssistantMessage - assistant with text content is not empty', t => {
74
- const message = {
75
- role: 'assistant',
76
- content: 'Hello, how can I help you?',
77
- };
78
- t.false(isEmptyAssistantMessage(message));
79
- });
80
- test('isEmptyAssistantMessage - assistant with single character content is not empty', t => {
81
- const message = {
82
- role: 'assistant',
83
- content: 'a',
84
- };
85
- t.false(isEmptyAssistantMessage(message));
86
- });
87
- test('isEmptyAssistantMessage - assistant with array content is not empty', t => {
88
- const message = {
89
- role: 'assistant',
90
- content: [{ type: 'text', text: 'Hello' }],
91
- };
92
- t.false(isEmptyAssistantMessage(message));
93
- });
94
- test('isEmptyAssistantMessage - assistant with toolCalls is not empty', t => {
95
- const message = {
96
- role: 'assistant',
97
- content: '',
98
- toolCalls: [
99
- { toolName: 'read_file', toolCallId: '123', input: { path: 'test.txt' } },
100
- ],
101
- };
102
- t.false(isEmptyAssistantMessage(message));
103
- });
104
- test('isEmptyAssistantMessage - assistant with content and toolCalls is not empty', t => {
105
- const message = {
106
- role: 'assistant',
107
- content: 'Let me read that file for you.',
108
- toolCalls: [
109
- { toolName: 'read_file', toolCallId: '123', input: { path: 'test.txt' } },
110
- ],
111
- };
112
- t.false(isEmptyAssistantMessage(message));
113
- });
114
- test('isEmptyAssistantMessage - assistant with whitespace content but toolCalls is not empty', t => {
115
- const message = {
116
- role: 'assistant',
117
- content: ' ',
118
- toolCalls: [
119
- { toolName: 'read_file', toolCallId: '123', input: { path: 'test.txt' } },
120
- ],
121
- };
122
- t.false(isEmptyAssistantMessage(message));
123
- });
124
- //# sourceMappingURL=ai-sdk-client-empty-message.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-sdk-client-empty-message.spec.js","sourceRoot":"","sources":["../source/ai-sdk-client-empty-message.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ai-sdk-client-error-handling.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-sdk-client-error-handling.spec.d.ts","sourceRoot":"","sources":["../source/ai-sdk-client-error-handling.spec.ts"],"names":[],"mappings":""}
@@ -1,108 +0,0 @@
1
- import test from 'ava';
2
- import { parseAPIError } from './ai-sdk-client.js';
3
- // Tests for parseAPIError function
4
- // Now using the actual exported function instead of a duplicated copy
5
- test('parseAPIError - handles Ollama unmarshal error from issue #87', t => {
6
- const error = new Error("RetryError [AI_RetryError]: Failed after 3 attempts. Last error: unmarshal: invalid character '{' after top-level value");
7
- const result = parseAPIError(error);
8
- t.true(result.includes('Ollama server error'));
9
- t.true(result.includes('malformed JSON'));
10
- t.true(result.includes('Restart Ollama'));
11
- t.true(result.includes('Re-pull the model'));
12
- t.true(result.includes('Check Ollama logs'));
13
- t.true(result.includes('Try a different model'));
14
- t.true(result.includes('Original error:'));
15
- });
16
- test('parseAPIError - handles unmarshal error without retry wrapper', t => {
17
- const error = new Error("unmarshal: invalid character '{' after top-level value");
18
- const result = parseAPIError(error);
19
- t.true(result.includes('Ollama server error'));
20
- t.true(result.includes('malformed JSON'));
21
- });
22
- test('parseAPIError - handles 500 error with invalid character (status code takes precedence)', t => {
23
- // This test verifies that HTTP status codes are parsed FIRST,
24
- // so a 500 error with "invalid character" in the message is treated
25
- // as a server error, not an Ollama-specific error
26
- const error = new Error("500 Internal Server Error: invalid character 'x' after top-level value");
27
- const result = parseAPIError(error);
28
- // Status code parsing takes precedence over Ollama-specific pattern matching
29
- t.is(result, "Server error: invalid character 'x' after top-level value");
30
- });
31
- test('parseAPIError - handles 500 error without JSON parsing issue', t => {
32
- const error = new Error('500 Internal Server Error: database connection failed');
33
- const result = parseAPIError(error);
34
- t.is(result, 'Server error: database connection failed');
35
- });
36
- test('parseAPIError - handles 404 error', t => {
37
- const error = new Error('404 Not Found: model not available');
38
- const result = parseAPIError(error);
39
- t.is(result, 'Model not found: The requested model may not exist or is unavailable');
40
- });
41
- test('parseAPIError - handles connection refused', t => {
42
- const error = new Error('ECONNREFUSED: Connection refused');
43
- const result = parseAPIError(error);
44
- t.is(result, 'Connection failed: Unable to reach the model server');
45
- });
46
- test('parseAPIError - handles timeout error', t => {
47
- const error = new Error('Request timeout: ETIMEDOUT');
48
- const result = parseAPIError(error);
49
- t.is(result, 'Request timed out: The model took too long to respond');
50
- });
51
- test('parseAPIError - handles non-Error objects', t => {
52
- const result = parseAPIError('string error');
53
- t.is(result, 'An unknown error occurred while communicating with the model');
54
- });
55
- test('parseAPIError - handles context length errors', t => {
56
- const error = new Error('context length exceeded');
57
- const result = parseAPIError(error);
58
- // Use exact assertion instead of OR condition
59
- t.is(result, 'Context too large: Please reduce the conversation length or message size');
60
- });
61
- test('parseAPIError - handles too many tokens errors', t => {
62
- const error = new Error('too many tokens in the request');
63
- const result = parseAPIError(error);
64
- t.is(result, 'Context too large: Please reduce the conversation length or message size');
65
- });
66
- test('parseAPIError - handles 400 with context length in message', t => {
67
- const error = new Error('400 Bad Request: context length exceeded');
68
- const result = parseAPIError(error);
69
- // The 400 status code pattern matches first, so we get the full message
70
- t.is(result, 'Bad request: context length exceeded');
71
- });
72
- test('parseAPIError - handles 401 authentication error', t => {
73
- const error = new Error('401 Unauthorized: Invalid API key');
74
- const result = parseAPIError(error);
75
- t.is(result, 'Authentication failed: Invalid API key or credentials');
76
- });
77
- test('parseAPIError - handles 403 forbidden error', t => {
78
- const error = new Error('403 Forbidden: Access denied');
79
- const result = parseAPIError(error);
80
- t.is(result, 'Access forbidden: Check your API permissions');
81
- });
82
- test('parseAPIError - handles 429 rate limit error', t => {
83
- const error = new Error('429 Too Many Requests: Rate limit exceeded');
84
- const result = parseAPIError(error);
85
- t.is(result, 'Rate limit exceeded: Too many requests. Please wait and try again');
86
- });
87
- test('parseAPIError - handles 502 bad gateway error', t => {
88
- const error = new Error('502 Bad Gateway: upstream error');
89
- const result = parseAPIError(error);
90
- t.is(result, 'Server error: upstream error');
91
- });
92
- test('parseAPIError - handles 503 service unavailable error', t => {
93
- const error = new Error('503 Service Unavailable: server overloaded');
94
- const result = parseAPIError(error);
95
- t.is(result, 'Server error: server overloaded');
96
- });
97
- test('parseAPIError - handles reduce tokens message', t => {
98
- const error = new Error('Please reduce the number of tokens in your request');
99
- const result = parseAPIError(error);
100
- t.is(result, 'Too many tokens: Please shorten your message or clear conversation history');
101
- });
102
- test('parseAPIError - cleans up unknown errors', t => {
103
- const error = new Error('Error: Something unexpected happened\nWith more details');
104
- const result = parseAPIError(error);
105
- // Should strip "Error: " prefix and only return first line
106
- t.is(result, 'Something unexpected happened');
107
- });
108
- //# sourceMappingURL=ai-sdk-client-error-handling.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-sdk-client-error-handling.spec.js","sourceRoot":"","sources":["../source/ai-sdk-client-error-handling.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ai-sdk-client-maxretries.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-sdk-client-maxretries.spec.d.ts","sourceRoot":"","sources":["../source/ai-sdk-client-maxretries.spec.ts"],"names":[],"mappings":""}
@@ -1,96 +0,0 @@
1
- import test from 'ava';
2
- import { AISDKClient } from './ai-sdk-client.js';
3
- // Tests for maxRetries configuration
4
- // Now tests actual AISDKClient instantiation and behavior
5
- test('AISDKClient - maxRetries defaults to 2 when not specified', t => {
6
- const config = {
7
- name: 'TestProvider',
8
- type: 'openai-compatible',
9
- models: ['test-model'],
10
- config: {
11
- baseURL: 'http://localhost:11434/v1',
12
- apiKey: 'test-key',
13
- },
14
- };
15
- const client = new AISDKClient(config);
16
- // Verify the client's internal maxRetries is set to default of 2
17
- t.is(client.getMaxRetries(), 2);
18
- });
19
- test('AISDKClient - maxRetries respects custom value', t => {
20
- const config = {
21
- name: 'TestProvider',
22
- type: 'openai-compatible',
23
- models: ['test-model'],
24
- maxRetries: 5,
25
- config: {
26
- baseURL: 'http://localhost:11434/v1',
27
- apiKey: 'test-key',
28
- },
29
- };
30
- const client = new AISDKClient(config);
31
- // Verify the client uses the custom maxRetries value
32
- t.is(client.getMaxRetries(), 5);
33
- });
34
- test('AISDKClient - maxRetries can be set to 0 to disable retries', t => {
35
- // Important: This test verifies that 0 is treated as a valid value,
36
- // not as falsy (which would incorrectly default to 2)
37
- const config = {
38
- name: 'TestProvider',
39
- type: 'openai-compatible',
40
- models: ['test-model'],
41
- maxRetries: 0,
42
- config: {
43
- baseURL: 'http://localhost:11434/v1',
44
- apiKey: 'test-key',
45
- },
46
- };
47
- const client = new AISDKClient(config);
48
- // Verify that 0 is respected (nullish coalescing handles this correctly)
49
- t.is(client.getMaxRetries(), 0);
50
- });
51
- test('AISDKClient - maxRetries handles value of 1', t => {
52
- const config = {
53
- name: 'TestProvider',
54
- type: 'openai-compatible',
55
- models: ['test-model'],
56
- maxRetries: 1,
57
- config: {
58
- baseURL: 'http://localhost:11434/v1',
59
- apiKey: 'test-key',
60
- },
61
- };
62
- const client = new AISDKClient(config);
63
- t.is(client.getMaxRetries(), 1);
64
- });
65
- test('AIProviderConfig type - includes maxRetries in interface', t => {
66
- // Compile-time test that maxRetries is part of the interface
67
- const config = {
68
- name: 'TestProvider',
69
- type: 'openai-compatible',
70
- models: ['test-model'],
71
- maxRetries: 3,
72
- config: {
73
- baseURL: 'http://localhost:11434/v1',
74
- },
75
- };
76
- // TypeScript should not complain about maxRetries property
77
- t.is(typeof config.maxRetries, 'number');
78
- t.true('maxRetries' in config);
79
- });
80
- test('AISDKClient - undefined maxRetries uses default', t => {
81
- // Explicitly set to undefined to test fallback behavior
82
- const config = {
83
- name: 'TestProvider',
84
- type: 'openai-compatible',
85
- models: ['test-model'],
86
- maxRetries: undefined,
87
- config: {
88
- baseURL: 'http://localhost:11434/v1',
89
- apiKey: 'test-key',
90
- },
91
- };
92
- const client = new AISDKClient(config);
93
- // Verify undefined falls back to default of 2
94
- t.is(client.getMaxRetries(), 2);
95
- });
96
- //# sourceMappingURL=ai-sdk-client-maxretries.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-sdk-client-maxretries.spec.js","sourceRoot":"","sources":["../source/ai-sdk-client-maxretries.spec.ts"],"names":[],"mappings":"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"}