@nanocollective/nanocoder 1.20.4 → 1.22.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 (486) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +157 -72
  3. package/assets/nanocoder-vscode.vsix +0 -0
  4. package/dist/ai-sdk-client/ai-sdk-client.d.ts.map +1 -1
  5. package/dist/ai-sdk-client/ai-sdk-client.js.map +1 -1
  6. package/dist/ai-sdk-client/chat/chat-handler.d.ts +1 -0
  7. package/dist/ai-sdk-client/chat/chat-handler.d.ts.map +1 -1
  8. package/dist/ai-sdk-client/chat/chat-handler.js +66 -7
  9. package/dist/ai-sdk-client/chat/chat-handler.js.map +1 -1
  10. package/dist/ai-sdk-client/error-handling/tool-error-detector.d.ts +8 -0
  11. package/dist/ai-sdk-client/error-handling/tool-error-detector.d.ts.map +1 -0
  12. package/dist/ai-sdk-client/error-handling/tool-error-detector.js +52 -0
  13. package/dist/ai-sdk-client/error-handling/tool-error-detector.js.map +1 -0
  14. package/dist/ai-sdk-client/providers/provider-factory.d.ts +6 -3
  15. package/dist/ai-sdk-client/providers/provider-factory.d.ts.map +1 -1
  16. package/dist/ai-sdk-client/providers/provider-factory.js +18 -4
  17. package/dist/ai-sdk-client/providers/provider-factory.js.map +1 -1
  18. package/dist/ai-sdk-client/tools/tool-prompt-formatter.d.ts +8 -0
  19. package/dist/ai-sdk-client/tools/tool-prompt-formatter.d.ts.map +1 -0
  20. package/dist/ai-sdk-client/tools/tool-prompt-formatter.js +97 -0
  21. package/dist/ai-sdk-client/tools/tool-prompt-formatter.js.map +1 -0
  22. package/dist/app/App.d.ts.map +1 -1
  23. package/dist/app/App.js +22 -12
  24. package/dist/app/App.js.map +1 -1
  25. package/dist/app/components/modal-selectors.d.ts +6 -7
  26. package/dist/app/components/modal-selectors.d.ts.map +1 -1
  27. package/dist/app/components/modal-selectors.js +10 -10
  28. package/dist/app/components/modal-selectors.js.map +1 -1
  29. package/dist/app/components/settings-selector.d.ts +6 -0
  30. package/dist/app/components/settings-selector.d.ts.map +1 -0
  31. package/dist/app/components/settings-selector.js +289 -0
  32. package/dist/app/components/settings-selector.js.map +1 -0
  33. package/dist/app/utils/app-util.d.ts.map +1 -1
  34. package/dist/app/utils/app-util.js +178 -13
  35. package/dist/app/utils/app-util.js.map +1 -1
  36. package/dist/cli.js +22 -0
  37. package/dist/cli.js.map +1 -1
  38. package/dist/client-factory.d.ts.map +1 -1
  39. package/dist/client-factory.js +23 -20
  40. package/dist/client-factory.js.map +1 -1
  41. package/dist/commands/clear.d.ts.map +1 -1
  42. package/dist/commands/clear.js +8 -5
  43. package/dist/commands/clear.js.map +1 -1
  44. package/dist/commands/compact.d.ts +24 -0
  45. package/dist/commands/compact.d.ts.map +1 -0
  46. package/dist/commands/compact.js +31 -0
  47. package/dist/commands/compact.js.map +1 -0
  48. package/dist/commands/custom-commands.d.ts.map +1 -1
  49. package/dist/commands/custom-commands.js +1 -1
  50. package/dist/commands/custom-commands.js.map +1 -1
  51. package/dist/commands/exit.d.ts +1 -0
  52. package/dist/commands/exit.d.ts.map +1 -1
  53. package/dist/commands/exit.js +14 -0
  54. package/dist/commands/exit.js.map +1 -1
  55. package/dist/commands/explorer.d.ts +3 -0
  56. package/dist/commands/explorer.d.ts.map +1 -0
  57. package/dist/commands/explorer.js +10 -0
  58. package/dist/commands/explorer.js.map +1 -0
  59. package/dist/commands/help.d.ts.map +1 -1
  60. package/dist/commands/help.js +1 -1
  61. package/dist/commands/help.js.map +1 -1
  62. package/dist/commands/index.d.ts +6 -3
  63. package/dist/commands/index.d.ts.map +1 -1
  64. package/dist/commands/index.js +6 -3
  65. package/dist/commands/index.js.map +1 -1
  66. package/dist/commands/init.d.ts.map +1 -1
  67. package/dist/commands/init.js +1 -1
  68. package/dist/commands/init.js.map +1 -1
  69. package/dist/commands/lsp.d.ts.map +1 -1
  70. package/dist/commands/lsp.js +1 -1
  71. package/dist/commands/lsp.js.map +1 -1
  72. package/dist/commands/mcp.d.ts.map +1 -1
  73. package/dist/commands/mcp.js +15 -21
  74. package/dist/commands/mcp.js.map +1 -1
  75. package/dist/commands/model-database.d.ts.map +1 -1
  76. package/dist/commands/model-database.js +3 -3
  77. package/dist/commands/model-database.js.map +1 -1
  78. package/dist/commands/settings.d.ts +3 -0
  79. package/dist/commands/settings.d.ts.map +1 -0
  80. package/dist/commands/{theme.js → settings.js} +4 -4
  81. package/dist/commands/settings.js.map +1 -0
  82. package/dist/commands/setup-mcp.d.ts +3 -0
  83. package/dist/commands/setup-mcp.d.ts.map +1 -0
  84. package/dist/commands/setup-mcp.js +15 -0
  85. package/dist/commands/setup-mcp.js.map +1 -0
  86. package/dist/commands/setup-providers.d.ts +3 -0
  87. package/dist/commands/setup-providers.d.ts.map +1 -0
  88. package/dist/commands/{setup-config.js → setup-providers.js} +4 -4
  89. package/dist/commands/setup-providers.js.map +1 -0
  90. package/dist/commands/tasks.d.ts +3 -0
  91. package/dist/commands/tasks.d.ts.map +1 -0
  92. package/dist/commands/tasks.js +117 -0
  93. package/dist/commands/tasks.js.map +1 -0
  94. package/dist/commands/usage.d.ts.map +1 -1
  95. package/dist/commands/usage.js +31 -9
  96. package/dist/commands/usage.js.map +1 -1
  97. package/dist/components/assistant-message.d.ts.map +1 -1
  98. package/dist/components/assistant-message.js +39 -6
  99. package/dist/components/assistant-message.js.map +1 -1
  100. package/dist/components/checkpoint-selector.d.ts.map +1 -1
  101. package/dist/components/checkpoint-selector.js +3 -3
  102. package/dist/components/checkpoint-selector.js.map +1 -1
  103. package/dist/components/file-explorer/index.d.ts +3 -0
  104. package/dist/components/file-explorer/index.d.ts.map +1 -0
  105. package/dist/components/file-explorer/index.js +318 -0
  106. package/dist/components/file-explorer/index.js.map +1 -0
  107. package/dist/components/file-explorer/tree-item.d.ts +3 -0
  108. package/dist/components/file-explorer/tree-item.d.ts.map +1 -0
  109. package/dist/components/file-explorer/tree-item.js +42 -0
  110. package/dist/components/file-explorer/tree-item.js.map +1 -0
  111. package/dist/components/file-explorer/utils.d.ts +18 -0
  112. package/dist/components/file-explorer/utils.d.ts.map +1 -0
  113. package/dist/components/file-explorer/utils.js +51 -0
  114. package/dist/components/file-explorer/utils.js.map +1 -0
  115. package/dist/components/file-explorer.d.ts +2 -0
  116. package/dist/components/file-explorer.d.ts.map +1 -0
  117. package/dist/components/file-explorer.js +3 -0
  118. package/dist/components/file-explorer.js.map +1 -0
  119. package/dist/components/message-box.d.ts +1 -0
  120. package/dist/components/message-box.d.ts.map +1 -1
  121. package/dist/components/message-box.js +2 -2
  122. package/dist/components/message-box.js.map +1 -1
  123. package/dist/components/model-selector.d.ts.map +1 -1
  124. package/dist/components/model-selector.js +3 -3
  125. package/dist/components/model-selector.js.map +1 -1
  126. package/dist/components/provider-selector.d.ts.map +1 -1
  127. package/dist/components/provider-selector.js +1 -1
  128. package/dist/components/provider-selector.js.map +1 -1
  129. package/dist/components/security-disclaimer.d.ts.map +1 -1
  130. package/dist/components/security-disclaimer.js +1 -1
  131. package/dist/components/security-disclaimer.js.map +1 -1
  132. package/dist/components/status.d.ts +11 -0
  133. package/dist/components/status.d.ts.map +1 -1
  134. package/dist/components/status.js +4 -4
  135. package/dist/components/status.js.map +1 -1
  136. package/dist/components/task-list-display.d.ts +8 -0
  137. package/dist/components/task-list-display.d.ts.map +1 -0
  138. package/dist/components/task-list-display.js +26 -0
  139. package/dist/components/task-list-display.js.map +1 -0
  140. package/dist/components/tool-message.d.ts.map +1 -1
  141. package/dist/components/tool-message.js +1 -1
  142. package/dist/components/tool-message.js.map +1 -1
  143. package/dist/components/ui/styled-title.js +38 -38
  144. package/dist/components/usage/progress-bar.d.ts.map +1 -1
  145. package/dist/components/usage/progress-bar.js +6 -3
  146. package/dist/components/usage/progress-bar.js.map +1 -1
  147. package/dist/components/usage/usage-display.d.ts.map +1 -1
  148. package/dist/components/usage/usage-display.js +1 -1
  149. package/dist/components/usage/usage-display.js.map +1 -1
  150. package/dist/components/user-input.d.ts.map +1 -1
  151. package/dist/components/user-input.js +36 -16
  152. package/dist/components/user-input.js.map +1 -1
  153. package/dist/components/user-message.d.ts.map +1 -1
  154. package/dist/components/user-message.js +43 -12
  155. package/dist/components/user-message.js.map +1 -1
  156. package/dist/components/welcome-message.d.ts.map +1 -1
  157. package/dist/components/welcome-message.js +6 -2
  158. package/dist/components/welcome-message.js.map +1 -1
  159. package/dist/config/index.d.ts +7 -1
  160. package/dist/config/index.d.ts.map +1 -1
  161. package/dist/config/index.js +100 -16
  162. package/dist/config/index.js.map +1 -1
  163. package/dist/config/mcp-config-loader.d.ts +31 -0
  164. package/dist/config/mcp-config-loader.d.ts.map +1 -0
  165. package/dist/config/mcp-config-loader.js +341 -0
  166. package/dist/config/mcp-config-loader.js.map +1 -0
  167. package/dist/config/nanocoder-tools-config.d.ts +7 -0
  168. package/dist/config/nanocoder-tools-config.d.ts.map +1 -0
  169. package/dist/config/nanocoder-tools-config.js +14 -0
  170. package/dist/config/nanocoder-tools-config.js.map +1 -0
  171. package/dist/config/preferences.d.ts +4 -0
  172. package/dist/config/preferences.d.ts.map +1 -1
  173. package/dist/config/preferences.js +14 -0
  174. package/dist/config/preferences.js.map +1 -1
  175. package/dist/config/themes.d.ts.map +1 -1
  176. package/dist/config/themes.js +340 -0
  177. package/dist/config/themes.js.map +1 -1
  178. package/dist/config/validation.d.ts +11 -0
  179. package/dist/config/validation.d.ts.map +1 -0
  180. package/dist/config/validation.js +71 -0
  181. package/dist/config/validation.js.map +1 -0
  182. package/dist/constants.d.ts +3 -0
  183. package/dist/constants.d.ts.map +1 -1
  184. package/dist/constants.js +63 -0
  185. package/dist/constants.js.map +1 -1
  186. package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts +3 -1
  187. package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts.map +1 -1
  188. package/dist/hooks/chat-handler/conversation/conversation-loop.js +52 -18
  189. package/dist/hooks/chat-handler/conversation/conversation-loop.js.map +1 -1
  190. package/dist/hooks/chat-handler/useChatHandler.d.ts.map +1 -1
  191. package/dist/hooks/chat-handler/useChatHandler.js +7 -0
  192. package/dist/hooks/chat-handler/useChatHandler.js.map +1 -1
  193. package/dist/hooks/useAppHandlers.d.ts +3 -2
  194. package/dist/hooks/useAppHandlers.d.ts.map +1 -1
  195. package/dist/hooks/useAppHandlers.js +67 -4
  196. package/dist/hooks/useAppHandlers.js.map +1 -1
  197. package/dist/hooks/useAppInitialization.d.ts.map +1 -1
  198. package/dist/hooks/useAppInitialization.js +14 -4
  199. package/dist/hooks/useAppInitialization.js.map +1 -1
  200. package/dist/hooks/useAppState.d.ts +6 -4
  201. package/dist/hooks/useAppState.d.ts.map +1 -1
  202. package/dist/hooks/useAppState.js +9 -6
  203. package/dist/hooks/useAppState.js.map +1 -1
  204. package/dist/hooks/useModeHandlers.d.ts +12 -10
  205. package/dist/hooks/useModeHandlers.d.ts.map +1 -1
  206. package/dist/hooks/useModeHandlers.js +52 -42
  207. package/dist/hooks/useModeHandlers.js.map +1 -1
  208. package/dist/hooks/useTerminalWidth.d.ts +1 -1
  209. package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
  210. package/dist/hooks/useTerminalWidth.js +2 -2
  211. package/dist/hooks/useTerminalWidth.js.map +1 -1
  212. package/dist/hooks/useUIState.d.ts +2 -0
  213. package/dist/hooks/useUIState.d.ts.map +1 -1
  214. package/dist/hooks/useUIState.js +11 -1
  215. package/dist/hooks/useUIState.js.map +1 -1
  216. package/dist/mcp/mcp-client.d.ts +2 -0
  217. package/dist/mcp/mcp-client.d.ts.map +1 -1
  218. package/dist/mcp/mcp-client.js +13 -1
  219. package/dist/mcp/mcp-client.js.map +1 -1
  220. package/dist/models/models-dev-client.d.ts.map +1 -1
  221. package/dist/models/models-dev-client.js +61 -37
  222. package/dist/models/models-dev-client.js.map +1 -1
  223. package/dist/services/bash-executor.d.ts.map +1 -1
  224. package/dist/services/bash-executor.js +7 -0
  225. package/dist/services/bash-executor.js.map +1 -1
  226. package/dist/test-utils/cli-test-harness.d.ts +181 -0
  227. package/dist/test-utils/cli-test-harness.d.ts.map +1 -0
  228. package/dist/test-utils/cli-test-harness.js +413 -0
  229. package/dist/test-utils/cli-test-harness.js.map +1 -0
  230. package/dist/tools/execute-bash.d.ts.map +1 -1
  231. package/dist/tools/execute-bash.js +10 -2
  232. package/dist/tools/execute-bash.js.map +1 -1
  233. package/dist/tools/git/git-add.d.ts +8 -0
  234. package/dist/tools/git/git-add.d.ts.map +1 -0
  235. package/dist/tools/git/git-add.js +141 -0
  236. package/dist/tools/git/git-add.js.map +1 -0
  237. package/dist/tools/git/git-branch.d.ts +8 -0
  238. package/dist/tools/git/git-branch.d.ts.map +1 -0
  239. package/dist/tools/git/git-branch.js +251 -0
  240. package/dist/tools/git/git-branch.js.map +1 -0
  241. package/dist/tools/git/git-commit.d.ts +8 -0
  242. package/dist/tools/git/git-commit.d.ts.map +1 -0
  243. package/dist/tools/git/git-commit.js +176 -0
  244. package/dist/tools/git/git-commit.js.map +1 -0
  245. package/dist/tools/git/git-diff.d.ts +8 -0
  246. package/dist/tools/git/git-diff.d.ts.map +1 -0
  247. package/dist/tools/git/git-diff.js +136 -0
  248. package/dist/tools/git/git-diff.js.map +1 -0
  249. package/dist/tools/git/git-log.d.ts +8 -0
  250. package/dist/tools/git/git-log.d.ts.map +1 -0
  251. package/dist/tools/git/git-log.js +146 -0
  252. package/dist/tools/git/git-log.js.map +1 -0
  253. package/dist/tools/git/git-pr.d.ts +8 -0
  254. package/dist/tools/git/git-pr.d.ts.map +1 -0
  255. package/dist/tools/git/git-pr.js +252 -0
  256. package/dist/tools/git/git-pr.js.map +1 -0
  257. package/dist/tools/git/git-pull.d.ts +8 -0
  258. package/dist/tools/git/git-pull.d.ts.map +1 -0
  259. package/dist/tools/git/git-pull.js +151 -0
  260. package/dist/tools/git/git-pull.js.map +1 -0
  261. package/dist/tools/git/git-push.d.ts +8 -0
  262. package/dist/tools/git/git-push.d.ts.map +1 -0
  263. package/dist/tools/git/git-push.js +157 -0
  264. package/dist/tools/git/git-push.js.map +1 -0
  265. package/dist/tools/git/git-reset.d.ts +8 -0
  266. package/dist/tools/git/git-reset.d.ts.map +1 -0
  267. package/dist/tools/git/git-reset.js +183 -0
  268. package/dist/tools/git/git-reset.js.map +1 -0
  269. package/dist/tools/git/git-stash.d.ts +8 -0
  270. package/dist/tools/git/git-stash.d.ts.map +1 -0
  271. package/dist/tools/git/git-stash.js +260 -0
  272. package/dist/tools/git/git-stash.js.map +1 -0
  273. package/dist/tools/git/git-status.d.ts +8 -0
  274. package/dist/tools/git/git-status.d.ts.map +1 -0
  275. package/dist/tools/git/git-status.js +233 -0
  276. package/dist/tools/git/git-status.js.map +1 -0
  277. package/dist/tools/git/index.d.ts +9 -12
  278. package/dist/tools/git/index.d.ts.map +1 -1
  279. package/dist/tools/git/index.js +43 -11
  280. package/dist/tools/git/index.js.map +1 -1
  281. package/dist/tools/git/utils.d.ts +136 -23
  282. package/dist/tools/git/utils.d.ts.map +1 -1
  283. package/dist/tools/git/utils.js +405 -360
  284. package/dist/tools/git/utils.js.map +1 -1
  285. package/dist/tools/index.d.ts.map +1 -1
  286. package/dist/tools/index.js +15 -9
  287. package/dist/tools/index.js.map +1 -1
  288. package/dist/tools/string-replace.d.ts.map +1 -1
  289. package/dist/tools/string-replace.js +74 -17
  290. package/dist/tools/string-replace.js.map +1 -1
  291. package/dist/tools/tasks/create-task.d.ts +3 -0
  292. package/dist/tools/tasks/create-task.d.ts.map +1 -0
  293. package/dist/tools/tasks/create-task.js +101 -0
  294. package/dist/tools/tasks/create-task.js.map +1 -0
  295. package/dist/tools/tasks/delete-task.d.ts +3 -0
  296. package/dist/tools/tasks/delete-task.d.ts.map +1 -0
  297. package/dist/tools/tasks/delete-task.js +101 -0
  298. package/dist/tools/tasks/delete-task.js.map +1 -0
  299. package/dist/tools/tasks/index.d.ts +7 -0
  300. package/dist/tools/tasks/index.d.ts.map +1 -0
  301. package/dist/tools/tasks/index.js +6 -0
  302. package/dist/tools/tasks/index.js.map +1 -0
  303. package/dist/tools/tasks/list-tasks.d.ts +3 -0
  304. package/dist/tools/tasks/list-tasks.d.ts.map +1 -0
  305. package/dist/tools/tasks/list-tasks.js +67 -0
  306. package/dist/tools/tasks/list-tasks.js.map +1 -0
  307. package/dist/tools/tasks/storage.d.ts +7 -0
  308. package/dist/tools/tasks/storage.d.ts.map +1 -0
  309. package/dist/tools/tasks/storage.js +31 -0
  310. package/dist/tools/tasks/storage.js.map +1 -0
  311. package/dist/tools/tasks/types.d.ts +11 -0
  312. package/dist/tools/tasks/types.d.ts.map +1 -0
  313. package/dist/tools/tasks/types.js +2 -0
  314. package/dist/tools/tasks/types.js.map +1 -0
  315. package/dist/tools/tasks/update-task.d.ts +3 -0
  316. package/dist/tools/tasks/update-task.d.ts.map +1 -0
  317. package/dist/tools/tasks/update-task.js +142 -0
  318. package/dist/tools/tasks/update-task.js.map +1 -0
  319. package/dist/tools/tool-manager.d.ts +1 -0
  320. package/dist/tools/tool-manager.d.ts.map +1 -1
  321. package/dist/tools/write-file.d.ts.map +1 -1
  322. package/dist/tools/write-file.js +52 -3
  323. package/dist/tools/write-file.js.map +1 -1
  324. package/dist/types/app.d.ts +3 -2
  325. package/dist/types/app.d.ts.map +1 -1
  326. package/dist/types/config.d.ts +54 -27
  327. package/dist/types/config.d.ts.map +1 -1
  328. package/dist/types/file-explorer.d.ts +14 -0
  329. package/dist/types/file-explorer.d.ts.map +1 -0
  330. package/dist/types/file-explorer.js +2 -0
  331. package/dist/types/file-explorer.js.map +1 -0
  332. package/dist/types/mcp.d.ts +1 -0
  333. package/dist/types/mcp.d.ts.map +1 -1
  334. package/dist/types/ui.d.ts +2 -2
  335. package/dist/types/ui.d.ts.map +1 -1
  336. package/dist/utils/auto-compact.d.ts +23 -0
  337. package/dist/utils/auto-compact.d.ts.map +1 -0
  338. package/dist/utils/auto-compact.js +149 -0
  339. package/dist/utils/auto-compact.js.map +1 -0
  340. package/dist/utils/completion-note.d.ts +3 -0
  341. package/dist/utils/completion-note.d.ts.map +1 -0
  342. package/dist/utils/completion-note.js +39 -0
  343. package/dist/utils/completion-note.js.map +1 -0
  344. package/dist/utils/compression-backup.d.ts +14 -0
  345. package/dist/utils/compression-backup.d.ts.map +1 -0
  346. package/dist/utils/compression-backup.js +31 -0
  347. package/dist/utils/compression-backup.js.map +1 -0
  348. package/dist/utils/file-tree.d.ts +37 -0
  349. package/dist/utils/file-tree.d.ts.map +1 -0
  350. package/dist/utils/file-tree.js +122 -0
  351. package/dist/utils/file-tree.js.map +1 -0
  352. package/dist/utils/indentation-normalizer.d.ts +10 -0
  353. package/dist/utils/indentation-normalizer.d.ts.map +1 -1
  354. package/dist/utils/indentation-normalizer.js +48 -0
  355. package/dist/utils/indentation-normalizer.js.map +1 -1
  356. package/dist/utils/logging/config.d.ts +11 -0
  357. package/dist/utils/logging/config.d.ts.map +1 -1
  358. package/dist/utils/logging/config.js +19 -4
  359. package/dist/utils/logging/config.js.map +1 -1
  360. package/dist/utils/logging/logger-provider.d.ts +15 -0
  361. package/dist/utils/logging/logger-provider.d.ts.map +1 -1
  362. package/dist/utils/logging/logger-provider.js +48 -24
  363. package/dist/utils/logging/logger-provider.js.map +1 -1
  364. package/dist/utils/message-compression.d.ts +55 -0
  365. package/dist/utils/message-compression.d.ts.map +1 -0
  366. package/dist/utils/message-compression.js +401 -0
  367. package/dist/utils/message-compression.js.map +1 -0
  368. package/dist/vscode/protocol.d.ts +5 -1
  369. package/dist/vscode/protocol.d.ts.map +1 -1
  370. package/dist/vscode/vscode-server.d.ts +4 -0
  371. package/dist/vscode/vscode-server.d.ts.map +1 -1
  372. package/dist/vscode/vscode-server.js +10 -0
  373. package/dist/vscode/vscode-server.js.map +1 -1
  374. package/dist/wizards/mcp-wizard.d.ts +8 -0
  375. package/dist/wizards/mcp-wizard.d.ts.map +1 -0
  376. package/dist/wizards/mcp-wizard.js +256 -0
  377. package/dist/wizards/mcp-wizard.js.map +1 -0
  378. package/dist/wizards/provider-wizard.d.ts +8 -0
  379. package/dist/wizards/provider-wizard.d.ts.map +1 -0
  380. package/dist/wizards/provider-wizard.js +254 -0
  381. package/dist/wizards/provider-wizard.js.map +1 -0
  382. package/dist/wizards/steps/location-step.d.ts +10 -0
  383. package/dist/wizards/steps/location-step.d.ts.map +1 -0
  384. package/dist/{wizard → wizards}/steps/location-step.js +7 -10
  385. package/dist/wizards/steps/location-step.js.map +1 -0
  386. package/dist/{wizard → wizards}/steps/mcp-step.d.ts +3 -1
  387. package/dist/wizards/steps/mcp-step.d.ts.map +1 -0
  388. package/dist/{wizard → wizards}/steps/mcp-step.js +14 -11
  389. package/dist/wizards/steps/mcp-step.js.map +1 -0
  390. package/dist/wizards/steps/provider-step.d.ts +11 -0
  391. package/dist/wizards/steps/provider-step.d.ts.map +1 -0
  392. package/dist/{wizard → wizards}/steps/provider-step.js +12 -10
  393. package/dist/wizards/steps/provider-step.js.map +1 -0
  394. package/dist/{wizard → wizards}/steps/summary-step.d.ts +3 -2
  395. package/dist/wizards/steps/summary-step.d.ts.map +1 -0
  396. package/dist/{wizard → wizards}/steps/summary-step.js +2 -2
  397. package/dist/wizards/steps/summary-step.js.map +1 -0
  398. package/dist/{wizard → wizards}/templates/mcp-templates.d.ts +1 -0
  399. package/dist/wizards/templates/mcp-templates.d.ts.map +1 -0
  400. package/dist/wizards/templates/mcp-templates.js.map +1 -0
  401. package/dist/wizards/templates/provider-templates.d.ts.map +1 -0
  402. package/dist/{wizard → wizards}/templates/provider-templates.js +73 -8
  403. package/dist/wizards/templates/provider-templates.js.map +1 -0
  404. package/dist/wizards/utils/fetch-cloud-models.d.ts.map +1 -0
  405. package/dist/wizards/utils/fetch-cloud-models.js.map +1 -0
  406. package/dist/wizards/utils/fetch-local-models.d.ts.map +1 -0
  407. package/dist/wizards/utils/fetch-local-models.js.map +1 -0
  408. package/dist/wizards/validation.d.ts +72 -0
  409. package/dist/wizards/validation.d.ts.map +1 -0
  410. package/dist/{wizard → wizards}/validation.js +64 -1
  411. package/dist/wizards/validation.js.map +1 -0
  412. package/package.json +21 -6
  413. package/source/app/prompts/main-prompt.md +75 -68
  414. package/dist/commands/setup-config.d.ts +0 -3
  415. package/dist/commands/setup-config.d.ts.map +0 -1
  416. package/dist/commands/setup-config.js.map +0 -1
  417. package/dist/commands/theme.d.ts +0 -3
  418. package/dist/commands/theme.d.ts.map +0 -1
  419. package/dist/commands/theme.js.map +0 -1
  420. package/dist/commands/title-shape.d.ts +0 -3
  421. package/dist/commands/title-shape.d.ts.map +0 -1
  422. package/dist/commands/title-shape.js +0 -54
  423. package/dist/commands/title-shape.js.map +0 -1
  424. package/dist/components/theme-selector.d.ts +0 -8
  425. package/dist/components/theme-selector.d.ts.map +0 -1
  426. package/dist/components/theme-selector.js +0 -51
  427. package/dist/components/theme-selector.js.map +0 -1
  428. package/dist/components/title-shape-selector.d.ts +0 -8
  429. package/dist/components/title-shape-selector.d.ts.map +0 -1
  430. package/dist/components/title-shape-selector.js +0 -108
  431. package/dist/components/title-shape-selector.js.map +0 -1
  432. package/dist/tools/git/git-branch-suggest.d.ts +0 -9
  433. package/dist/tools/git/git-branch-suggest.d.ts.map +0 -1
  434. package/dist/tools/git/git-branch-suggest.js +0 -326
  435. package/dist/tools/git/git-branch-suggest.js.map +0 -1
  436. package/dist/tools/git/git-create-pr.d.ts +0 -9
  437. package/dist/tools/git/git-create-pr.d.ts.map +0 -1
  438. package/dist/tools/git/git-create-pr.js +0 -404
  439. package/dist/tools/git/git-create-pr.js.map +0 -1
  440. package/dist/tools/git/git-smart-commit.d.ts +0 -9
  441. package/dist/tools/git/git-smart-commit.d.ts.map +0 -1
  442. package/dist/tools/git/git-smart-commit.js +0 -308
  443. package/dist/tools/git/git-smart-commit.js.map +0 -1
  444. package/dist/tools/git/git-status-enhanced.d.ts +0 -9
  445. package/dist/tools/git/git-status-enhanced.d.ts.map +0 -1
  446. package/dist/tools/git/git-status-enhanced.js +0 -305
  447. package/dist/tools/git/git-status-enhanced.js.map +0 -1
  448. package/dist/tools/git/types.d.ts +0 -103
  449. package/dist/tools/git/types.d.ts.map +0 -1
  450. package/dist/tools/git/types.js +0 -7
  451. package/dist/tools/git/types.js.map +0 -1
  452. package/dist/utils/gradient-utils.d.ts +0 -25
  453. package/dist/utils/gradient-utils.d.ts.map +0 -1
  454. package/dist/utils/gradient-utils.js +0 -45
  455. package/dist/utils/gradient-utils.js.map +0 -1
  456. package/dist/wizard/config-wizard.d.ts +0 -8
  457. package/dist/wizard/config-wizard.d.ts.map +0 -1
  458. package/dist/wizard/config-wizard.js +0 -212
  459. package/dist/wizard/config-wizard.js.map +0 -1
  460. package/dist/wizard/steps/location-step.d.ts +0 -9
  461. package/dist/wizard/steps/location-step.d.ts.map +0 -1
  462. package/dist/wizard/steps/location-step.js.map +0 -1
  463. package/dist/wizard/steps/mcp-step.d.ts.map +0 -1
  464. package/dist/wizard/steps/mcp-step.js.map +0 -1
  465. package/dist/wizard/steps/provider-step.d.ts +0 -9
  466. package/dist/wizard/steps/provider-step.d.ts.map +0 -1
  467. package/dist/wizard/steps/provider-step.js.map +0 -1
  468. package/dist/wizard/steps/summary-step.d.ts.map +0 -1
  469. package/dist/wizard/steps/summary-step.js.map +0 -1
  470. package/dist/wizard/templates/mcp-templates.d.ts.map +0 -1
  471. package/dist/wizard/templates/mcp-templates.js.map +0 -1
  472. package/dist/wizard/templates/provider-templates.d.ts.map +0 -1
  473. package/dist/wizard/templates/provider-templates.js.map +0 -1
  474. package/dist/wizard/utils/fetch-cloud-models.d.ts.map +0 -1
  475. package/dist/wizard/utils/fetch-cloud-models.js.map +0 -1
  476. package/dist/wizard/utils/fetch-local-models.d.ts.map +0 -1
  477. package/dist/wizard/utils/fetch-local-models.js.map +0 -1
  478. package/dist/wizard/validation.d.ts +0 -64
  479. package/dist/wizard/validation.d.ts.map +0 -1
  480. package/dist/wizard/validation.js.map +0 -1
  481. /package/dist/{wizard → wizards}/templates/mcp-templates.js +0 -0
  482. /package/dist/{wizard → wizards}/templates/provider-templates.d.ts +0 -0
  483. /package/dist/{wizard → wizards}/utils/fetch-cloud-models.d.ts +0 -0
  484. /package/dist/{wizard → wizards}/utils/fetch-cloud-models.js +0 -0
  485. /package/dist/{wizard → wizards}/utils/fetch-local-models.d.ts +0 -0
  486. /package/dist/{wizard → wizards}/utils/fetch-local-models.js +0 -0
@@ -208,18 +208,22 @@ async function findModelById(modelId) {
208
208
  }
209
209
  // Search through all providers
210
210
  for (const [_providerId, provider] of Object.entries(data)) {
211
+ // Skip malformed provider entries
212
+ if (!provider || typeof provider !== 'object' || !provider.models) {
213
+ continue;
214
+ }
211
215
  const model = provider.models[modelId];
212
216
  if (model) {
213
217
  return {
214
218
  id: model.id,
215
219
  name: model.name,
216
220
  provider: provider.name,
217
- contextLimit: model.limit.context,
218
- outputLimit: model.limit.output,
219
- supportsToolCalls: model.tool_call,
221
+ contextLimit: model.limit?.context ?? null,
222
+ outputLimit: model.limit?.output ?? null,
223
+ supportsToolCalls: model.tool_call ?? false,
220
224
  cost: {
221
- input: model.cost.input,
222
- output: model.cost.output,
225
+ input: model.cost?.input ?? 0,
226
+ output: model.cost?.output ?? 0,
223
227
  },
224
228
  };
225
229
  }
@@ -231,6 +235,10 @@ async function findModelById(modelId) {
231
235
  * Useful for local models where exact ID might not match
232
236
  */
233
237
  async function findModelByName(modelName) {
238
+ // Empty string matches everything with .includes(), so return null early
239
+ if (!modelName) {
240
+ return null;
241
+ }
234
242
  const data = await getModelsData();
235
243
  if (!data) {
236
244
  return null;
@@ -238,19 +246,27 @@ async function findModelByName(modelName) {
238
246
  const lowerName = modelName.toLowerCase();
239
247
  // Search through all providers
240
248
  for (const [_providerId, provider] of Object.entries(data)) {
249
+ // Skip malformed provider entries
250
+ if (!provider || typeof provider !== 'object' || !provider.models) {
251
+ continue;
252
+ }
241
253
  for (const [_modelId, model] of Object.entries(provider.models)) {
242
- if (model.id.toLowerCase().includes(lowerName) ||
243
- model.name.toLowerCase().includes(lowerName)) {
254
+ // Skip malformed model entries
255
+ if (!model || typeof model !== 'object') {
256
+ continue;
257
+ }
258
+ if ((model.id && model.id.toLowerCase().includes(lowerName)) ||
259
+ (model.name && model.name.toLowerCase().includes(lowerName))) {
244
260
  return {
245
261
  id: model.id,
246
262
  name: model.name,
247
263
  provider: provider.name,
248
- contextLimit: model.limit.context,
249
- outputLimit: model.limit.output,
250
- supportsToolCalls: model.tool_call,
264
+ contextLimit: model.limit?.context ?? null,
265
+ outputLimit: model.limit?.output ?? null,
266
+ supportsToolCalls: model.tool_call ?? false,
251
267
  cost: {
252
- input: model.cost.input,
253
- output: model.cost.output,
268
+ input: model.cost?.input ?? 0,
269
+ output: model.cost?.output ?? 0,
254
270
  },
255
271
  };
256
272
  }
@@ -263,32 +279,40 @@ async function findModelByName(modelName) {
263
279
  * Returns null if model not found and no fallback available
264
280
  */
265
281
  export async function getModelContextLimit(modelId) {
266
- // Try Ollama fallback first with original model ID (before normalization)
267
- // This handles cloud models like gpt-oss:20b-cloud
268
- const ollamaLimitOriginal = getOllamaFallbackContextLimit(modelId);
269
- if (ollamaLimitOriginal) {
270
- return ollamaLimitOriginal;
271
- }
272
- // Strip :cloud or -cloud suffix if present (Ollama cloud models)
273
- const normalizedModelId = modelId.endsWith(':cloud') || modelId.endsWith('-cloud')
274
- ? modelId.slice(0, -6) // Remove ":cloud" or "-cloud"
275
- : modelId;
276
- // Try exact ID match first
277
- let modelInfo = await findModelById(normalizedModelId);
278
- // Try partial name match if exact match fails
279
- if (!modelInfo) {
280
- modelInfo = await findModelByName(normalizedModelId);
281
- }
282
- // If found in models.dev, return that
283
- if (modelInfo) {
284
- return modelInfo.contextLimit;
282
+ try {
283
+ // Try Ollama fallback first with original model ID (before normalization)
284
+ // This handles cloud models like gpt-oss:20b-cloud
285
+ const ollamaLimitOriginal = getOllamaFallbackContextLimit(modelId);
286
+ if (ollamaLimitOriginal) {
287
+ return ollamaLimitOriginal;
288
+ }
289
+ // Strip :cloud or -cloud suffix if present (Ollama cloud models)
290
+ const normalizedModelId = modelId.endsWith(':cloud') || modelId.endsWith('-cloud')
291
+ ? modelId.slice(0, -6) // Remove ":cloud" or "-cloud"
292
+ : modelId;
293
+ // Try exact ID match first
294
+ let modelInfo = await findModelById(normalizedModelId);
295
+ // Try partial name match if exact match fails
296
+ if (!modelInfo) {
297
+ modelInfo = await findModelByName(normalizedModelId);
298
+ }
299
+ // If found in models.dev, return that
300
+ if (modelInfo) {
301
+ return modelInfo.contextLimit;
302
+ }
303
+ // Fall back to Ollama model defaults with normalized ID
304
+ const ollamaLimit = getOllamaFallbackContextLimit(normalizedModelId);
305
+ if (ollamaLimit) {
306
+ return ollamaLimit;
307
+ }
308
+ // No context limit found
309
+ return null;
285
310
  }
286
- // Fall back to Ollama model defaults with normalized ID
287
- const ollamaLimit = getOllamaFallbackContextLimit(normalizedModelId);
288
- if (ollamaLimit) {
289
- return ollamaLimit;
311
+ catch (error) {
312
+ // Log error but don't crash - just return null
313
+ const logger = getLogger();
314
+ logger.error({ error: formatError(error), modelId }, 'Error getting model context limit');
315
+ return null;
290
316
  }
291
- // No context limit found
292
- return null;
293
317
  }
294
318
  //# sourceMappingURL=models-dev-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models-dev-client.js","sourceRoot":"","sources":["../../source/models/models-dev-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models-dev-client.js","sourceRoot":"","sources":["../../source/models/models-dev-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bash-executor.d.ts","sourceRoot":"","sources":["../../source/services/bash-executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAUzC,MAAM,WAAW,kBAAkB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AASD,qBAAa,YAAa,SAAQ,YAAY;IAC7C,OAAO,CAAC,UAAU,CAAqC;IAEvD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;KACrC;IAyED,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAiBpC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAK7D,mBAAmB,IAAI,OAAO;IAI9B,qBAAqB,IAAI,MAAM,EAAE;CAGjC;AAGD,eAAO,MAAM,YAAY,cAAqB,CAAC"}
1
+ {"version":3,"file":"bash-executor.d.ts","sourceRoot":"","sources":["../../source/services/bash-executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAUzC,MAAM,WAAW,kBAAkB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AASD,qBAAa,YAAa,SAAQ,YAAY;IAC7C,OAAO,CAAC,UAAU,CAAqC;IAEvD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;KACrC;IA4ED,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAuBpC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAK7D,mBAAmB,IAAI,OAAO;IAI9B,qBAAqB,IAAI,MAAM,EAAE;CAGjC;AAGD,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -30,9 +30,12 @@ export class BashExecutor extends EventEmitter {
30
30
  state.stderr += data.toString();
31
31
  });
32
32
  // Progress interval - emit updates every 500ms
33
+ // Using unref() so this interval doesn't prevent Node.js from exiting
34
+ // (important for tests and clean shutdown)
33
35
  const intervalId = setInterval(() => {
34
36
  this.emit('progress', { ...state });
35
37
  }, INTERVAL_BASH_PROGRESS_MS);
38
+ intervalId.unref();
36
39
  const promise = new Promise((resolve, _reject) => {
37
40
  // Store resolve function so cancel() can resolve the promise
38
41
  this.executions.set(executionId, {
@@ -73,6 +76,10 @@ export class BashExecutor extends EventEmitter {
73
76
  if (!execution)
74
77
  return false;
75
78
  clearInterval(execution.intervalId);
79
+ // Destroy stdio streams to prevent them from keeping the event loop alive
80
+ execution.process.stdout?.destroy();
81
+ execution.process.stderr?.destroy();
82
+ execution.process.stdin?.destroy();
76
83
  execution.process.kill('SIGTERM');
77
84
  execution.state.isComplete = true;
78
85
  execution.state.error = 'Cancelled by user';
@@ -1 +1 @@
1
- {"version":3,"file":"bash-executor.js","sourceRoot":"","sources":["../../source/services/bash-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bash-executor.js","sourceRoot":"","sources":["../../source/services/bash-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ import { EventEmitter } from 'node:events';
2
+ /**
3
+ * Result object returned after a CLI process completes execution.
4
+ */
5
+ export interface CLITestResult {
6
+ /** Exit code of the process, or null if terminated by signal */
7
+ exitCode: number | null;
8
+ /** Signal that terminated the process, or null if exited normally */
9
+ signal: NodeJS.Signals | null;
10
+ /** Captured stdout output */
11
+ stdout: string;
12
+ /** Captured stderr output */
13
+ stderr: string;
14
+ /** Whether the process was killed due to timeout */
15
+ timedOut: boolean;
16
+ /** Duration in milliseconds from start to exit */
17
+ duration: number;
18
+ /** Whether the process was killed (by timeout, signal, or kill()) */
19
+ killed: boolean;
20
+ }
21
+ /**
22
+ * Options for configuring CLI test execution.
23
+ */
24
+ export interface CLITestOptions {
25
+ /** Command-line arguments to pass to the CLI */
26
+ args?: string[];
27
+ /** Environment variables to set (can override defaults when placed after inheritEnv) */
28
+ env?: Record<string, string>;
29
+ /** Timeout in milliseconds before killing the process (default: 30000) */
30
+ timeout?: number;
31
+ /** Working directory for the process */
32
+ cwd?: string;
33
+ /** Data to write to stdin before closing it */
34
+ stdin?: string;
35
+ /** Whether to inherit parent process environment variables (default: true) */
36
+ inheritEnv?: boolean;
37
+ /** Send a signal to the process after a delay */
38
+ sendSignal?: {
39
+ signal: NodeJS.Signals;
40
+ delayMs: number;
41
+ };
42
+ /** Additional arguments to pass to Node.js */
43
+ nodeArgs?: string[];
44
+ }
45
+ /**
46
+ * Gets the path to the CLI entry point.
47
+ * Prefers the compiled dist/cli.js, falls back to source/cli.tsx.
48
+ * @returns Absolute path to the CLI entry point
49
+ * @throws Error if neither path exists
50
+ */
51
+ export declare function getCLIPath(): string;
52
+ /**
53
+ * Checks if the CLI path requires tsx to execute (TypeScript source files).
54
+ * @param cliPath - Path to the CLI file
55
+ * @returns true if the file is .ts or .tsx
56
+ */
57
+ export declare function needsTsx(cliPath: string): boolean;
58
+ /**
59
+ * A test harness for spawning and controlling CLI processes.
60
+ * Extends EventEmitter and emits 'stdout', 'stderr', 'exit', and 'signal-sent' events.
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const harness = createCLITestHarness();
65
+ * const result = await harness.run({ args: ['run', 'hello world'] });
66
+ * assertExitCode(result, 0);
67
+ * ```
68
+ */
69
+ export declare class CLITestHarness extends EventEmitter {
70
+ private process;
71
+ private startTime;
72
+ private result;
73
+ private stdoutChunks;
74
+ private stderrChunks;
75
+ private timeoutId;
76
+ private signalTimeoutId;
77
+ private _timedOut;
78
+ private stdoutListener;
79
+ private stderrListener;
80
+ /**
81
+ * Spawns the CLI process with the given options and waits for it to exit.
82
+ * @param options - Configuration options for the CLI execution
83
+ * @returns Promise that resolves with the test result
84
+ * @throws Error if called while a process is already running
85
+ */
86
+ run(options?: CLITestOptions): Promise<CLITestResult>;
87
+ /**
88
+ * Sends a signal to the running process.
89
+ * @param signal - The signal to send (e.g., 'SIGINT', 'SIGTERM')
90
+ * @returns true if the signal was sent, false if no process is running
91
+ */
92
+ sendSignal(signal: NodeJS.Signals): boolean;
93
+ /**
94
+ * Writes data to the process's stdin.
95
+ * @param data - The string data to write
96
+ * @returns true if data was written, false if no process or stdin is unavailable
97
+ */
98
+ writeToStdin(data: string): boolean;
99
+ /**
100
+ * Closes the process's stdin stream.
101
+ * @returns true if stdin was closed, false if no process or stdin is unavailable
102
+ */
103
+ closeStdin(): boolean;
104
+ /**
105
+ * Kills the running process with the specified signal.
106
+ * @param signal - The signal to use (default: 'SIGTERM')
107
+ * @returns true if the process was killed, false if no process is running
108
+ */
109
+ kill(signal?: NodeJS.Signals): boolean;
110
+ /**
111
+ * Checks if a process is currently running.
112
+ * @returns true if a process is running and has not exited
113
+ */
114
+ isRunning(): boolean;
115
+ /**
116
+ * Gets the current accumulated stdout output.
117
+ * @returns The stdout output collected so far
118
+ */
119
+ getCurrentStdout(): string;
120
+ getCurrentStderr(): string;
121
+ /**
122
+ * Waits for output matching a pattern to appear in the process output.
123
+ * @param pattern - String or RegExp to match against output
124
+ * @param options - Options for timeout and which stream(s) to check
125
+ * @returns Promise that resolves with the matched string
126
+ * @throws Error if timeout is reached before pattern is found
127
+ */
128
+ waitForOutput(pattern: RegExp | string, options?: {
129
+ timeout?: number;
130
+ stream?: 'stdout' | 'stderr' | 'both';
131
+ }): Promise<string>;
132
+ private cleanup;
133
+ private buildResult;
134
+ }
135
+ /**
136
+ * Creates a new CLITestHarness instance.
137
+ * @returns A new CLITestHarness ready to run tests
138
+ */
139
+ export declare function createCLITestHarness(): CLITestHarness;
140
+ /**
141
+ * Asserts that the process exited with the expected exit code.
142
+ * @param result - The CLI test result to check
143
+ * @param expectedCode - The expected exit code
144
+ * @throws Error if the exit code doesn't match
145
+ */
146
+ export declare function assertExitCode(result: CLITestResult, expectedCode: number): void;
147
+ /**
148
+ * Asserts that the process was terminated by the expected signal.
149
+ * @param result - The CLI test result to check
150
+ * @param expectedSignal - The expected termination signal
151
+ * @throws Error if the signal doesn't match
152
+ */
153
+ export declare function assertSignal(result: CLITestResult, expectedSignal: NodeJS.Signals): void;
154
+ /**
155
+ * Asserts that the process timed out.
156
+ * @param result - The CLI test result to check
157
+ * @throws Error if the process did not time out
158
+ */
159
+ export declare function assertTimedOut(result: CLITestResult): void;
160
+ /**
161
+ * Asserts that stdout contains the expected pattern.
162
+ * @param result - The CLI test result to check
163
+ * @param pattern - String or RegExp to match against stdout
164
+ * @throws Error if the pattern is not found in stdout
165
+ */
166
+ export declare function assertStdoutContains(result: CLITestResult, pattern: string | RegExp): void;
167
+ /**
168
+ * Asserts that stderr contains the expected pattern.
169
+ * @param result - The CLI test result to check
170
+ * @param pattern - String or RegExp to match against stderr
171
+ * @throws Error if the pattern is not found in stderr
172
+ */
173
+ export declare function assertStderrContains(result: CLITestResult, pattern: string | RegExp): void;
174
+ /**
175
+ * Asserts that the process completed within the specified time.
176
+ * @param result - The CLI test result to check
177
+ * @param maxDurationMs - Maximum allowed duration in milliseconds
178
+ * @throws Error if the process took longer than the specified time
179
+ */
180
+ export declare function assertCompletedWithin(result: CLITestResult, maxDurationMs: number): void;
181
+ //# sourceMappingURL=cli-test-harness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-test-harness.d.ts","sourceRoot":"","sources":["../../source/test-utils/cli-test-harness.ts"],"names":[],"mappings":"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"}