@nodetool-ai/cli 0.7.0-rc.23 → 0.8.2

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 (535) hide show
  1. package/README.md +82 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/ExecutionTree.d.ts +2 -1
  4. package/dist/ExecutionTree.d.ts.map +1 -1
  5. package/dist/ExecutionTree.js +1 -1
  6. package/dist/ExecutionTree.js.map +1 -1
  7. package/dist/affected/affected.d.ts +45 -0
  8. package/dist/affected/affected.d.ts.map +1 -0
  9. package/dist/affected/affected.js +160 -0
  10. package/dist/affected/affected.js.map +1 -0
  11. package/dist/agent-toolbelt.d.ts +15 -0
  12. package/dist/agent-toolbelt.d.ts.map +1 -0
  13. package/dist/agent-toolbelt.js +28 -0
  14. package/dist/agent-toolbelt.js.map +1 -0
  15. package/dist/api-client.d.ts +12 -0
  16. package/dist/api-client.d.ts.map +1 -0
  17. package/dist/api-client.js +21 -0
  18. package/dist/api-client.js.map +1 -0
  19. package/dist/app-build/bundle.d.ts +15 -0
  20. package/dist/app-build/bundle.d.ts.map +1 -0
  21. package/dist/app-build/bundle.js +45 -0
  22. package/dist/app-build/bundle.js.map +1 -0
  23. package/dist/app-build/watch.d.ts +13 -0
  24. package/dist/app-build/watch.d.ts.map +1 -0
  25. package/dist/app-build/watch.js +25 -0
  26. package/dist/app-build/watch.js.map +1 -0
  27. package/dist/app-debug/app-target.d.ts +14 -0
  28. package/dist/app-debug/app-target.d.ts.map +1 -0
  29. package/dist/app-debug/app-target.js +120 -0
  30. package/dist/app-debug/app-target.js.map +1 -0
  31. package/dist/app-debug/harness.d.ts +29 -0
  32. package/dist/app-debug/harness.d.ts.map +1 -0
  33. package/dist/app-debug/harness.js +116 -0
  34. package/dist/app-debug/harness.js.map +1 -0
  35. package/dist/app-debug/index.d.ts +12 -0
  36. package/dist/app-debug/index.d.ts.map +1 -0
  37. package/dist/app-debug/index.js +9 -0
  38. package/dist/app-debug/index.js.map +1 -0
  39. package/dist/app.d.ts +38 -48
  40. package/dist/app.d.ts.map +1 -1
  41. package/dist/app.js +980 -677
  42. package/dist/app.js.map +1 -1
  43. package/dist/bash-tool.d.ts +13 -0
  44. package/dist/bash-tool.d.ts.map +1 -0
  45. package/dist/bash-tool.js +85 -0
  46. package/dist/bash-tool.js.map +1 -0
  47. package/dist/chat-codeact.d.ts +93 -0
  48. package/dist/chat-codeact.d.ts.map +1 -0
  49. package/dist/chat-codeact.js +179 -0
  50. package/dist/chat-codeact.js.map +1 -0
  51. package/dist/chat-context.d.ts +18 -0
  52. package/dist/chat-context.d.ts.map +1 -0
  53. package/dist/chat-context.js +32 -0
  54. package/dist/chat-context.js.map +1 -0
  55. package/dist/chat-media.d.ts +3 -0
  56. package/dist/chat-media.d.ts.map +1 -0
  57. package/dist/chat-media.js +46 -0
  58. package/dist/chat-media.js.map +1 -0
  59. package/dist/chat-prompts.d.ts +20 -0
  60. package/dist/chat-prompts.d.ts.map +1 -0
  61. package/dist/chat-prompts.js +42 -0
  62. package/dist/chat-prompts.js.map +1 -0
  63. package/dist/chat-sessions.d.ts +25 -0
  64. package/dist/chat-sessions.d.ts.map +1 -0
  65. package/dist/chat-sessions.js +153 -0
  66. package/dist/chat-sessions.js.map +1 -0
  67. package/dist/command-errors.d.ts +10 -0
  68. package/dist/command-errors.d.ts.map +1 -0
  69. package/dist/command-errors.js +15 -0
  70. package/dist/command-errors.js.map +1 -0
  71. package/dist/commands/__tests__/jtbd.test.d.ts +2 -0
  72. package/dist/commands/__tests__/jtbd.test.d.ts.map +1 -0
  73. package/dist/commands/__tests__/jtbd.test.js +120 -0
  74. package/dist/commands/__tests__/jtbd.test.js.map +1 -0
  75. package/dist/commands/__tests__/timeline-render-audio.test.d.ts +2 -0
  76. package/dist/commands/__tests__/timeline-render-audio.test.d.ts.map +1 -0
  77. package/dist/commands/__tests__/timeline-render-audio.test.js +53 -0
  78. package/dist/commands/__tests__/timeline-render-audio.test.js.map +1 -0
  79. package/dist/commands/__tests__/timeline-render-completeness.test.d.ts +2 -0
  80. package/dist/commands/__tests__/timeline-render-completeness.test.d.ts.map +1 -0
  81. package/dist/commands/__tests__/timeline-render-completeness.test.js +117 -0
  82. package/dist/commands/__tests__/timeline-render-completeness.test.js.map +1 -0
  83. package/dist/commands/__tests__/timeline-render.test.d.ts +2 -0
  84. package/dist/commands/__tests__/timeline-render.test.d.ts.map +1 -0
  85. package/dist/commands/__tests__/timeline-render.test.js +115 -0
  86. package/dist/commands/__tests__/timeline-render.test.js.map +1 -0
  87. package/dist/commands/__tests__/timeline-score.test.d.ts +2 -0
  88. package/dist/commands/__tests__/timeline-score.test.d.ts.map +1 -0
  89. package/dist/commands/__tests__/timeline-score.test.js +100 -0
  90. package/dist/commands/__tests__/timeline-score.test.js.map +1 -0
  91. package/dist/commands/affected.d.ts +9 -0
  92. package/dist/commands/affected.d.ts.map +1 -0
  93. package/dist/commands/affected.js +122 -0
  94. package/dist/commands/affected.js.map +1 -0
  95. package/dist/commands/agent.d.ts +26 -4
  96. package/dist/commands/agent.d.ts.map +1 -1
  97. package/dist/commands/agent.js +328 -306
  98. package/dist/commands/agent.js.map +1 -1
  99. package/dist/commands/app.d.ts +3 -0
  100. package/dist/commands/app.d.ts.map +1 -0
  101. package/dist/commands/app.js +405 -0
  102. package/dist/commands/app.js.map +1 -0
  103. package/dist/commands/apps.d.ts +15 -0
  104. package/dist/commands/apps.d.ts.map +1 -0
  105. package/dist/commands/apps.js +180 -0
  106. package/dist/commands/apps.js.map +1 -0
  107. package/dist/commands/auth.d.ts +12 -0
  108. package/dist/commands/auth.d.ts.map +1 -0
  109. package/dist/commands/auth.js +154 -0
  110. package/dist/commands/auth.js.map +1 -0
  111. package/dist/commands/collections.d.ts +10 -0
  112. package/dist/commands/collections.d.ts.map +1 -0
  113. package/dist/commands/collections.js +257 -0
  114. package/dist/commands/collections.js.map +1 -0
  115. package/dist/commands/costs.d.ts +15 -0
  116. package/dist/commands/costs.d.ts.map +1 -0
  117. package/dist/commands/costs.js +201 -0
  118. package/dist/commands/costs.js.map +1 -0
  119. package/dist/commands/db.d.ts +3 -0
  120. package/dist/commands/db.d.ts.map +1 -0
  121. package/dist/commands/db.js +176 -0
  122. package/dist/commands/db.js.map +1 -0
  123. package/dist/commands/debug-summary-output.d.ts +22 -0
  124. package/dist/commands/debug-summary-output.d.ts.map +1 -0
  125. package/dist/commands/debug-summary-output.js +28 -0
  126. package/dist/commands/debug-summary-output.js.map +1 -0
  127. package/dist/commands/debug.d.ts +13 -0
  128. package/dist/commands/debug.d.ts.map +1 -0
  129. package/dist/commands/debug.js +138 -0
  130. package/dist/commands/debug.js.map +1 -0
  131. package/dist/commands/deploy-helpers.d.ts +49 -18
  132. package/dist/commands/deploy-helpers.d.ts.map +1 -1
  133. package/dist/commands/deploy-helpers.js +10 -276
  134. package/dist/commands/deploy-helpers.js.map +1 -1
  135. package/dist/commands/deploy.d.ts +0 -1
  136. package/dist/commands/deploy.d.ts.map +1 -1
  137. package/dist/commands/deploy.js +21 -217
  138. package/dist/commands/deploy.js.map +1 -1
  139. package/dist/commands/errors.d.ts +11 -0
  140. package/dist/commands/errors.d.ts.map +1 -0
  141. package/dist/commands/errors.js +177 -0
  142. package/dist/commands/errors.js.map +1 -0
  143. package/dist/commands/eval.d.ts +152 -0
  144. package/dist/commands/eval.d.ts.map +1 -0
  145. package/dist/commands/eval.js +690 -0
  146. package/dist/commands/eval.js.map +1 -0
  147. package/dist/commands/extension.d.ts +12 -0
  148. package/dist/commands/extension.d.ts.map +1 -0
  149. package/dist/commands/extension.js +30 -0
  150. package/dist/commands/extension.js.map +1 -0
  151. package/dist/commands/game-benchmark.d.ts +34 -0
  152. package/dist/commands/game-benchmark.d.ts.map +1 -0
  153. package/dist/commands/game-benchmark.js +95 -0
  154. package/dist/commands/game-benchmark.js.map +1 -0
  155. package/dist/commands/game-smoke.d.ts +3 -0
  156. package/dist/commands/game-smoke.d.ts.map +1 -0
  157. package/dist/commands/game-smoke.js +23 -0
  158. package/dist/commands/game-smoke.js.map +1 -0
  159. package/dist/commands/game.d.ts +4 -0
  160. package/dist/commands/game.d.ts.map +1 -0
  161. package/dist/commands/game.js +624 -0
  162. package/dist/commands/game.js.map +1 -0
  163. package/dist/commands/generate.d.ts +17 -0
  164. package/dist/commands/generate.d.ts.map +1 -0
  165. package/dist/commands/generate.js +324 -0
  166. package/dist/commands/generate.js.map +1 -0
  167. package/dist/commands/generations.d.ts +17 -0
  168. package/dist/commands/generations.d.ts.map +1 -0
  169. package/dist/commands/generations.js +408 -0
  170. package/dist/commands/generations.js.map +1 -0
  171. package/dist/commands/harness.d.ts +69 -0
  172. package/dist/commands/harness.d.ts.map +1 -0
  173. package/dist/commands/harness.js +575 -0
  174. package/dist/commands/harness.js.map +1 -0
  175. package/dist/commands/js-script-validation-output.d.ts +7 -0
  176. package/dist/commands/js-script-validation-output.d.ts.map +1 -0
  177. package/dist/commands/js-script-validation-output.js +5 -0
  178. package/dist/commands/js-script-validation-output.js.map +1 -0
  179. package/dist/commands/js-script-versions.d.ts +53 -0
  180. package/dist/commands/js-script-versions.d.ts.map +1 -0
  181. package/dist/commands/js-script-versions.js +89 -0
  182. package/dist/commands/js-script-versions.js.map +1 -0
  183. package/dist/commands/js-script.d.ts +29 -0
  184. package/dist/commands/js-script.d.ts.map +1 -0
  185. package/dist/commands/js-script.js +211 -0
  186. package/dist/commands/js-script.js.map +1 -0
  187. package/dist/commands/jtbd.d.ts +38 -0
  188. package/dist/commands/jtbd.d.ts.map +1 -0
  189. package/dist/commands/jtbd.js +261 -0
  190. package/dist/commands/jtbd.js.map +1 -0
  191. package/dist/commands/local-db.d.ts +16 -0
  192. package/dist/commands/local-db.d.ts.map +1 -0
  193. package/dist/commands/local-db.js +33 -0
  194. package/dist/commands/local-db.js.map +1 -0
  195. package/dist/commands/mcp.d.ts +21 -0
  196. package/dist/commands/mcp.d.ts.map +1 -0
  197. package/dist/commands/mcp.js +164 -0
  198. package/dist/commands/mcp.js.map +1 -0
  199. package/dist/commands/migrate-code-inputs.d.ts +24 -0
  200. package/dist/commands/migrate-code-inputs.d.ts.map +1 -0
  201. package/dist/commands/migrate-code-inputs.js +120 -0
  202. package/dist/commands/migrate-code-inputs.js.map +1 -0
  203. package/dist/commands/models-hf.js +4 -4
  204. package/dist/commands/models-hf.js.map +1 -1
  205. package/dist/commands/models-recommended.d.ts.map +1 -1
  206. package/dist/commands/models-recommended.js +16 -24
  207. package/dist/commands/models-recommended.js.map +1 -1
  208. package/dist/commands/node.d.ts +10 -0
  209. package/dist/commands/node.d.ts.map +1 -0
  210. package/dist/commands/node.js +72 -0
  211. package/dist/commands/node.js.map +1 -0
  212. package/dist/commands/output.d.ts +24 -0
  213. package/dist/commands/output.d.ts.map +1 -0
  214. package/dist/commands/output.js +132 -0
  215. package/dist/commands/output.js.map +1 -0
  216. package/dist/commands/package-helpers.d.ts +1 -7
  217. package/dist/commands/package-helpers.d.ts.map +1 -1
  218. package/dist/commands/package-helpers.js +3 -26
  219. package/dist/commands/package-helpers.js.map +1 -1
  220. package/dist/commands/package.d.ts.map +1 -1
  221. package/dist/commands/package.js +14 -14
  222. package/dist/commands/package.js.map +1 -1
  223. package/dist/commands/packs.d.ts +13 -0
  224. package/dist/commands/packs.d.ts.map +1 -0
  225. package/dist/commands/packs.js +60 -0
  226. package/dist/commands/packs.js.map +1 -0
  227. package/dist/commands/reliability.d.ts +14 -0
  228. package/dist/commands/reliability.d.ts.map +1 -0
  229. package/dist/commands/reliability.js +80 -0
  230. package/dist/commands/reliability.js.map +1 -0
  231. package/dist/commands/resource-read.d.ts +28 -0
  232. package/dist/commands/resource-read.d.ts.map +1 -0
  233. package/dist/commands/resource-read.js +316 -0
  234. package/dist/commands/resource-read.js.map +1 -0
  235. package/dist/commands/runs.d.ts +7 -0
  236. package/dist/commands/runs.d.ts.map +1 -0
  237. package/dist/commands/runs.js +302 -0
  238. package/dist/commands/runs.js.map +1 -0
  239. package/dist/commands/sketch-validation-output.d.ts +7 -0
  240. package/dist/commands/sketch-validation-output.d.ts.map +1 -0
  241. package/dist/commands/sketch-validation-output.js +5 -0
  242. package/dist/commands/sketch-validation-output.js.map +1 -0
  243. package/dist/commands/sketch-versions.d.ts +66 -0
  244. package/dist/commands/sketch-versions.d.ts.map +1 -0
  245. package/dist/commands/sketch-versions.js +108 -0
  246. package/dist/commands/sketch-versions.js.map +1 -0
  247. package/dist/commands/sketch.d.ts +21 -0
  248. package/dist/commands/sketch.d.ts.map +1 -0
  249. package/dist/commands/sketch.js +101 -0
  250. package/dist/commands/sketch.js.map +1 -0
  251. package/dist/commands/storage.d.ts +24 -0
  252. package/dist/commands/storage.d.ts.map +1 -0
  253. package/dist/commands/storage.js +112 -0
  254. package/dist/commands/storage.js.map +1 -0
  255. package/dist/commands/telegram.d.ts +11 -0
  256. package/dist/commands/telegram.d.ts.map +1 -0
  257. package/dist/commands/telegram.js +66 -0
  258. package/dist/commands/telegram.js.map +1 -0
  259. package/dist/commands/timeline-render.d.ts +85 -0
  260. package/dist/commands/timeline-render.d.ts.map +1 -0
  261. package/dist/commands/timeline-render.js +474 -0
  262. package/dist/commands/timeline-render.js.map +1 -0
  263. package/dist/commands/timeline-score.d.ts +16 -0
  264. package/dist/commands/timeline-score.d.ts.map +1 -0
  265. package/dist/commands/timeline-score.js +89 -0
  266. package/dist/commands/timeline-score.js.map +1 -0
  267. package/dist/commands/timeline-validation-output.d.ts +7 -0
  268. package/dist/commands/timeline-validation-output.d.ts.map +1 -0
  269. package/dist/commands/timeline-validation-output.js +9 -0
  270. package/dist/commands/timeline-validation-output.js.map +1 -0
  271. package/dist/commands/timeline-versions.d.ts +72 -0
  272. package/dist/commands/timeline-versions.d.ts.map +1 -0
  273. package/dist/commands/timeline-versions.js +108 -0
  274. package/dist/commands/timeline-versions.js.map +1 -0
  275. package/dist/commands/timeline.d.ts +22 -0
  276. package/dist/commands/timeline.d.ts.map +1 -0
  277. package/dist/commands/timeline.js +105 -0
  278. package/dist/commands/timeline.js.map +1 -0
  279. package/dist/commands/validate.d.ts +22 -0
  280. package/dist/commands/validate.d.ts.map +1 -0
  281. package/dist/commands/validate.js +127 -0
  282. package/dist/commands/validate.js.map +1 -0
  283. package/dist/commands/validation-output.d.ts +25 -0
  284. package/dist/commands/validation-output.d.ts.map +1 -0
  285. package/dist/commands/validation-output.js +29 -0
  286. package/dist/commands/validation-output.js.map +1 -0
  287. package/dist/commands/version-commands.d.ts +94 -0
  288. package/dist/commands/version-commands.d.ts.map +1 -0
  289. package/dist/commands/version-commands.js +227 -0
  290. package/dist/commands/version-commands.js.map +1 -0
  291. package/dist/commands/worker-models.d.ts +13 -0
  292. package/dist/commands/worker-models.d.ts.map +1 -0
  293. package/dist/commands/worker-models.js +207 -0
  294. package/dist/commands/worker-models.js.map +1 -0
  295. package/dist/commands/worker.d.ts +23 -0
  296. package/dist/commands/worker.d.ts.map +1 -0
  297. package/dist/commands/worker.js +374 -0
  298. package/dist/commands/worker.js.map +1 -0
  299. package/dist/debug/browser-runner.d.ts +21 -0
  300. package/dist/debug/browser-runner.d.ts.map +1 -0
  301. package/dist/debug/browser-runner.js +196 -0
  302. package/dist/debug/browser-runner.js.map +1 -0
  303. package/dist/debug/collector.d.ts +9 -0
  304. package/dist/debug/collector.d.ts.map +1 -0
  305. package/dist/debug/collector.js +9 -0
  306. package/dist/debug/collector.js.map +1 -0
  307. package/dist/debug/diff.d.ts +48 -0
  308. package/dist/debug/diff.d.ts.map +1 -0
  309. package/dist/debug/diff.js +68 -0
  310. package/dist/debug/diff.js.map +1 -0
  311. package/dist/debug/harness.d.ts +11 -0
  312. package/dist/debug/harness.d.ts.map +1 -0
  313. package/dist/debug/harness.js +103 -0
  314. package/dist/debug/harness.js.map +1 -0
  315. package/dist/debug/index.d.ts +17 -0
  316. package/dist/debug/index.d.ts.map +1 -0
  317. package/dist/debug/index.js +16 -0
  318. package/dist/debug/index.js.map +1 -0
  319. package/dist/debug/markdown.d.ts +3 -0
  320. package/dist/debug/markdown.d.ts.map +1 -0
  321. package/dist/debug/markdown.js +127 -0
  322. package/dist/debug/markdown.js.map +1 -0
  323. package/dist/debug/server-runner.d.ts +24 -0
  324. package/dist/debug/server-runner.d.ts.map +1 -0
  325. package/dist/debug/server-runner.js +197 -0
  326. package/dist/debug/server-runner.js.map +1 -0
  327. package/dist/debug/target.d.ts +34 -0
  328. package/dist/debug/target.d.ts.map +1 -0
  329. package/dist/debug/target.js +104 -0
  330. package/dist/debug/target.js.map +1 -0
  331. package/dist/debug/trace.d.ts +30 -0
  332. package/dist/debug/trace.d.ts.map +1 -0
  333. package/dist/debug/trace.js +87 -0
  334. package/dist/debug/trace.js.map +1 -0
  335. package/dist/debug/types.d.ts +82 -0
  336. package/dist/debug/types.d.ts.map +1 -0
  337. package/dist/debug/types.js +13 -0
  338. package/dist/debug/types.js.map +1 -0
  339. package/dist/debug/verdict.d.ts +3 -0
  340. package/dist/debug/verdict.d.ts.map +1 -0
  341. package/dist/debug/verdict.js +78 -0
  342. package/dist/debug/verdict.js.map +1 -0
  343. package/dist/debug/watch.d.ts +23 -0
  344. package/dist/debug/watch.d.ts.map +1 -0
  345. package/dist/debug/watch.js +68 -0
  346. package/dist/debug/watch.js.map +1 -0
  347. package/dist/diagnose.d.ts +139 -0
  348. package/dist/diagnose.d.ts.map +1 -0
  349. package/dist/diagnose.js +418 -0
  350. package/dist/diagnose.js.map +1 -0
  351. package/dist/evals/graph-runner.d.ts +8 -0
  352. package/dist/evals/graph-runner.d.ts.map +1 -0
  353. package/dist/evals/graph-runner.js +136 -0
  354. package/dist/evals/graph-runner.js.map +1 -0
  355. package/dist/harness/capability-coverage.d.ts +161 -0
  356. package/dist/harness/capability-coverage.d.ts.map +1 -0
  357. package/dist/harness/capability-coverage.js +266 -0
  358. package/dist/harness/capability-coverage.js.map +1 -0
  359. package/dist/harness/capability-table.d.ts +17 -0
  360. package/dist/harness/capability-table.d.ts.map +1 -0
  361. package/dist/harness/capability-table.js +3844 -0
  362. package/dist/harness/capability-table.js.map +1 -0
  363. package/dist/harness/changed-files.d.ts +20 -0
  364. package/dist/harness/changed-files.d.ts.map +1 -0
  365. package/dist/harness/changed-files.js +90 -0
  366. package/dist/harness/changed-files.js.map +1 -0
  367. package/dist/harness/declared-capabilities.d.ts +12 -0
  368. package/dist/harness/declared-capabilities.d.ts.map +1 -0
  369. package/dist/harness/declared-capabilities.js +21 -0
  370. package/dist/harness/declared-capabilities.js.map +1 -0
  371. package/dist/harness/registry.d.ts +190 -0
  372. package/dist/harness/registry.d.ts.map +1 -0
  373. package/dist/harness/registry.js +2034 -0
  374. package/dist/harness/registry.js.map +1 -0
  375. package/dist/index.js +122 -131
  376. package/dist/index.js.map +1 -1
  377. package/dist/interaction-script.d.ts +40 -0
  378. package/dist/interaction-script.d.ts.map +1 -0
  379. package/dist/interaction-script.js +96 -0
  380. package/dist/interaction-script.js.map +1 -0
  381. package/dist/js-script-debug/harness.d.ts +124 -0
  382. package/dist/js-script-debug/harness.d.ts.map +1 -0
  383. package/dist/js-script-debug/harness.js +230 -0
  384. package/dist/js-script-debug/harness.js.map +1 -0
  385. package/dist/js-script-debug/index.d.ts +9 -0
  386. package/dist/js-script-debug/index.d.ts.map +1 -0
  387. package/dist/js-script-debug/index.js +9 -0
  388. package/dist/js-script-debug/index.js.map +1 -0
  389. package/dist/js-script-debug/interactions.d.ts +19 -0
  390. package/dist/js-script-debug/interactions.d.ts.map +1 -0
  391. package/dist/js-script-debug/interactions.js +17 -0
  392. package/dist/js-script-debug/interactions.js.map +1 -0
  393. package/dist/js-script-debug/target.d.ts +20 -0
  394. package/dist/js-script-debug/target.d.ts.map +1 -0
  395. package/dist/js-script-debug/target.js +78 -0
  396. package/dist/js-script-debug/target.js.map +1 -0
  397. package/dist/local-model-interfaces.d.ts +20 -0
  398. package/dist/local-model-interfaces.d.ts.map +1 -0
  399. package/dist/local-model-interfaces.js +41 -0
  400. package/dist/local-model-interfaces.js.map +1 -0
  401. package/dist/local-secrets.d.ts +3 -0
  402. package/dist/local-secrets.d.ts.map +1 -0
  403. package/dist/local-secrets.js +16 -0
  404. package/dist/local-secrets.js.map +1 -0
  405. package/dist/markdown.d.ts.map +1 -1
  406. package/dist/markdown.js +7 -2
  407. package/dist/markdown.js.map +1 -1
  408. package/dist/node/run-node.d.ts +28 -0
  409. package/dist/node/run-node.d.ts.map +1 -0
  410. package/dist/node/run-node.js +76 -0
  411. package/dist/node/run-node.js.map +1 -0
  412. package/dist/node-registry.d.ts +27 -0
  413. package/dist/node-registry.d.ts.map +1 -0
  414. package/dist/node-registry.js +33 -0
  415. package/dist/node-registry.js.map +1 -0
  416. package/dist/nodetool-main.d.ts +15 -0
  417. package/dist/nodetool-main.d.ts.map +1 -0
  418. package/dist/nodetool-main.js +1368 -0
  419. package/dist/nodetool-main.js.map +1 -0
  420. package/dist/nodetool.d.ts +0 -13
  421. package/dist/nodetool.d.ts.map +1 -1
  422. package/dist/nodetool.js +17 -1147
  423. package/dist/nodetool.js.map +1 -1
  424. package/dist/numeric-options.d.ts +22 -0
  425. package/dist/numeric-options.d.ts.map +1 -0
  426. package/dist/numeric-options.js +45 -0
  427. package/dist/numeric-options.js.map +1 -0
  428. package/dist/permission-gate.d.ts +55 -0
  429. package/dist/permission-gate.d.ts.map +1 -0
  430. package/dist/permission-gate.js +118 -0
  431. package/dist/permission-gate.js.map +1 -0
  432. package/dist/predicates.d.ts +6 -0
  433. package/dist/predicates.d.ts.map +1 -0
  434. package/dist/predicates.js +6 -0
  435. package/dist/predicates.js.map +1 -0
  436. package/dist/providers.d.ts +73 -10
  437. package/dist/providers.d.ts.map +1 -1
  438. package/dist/providers.js +339 -97
  439. package/dist/providers.js.map +1 -1
  440. package/dist/readline-input.d.ts +13 -19
  441. package/dist/readline-input.d.ts.map +1 -1
  442. package/dist/readline-input.js +201 -190
  443. package/dist/readline-input.js.map +1 -1
  444. package/dist/run-budget.d.ts +40 -0
  445. package/dist/run-budget.d.ts.map +1 -0
  446. package/dist/run-budget.js +119 -0
  447. package/dist/run-budget.js.map +1 -0
  448. package/dist/run-dsl-supervised.d.ts +11 -0
  449. package/dist/run-dsl-supervised.d.ts.map +1 -0
  450. package/dist/run-dsl-supervised.js +82 -0
  451. package/dist/run-dsl-supervised.js.map +1 -0
  452. package/dist/run-dsl.d.ts +29 -0
  453. package/dist/run-dsl.d.ts.map +1 -1
  454. package/dist/run-dsl.js +44 -10
  455. package/dist/run-dsl.js.map +1 -1
  456. package/dist/run-json.d.ts +24 -0
  457. package/dist/run-json.d.ts.map +1 -0
  458. package/dist/run-json.js +132 -0
  459. package/dist/run-json.js.map +1 -0
  460. package/dist/sandbox-catalog.d.ts +24 -0
  461. package/dist/sandbox-catalog.d.ts.map +1 -0
  462. package/dist/sandbox-catalog.js +78 -0
  463. package/dist/sandbox-catalog.js.map +1 -0
  464. package/dist/settings.d.ts +11 -10
  465. package/dist/settings.d.ts.map +1 -1
  466. package/dist/settings.js +71 -13
  467. package/dist/settings.js.map +1 -1
  468. package/dist/sketch-debug/harness.d.ts +87 -0
  469. package/dist/sketch-debug/harness.d.ts.map +1 -0
  470. package/dist/sketch-debug/harness.js +145 -0
  471. package/dist/sketch-debug/harness.js.map +1 -0
  472. package/dist/sketch-debug/index.d.ts +9 -0
  473. package/dist/sketch-debug/index.d.ts.map +1 -0
  474. package/dist/sketch-debug/index.js +9 -0
  475. package/dist/sketch-debug/index.js.map +1 -0
  476. package/dist/sketch-debug/interactions.d.ts +19 -0
  477. package/dist/sketch-debug/interactions.d.ts.map +1 -0
  478. package/dist/sketch-debug/interactions.js +17 -0
  479. package/dist/sketch-debug/interactions.js.map +1 -0
  480. package/dist/sketch-debug/target.d.ts +48 -0
  481. package/dist/sketch-debug/target.d.ts.map +1 -0
  482. package/dist/sketch-debug/target.js +138 -0
  483. package/dist/sketch-debug/target.js.map +1 -0
  484. package/dist/stdin.d.ts +18 -19
  485. package/dist/stdin.d.ts.map +1 -1
  486. package/dist/stdin.js +160 -157
  487. package/dist/stdin.js.map +1 -1
  488. package/dist/supervisor.d.ts +97 -0
  489. package/dist/supervisor.d.ts.map +1 -0
  490. package/dist/supervisor.js +194 -0
  491. package/dist/supervisor.js.map +1 -0
  492. package/dist/terminal-clipboard.d.ts +3 -0
  493. package/dist/terminal-clipboard.d.ts.map +1 -0
  494. package/dist/terminal-clipboard.js +24 -0
  495. package/dist/terminal-clipboard.js.map +1 -0
  496. package/dist/terminal-mouse.d.ts +24 -0
  497. package/dist/terminal-mouse.d.ts.map +1 -0
  498. package/dist/terminal-mouse.js +84 -0
  499. package/dist/terminal-mouse.js.map +1 -0
  500. package/dist/terminal-screen.d.ts +41 -0
  501. package/dist/terminal-screen.d.ts.map +1 -0
  502. package/dist/terminal-screen.js +228 -0
  503. package/dist/terminal-screen.js.map +1 -0
  504. package/dist/timeline-debug/harness.d.ts +79 -0
  505. package/dist/timeline-debug/harness.d.ts.map +1 -0
  506. package/dist/timeline-debug/harness.js +122 -0
  507. package/dist/timeline-debug/harness.js.map +1 -0
  508. package/dist/timeline-debug/index.d.ts +9 -0
  509. package/dist/timeline-debug/index.d.ts.map +1 -0
  510. package/dist/timeline-debug/index.js +9 -0
  511. package/dist/timeline-debug/index.js.map +1 -0
  512. package/dist/timeline-debug/interactions.d.ts +19 -0
  513. package/dist/timeline-debug/interactions.d.ts.map +1 -0
  514. package/dist/timeline-debug/interactions.js +17 -0
  515. package/dist/timeline-debug/interactions.js.map +1 -0
  516. package/dist/timeline-debug/target.d.ts +34 -0
  517. package/dist/timeline-debug/target.d.ts.map +1 -0
  518. package/dist/timeline-debug/target.js +132 -0
  519. package/dist/timeline-debug/target.js.map +1 -0
  520. package/dist/tool-format.d.ts +54 -0
  521. package/dist/tool-format.d.ts.map +1 -0
  522. package/dist/tool-format.js +360 -0
  523. package/dist/tool-format.js.map +1 -0
  524. package/dist/useExecutionState.d.ts.map +1 -1
  525. package/dist/useExecutionState.js +8 -4
  526. package/dist/useExecutionState.js.map +1 -1
  527. package/dist/validate/index.d.ts +28 -0
  528. package/dist/validate/index.d.ts.map +1 -0
  529. package/dist/validate/index.js +51 -0
  530. package/dist/validate/index.js.map +1 -0
  531. package/dist/websocket-client.d.ts +78 -15
  532. package/dist/websocket-client.d.ts.map +1 -1
  533. package/dist/websocket-client.js +497 -171
  534. package/dist/websocket-client.js.map +1 -1
  535. package/package.json +65 -31
package/dist/providers.js CHANGED
@@ -1,133 +1,375 @@
1
1
  /**
2
2
  * Provider factory for the chat CLI.
3
- * Creates the right BaseProvider instance based on name + available API keys.
3
+ *
4
+ * Construction and credential wiring are delegated to the runtime provider
5
+ * registry (`@nodetool-ai/runtime`), so every provider registered there is
6
+ * reachable from the CLI without a hand-maintained switch. The curated lists
7
+ * below (`KNOWN_PROVIDERS`, `DEFAULT_MODELS`) only drive the interactive
8
+ * autocomplete and default-model hints for the common chat providers.
9
+ */
10
+ import { BaseProvider as BaseProviderClass, createPythonBridge, getProvider, getProviderSecretKey, isProviderConfigured, listRegisteredProviderIds, PythonProvider, registerProvider, syncCustomProviders, RECOMMENDED_MODELS } from "@nodetool-ai/runtime";
11
+ import { readCachedHfModels } from "@nodetool-ai/huggingface";
12
+ import { CUSTOM_PROVIDERS_SETTING_KEY, parseCustomProviderCatalog } from "@nodetool-ai/protocol";
13
+ import { getSecret, Setting } from "@nodetool-ai/models";
14
+ import { registerTransformersJsProvider } from "@nodetool-ai/transformers-js-provider";
15
+ import { registerWhisperCppProviders } from "@nodetool-ai/whisper-cpp";
16
+ registerTransformersJsProvider();
17
+ registerWhisperCppProviders();
18
+ /**
19
+ * Chat-capable providers surfaced in interactive autocomplete (`/provider <tab>`)
20
+ * and the `--provider` help text. This is a curated subset of the registry —
21
+ * the well-known LLM chat APIs plus the local servers. Any other registered
22
+ * provider (evolink, vllm, llama_cpp, …) still works when passed explicitly via
23
+ * `--provider <id>`; it just isn't listed here.
4
24
  */
5
- import { AnthropicProvider, OpenAIProvider, OllamaProvider, GeminiProvider, MistralProvider, GroqProvider, MoonshotProvider, AkiProvider, LMStudioProvider, ClaudeAgentProvider, BaseProvider as BaseProviderClass } from "@nodetool-ai/runtime";
6
- import { getSecret } from "@nodetool-ai/models";
7
25
  export const KNOWN_PROVIDERS = [
8
26
  "anthropic",
27
+ "claude_agent_sdk",
9
28
  "openai",
10
- "ollama",
29
+ "codex",
11
30
  "gemini",
12
- "mistral",
13
- "lmstudio",
31
+ "xai",
14
32
  "groq",
33
+ "mistral",
34
+ "deepseek",
15
35
  "moonshot",
36
+ "minimax",
37
+ "cerebras",
38
+ "gmi",
39
+ "meta",
40
+ "alibaba",
41
+ "together",
42
+ "openrouter",
43
+ "requesty",
44
+ "huggingface",
45
+ "replicate",
46
+ "kie",
16
47
  "aki",
17
- "claude_agent"
48
+ "ollama",
49
+ "lmstudio",
50
+ "mlx",
51
+ "node_llama_cpp"
18
52
  ];
19
- /** Default models for each provider. */
53
+ /**
54
+ * Providers reachable without an API key: the local servers plus the Claude
55
+ * Agent SDK (which authenticates with the machine's logged-in `claude` CLI
56
+ * subscription instead of a key).
57
+ */
58
+ const LOCAL_PROVIDERS = [
59
+ "whisper_cpp",
60
+ "whisper_cpp_server",
61
+ "lmstudio",
62
+ "ollama",
63
+ "mlx",
64
+ "claude_agent_sdk",
65
+ "node_llama_cpp"
66
+ ];
67
+ /**
68
+ * Providers served only through the local Python worker (no TS implementation).
69
+ * They aren't in the runtime registry until the stdio bridge connects and
70
+ * advertises them, so `createProvider` connects the bridge on demand for these.
71
+ */
72
+ const PYTHON_ONLY_PROVIDERS = ["mlx"];
73
+ /** MLX (and other Python-local models) only run on Apple Silicon. */
74
+ function isAppleSilicon() {
75
+ return process.platform === "darwin" && process.arch === "arm64";
76
+ }
77
+ /** Default model shown when switching to a provider in interactive mode. */
20
78
  export const DEFAULT_MODELS = {
21
79
  anthropic: "claude-sonnet-4-6",
80
+ claude_agent_sdk: "sonnet",
22
81
  openai: "gpt-5.4",
23
- ollama: "qwen-3.5:4b",
82
+ codex: "gpt-5.5",
24
83
  gemini: "gemini-2.5-flash",
25
- mistral: "mistral-large-latest",
26
- lmstudio: "qwen/qwen3.5-9b",
84
+ xai: "grok-4",
27
85
  groq: "llama-3.3-70b-versatile",
28
- moonshot: "kimi-k2.5",
86
+ mistral: "mistral-large-latest",
87
+ deepseek: "deepseek-chat",
88
+ moonshot: "kimi-k2.7",
89
+ minimax: "MiniMax-M2",
90
+ cerebras: "llama-3.3-70b",
91
+ gmi: "meta-llama/Llama-3.3-70B-Instruct",
92
+ meta: "muse-spark-1.2",
93
+ alibaba: "qwen3-max",
94
+ together: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
95
+ openrouter: "openai/gpt-5.4-mini",
96
+ requesty: "openai/gpt-4o-mini",
97
+ huggingface: "meta-llama/Llama-3.3-70B-Instruct",
98
+ replicate: "anthropic/claude-4.5-sonnet",
99
+ kie: "gpt-5-5",
29
100
  aki: "llama3_chat",
30
- claude_agent: "claude-opus-4-6"
101
+ ollama: "qwen-3.5:4b",
102
+ lmstudio: "qwen/qwen3.5-9b",
103
+ mlx: "mlx-community/Qwen3.5-0.8B-OptiQ-4bit",
104
+ node_llama_cpp: "qwen2.5-3b-instruct-q4_k_m.gguf"
31
105
  };
32
- /** Resolve a secret: encrypted DB first (user "1"), then env var. */
33
- async function resolveKey(key) {
34
- return (await getSecret(key, "1")) ?? undefined;
106
+ /** Resolve a secret from the encrypted DB (user "1"); env fallback handled by the registry. */
107
+ const resolveForUser1 = (key) => getSecret(key, "1");
108
+ /**
109
+ * Lazily spawn the local Python worker bridge and register the Python-only
110
+ * providers it advertises (e.g. `mlx`, local HuggingFace) into the runtime
111
+ * registry. Idempotent: the bridge is connected once per process and the
112
+ * promise cached. On failure the cache is cleared so a later call can retry,
113
+ * and the error is rethrown so the caller can explain why the provider is
114
+ * unavailable.
115
+ */
116
+ let pythonProvidersPromise = null;
117
+ async function ensurePythonProvidersRegistered() {
118
+ if (!pythonProvidersPromise) {
119
+ pythonProvidersPromise = (async () => {
120
+ const bridge = createPythonBridge();
121
+ await bridge.connect();
122
+ for (const info of await bridge.listProviders()) {
123
+ // Don't shadow a TS-native provider that owns the same id (e.g. the
124
+ // hosted HuggingFace provider vs. the Python local one).
125
+ if (listRegisteredProviderIds().includes(info.id))
126
+ continue;
127
+ registerProvider(info.id, PythonProvider, {
128
+ _bridge: bridge,
129
+ _id: info.id,
130
+ _capabilities: info.capabilities
131
+ });
132
+ }
133
+ })().catch((err) => {
134
+ pythonProvidersPromise = null;
135
+ throw err;
136
+ });
137
+ }
138
+ return pythonProvidersPromise;
139
+ }
140
+ /**
141
+ * Register the user's OpenAI-compatible endpoints into the runtime registry.
142
+ * The server does this on every request; the CLI has no request, so every
143
+ * entrance that resolves a provider calls it once. Non-fatal: an unreachable
144
+ * database leaves the built-in providers working.
145
+ */
146
+ let customProvidersPromise = null;
147
+ export async function ensureCustomProvidersRegistered() {
148
+ if (!customProvidersPromise) {
149
+ customProvidersPromise = (async () => {
150
+ const setting = await Setting.find("1", CUSTOM_PROVIDERS_SETTING_KEY);
151
+ if (setting) {
152
+ syncCustomProviders(parseCustomProviderCatalog(setting.getValue()));
153
+ }
154
+ })().catch(() => undefined);
155
+ }
156
+ return customProvidersPromise;
157
+ }
158
+ /** Build a registered provider, rejecting unknown ids instead of falling back. */
159
+ export async function createProviderStrict(providerId) {
160
+ const id = providerId.toLowerCase();
161
+ await ensureCustomProvidersRegistered();
162
+ if (PYTHON_ONLY_PROVIDERS.includes(id) &&
163
+ !listRegisteredProviderIds().includes(id)) {
164
+ try {
165
+ await ensurePythonProvidersRegistered();
166
+ }
167
+ catch (err) {
168
+ throw new Error(`Provider "${id}" needs the local Python worker, which could not be started ` +
169
+ `(${err instanceof Error ? err.message : String(err)}). Ensure the nodetool ` +
170
+ `Python environment is installed and activated (e.g. \`conda activate nodetool\`).`);
171
+ }
172
+ if (!listRegisteredProviderIds().includes(id)) {
173
+ throw new Error(`Provider "${id}" is not available from the Python worker on this machine` +
174
+ (id === "mlx" && !isAppleSilicon() ? " (MLX requires Apple Silicon)." : "."));
175
+ }
176
+ }
177
+ if (!listRegisteredProviderIds().includes(id)) {
178
+ throw new Error(`Unknown provider "${id}"`);
179
+ }
180
+ return getProvider(id, resolveForUser1);
35
181
  }
182
+ /** Build a provider, preserving the chat CLI's Ollama fallback for unknown ids. */
36
183
  export async function createProvider(providerId) {
37
- switch (providerId.toLowerCase()) {
38
- case "anthropic":
39
- return new AnthropicProvider({
40
- ANTHROPIC_API_KEY: await resolveKey("ANTHROPIC_API_KEY")
41
- });
42
- case "openai":
43
- return new OpenAIProvider({
44
- OPENAI_API_KEY: await resolveKey("OPENAI_API_KEY")
45
- });
46
- case "ollama":
47
- return new OllamaProvider({
48
- OLLAMA_API_URL: (await resolveKey("OLLAMA_API_URL")) ?? "http://127.0.0.1:11434"
49
- });
50
- case "gemini":
51
- return new GeminiProvider({
52
- GEMINI_API_KEY: await resolveKey("GEMINI_API_KEY")
53
- });
54
- case "lmstudio":
55
- return new LMStudioProvider({}, { baseURL: "http://127.0.0.1:1234" });
56
- case "mistral":
57
- return new MistralProvider({
58
- MISTRAL_API_KEY: await resolveKey("MISTRAL_API_KEY")
59
- });
60
- case "groq":
61
- return new GroqProvider({
62
- GROQ_API_KEY: await resolveKey("GROQ_API_KEY")
63
- });
64
- case "moonshot":
65
- return new MoonshotProvider({
66
- KIMI_API_KEY: await resolveKey("KIMI_API_KEY")
67
- });
68
- case "aki":
69
- return new AkiProvider({
70
- AKI_API_KEY: await resolveKey("AKI_API_KEY")
71
- });
72
- case "claude_agent":
73
- return new ClaudeAgentProvider();
74
- default:
75
- return new OllamaProvider({
76
- OLLAMA_API_URL: (await resolveKey("OLLAMA_API_URL")) ?? "http://127.0.0.1:11434"
77
- });
184
+ const id = providerId.toLowerCase();
185
+ await ensureCustomProvidersRegistered();
186
+ if (!PYTHON_ONLY_PROVIDERS.includes(id) &&
187
+ !listRegisteredProviderIds().includes(id)) {
188
+ return getProvider("ollama", resolveForUser1);
78
189
  }
190
+ return createProviderStrict(id);
191
+ }
192
+ /**
193
+ * The secret/env key a provider needs (e.g. `"OPENROUTER_API_KEY"`), or null
194
+ * for local/keyless providers. Used to tell the user which key to set when a
195
+ * provider can't be constructed.
196
+ */
197
+ export function providerSecretKey(providerId) {
198
+ return getProviderSecretKey(providerId.toLowerCase());
79
199
  }
80
200
  /**
81
201
  * Build a map of `{providerId -> BaseProvider}` for use by the agent's
82
- * `find_model` tool. Includes local providers (always reachable) plus any
83
- * hosted provider with a resolved API key in env or the secrets DB.
84
- *
85
- * Provider instances are constructed eagerly. If a key is wrong/expired,
86
- * the model-listing call inside `FindModelTool` is wrapped in try/catch
87
- * and the provider is silently skipped at lookup time.
202
+ * `find_model` tool and media tool dispatch. Includes every registered
203
+ * provider whose required credentials resolve (local providers have none, so
204
+ * they're always present). Construction failures are skipped silently.
88
205
  */
89
206
  export async function buildConfiguredProviders() {
90
207
  const result = {};
91
- // Local providers — always available.
92
- result["ollama"] = await createProvider("ollama");
93
- result["lmstudio"] = await createProvider("lmstudio");
94
- // Hosted — include only when a key resolves.
95
- const hostedChecks = [
96
- ["anthropic", "ANTHROPIC_API_KEY"],
97
- ["openai", "OPENAI_API_KEY"],
98
- ["gemini", "GEMINI_API_KEY"],
99
- ["mistral", "MISTRAL_API_KEY"],
100
- ["groq", "GROQ_API_KEY"],
101
- ["moonshot", "KIMI_API_KEY"],
102
- ["aki", "AKI_API_KEY"]
103
- ];
104
- for (const [id, key] of hostedChecks) {
105
- const value = await resolveKey(key);
106
- if (value) {
107
- result[id] = await createProvider(id);
208
+ await ensureCustomProvidersRegistered();
209
+ for (const id of listRegisteredProviderIds()) {
210
+ try {
211
+ if (await isProviderConfigured(id, resolveForUser1)) {
212
+ result[id] = await getProvider(id, resolveForUser1);
213
+ }
214
+ }
215
+ catch {
216
+ // Provider failed to construct (bad/missing config) — skip it.
108
217
  }
109
218
  }
110
219
  return result;
111
220
  }
112
- /** Check which providers have API keys configured (env only — fast sync check). */
221
+ export async function listConfiguredProviderInfo() {
222
+ const providers = await buildConfiguredProviders();
223
+ return Object.entries(providers).map(([provider, instance]) => ({
224
+ provider,
225
+ capabilities: instance.getCapabilities()
226
+ }));
227
+ }
228
+ /**
229
+ * Language models exposed by every configured provider. A provider whose
230
+ * catalog is temporarily unavailable remains selectable by an explicit
231
+ * `provider/model` spec, while the other providers still populate the picker.
232
+ */
233
+ export async function listConfiguredLanguageModels() {
234
+ const providers = await buildConfiguredProviders();
235
+ const models = await Promise.all(Object.entries(providers).map(async ([provider, instance]) => {
236
+ try {
237
+ return (await instance.getAvailableLanguageModels()).map((model) => ({
238
+ id: model.id,
239
+ name: model.name,
240
+ provider
241
+ }));
242
+ }
243
+ catch {
244
+ return [];
245
+ }
246
+ }));
247
+ return {
248
+ providers: Object.keys(providers),
249
+ models: models.flat()
250
+ };
251
+ }
252
+ function toUnifiedModel(model, type) {
253
+ return {
254
+ id: model.id,
255
+ type,
256
+ name: model.name,
257
+ provider: model.provider,
258
+ repo_id: null,
259
+ path: null,
260
+ downloaded: model.provider === "ollama" ||
261
+ model.provider === "llama_cpp" ||
262
+ model.provider === "node_llama_cpp" ||
263
+ model.provider === "whisper_cpp" ||
264
+ model.provider === "whisper_cpp_server",
265
+ tags: [model.provider],
266
+ voices: model.voices ?? null,
267
+ supported_tasks: model.supportedTasks ?? null,
268
+ durations: model.durations ?? null,
269
+ resolutions: model.resolutions ?? null,
270
+ aspect_ratios: model.aspectRatios ?? null
271
+ };
272
+ }
273
+ export async function listProviderModels(providerId, kind) {
274
+ const provider = await createProviderStrict(providerId);
275
+ if (kind === "llm") {
276
+ const models = await provider.getAvailableLanguageModels();
277
+ const toolSupport = await Promise.all(models.map((model) => provider.hasToolSupport(model.id).catch(() => null)));
278
+ return models.map((model, index) => ({
279
+ ...toUnifiedModel(model, "language_model"),
280
+ supports_tools: toolSupport[index]
281
+ }));
282
+ }
283
+ switch (kind) {
284
+ case "image":
285
+ return (await provider.getAvailableImageModels()).map((model) => toUnifiedModel(model, "image_model"));
286
+ case "tts":
287
+ return (await provider.getAvailableTTSModels()).map((model) => toUnifiedModel(model, "tts_model"));
288
+ case "asr":
289
+ return (await provider.getAvailableASRModels()).map((model) => toUnifiedModel(model, "asr_model"));
290
+ case "video":
291
+ return (await provider.getAvailableVideoModels()).map((model) => toUnifiedModel(model, "video_model"));
292
+ case "embedding":
293
+ return (await provider.getAvailableEmbeddingModels()).map((model) => toUnifiedModel(model, "embedding_model"));
294
+ }
295
+ }
296
+ /**
297
+ * The full model catalog assembled locally, mirroring the server's
298
+ * `models.all` endpoint without a running server: the recommended models, the
299
+ * language models of every configured provider (tagged with tool support), and
300
+ * the locally cached HuggingFace repos. Provider and cache failures are skipped
301
+ * so one broken provider never sinks the whole list.
302
+ */
303
+ export async function listAllModels() {
304
+ const all = [...RECOMMENDED_MODELS];
305
+ const providers = await buildConfiguredProviders();
306
+ const perProvider = await Promise.all(Object.values(providers).map(async (instance) => {
307
+ try {
308
+ const models = await instance.getAvailableLanguageModels();
309
+ const toolFlags = await Promise.all(models.map((model) => instance.hasToolSupport(model.id).catch(() => null)));
310
+ return models.map((model, index) => ({
311
+ ...toUnifiedModel(model, "language_model"),
312
+ supports_tools: toolFlags[index]
313
+ }));
314
+ }
315
+ catch {
316
+ // Provider unavailable — skip it.
317
+ return [];
318
+ }
319
+ }));
320
+ for (const models of perProvider)
321
+ all.push(...models);
322
+ try {
323
+ all.push(...(await readCachedHfModels()));
324
+ }
325
+ catch {
326
+ // HuggingFace cache unavailable — continue without it.
327
+ }
328
+ return all;
329
+ }
330
+ /** Ollama's locally installed language models, read straight from the daemon. */
331
+ export async function listOllamaModels() {
332
+ return listProviderModels("ollama", "llm");
333
+ }
334
+ /**
335
+ * The set of chat providers currently usable: local/keyless providers plus any
336
+ * hosted provider whose key resolves from the encrypted DB or env. Async
337
+ * because it consults the secret store; the interactive picker uses this to
338
+ * disable providers that can't be selected. Mirrors `availableProviders()` but
339
+ * also picks up DB-stored keys (not just env).
340
+ */
341
+ export async function configuredProviderIds() {
342
+ const flags = await Promise.all(KNOWN_PROVIDERS.map((id) => {
343
+ // mlx is keyless but registered lazily (via the Python bridge), so
344
+ // isProviderConfigured() reports false until the bridge connects. Treat
345
+ // it as selectable on the only platform that can run it.
346
+ if (id === "mlx")
347
+ return Promise.resolve(isAppleSilicon());
348
+ return isProviderConfigured(id, resolveForUser1);
349
+ }));
350
+ return new Set(KNOWN_PROVIDERS.filter((_, i) => flags[i]));
351
+ }
352
+ /**
353
+ * Which chat providers have credentials configured (env-only — a fast sync
354
+ * check used by autocomplete). Local providers are always listed, with
355
+ * `ollama` kept last for stable display ordering.
356
+ */
113
357
  export function availableProviders() {
114
358
  const available = [];
115
- if (process.env["ANTHROPIC_API_KEY"])
116
- available.push("anthropic");
117
- if (process.env["OPENAI_API_KEY"])
118
- available.push("openai");
119
- if (process.env["GEMINI_API_KEY"])
120
- available.push("gemini");
121
- if (process.env["MISTRAL_API_KEY"])
122
- available.push("mistral");
123
- if (process.env["GROQ_API_KEY"])
124
- available.push("groq");
125
- if (process.env["KIMI_API_KEY"])
126
- available.push("moonshot");
127
- if (process.env["AKI_API_KEY"])
128
- available.push("aki");
129
- available.push("lmstudio"); // always available (local)
130
- available.push("ollama"); // always available (local)
359
+ for (const id of KNOWN_PROVIDERS) {
360
+ if (LOCAL_PROVIDERS.includes(id))
361
+ continue;
362
+ const key = getProviderSecretKey(id);
363
+ if (key && process.env[key])
364
+ available.push(id);
365
+ }
366
+ if (isAppleSilicon())
367
+ available.push("mlx");
368
+ // Keyless: surfaced like the local servers (the `claude` CLI carries its own
369
+ // subscription auth).
370
+ available.push("claude_agent_sdk");
371
+ available.push("lmstudio");
372
+ available.push("ollama");
131
373
  return available;
132
374
  }
133
375
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,5 @@
1
- /**
2
- * Readline-style text input for Ink.
3
- *
4
- * Supports standard readline keybindings:
5
- * Ctrl+A / Home — move to beginning of line
6
- * Ctrl+E / End — move to end of line
7
- * Ctrl+B / ← — move back one character
8
- * Ctrl+F / → — move forward one character
9
- * Alt+B — move back one word
10
- * Alt+F — move forward one word
11
- * Ctrl+W / Alt+Bksp — delete word backward
12
- * Alt+D — delete word forward
13
- * Ctrl+U — delete from cursor to start of line
14
- * Ctrl+K — delete from cursor to end of line
15
- * Ctrl+D — delete character under cursor
16
- * Ctrl+H / Backspace — delete character before cursor
17
- * Ctrl+T — transpose characters
18
- */
1
+ import React from "react";
2
+ import { type Key } from "ink";
19
3
  interface ReadlineInputProps {
20
4
  value: string;
21
5
  onChange: (value: string) => void;
@@ -23,7 +7,17 @@ interface ReadlineInputProps {
23
7
  focus?: boolean;
24
8
  placeholder?: string;
25
9
  showCursor?: boolean;
10
+ width?: number;
11
+ maxRows?: number;
12
+ onHistory?: (direction: "up" | "down") => void;
13
+ onComplete?: (direction: "up" | "down" | "accept" | "submit") => void;
26
14
  }
27
- export default function ReadlineInput({ value, onChange, onSubmit, focus, placeholder, showCursor, }: ReadlineInputProps): import("react/jsx-runtime").JSX.Element;
15
+ export interface EditorState {
16
+ readonly value: string;
17
+ readonly cursor: number;
18
+ }
19
+ /** Pure editing boundary shared by keyboard handling and terminal tests. */
20
+ export declare function editInput(state: EditorState, input: string, key: Partial<Key>): EditorState;
21
+ export default function ReadlineInput({ value, onChange, onSubmit, focus, placeholder, showCursor, width, maxRows, onHistory, onComplete }: ReadlineInputProps): React.ReactElement;
28
22
  export {};
29
23
  //# sourceMappingURL=readline-input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"readline-input.d.ts","sourceRoot":"","sources":["../src/readline-input.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAoBD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAY,EACZ,WAAgB,EAChB,UAAiB,GAClB,EAAE,kBAAkB,2CAgNpB"}
1
+ {"version":3,"file":"readline-input.d.ts","sourceRoot":"","sources":["../src/readline-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,EAAkB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAI/C,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IAC/C,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;CACvE;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAmCD,4EAA4E;AAC5E,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAChB,WAAW,CA2Fb;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAY,EACZ,WAA6B,EAC7B,UAAiB,EACjB,KAAU,EACV,OAAW,EACX,SAAS,EACT,UAAU,EACX,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAgHzC"}