@namzu/cli 0.0.3 → 0.2.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 (368) hide show
  1. package/dist/bin.js +4 -32
  2. package/dist/bin.js.map +1 -1
  3. package/dist/cli.d.ts +14 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +135 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/cli.test.d.ts +2 -0
  8. package/dist/cli.test.d.ts.map +1 -0
  9. package/dist/cli.test.js +94 -0
  10. package/dist/cli.test.js.map +1 -0
  11. package/dist/commands/doctor.d.ts +6 -0
  12. package/dist/commands/doctor.d.ts.map +1 -1
  13. package/dist/commands/doctor.js +10 -0
  14. package/dist/commands/doctor.js.map +1 -1
  15. package/dist/commands/providers.d.ts +17 -0
  16. package/dist/commands/providers.d.ts.map +1 -0
  17. package/dist/commands/providers.js +274 -0
  18. package/dist/commands/providers.js.map +1 -0
  19. package/dist/commands/registry.d.ts +11 -0
  20. package/dist/commands/registry.d.ts.map +1 -0
  21. package/dist/commands/registry.js +28 -0
  22. package/dist/commands/registry.js.map +1 -0
  23. package/dist/commands/run-stream.d.ts +27 -0
  24. package/dist/commands/run-stream.d.ts.map +1 -0
  25. package/dist/commands/run-stream.js +326 -0
  26. package/dist/commands/run-stream.js.map +1 -0
  27. package/dist/commands/run.d.ts +14 -0
  28. package/dist/commands/run.d.ts.map +1 -0
  29. package/dist/commands/run.js +73 -0
  30. package/dist/commands/run.js.map +1 -0
  31. package/dist/commands/stubs.d.ts +12 -0
  32. package/dist/commands/stubs.d.ts.map +1 -0
  33. package/dist/commands/stubs.js +32 -0
  34. package/dist/commands/stubs.js.map +1 -0
  35. package/dist/commands/tools.d.ts +16 -0
  36. package/dist/commands/tools.d.ts.map +1 -0
  37. package/dist/commands/tools.js +161 -0
  38. package/dist/commands/tools.js.map +1 -0
  39. package/dist/commands/types.d.ts +25 -0
  40. package/dist/commands/types.d.ts.map +1 -0
  41. package/dist/commands/types.js +2 -0
  42. package/dist/commands/types.js.map +1 -0
  43. package/dist/config/load.d.ts +25 -0
  44. package/dist/config/load.d.ts.map +1 -0
  45. package/dist/config/load.js +92 -0
  46. package/dist/config/load.js.map +1 -0
  47. package/dist/config/load.test.d.ts +2 -0
  48. package/dist/config/load.test.d.ts.map +1 -0
  49. package/dist/config/load.test.js +57 -0
  50. package/dist/config/load.test.js.map +1 -0
  51. package/dist/config/schema.d.ts +29 -0
  52. package/dist/config/schema.d.ts.map +1 -0
  53. package/dist/config/schema.js +13 -0
  54. package/dist/config/schema.js.map +1 -0
  55. package/dist/doctor/registry.d.ts.map +1 -1
  56. package/dist/doctor/registry.js +3 -1
  57. package/dist/doctor/registry.js.map +1 -1
  58. package/dist/doctor/registry.test.js +4 -1
  59. package/dist/doctor/registry.test.js.map +1 -1
  60. package/dist/index.d.ts +6 -0
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +7 -0
  63. package/dist/index.js.map +1 -1
  64. package/dist/integrations/clawtool/agents.d.ts +31 -0
  65. package/dist/integrations/clawtool/agents.d.ts.map +1 -0
  66. package/dist/integrations/clawtool/agents.js +30 -0
  67. package/dist/integrations/clawtool/agents.js.map +1 -0
  68. package/dist/integrations/clawtool/agents.test.d.ts +2 -0
  69. package/dist/integrations/clawtool/agents.test.d.ts.map +1 -0
  70. package/dist/integrations/clawtool/agents.test.js +79 -0
  71. package/dist/integrations/clawtool/agents.test.js.map +1 -0
  72. package/dist/integrations/clawtool/auth.d.ts +26 -0
  73. package/dist/integrations/clawtool/auth.d.ts.map +1 -0
  74. package/dist/integrations/clawtool/auth.js +56 -0
  75. package/dist/integrations/clawtool/auth.js.map +1 -0
  76. package/dist/integrations/clawtool/auth.test.d.ts +2 -0
  77. package/dist/integrations/clawtool/auth.test.d.ts.map +1 -0
  78. package/dist/integrations/clawtool/auth.test.js +40 -0
  79. package/dist/integrations/clawtool/auth.test.js.map +1 -0
  80. package/dist/integrations/clawtool/binary.d.ts +25 -0
  81. package/dist/integrations/clawtool/binary.d.ts.map +1 -0
  82. package/dist/integrations/clawtool/binary.js +50 -0
  83. package/dist/integrations/clawtool/binary.js.map +1 -0
  84. package/dist/integrations/clawtool/binary.test.d.ts +2 -0
  85. package/dist/integrations/clawtool/binary.test.d.ts.map +1 -0
  86. package/dist/integrations/clawtool/binary.test.js +42 -0
  87. package/dist/integrations/clawtool/binary.test.js.map +1 -0
  88. package/dist/integrations/clawtool/daemon.d.ts +37 -0
  89. package/dist/integrations/clawtool/daemon.d.ts.map +1 -0
  90. package/dist/integrations/clawtool/daemon.js +109 -0
  91. package/dist/integrations/clawtool/daemon.js.map +1 -0
  92. package/dist/integrations/clawtool/daemon.test.d.ts +11 -0
  93. package/dist/integrations/clawtool/daemon.test.d.ts.map +1 -0
  94. package/dist/integrations/clawtool/daemon.test.js +118 -0
  95. package/dist/integrations/clawtool/daemon.test.js.map +1 -0
  96. package/dist/integrations/clawtool/dispatch.d.ts +33 -0
  97. package/dist/integrations/clawtool/dispatch.d.ts.map +1 -0
  98. package/dist/integrations/clawtool/dispatch.js +155 -0
  99. package/dist/integrations/clawtool/dispatch.js.map +1 -0
  100. package/dist/integrations/clawtool/dispatch.test.d.ts +2 -0
  101. package/dist/integrations/clawtool/dispatch.test.d.ts.map +1 -0
  102. package/dist/integrations/clawtool/dispatch.test.js +138 -0
  103. package/dist/integrations/clawtool/dispatch.test.js.map +1 -0
  104. package/dist/integrations/clawtool/index.d.ts +11 -0
  105. package/dist/integrations/clawtool/index.d.ts.map +1 -0
  106. package/dist/integrations/clawtool/index.js +10 -0
  107. package/dist/integrations/clawtool/index.js.map +1 -0
  108. package/dist/integrations/clawtool/mcp.d.ts +51 -0
  109. package/dist/integrations/clawtool/mcp.d.ts.map +1 -0
  110. package/dist/integrations/clawtool/mcp.js +156 -0
  111. package/dist/integrations/clawtool/mcp.js.map +1 -0
  112. package/dist/integrations/clawtool/mcp.test.d.ts +2 -0
  113. package/dist/integrations/clawtool/mcp.test.d.ts.map +1 -0
  114. package/dist/integrations/clawtool/mcp.test.js +126 -0
  115. package/dist/integrations/clawtool/mcp.test.js.map +1 -0
  116. package/dist/integrations/clawtool/paths.d.ts +8 -0
  117. package/dist/integrations/clawtool/paths.d.ts.map +1 -0
  118. package/dist/integrations/clawtool/paths.js +19 -0
  119. package/dist/integrations/clawtool/paths.js.map +1 -0
  120. package/dist/integrations/clawtool/peers.d.ts +67 -0
  121. package/dist/integrations/clawtool/peers.d.ts.map +1 -0
  122. package/dist/integrations/clawtool/peers.js +150 -0
  123. package/dist/integrations/clawtool/peers.js.map +1 -0
  124. package/dist/integrations/clawtool/plugin.d.ts +42 -0
  125. package/dist/integrations/clawtool/plugin.d.ts.map +1 -0
  126. package/dist/integrations/clawtool/plugin.js +38 -0
  127. package/dist/integrations/clawtool/plugin.js.map +1 -0
  128. package/dist/integrations/clawtool/state.d.ts +11 -0
  129. package/dist/integrations/clawtool/state.d.ts.map +1 -0
  130. package/dist/integrations/clawtool/state.js +41 -0
  131. package/dist/integrations/clawtool/state.js.map +1 -0
  132. package/dist/integrations/clawtool/state.test.d.ts +2 -0
  133. package/dist/integrations/clawtool/state.test.d.ts.map +1 -0
  134. package/dist/integrations/clawtool/state.test.js +38 -0
  135. package/dist/integrations/clawtool/state.test.js.map +1 -0
  136. package/dist/integrations/clawtool/tooling.d.ts +50 -0
  137. package/dist/integrations/clawtool/tooling.d.ts.map +1 -0
  138. package/dist/integrations/clawtool/tooling.js +89 -0
  139. package/dist/integrations/clawtool/tooling.js.map +1 -0
  140. package/dist/integrations/clawtool/tooling.test.d.ts +2 -0
  141. package/dist/integrations/clawtool/tooling.test.d.ts.map +1 -0
  142. package/dist/integrations/clawtool/tooling.test.js +58 -0
  143. package/dist/integrations/clawtool/tooling.test.js.map +1 -0
  144. package/dist/integrations/clawtool/types.d.ts +41 -0
  145. package/dist/integrations/clawtool/types.d.ts.map +1 -0
  146. package/dist/integrations/clawtool/types.js +9 -0
  147. package/dist/integrations/clawtool/types.js.map +1 -0
  148. package/dist/integrations/clipboard/image.d.ts +18 -0
  149. package/dist/integrations/clipboard/image.d.ts.map +1 -0
  150. package/dist/integrations/clipboard/image.js +88 -0
  151. package/dist/integrations/clipboard/image.js.map +1 -0
  152. package/dist/integrations/providers/discover.d.ts +68 -0
  153. package/dist/integrations/providers/discover.d.ts.map +1 -0
  154. package/dist/integrations/providers/discover.js +108 -0
  155. package/dist/integrations/providers/discover.js.map +1 -0
  156. package/dist/integrations/providers/discover.test.d.ts +2 -0
  157. package/dist/integrations/providers/discover.test.d.ts.map +1 -0
  158. package/dist/integrations/providers/discover.test.js +120 -0
  159. package/dist/integrations/providers/discover.test.js.map +1 -0
  160. package/dist/integrations/providers/index.d.ts +10 -0
  161. package/dist/integrations/providers/index.d.ts.map +1 -0
  162. package/dist/integrations/providers/index.js +12 -0
  163. package/dist/integrations/providers/index.js.map +1 -0
  164. package/dist/integrations/providers/keychain.d.ts +44 -0
  165. package/dist/integrations/providers/keychain.d.ts.map +1 -0
  166. package/dist/integrations/providers/keychain.js +154 -0
  167. package/dist/integrations/providers/keychain.js.map +1 -0
  168. package/dist/integrations/providers/keychain.test.d.ts +2 -0
  169. package/dist/integrations/providers/keychain.test.d.ts.map +1 -0
  170. package/dist/integrations/providers/keychain.test.js +21 -0
  171. package/dist/integrations/providers/keychain.test.js.map +1 -0
  172. package/dist/integrations/providers/mask.d.ts +7 -0
  173. package/dist/integrations/providers/mask.d.ts.map +1 -0
  174. package/dist/integrations/providers/mask.js +14 -0
  175. package/dist/integrations/providers/mask.js.map +1 -0
  176. package/dist/integrations/providers/mask.test.d.ts +2 -0
  177. package/dist/integrations/providers/mask.test.d.ts.map +1 -0
  178. package/dist/integrations/providers/mask.test.js +20 -0
  179. package/dist/integrations/providers/mask.test.js.map +1 -0
  180. package/dist/integrations/providers/oauth.d.ts +28 -0
  181. package/dist/integrations/providers/oauth.d.ts.map +1 -0
  182. package/dist/integrations/providers/oauth.js +65 -0
  183. package/dist/integrations/providers/oauth.js.map +1 -0
  184. package/dist/integrations/providers/oauth.test.d.ts +2 -0
  185. package/dist/integrations/providers/oauth.test.d.ts.map +1 -0
  186. package/dist/integrations/providers/oauth.test.js +86 -0
  187. package/dist/integrations/providers/oauth.test.js.map +1 -0
  188. package/dist/integrations/providers/preferences.d.ts +43 -0
  189. package/dist/integrations/providers/preferences.d.ts.map +1 -0
  190. package/dist/integrations/providers/preferences.js +111 -0
  191. package/dist/integrations/providers/preferences.js.map +1 -0
  192. package/dist/integrations/providers/preferences.test.d.ts +2 -0
  193. package/dist/integrations/providers/preferences.test.d.ts.map +1 -0
  194. package/dist/integrations/providers/preferences.test.js +68 -0
  195. package/dist/integrations/providers/preferences.test.js.map +1 -0
  196. package/dist/integrations/providers/registry.d.ts +31 -0
  197. package/dist/integrations/providers/registry.d.ts.map +1 -0
  198. package/dist/integrations/providers/registry.js +79 -0
  199. package/dist/integrations/providers/registry.js.map +1 -0
  200. package/dist/integrations/providers/schema.d.ts +73 -0
  201. package/dist/integrations/providers/schema.d.ts.map +1 -0
  202. package/dist/integrations/providers/schema.js +70 -0
  203. package/dist/integrations/providers/schema.js.map +1 -0
  204. package/dist/integrations/providers/schema.test.d.ts +2 -0
  205. package/dist/integrations/providers/schema.test.d.ts.map +1 -0
  206. package/dist/integrations/providers/schema.test.js +43 -0
  207. package/dist/integrations/providers/schema.test.js.map +1 -0
  208. package/dist/integrations/providers/secrets.d.ts +37 -0
  209. package/dist/integrations/providers/secrets.d.ts.map +1 -0
  210. package/dist/integrations/providers/secrets.js +69 -0
  211. package/dist/integrations/providers/secrets.js.map +1 -0
  212. package/dist/integrations/providers/store.d.ts +32 -0
  213. package/dist/integrations/providers/store.d.ts.map +1 -0
  214. package/dist/integrations/providers/store.js +133 -0
  215. package/dist/integrations/providers/store.js.map +1 -0
  216. package/dist/integrations/providers/store.test.d.ts +2 -0
  217. package/dist/integrations/providers/store.test.d.ts.map +1 -0
  218. package/dist/integrations/providers/store.test.js +127 -0
  219. package/dist/integrations/providers/store.test.js.map +1 -0
  220. package/dist/integrations/sessions/store.d.ts +49 -0
  221. package/dist/integrations/sessions/store.d.ts.map +1 -0
  222. package/dist/integrations/sessions/store.js +121 -0
  223. package/dist/integrations/sessions/store.js.map +1 -0
  224. package/dist/integrations/subagents/runtime.d.ts +37 -0
  225. package/dist/integrations/subagents/runtime.d.ts.map +1 -0
  226. package/dist/integrations/subagents/runtime.js +183 -0
  227. package/dist/integrations/subagents/runtime.js.map +1 -0
  228. package/dist/integrations/trust/store.d.ts +16 -0
  229. package/dist/integrations/trust/store.d.ts.map +1 -0
  230. package/dist/integrations/trust/store.js +59 -0
  231. package/dist/integrations/trust/store.js.map +1 -0
  232. package/dist/integrations/trust/store.test.d.ts +2 -0
  233. package/dist/integrations/trust/store.test.d.ts.map +1 -0
  234. package/dist/integrations/trust/store.test.js +50 -0
  235. package/dist/integrations/trust/store.test.js.map +1 -0
  236. package/dist/integrations/updates.d.ts +27 -0
  237. package/dist/integrations/updates.d.ts.map +1 -0
  238. package/dist/integrations/updates.js +99 -0
  239. package/dist/integrations/updates.js.map +1 -0
  240. package/dist/memory/store.d.ts +29 -0
  241. package/dist/memory/store.d.ts.map +1 -0
  242. package/dist/memory/store.js +74 -0
  243. package/dist/memory/store.js.map +1 -0
  244. package/dist/memory/store.test.d.ts +2 -0
  245. package/dist/memory/store.test.d.ts.map +1 -0
  246. package/dist/memory/store.test.js +63 -0
  247. package/dist/memory/store.test.js.map +1 -0
  248. package/dist/output/formatter.d.ts +30 -0
  249. package/dist/output/formatter.d.ts.map +1 -0
  250. package/dist/output/formatter.js +16 -0
  251. package/dist/output/formatter.js.map +1 -0
  252. package/dist/output/formatter.test.d.ts +2 -0
  253. package/dist/output/formatter.test.d.ts.map +1 -0
  254. package/dist/output/formatter.test.js +88 -0
  255. package/dist/output/formatter.test.js.map +1 -0
  256. package/dist/output/index.d.ts +5 -0
  257. package/dist/output/index.d.ts.map +1 -0
  258. package/dist/output/index.js +22 -0
  259. package/dist/output/index.js.map +1 -0
  260. package/dist/output/json.d.ts +13 -0
  261. package/dist/output/json.d.ts.map +1 -0
  262. package/dist/output/json.js +51 -0
  263. package/dist/output/json.js.map +1 -0
  264. package/dist/output/text.d.ts +13 -0
  265. package/dist/output/text.d.ts.map +1 -0
  266. package/dist/output/text.js +36 -0
  267. package/dist/output/text.js.map +1 -0
  268. package/dist/output/yaml.d.ts +13 -0
  269. package/dist/output/yaml.d.ts.map +1 -0
  270. package/dist/output/yaml.js +26 -0
  271. package/dist/output/yaml.js.map +1 -0
  272. package/dist/skills/store.d.ts +49 -0
  273. package/dist/skills/store.d.ts.map +1 -0
  274. package/dist/skills/store.js +109 -0
  275. package/dist/skills/store.js.map +1 -0
  276. package/dist/skills/store.test.d.ts +2 -0
  277. package/dist/skills/store.test.d.ts.map +1 -0
  278. package/dist/skills/store.test.js +80 -0
  279. package/dist/skills/store.test.js.map +1 -0
  280. package/dist/tui/App.d.ts +18 -0
  281. package/dist/tui/App.d.ts.map +1 -0
  282. package/dist/tui/App.js +742 -0
  283. package/dist/tui/App.js.map +1 -0
  284. package/dist/tui/Composer.d.ts +17 -0
  285. package/dist/tui/Composer.d.ts.map +1 -0
  286. package/dist/tui/Composer.js +123 -0
  287. package/dist/tui/Composer.js.map +1 -0
  288. package/dist/tui/LiveActivity.d.ts +22 -0
  289. package/dist/tui/LiveActivity.d.ts.map +1 -0
  290. package/dist/tui/LiveActivity.js +46 -0
  291. package/dist/tui/LiveActivity.js.map +1 -0
  292. package/dist/tui/Markdown.d.ts +18 -0
  293. package/dist/tui/Markdown.d.ts.map +1 -0
  294. package/dist/tui/Markdown.js +68 -0
  295. package/dist/tui/Markdown.js.map +1 -0
  296. package/dist/tui/PermissionOverlay.d.ts +14 -0
  297. package/dist/tui/PermissionOverlay.d.ts.map +1 -0
  298. package/dist/tui/PermissionOverlay.js +22 -0
  299. package/dist/tui/PermissionOverlay.js.map +1 -0
  300. package/dist/tui/Picker.d.ts +20 -0
  301. package/dist/tui/Picker.d.ts.map +1 -0
  302. package/dist/tui/Picker.js +72 -0
  303. package/dist/tui/Picker.js.map +1 -0
  304. package/dist/tui/ResumePicker.d.ts +12 -0
  305. package/dist/tui/ResumePicker.d.ts.map +1 -0
  306. package/dist/tui/ResumePicker.js +26 -0
  307. package/dist/tui/ResumePicker.js.map +1 -0
  308. package/dist/tui/StatusBar.d.ts +22 -0
  309. package/dist/tui/StatusBar.d.ts.map +1 -0
  310. package/dist/tui/StatusBar.js +73 -0
  311. package/dist/tui/StatusBar.js.map +1 -0
  312. package/dist/tui/Transcript.d.ts +29 -0
  313. package/dist/tui/Transcript.d.ts.map +1 -0
  314. package/dist/tui/Transcript.js +105 -0
  315. package/dist/tui/Transcript.js.map +1 -0
  316. package/dist/tui/TrustPrompt.d.ts +11 -0
  317. package/dist/tui/TrustPrompt.d.ts.map +1 -0
  318. package/dist/tui/TrustPrompt.js +13 -0
  319. package/dist/tui/TrustPrompt.js.map +1 -0
  320. package/dist/tui/agent.d.ts +175 -0
  321. package/dist/tui/agent.d.ts.map +1 -0
  322. package/dist/tui/agent.js +710 -0
  323. package/dist/tui/agent.js.map +1 -0
  324. package/dist/tui/agent.test.d.ts +2 -0
  325. package/dist/tui/agent.test.d.ts.map +1 -0
  326. package/dist/tui/agent.test.js +225 -0
  327. package/dist/tui/agent.test.js.map +1 -0
  328. package/dist/tui/index.d.ts +7 -0
  329. package/dist/tui/index.d.ts.map +1 -0
  330. package/dist/tui/index.js +29 -0
  331. package/dist/tui/index.js.map +1 -0
  332. package/dist/tui/logo.d.ts +23 -0
  333. package/dist/tui/logo.d.ts.map +1 -0
  334. package/dist/tui/logo.js +35 -0
  335. package/dist/tui/logo.js.map +1 -0
  336. package/dist/tui/markdownParser.d.ts +45 -0
  337. package/dist/tui/markdownParser.d.ts.map +1 -0
  338. package/dist/tui/markdownParser.js +127 -0
  339. package/dist/tui/markdownParser.js.map +1 -0
  340. package/dist/tui/markdownParser.test.d.ts +2 -0
  341. package/dist/tui/markdownParser.test.d.ts.map +1 -0
  342. package/dist/tui/markdownParser.test.js +90 -0
  343. package/dist/tui/markdownParser.test.js.map +1 -0
  344. package/dist/tui/mentions.d.ts +22 -0
  345. package/dist/tui/mentions.d.ts.map +1 -0
  346. package/dist/tui/mentions.js +59 -0
  347. package/dist/tui/mentions.js.map +1 -0
  348. package/dist/tui/mentions.test.d.ts +2 -0
  349. package/dist/tui/mentions.test.d.ts.map +1 -0
  350. package/dist/tui/mentions.test.js +35 -0
  351. package/dist/tui/mentions.test.js.map +1 -0
  352. package/dist/tui/slashCommands.d.ts +64 -0
  353. package/dist/tui/slashCommands.d.ts.map +1 -0
  354. package/dist/tui/slashCommands.js +153 -0
  355. package/dist/tui/slashCommands.js.map +1 -0
  356. package/dist/tui/slashCommands.test.d.ts +2 -0
  357. package/dist/tui/slashCommands.test.d.ts.map +1 -0
  358. package/dist/tui/slashCommands.test.js +114 -0
  359. package/dist/tui/slashCommands.test.js.map +1 -0
  360. package/dist/tui/theme.d.ts +34 -0
  361. package/dist/tui/theme.d.ts.map +1 -0
  362. package/dist/tui/theme.js +32 -0
  363. package/dist/tui/theme.js.map +1 -0
  364. package/dist/tui/types.d.ts +27 -0
  365. package/dist/tui/types.d.ts.map +1 -0
  366. package/dist/tui/types.js +7 -0
  367. package/dist/tui/types.js.map +1 -0
  368. package/package.json +13 -3
@@ -0,0 +1,326 @@
1
+ /**
2
+ * `namzu run-stream [--session <key>] "<prompt>"` — headless STREAMING
3
+ * one-shot. Same engine as `run`, but instead of buffering the final text it
4
+ * emits one compact NDJSON line per `AgentEvent` to stdout
5
+ * (`{"kind":"delta","text":…}`, `{"kind":"tool-start",…}`,
6
+ * `{"kind":"error","message":…}`, `{"kind":"done"}`). A host process (the
7
+ * clawtool desktop) line-scans stdout and renders the turn live — the
8
+ * equivalent of the TUI, driven from another runtime.
9
+ *
10
+ * History: with `--session <key>` the turn is bound to a persisted
11
+ * conversation in the cwd's `.namzu` store (keyed by the embedder's own
12
+ * session id), so prior turns are loaded as context and the new
13
+ * user+assistant pair is appended — that's what lets a reopened session show
14
+ * its past messages (`namzu history --session <key>`). Without `--session`,
15
+ * prior history may be supplied on stdin as a JSON `Message[]` and nothing is
16
+ * persisted (stateless one-shot).
17
+ *
18
+ * Status lines never hit stdout (logger silenced) so every stdout line is a
19
+ * valid JSON event. Provider/credential failures are emitted as a final
20
+ * `{"kind":"error",…}` line (exit 0) so the host surfaces them in-band.
21
+ */
22
+ import { configureLogger } from '@namzu/sdk';
23
+ import { appendMessages, loadConversation, openSessions, resolveConversation, } from '../integrations/sessions/store.js';
24
+ async function readStdin() {
25
+ if (process.stdin.isTTY)
26
+ return '';
27
+ const chunks = [];
28
+ for await (const chunk of process.stdin)
29
+ chunks.push(chunk);
30
+ return Buffer.concat(chunks).toString('utf8');
31
+ }
32
+ function defaultPrefs(detected) {
33
+ const first = detected[0];
34
+ return first ? { version: 2, provider: first.entry.id, subagents: { active: [] } } : null;
35
+ }
36
+ function parseRunStreamFlags(rawArgs) {
37
+ const out = {
38
+ session: null,
39
+ model: null,
40
+ provider: null,
41
+ instance: null,
42
+ skills: [],
43
+ rest: [],
44
+ };
45
+ const take = (a, name, set, i) => {
46
+ if (a === `--${name}` && i.v + 1 < rawArgs.length) {
47
+ set(rawArgs[++i.v]);
48
+ return true;
49
+ }
50
+ if (a.startsWith(`--${name}=`)) {
51
+ set(a.slice(name.length + 3));
52
+ return true;
53
+ }
54
+ return false;
55
+ };
56
+ for (const idx = { v: 0 }; idx.v < rawArgs.length; idx.v++) {
57
+ const a = rawArgs[idx.v];
58
+ if (take(a, 'session', (v) => {
59
+ out.session = v.trim() || null;
60
+ }, idx))
61
+ continue;
62
+ if (take(a, 'model', (v) => {
63
+ out.model = v.trim() || null;
64
+ }, idx))
65
+ continue;
66
+ if (take(a, 'provider', (v) => {
67
+ out.provider = v.trim() || null;
68
+ }, idx))
69
+ continue;
70
+ if (take(a, 'instance', (v) => {
71
+ out.instance = v.trim() || null;
72
+ }, idx))
73
+ continue;
74
+ if (take(a, 'skills', (v) => {
75
+ out.skills = v
76
+ .split(',')
77
+ .map((s) => s.trim())
78
+ .filter(Boolean);
79
+ }, idx))
80
+ continue;
81
+ out.rest.push(a);
82
+ }
83
+ return out;
84
+ }
85
+ /** Parse stdin as a prior Message[]; tolerate the UI's {role,content} shape. */
86
+ function parsePriorMessages(raw) {
87
+ const trimmed = raw.trim();
88
+ if (!trimmed)
89
+ return [];
90
+ try {
91
+ const parsed = JSON.parse(trimmed);
92
+ if (!Array.isArray(parsed))
93
+ return [];
94
+ const out = [];
95
+ for (const m of parsed) {
96
+ if (!m || typeof m !== 'object')
97
+ continue;
98
+ const role = m.role;
99
+ const content = m.content;
100
+ if ((role === 'user' || role === 'assistant') && typeof content === 'string') {
101
+ const ts = m.timestamp;
102
+ out.push({ role, content, timestamp: typeof ts === 'number' ? ts : Date.now() });
103
+ }
104
+ }
105
+ return out;
106
+ }
107
+ catch {
108
+ return [];
109
+ }
110
+ }
111
+ export const runStreamCommand = {
112
+ name: 'run-stream',
113
+ description: 'Run a single prompt and stream AgentEvents as NDJSON (for host UIs)',
114
+ passThrough: true,
115
+ handler: async ({ rawArgs }) => {
116
+ const write = (o) => {
117
+ process.stdout.write(`${JSON.stringify(o)}\n`);
118
+ };
119
+ const fail = (message) => {
120
+ write({ kind: 'error', message });
121
+ write({ kind: 'done' });
122
+ return 0;
123
+ };
124
+ const flags = parseRunStreamFlags(rawArgs);
125
+ const sessionKey = flags.session;
126
+ const prompt = flags.rest.join(' ').trim();
127
+ if (!prompt)
128
+ return fail('no prompt — pass it as an argument');
129
+ // Resolve the persisted conversation (if a session key was given) so we
130
+ // load prior turns as context and can append this turn afterward. Falls
131
+ // back to stdin-supplied history when running stateless.
132
+ let cli = null;
133
+ let conversationId = null;
134
+ let prior = [];
135
+ if (sessionKey) {
136
+ try {
137
+ cli = await openSessions(process.cwd());
138
+ conversationId = await resolveConversation(cli, sessionKey);
139
+ prior = await loadConversation(cli, conversationId);
140
+ }
141
+ catch {
142
+ cli = null; // persistence unavailable — run stateless rather than fail
143
+ }
144
+ }
145
+ if (!cli) {
146
+ prior = parsePriorMessages(await readStdin());
147
+ }
148
+ configureLogger({ level: 'silent' });
149
+ const { probeAgentSession, createAgentSession } = await import('../tui/agent.js');
150
+ const probe = await probeAgentSession();
151
+ let prefs = probe.preferences ?? defaultPrefs(probe.detected);
152
+ if (!prefs) {
153
+ return fail('no LLM provider available — set a credential (e.g. ANTHROPIC_API_KEY) or run `namzu` to pick one');
154
+ }
155
+ // --provider/--model override the persona's configured provider+model for
156
+ // this run, so the Namzu tab's picks win over ~/.namzu/preferences.json.
157
+ if (flags.provider)
158
+ prefs = { ...prefs, provider: flags.provider };
159
+ if (flags.model)
160
+ prefs = { ...prefs, model: flags.model };
161
+ const session = await createAgentSession(prefs, probe.detected);
162
+ if (!session.hasProvider)
163
+ return fail(session.errorHint ?? 'agent is not ready');
164
+ // --skills <a,b,c>: load the named skills' bodies and inject them as the
165
+ // turn's extra system context (the same channel the TUI's /skill uses).
166
+ let extraSystem;
167
+ if (flags.skills.length > 0) {
168
+ try {
169
+ const { discoverSkills, loadSkillBody, composeSkillsPrompt } = await import('../skills/store.js');
170
+ const all = discoverSkills({ cwd: process.cwd() });
171
+ const wanted = new Set(flags.skills);
172
+ const active = all
173
+ .filter((s) => wanted.has(s.name))
174
+ .map((s) => ({ name: s.name, body: loadSkillBody(s) }));
175
+ extraSystem = composeSkillsPrompt(active) ?? undefined;
176
+ }
177
+ catch {
178
+ // skills unavailable — run without them rather than fail the turn.
179
+ }
180
+ }
181
+ const userMessage = { role: 'user', content: prompt, timestamp: Date.now() };
182
+ const messages = [...prior, userMessage];
183
+ let assistantText = '';
184
+ try {
185
+ for await (const event of session.send(messages, extraSystem ? { extraSystem } : undefined)) {
186
+ if (event.kind === 'delta')
187
+ assistantText += event.text;
188
+ write(event);
189
+ }
190
+ }
191
+ catch (err) {
192
+ return fail(err instanceof Error ? err.message : String(err));
193
+ }
194
+ // Persist the turn so a later `history --session <key>` (and the next
195
+ // turn's context) sees it. Best-effort — a store failure must not lose
196
+ // the reply the user already saw stream.
197
+ if (cli && conversationId) {
198
+ try {
199
+ const assistant = {
200
+ role: 'assistant',
201
+ content: assistantText,
202
+ timestamp: Date.now(),
203
+ };
204
+ await appendMessages(cli, conversationId, [userMessage, assistant]);
205
+ }
206
+ catch {
207
+ // non-fatal
208
+ }
209
+ }
210
+ write({ kind: 'done' });
211
+ return 0;
212
+ },
213
+ };
214
+ export const historyCommand = {
215
+ name: 'history',
216
+ description: "Print a session's persisted messages as JSON (for host UIs)",
217
+ passThrough: true,
218
+ handler: async ({ rawArgs }) => {
219
+ const key = parseRunStreamFlags(rawArgs).session;
220
+ if (!key) {
221
+ process.stdout.write('[]\n');
222
+ return 0;
223
+ }
224
+ try {
225
+ const cli = await openSessions(process.cwd());
226
+ const map = await import('../integrations/sessions/store.js');
227
+ // Resolve WITHOUT creating: only emit history for an existing mapping.
228
+ const existing = await resolveExisting(cli, key);
229
+ if (!existing) {
230
+ process.stdout.write('[]\n');
231
+ return 0;
232
+ }
233
+ const messages = await loadConversation(cli, existing);
234
+ const out = messages
235
+ .filter((m) => (m.role === 'user' || m.role === 'assistant') && m.content)
236
+ .map((m) => ({ role: m.role, content: m.content }));
237
+ process.stdout.write(`${JSON.stringify(out)}\n`);
238
+ void map;
239
+ return 0;
240
+ }
241
+ catch {
242
+ process.stdout.write('[]\n');
243
+ return 0;
244
+ }
245
+ },
246
+ };
247
+ // skills-json — read-only skill discovery for a host UI (the Namzu tab's skill
248
+ // chips). Prints the cwd-resolved skills as a JSON array of {name, description,
249
+ // source}. Distinct from the milestone-owned `skills` management command; this
250
+ // is the thin enumeration the desktop polls. Empty array on any failure.
251
+ export const skillsJSONCommand = {
252
+ name: 'skills-json',
253
+ description: 'Print discovered skills as JSON (for host UIs)',
254
+ passThrough: true,
255
+ handler: async () => {
256
+ try {
257
+ const { discoverSkills } = await import('../skills/store.js');
258
+ const skills = discoverSkills({ cwd: process.cwd() }).map((s) => ({
259
+ name: s.name,
260
+ description: s.description,
261
+ source: s.source,
262
+ }));
263
+ process.stdout.write(`${JSON.stringify(skills)}\n`);
264
+ }
265
+ catch {
266
+ process.stdout.write('[]\n');
267
+ }
268
+ return 0;
269
+ },
270
+ };
271
+ // providers-json — read-only provider+model discovery for a host UI (the Namzu
272
+ // tab's provider/model pickers). Emits every PROVIDER_REGISTRY entry with
273
+ // detection state + a best-effort live model list. Distinct from the `providers`
274
+ // profile-management command. Empty models[] → the host falls back to a
275
+ // free-text model field seeded with `default`. Never throws.
276
+ export const providersJSONCommand = {
277
+ name: 'providers-json',
278
+ description: 'Print providers + per-provider models as JSON (for host UIs)',
279
+ passThrough: true,
280
+ handler: async () => {
281
+ try {
282
+ const { configureLogger } = await import('@namzu/sdk');
283
+ configureLogger({ level: 'silent' });
284
+ const { PROVIDER_REGISTRY, ALL_PROVIDER_IDS, findDetected } = await import('../integrations/providers/index.js');
285
+ const { probeAgentSession, listProviderModels } = await import('../tui/agent.js');
286
+ const probe = await probeAgentSession();
287
+ const out = [];
288
+ for (const id of ALL_PROVIDER_IDS) {
289
+ const entry = PROVIDER_REGISTRY[id];
290
+ const det = findDetected(probe.detected, id) ?? null;
291
+ const models = det ? await listProviderModels(id, det).catch(() => []) : [];
292
+ out.push({
293
+ provider: id,
294
+ label: entry.label,
295
+ detected: Boolean(det),
296
+ default: entry.defaultModel,
297
+ models,
298
+ });
299
+ }
300
+ // Detected providers first, so the picker defaults to a usable one.
301
+ out.sort((a, b) => Number(b.detected) - Number(a.detected));
302
+ process.stdout.write(`${JSON.stringify(out)}\n`);
303
+ }
304
+ catch {
305
+ process.stdout.write('[]\n');
306
+ }
307
+ return 0;
308
+ },
309
+ };
310
+ /** Look up an existing desktop-key → conversation mapping without creating one. */
311
+ async function resolveExisting(cli, key) {
312
+ const { readFileSync } = await import('node:fs');
313
+ const { join } = await import('node:path');
314
+ try {
315
+ const raw = JSON.parse(readFileSync(join(cli.root, 'desktop-sessions.json'), 'utf8'));
316
+ const id = raw?.[key];
317
+ if (typeof id === 'string' && (await cli.store.getSession(id, cli.tenantId))) {
318
+ return id;
319
+ }
320
+ }
321
+ catch {
322
+ // no map / wiped
323
+ }
324
+ return null;
325
+ }
326
+ //# sourceMappingURL=run-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-stream.js","sourceRoot":"","sources":["../../src/commands/run-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `namzu run "<prompt>"` — headless one-shot. Runs a single prompt through
3
+ * the same agent the TUI uses and prints the reply to stdout, for scripts
4
+ * and CI (the equivalent of claude-code's `--print`). The prompt comes from
5
+ * the arguments, or from stdin when piped. Status lines go to stderr (info,
6
+ * suppressed by `--quiet`); only the answer hits stdout.
7
+ *
8
+ * Non-interactive, so there's no approval prompt — tools auto-run, but the
9
+ * safety gate still hard-denies catastrophic commands. One-shots use an
10
+ * ephemeral session and are not added to `/resume` history.
11
+ */
12
+ import type { CommandDef } from './types.js';
13
+ export declare const runCommand: CommandDef;
14
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAc5C,eAAO,MAAM,UAAU,EAAE,UAmDxB,CAAA"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * `namzu run "<prompt>"` — headless one-shot. Runs a single prompt through
3
+ * the same agent the TUI uses and prints the reply to stdout, for scripts
4
+ * and CI (the equivalent of claude-code's `--print`). The prompt comes from
5
+ * the arguments, or from stdin when piped. Status lines go to stderr (info,
6
+ * suppressed by `--quiet`); only the answer hits stdout.
7
+ *
8
+ * Non-interactive, so there's no approval prompt — tools auto-run, but the
9
+ * safety gate still hard-denies catastrophic commands. One-shots use an
10
+ * ephemeral session and are not added to `/resume` history.
11
+ */
12
+ import { configureLogger } from '@namzu/sdk';
13
+ async function readStdin() {
14
+ if (process.stdin.isTTY)
15
+ return '';
16
+ const chunks = [];
17
+ for await (const chunk of process.stdin)
18
+ chunks.push(chunk);
19
+ return Buffer.concat(chunks).toString('utf8');
20
+ }
21
+ function defaultPrefs(detected) {
22
+ const first = detected[0];
23
+ return first ? { version: 2, provider: first.entry.id, subagents: { active: [] } } : null;
24
+ }
25
+ export const runCommand = {
26
+ name: 'run',
27
+ description: 'Run a single prompt headlessly and print the reply (for scripts/CI)',
28
+ passThrough: true,
29
+ handler: async ({ ctx, rawArgs }) => {
30
+ let prompt = rawArgs.join(' ').trim();
31
+ if (!prompt)
32
+ prompt = (await readStdin()).trim();
33
+ if (!prompt) {
34
+ ctx.formatter.error({ message: 'no prompt — pass it as an argument or pipe it via stdin' });
35
+ return 2;
36
+ }
37
+ configureLogger({ level: 'silent' });
38
+ const { probeAgentSession, createAgentSession } = await import('../tui/agent.js');
39
+ const probe = await probeAgentSession();
40
+ const prefs = probe.preferences ?? defaultPrefs(probe.detected);
41
+ if (!prefs) {
42
+ ctx.formatter.error({
43
+ message: 'no LLM provider available — set a credential (e.g. ANTHROPIC_API_KEY) or run `namzu` to pick one',
44
+ });
45
+ return 1;
46
+ }
47
+ const session = await createAgentSession(prefs, probe.detected);
48
+ if (!session.hasProvider) {
49
+ ctx.formatter.error({ message: session.errorHint ?? 'agent is not ready' });
50
+ return 1;
51
+ }
52
+ ctx.formatter.info(`namzu · ${session.providerSummary}${session.modelSummary ? ` · ${session.modelSummary}` : ''}`);
53
+ let text = '';
54
+ let failed = null;
55
+ for await (const event of session.send([
56
+ { role: 'user', content: prompt, timestamp: Date.now() },
57
+ ])) {
58
+ if (event.kind === 'delta')
59
+ text += event.text;
60
+ else if (event.kind === 'tool-start')
61
+ ctx.formatter.info(`⏺ ${event.toolName} ${event.summary}`);
62
+ else if (event.kind === 'error')
63
+ failed = event.message;
64
+ }
65
+ if (failed) {
66
+ ctx.formatter.error({ message: failed });
67
+ return 1;
68
+ }
69
+ ctx.formatter.print(ctx.formatter.name === 'json' ? { text: text.trim() } : text.trim());
70
+ return 0;
71
+ },
72
+ };
73
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Stub commands that advertise the future surface of the CLI.
3
+ *
4
+ * Each stub corresponds to a milestone in the M0→M7 plan and exits 0 after
5
+ * printing a structured marker. The implementations themselves land in
6
+ * their respective milestone sessions (see docs.local/sessions/).
7
+ */
8
+ import type { CommandDef } from './types.js';
9
+ export declare const skillsCommand: CommandDef;
10
+ export declare const serveCommand: CommandDef;
11
+ export declare const stubCommands: readonly CommandDef[];
12
+ //# sourceMappingURL=stubs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stubs.d.ts","sourceRoot":"","sources":["../../src/commands/stubs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAA;AAa5D,eAAO,MAAM,aAAa,EAAE,UAI3B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,UAS1B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAAkC,CAAA"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Stub commands that advertise the future surface of the CLI.
3
+ *
4
+ * Each stub corresponds to a milestone in the M0→M7 plan and exits 0 after
5
+ * printing a structured marker. The implementations themselves land in
6
+ * their respective milestone sessions (see docs.local/sessions/).
7
+ */
8
+ function stubHandler(milestone, what) {
9
+ return async ({ ctx }) => {
10
+ ctx.formatter.print({
11
+ stub: true,
12
+ milestone,
13
+ message: `${milestone} will implement ${what}.`,
14
+ });
15
+ return 0;
16
+ };
17
+ }
18
+ export const skillsCommand = {
19
+ name: 'skills',
20
+ description: 'Manage agentskills.io-compatible skills (M5)',
21
+ handler: stubHandler('M5', 'the skills subsystem'),
22
+ };
23
+ export const serveCommand = {
24
+ name: 'serve',
25
+ description: 'Cross-agent coordination is provided by clawtool (no separate namzu daemon)',
26
+ handler: async ({ ctx }) => {
27
+ ctx.formatter.info('namzu uses clawtool as its coordination daemon — it registers as a BIAM peer automatically. There is no separate `namzu serve`; just run `namzu`. Use /agents to see peers.');
28
+ return 0;
29
+ },
30
+ };
31
+ export const stubCommands = [skillsCommand, serveCommand];
32
+ //# sourceMappingURL=stubs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stubs.js","sourceRoot":"","sources":["../../src/commands/stubs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,SAAS,WAAW,CAAC,SAAiB,EAAE,IAAY;IACnD,OAAO,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACxB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;YACnB,IAAI,EAAE,IAAI;YACV,SAAS;YACT,OAAO,EAAE,GAAG,SAAS,mBAAmB,IAAI,GAAG;SAC/C,CAAC,CAAA;QACF,OAAO,CAAC,CAAA;IACT,CAAC,CAAA;AACF,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAe;IACxC,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,8CAA8C;IAC3D,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,sBAAsB,CAAC;CAClD,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAe;IACvC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,6EAA6E;IAC1F,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QAC1B,GAAG,CAAC,SAAS,CAAC,IAAI,CACjB,6KAA6K,CAC7K,CAAA;QACD,OAAO,CAAC,CAAA;IACT,CAAC;CACD,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAA0B,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `namzu tools` — real implementation, replacing the M0 stub.
3
+ *
4
+ * Subcommands:
5
+ * - `ls` List tools clawtool exposes (auto-spawns daemon).
6
+ * - `run <name>` Invoke a tool by name with JSON arguments.
7
+ * - `sync-types` Generate local TS stubs via `clawtool tools export-typescript`.
8
+ *
9
+ * The command runs in passThrough mode — its own Commander instance parses
10
+ * the subcommand args. This keeps the top-level shell free of vendor-tool
11
+ * coupling and lets us expand the surface later (e.g. `tools search`)
12
+ * without touching the outer registry.
13
+ */
14
+ import type { CommandDef } from './types.js';
15
+ export declare const toolsCommand: CommandDef;
16
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAaH,OAAO,KAAK,EAAkB,UAAU,EAAE,MAAM,YAAY,CAAA;AA4F5D,eAAO,MAAM,YAAY,EAAE,UA2D1B,CAAA"}