hoomanjs 1.46.0 → 1.55.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 (340) hide show
  1. package/README.md +44 -18
  2. package/dist/acp/acp-agent.d.ts +42 -0
  3. package/dist/acp/acp-agent.js +336 -47
  4. package/dist/acp/acp-agent.js.map +1 -1
  5. package/dist/acp/approvals.js +11 -10
  6. package/dist/acp/approvals.js.map +1 -1
  7. package/dist/acp/browser.d.ts +9 -0
  8. package/dist/acp/browser.js +23 -0
  9. package/dist/acp/browser.js.map +1 -0
  10. package/dist/acp/meta/vscode.d.ts +8 -7
  11. package/dist/acp/meta/vscode.js +10 -11
  12. package/dist/acp/meta/vscode.js.map +1 -1
  13. package/dist/acp/session-config.d.ts +2 -2
  14. package/dist/acp/session-config.js +24 -20
  15. package/dist/acp/session-config.js.map +1 -1
  16. package/dist/acp/sessions/store.d.ts +3 -3
  17. package/dist/acp/utils/tool-kind.js +8 -6
  18. package/dist/acp/utils/tool-kind.js.map +1 -1
  19. package/dist/chat/app.js +91 -11
  20. package/dist/chat/app.js.map +1 -1
  21. package/dist/chat/approvals.js +3 -0
  22. package/dist/chat/approvals.js.map +1 -1
  23. package/dist/chat/components/ApprovalPrompt.js +15 -25
  24. package/dist/chat/components/ApprovalPrompt.js.map +1 -1
  25. package/dist/chat/components/BackgroundJobsPanel.d.ts +10 -0
  26. package/dist/chat/components/BackgroundJobsPanel.js +15 -0
  27. package/dist/chat/components/BackgroundJobsPanel.js.map +1 -0
  28. package/dist/chat/components/BottomChrome.d.ts +6 -1
  29. package/dist/chat/components/BottomChrome.js +3 -2
  30. package/dist/chat/components/BottomChrome.js.map +1 -1
  31. package/dist/chat/components/ChromePicker.d.ts +7 -2
  32. package/dist/chat/components/ChromePicker.js +18 -2
  33. package/dist/chat/components/ChromePicker.js.map +1 -1
  34. package/dist/chat/components/Composer.js +3 -2
  35. package/dist/chat/components/Composer.js.map +1 -1
  36. package/dist/chat/components/DownloadPanel.js +2 -1
  37. package/dist/chat/components/DownloadPanel.js.map +1 -1
  38. package/dist/chat/components/EmptyChatBanner.js +2 -1
  39. package/dist/chat/components/EmptyChatBanner.js.map +1 -1
  40. package/dist/chat/components/PromptInput.js +2 -1
  41. package/dist/chat/components/PromptInput.js.map +1 -1
  42. package/dist/chat/components/QuestionPrompt.js +5 -4
  43. package/dist/chat/components/QuestionPrompt.js.map +1 -1
  44. package/dist/chat/components/QueuedPrompts.js +3 -2
  45. package/dist/chat/components/QueuedPrompts.js.map +1 -1
  46. package/dist/chat/components/ReasoningStrip.js +2 -1
  47. package/dist/chat/components/ReasoningStrip.js.map +1 -1
  48. package/dist/chat/components/RetryEvent.js +2 -1
  49. package/dist/chat/components/RetryEvent.js.map +1 -1
  50. package/dist/chat/components/SelectPicker.js +2 -1
  51. package/dist/chat/components/SelectPicker.js.map +1 -1
  52. package/dist/chat/components/ShellToolEvent.d.ts +12 -0
  53. package/dist/chat/components/ShellToolEvent.js +94 -0
  54. package/dist/chat/components/ShellToolEvent.js.map +1 -0
  55. package/dist/chat/components/SlashCommands.js +2 -1
  56. package/dist/chat/components/SlashCommands.js.map +1 -1
  57. package/dist/chat/components/Spinner.js +2 -1
  58. package/dist/chat/components/Spinner.js.map +1 -1
  59. package/dist/chat/components/StatusBar.js +19 -15
  60. package/dist/chat/components/StatusBar.js.map +1 -1
  61. package/dist/chat/components/ThinkingStatus.js +2 -1
  62. package/dist/chat/components/ThinkingStatus.js.map +1 -1
  63. package/dist/chat/components/ThoughtEvent.js +2 -1
  64. package/dist/chat/components/ThoughtEvent.js.map +1 -1
  65. package/dist/chat/components/TodoPanel.js +2 -1
  66. package/dist/chat/components/TodoPanel.js.map +1 -1
  67. package/dist/chat/components/ToolEvent.d.ts +2 -1
  68. package/dist/chat/components/ToolEvent.js +9 -2
  69. package/dist/chat/components/ToolEvent.js.map +1 -1
  70. package/dist/chat/components/ToolEventFileResult.js +8 -7
  71. package/dist/chat/components/ToolEventFileResult.js.map +1 -1
  72. package/dist/chat/components/Transcript.d.ts +4 -2
  73. package/dist/chat/components/Transcript.js +4 -4
  74. package/dist/chat/components/Transcript.js.map +1 -1
  75. package/dist/chat/components/markdown/BlockRenderer.js +3 -2
  76. package/dist/chat/components/markdown/BlockRenderer.js.map +1 -1
  77. package/dist/chat/components/markdown/CodeBlock.js +3 -2
  78. package/dist/chat/components/markdown/CodeBlock.js.map +1 -1
  79. package/dist/chat/components/markdown/InlineRenderer.js +6 -5
  80. package/dist/chat/components/markdown/InlineRenderer.js.map +1 -1
  81. package/dist/chat/components/shared.js +7 -6
  82. package/dist/chat/components/shared.js.map +1 -1
  83. package/dist/chat/types.d.ts +7 -0
  84. package/dist/cli.js +162 -44
  85. package/dist/cli.js.map +1 -1
  86. package/dist/configure/app.js +46 -29
  87. package/dist/configure/app.js.map +1 -1
  88. package/dist/configure/components/BusyScreen.js +2 -1
  89. package/dist/configure/components/BusyScreen.js.map +1 -1
  90. package/dist/configure/components/MenuScreen.js +3 -2
  91. package/dist/configure/components/MenuScreen.js.map +1 -1
  92. package/dist/configure/components/PromptForm.js +2 -1
  93. package/dist/configure/components/PromptForm.js.map +1 -1
  94. package/dist/configure/components/SelectMenuItem.js +4 -3
  95. package/dist/configure/components/SelectMenuItem.js.map +1 -1
  96. package/dist/configure/utils.js +4 -3
  97. package/dist/configure/utils.js.map +1 -1
  98. package/dist/core/agent/default-retry-strategy.js +46 -12
  99. package/dist/core/agent/default-retry-strategy.js.map +1 -1
  100. package/dist/core/agent/gitignore-guard-plugin.js +17 -2
  101. package/dist/core/agent/gitignore-guard-plugin.js.map +1 -1
  102. package/dist/core/agent/index.js +38 -7
  103. package/dist/core/agent/index.js.map +1 -1
  104. package/dist/core/approvals/allowlist.js +1 -0
  105. package/dist/core/approvals/allowlist.js.map +1 -1
  106. package/dist/core/approvals/intervention.d.ts +10 -2
  107. package/dist/core/approvals/intervention.js +46 -8
  108. package/dist/core/approvals/intervention.js.map +1 -1
  109. package/dist/core/config.d.ts +9 -2
  110. package/dist/core/config.js +8 -4
  111. package/dist/core/config.js.map +1 -1
  112. package/dist/core/index.d.ts +2 -2
  113. package/dist/core/mcp/oauth/service.js +2 -2
  114. package/dist/core/mcp/oauth/service.js.map +1 -1
  115. package/dist/core/models/bedrock.js +6 -0
  116. package/dist/core/models/bedrock.js.map +1 -1
  117. package/dist/core/models/groq.js +34 -14
  118. package/dist/core/models/groq.js.map +1 -1
  119. package/dist/core/models/minimax.js +1 -1
  120. package/dist/core/models/minimax.js.map +1 -1
  121. package/dist/core/models/types.d.ts +10 -2
  122. package/dist/core/models/types.js +1 -0
  123. package/dist/core/models/types.js.map +1 -1
  124. package/dist/core/modes/definitions.d.ts +4 -2
  125. package/dist/core/modes/definitions.js +77 -9
  126. package/dist/core/modes/definitions.js.map +1 -1
  127. package/dist/core/modes/index.d.ts +1 -1
  128. package/dist/core/modes/index.js +1 -1
  129. package/dist/core/modes/index.js.map +1 -1
  130. package/dist/core/modes/registry.js +4 -9
  131. package/dist/core/modes/registry.js.map +1 -1
  132. package/dist/core/modes/schema.d.ts +1 -1
  133. package/dist/core/modes/schema.js +1 -1
  134. package/dist/core/modes/schema.js.map +1 -1
  135. package/dist/core/prompts/agents/{review.md → code-review.md} +2 -2
  136. package/dist/core/prompts/agents/design-review.md +35 -0
  137. package/dist/core/prompts/agents/{test-investigator.md → quality-analyst.md} +2 -2
  138. package/dist/core/prompts/modes/agent.md +2 -0
  139. package/dist/core/prompts/modes/ask.md +2 -2
  140. package/dist/core/prompts/modes/design.md +37 -0
  141. package/dist/core/prompts/modes/plan.md +5 -5
  142. package/dist/core/prompts/{runtime.js → runtime/agents.js} +2 -2
  143. package/dist/core/prompts/runtime/agents.js.map +1 -0
  144. package/dist/core/prompts/runtime/design.d.ts +11 -0
  145. package/dist/core/prompts/runtime/design.js +78 -0
  146. package/dist/core/prompts/runtime/design.js.map +1 -0
  147. package/dist/core/prompts/{session-mode-appendix.js → session-mode.js} +1 -1
  148. package/dist/core/prompts/session-mode.js.map +1 -0
  149. package/dist/core/prompts/static/ask-user.md +3 -2
  150. package/dist/core/prompts/static/fetch.md +2 -1
  151. package/dist/core/prompts/static/filesystem.md +2 -1
  152. package/dist/core/prompts/static/shell.md +21 -1
  153. package/dist/core/prompts/static/subagents.md +2 -1
  154. package/dist/core/prompts/static/switch-mode.md +10 -0
  155. package/dist/core/prompts/system.d.ts +1 -0
  156. package/dist/core/prompts/system.js +11 -3
  157. package/dist/core/prompts/system.js.map +1 -1
  158. package/dist/core/shell/index.d.ts +7 -0
  159. package/dist/core/shell/index.js +6 -0
  160. package/dist/core/shell/index.js.map +1 -0
  161. package/dist/core/shell/manager.d.ts +23 -0
  162. package/dist/core/shell/manager.js +604 -0
  163. package/dist/core/shell/manager.js.map +1 -0
  164. package/dist/core/shell/output-buffer.d.ts +30 -0
  165. package/dist/core/shell/output-buffer.js +116 -0
  166. package/dist/core/shell/output-buffer.js.map +1 -0
  167. package/dist/core/shell/registry.d.ts +5 -0
  168. package/dist/core/shell/registry.js +24 -0
  169. package/dist/core/shell/registry.js.map +1 -0
  170. package/dist/core/{tools/shell.d.ts → shell/terminal-backend.d.ts} +20 -18
  171. package/dist/core/shell/terminal-backend.js +18 -0
  172. package/dist/core/shell/terminal-backend.js.map +1 -0
  173. package/dist/core/shell/tools.d.ts +41 -0
  174. package/dist/core/{tools/shell.js → shell/tools.js} +186 -11
  175. package/dist/core/shell/tools.js.map +1 -0
  176. package/dist/core/shell/types.d.ts +95 -0
  177. package/dist/core/shell/types.js +2 -0
  178. package/dist/core/shell/types.js.map +1 -0
  179. package/dist/core/skills/built-in/hooman-config/SKILL.md +30 -35
  180. package/dist/core/skills/built-in/hooman-config/search.md +5 -3
  181. package/dist/core/skills/built-in/hooman-design/SKILL.md +97 -0
  182. package/dist/core/skills/built-in/hooman-design/assets/article-shell.html +87 -0
  183. package/dist/core/skills/built-in/hooman-design/assets/auth-shell.html +143 -0
  184. package/dist/core/skills/built-in/hooman-design/assets/business-card-shell.html +112 -0
  185. package/dist/core/skills/built-in/hooman-design/assets/contact-shell.html +181 -0
  186. package/dist/core/skills/built-in/hooman-design/assets/dashboard-shell.html +90 -0
  187. package/dist/core/skills/built-in/hooman-design/assets/data-table-shell.html +114 -0
  188. package/dist/core/skills/built-in/hooman-design/assets/deck-shell.html +187 -0
  189. package/dist/core/skills/built-in/hooman-design/assets/dialog-shell.html +98 -0
  190. package/dist/core/skills/built-in/hooman-design/assets/email-shell.html +101 -0
  191. package/dist/core/skills/built-in/hooman-design/assets/empty-state-shell.html +92 -0
  192. package/dist/core/skills/built-in/hooman-design/assets/flyer-shell.html +168 -0
  193. package/dist/core/skills/built-in/hooman-design/assets/invite-shell.html +167 -0
  194. package/dist/core/skills/built-in/hooman-design/assets/landing-shell.html +184 -0
  195. package/dist/core/skills/built-in/hooman-design/assets/mobile-frame-shell.html +109 -0
  196. package/dist/core/skills/built-in/hooman-design/assets/newsletter-shell.html +141 -0
  197. package/dist/core/skills/built-in/hooman-design/assets/onboarding-shell.html +131 -0
  198. package/dist/core/skills/built-in/hooman-design/assets/pricing-shell.html +160 -0
  199. package/dist/core/skills/built-in/hooman-design/assets/prototype-shell.html +83 -0
  200. package/dist/core/skills/built-in/hooman-design/assets/resume-shell.html +228 -0
  201. package/dist/core/skills/built-in/hooman-design/assets/settings-shell.html +196 -0
  202. package/dist/core/skills/built-in/hooman-design/assets/tokens/botanical-calm.css +34 -0
  203. package/dist/core/skills/built-in/hooman-design/assets/tokens/copper-ledger.css +34 -0
  204. package/dist/core/skills/built-in/hooman-design/assets/tokens/editorial-ink.css +34 -0
  205. package/dist/core/skills/built-in/hooman-design/assets/tokens/fintech-clear.css +34 -0
  206. package/dist/core/skills/built-in/hooman-design/assets/tokens/harbor-navy.css +35 -0
  207. package/dist/core/skills/built-in/hooman-design/assets/tokens/midnight-editorial.css +34 -0
  208. package/dist/core/skills/built-in/hooman-design/assets/tokens/night-console.css +34 -0
  209. package/dist/core/skills/built-in/hooman-design/assets/tokens/paper-mono.css +35 -0
  210. package/dist/core/skills/built-in/hooman-design/assets/tokens/signal-mono.css +34 -0
  211. package/dist/core/skills/built-in/hooman-design/assets/tokens/soft-product.css +34 -0
  212. package/dist/core/skills/built-in/hooman-design/assets/tokens/swiss-grid.css +34 -0
  213. package/dist/core/skills/built-in/hooman-design/assets/tokens/warm-atelier.css +34 -0
  214. package/dist/core/skills/built-in/hooman-design/assets/waitlist-shell.html +139 -0
  215. package/dist/core/skills/built-in/hooman-design/craft/accessibility-baseline.md +32 -0
  216. package/dist/core/skills/built-in/hooman-design/craft/anti-ai-slop.md +27 -0
  217. package/dist/core/skills/built-in/hooman-design/craft/color-surfaces.md +45 -0
  218. package/dist/core/skills/built-in/hooman-design/craft/data-viz.md +24 -0
  219. package/dist/core/skills/built-in/hooman-design/craft/deck-slides.md +46 -0
  220. package/dist/core/skills/built-in/hooman-design/craft/forms-validation.md +35 -0
  221. package/dist/core/skills/built-in/hooman-design/craft/iconography.md +19 -0
  222. package/dist/core/skills/built-in/hooman-design/craft/layout-overflow.md +31 -0
  223. package/dist/core/skills/built-in/hooman-design/craft/motion.md +41 -0
  224. package/dist/core/skills/built-in/hooman-design/craft/print.md +37 -0
  225. package/dist/core/skills/built-in/hooman-design/craft/responsive.md +30 -0
  226. package/dist/core/skills/built-in/hooman-design/craft/spacing-density.md +46 -0
  227. package/dist/core/skills/built-in/hooman-design/craft/state-coverage.md +21 -0
  228. package/dist/core/skills/built-in/hooman-design/craft/typography.md +73 -0
  229. package/dist/core/skills/built-in/hooman-design/directions.md +115 -0
  230. package/dist/core/skills/built-in/hooman-design/references/artifact-layout.md +15 -0
  231. package/dist/core/skills/built-in/hooman-design/references/export.md +47 -0
  232. package/dist/core/skills/built-in/hooman-design/references/workflow.md +80 -0
  233. package/dist/core/skills/built-in/hooman-mcp/SKILL.md +2 -2
  234. package/dist/core/state/llm-modality.d.ts +13 -0
  235. package/dist/core/state/llm-modality.js +19 -0
  236. package/dist/core/state/llm-modality.js.map +1 -0
  237. package/dist/core/state/plan.d.ts +1 -1
  238. package/dist/core/state/plan.js +1 -1
  239. package/dist/core/state/shell-jobs.d.ts +9 -0
  240. package/dist/core/state/shell-jobs.js +20 -0
  241. package/dist/core/state/shell-jobs.js.map +1 -0
  242. package/dist/core/state/tool-approvals.d.ts +12 -9
  243. package/dist/core/state/tool-approvals.js +94 -52
  244. package/dist/core/state/tool-approvals.js.map +1 -1
  245. package/dist/core/state/turn-boundaries.d.ts +33 -0
  246. package/dist/core/state/turn-boundaries.js +49 -0
  247. package/dist/core/state/turn-boundaries.js.map +1 -0
  248. package/dist/core/subagents/index.d.ts +1 -1
  249. package/dist/core/subagents/index.js +1 -1
  250. package/dist/core/subagents/registry.js +15 -6
  251. package/dist/core/subagents/registry.js.map +1 -1
  252. package/dist/core/subagents/tool.d.ts +8 -2
  253. package/dist/core/subagents/tool.js +93 -44
  254. package/dist/core/subagents/tool.js.map +1 -1
  255. package/dist/core/theme.d.ts +14 -0
  256. package/dist/core/theme.js +14 -0
  257. package/dist/core/theme.js.map +1 -0
  258. package/dist/core/tools/ask-user.d.ts +1 -1
  259. package/dist/core/tools/ask-user.js +1 -1
  260. package/dist/core/tools/export.d.ts +8 -0
  261. package/dist/core/tools/export.js +202 -0
  262. package/dist/core/tools/export.js.map +1 -0
  263. package/dist/core/tools/fetch.d.ts +2 -0
  264. package/dist/core/tools/fetch.js +92 -55
  265. package/dist/core/tools/fetch.js.map +1 -1
  266. package/dist/core/tools/filesystem.d.ts +2 -1
  267. package/dist/core/tools/filesystem.js +38 -4
  268. package/dist/core/tools/filesystem.js.map +1 -1
  269. package/dist/core/tools/index.d.ts +3 -2
  270. package/dist/core/tools/index.js +3 -2
  271. package/dist/core/tools/index.js.map +1 -1
  272. package/dist/core/tools/preview.d.ts +10 -0
  273. package/dist/core/tools/preview.js +147 -0
  274. package/dist/core/tools/preview.js.map +1 -0
  275. package/dist/core/tools/switch-mode.d.ts +6 -0
  276. package/dist/core/tools/switch-mode.js +188 -0
  277. package/dist/core/tools/switch-mode.js.map +1 -0
  278. package/dist/core/tools/web-search.js +176 -0
  279. package/dist/core/tools/web-search.js.map +1 -1
  280. package/dist/core/utils/browser.d.ts +8 -1
  281. package/dist/core/utils/browser.js +17 -1
  282. package/dist/core/utils/browser.js.map +1 -1
  283. package/dist/core/utils/export-design.d.ts +40 -0
  284. package/dist/core/utils/export-design.js +188 -0
  285. package/dist/core/utils/export-design.js.map +1 -0
  286. package/dist/core/utils/export-figma.d.ts +17 -0
  287. package/dist/core/utils/export-figma.js +189 -0
  288. package/dist/core/utils/export-figma.js.map +1 -0
  289. package/dist/core/utils/export-sketch.d.ts +11 -0
  290. package/dist/core/utils/export-sketch.js +456 -0
  291. package/dist/core/utils/export-sketch.js.map +1 -0
  292. package/dist/core/utils/fig-archive.d.ts +47 -0
  293. package/dist/core/utils/fig-archive.js +181 -0
  294. package/dist/core/utils/fig-archive.js.map +1 -0
  295. package/dist/core/utils/metadata.d.ts +30 -0
  296. package/dist/core/utils/metadata.js +122 -0
  297. package/dist/core/utils/metadata.js.map +1 -1
  298. package/dist/core/utils/models-prefetch.d.ts +53 -0
  299. package/dist/core/utils/models-prefetch.js +469 -0
  300. package/dist/core/utils/models-prefetch.js.map +1 -0
  301. package/dist/core/utils/onboarding-config.d.ts +48 -0
  302. package/dist/core/utils/onboarding-config.js +373 -0
  303. package/dist/core/utils/onboarding-config.js.map +1 -0
  304. package/dist/core/utils/paths.d.ts +9 -7
  305. package/dist/core/utils/paths.js +12 -10
  306. package/dist/core/utils/paths.js.map +1 -1
  307. package/dist/core/utils/preview-server.d.ts +20 -0
  308. package/dist/core/utils/preview-server.js +212 -0
  309. package/dist/core/utils/preview-server.js.map +1 -0
  310. package/dist/core/utils/search-probe.d.ts +19 -0
  311. package/dist/core/utils/search-probe.js +165 -0
  312. package/dist/core/utils/search-probe.js.map +1 -0
  313. package/dist/core/utils/seeds/empty-slides.deck +0 -0
  314. package/dist/core/utils/url-safety.d.ts +2 -0
  315. package/dist/core/utils/url-safety.js +47 -0
  316. package/dist/core/utils/url-safety.js.map +1 -0
  317. package/dist/core/utils/zstd.d.ts +6 -0
  318. package/dist/core/utils/zstd.js +39 -0
  319. package/dist/core/utils/zstd.js.map +1 -0
  320. package/dist/exec/approvals.js +5 -5
  321. package/dist/exec/approvals.js.map +1 -1
  322. package/dist/index.d.ts +11 -5
  323. package/dist/index.js +8 -5
  324. package/dist/index.js.map +1 -1
  325. package/dist/onboarding/app.d.ts +5 -0
  326. package/dist/onboarding/app.js +255 -0
  327. package/dist/onboarding/app.js.map +1 -0
  328. package/dist/onboarding/index.d.ts +5 -0
  329. package/dist/onboarding/index.js +27 -0
  330. package/dist/onboarding/index.js.map +1 -0
  331. package/package.json +16 -3
  332. package/dist/core/prompts/runtime.js.map +0 -1
  333. package/dist/core/prompts/session-mode-appendix.js.map +0 -1
  334. package/dist/core/prompts/static/planning.md +0 -3
  335. package/dist/core/tools/plan.d.ts +0 -5
  336. package/dist/core/tools/plan.js +0 -150
  337. package/dist/core/tools/plan.js.map +0 -1
  338. package/dist/core/tools/shell.js.map +0 -1
  339. /package/dist/core/prompts/{runtime.d.ts → runtime/agents.d.ts} +0 -0
  340. /package/dist/core/prompts/{session-mode-appendix.d.ts → session-mode.d.ts} +0 -0
@@ -11,6 +11,10 @@ export interface ChatLine {
11
11
  phase?: "running" | "done";
12
12
  resultContent?: string;
13
13
  fileToolDisplay?: FileToolDisplay;
14
+ /** Background shell job id when this tool line tracks a managed job. */
15
+ shellJobId?: string;
16
+ /** Live terminal scrollback for shell tools. */
17
+ liveOutput?: string;
14
18
  startedAt?: number;
15
19
  finishedAt?: number;
16
20
  estimatedTokens?: number;
@@ -29,5 +33,8 @@ export interface ApprovalRequest {
29
33
  toolName: string;
30
34
  description?: string;
31
35
  inputPreview: string;
36
+ input?: unknown;
32
37
  preview?: string;
38
+ currentMode?: string;
39
+ targetMode?: string;
33
40
  }
package/dist/cli.js CHANGED
@@ -8,9 +8,11 @@ import { chat } from "./chat/index.js";
8
8
  import { ChatApprovalController, createChatApprovalIntervention, } from "./chat/approvals.js";
9
9
  import { ChatQuestionController, createChatAskUserBackend, } from "./chat/questions.js";
10
10
  import { setAskUserBackend } from "./core/tools/ask-user.js";
11
+ import { createOsBrowserPreviewBackend, setBrowserPreviewBackend, } from "./core/utils/browser.js";
11
12
  import { canPromptForQuestion, createExecAskUserBackend, } from "./exec/questions.js";
12
13
  import { ChatTurnSteeringController, createChatTurnSteeringIntervention, } from "./chat/steering.js";
13
14
  import { configure } from "./configure/index.js";
15
+ import { onboard } from "./onboarding/index.js";
14
16
  import { runAcpStdio } from "./acp/index.js";
15
17
  import { main as daemon } from "./daemon/index.js";
16
18
  import { createDaemonApprovalIntervention } from "./daemon/approvals.js";
@@ -22,9 +24,11 @@ import { isYoloEnabled } from "./core/state/yolo.js";
22
24
  import { formatModeNames, getModeIds } from "./core/modes/index.js";
23
25
  import { latestCliSession, listCliSessions, } from "./core/sessions/list-cli-sessions.js";
24
26
  import { createRuntimeConfig, createRuntimeMcpConfig, } from "./core/runtime-config.js";
27
+ import { hasOnboardingConfig } from "./core/utils/onboarding-config.js";
25
28
  import { createModelDownloadLogger, subscribeModelDownloadProgress, } from "./core/utils/download-progress.js";
26
29
  import { patchSdkLogger, quietChatLogs, redirectLogs, } from "./core/utils/logging.js";
27
30
  import { configuredLlmContext, resolveLlmMetadata, } from "./core/utils/metadata.js";
31
+ import { activeProviderName, parseReasoningEffortArg, REASONING_EFFORT_LEVELS, REASONING_EFFORT_OFF, withReasoningEffort, } from "./core/utils/reasoning-effort.js";
28
32
  async function readPackageMeta() {
29
33
  const packageUrl = new URL("../package.json", import.meta.url);
30
34
  const pkg = JSON.parse(await readFile(packageUrl, "utf8"));
@@ -60,17 +64,104 @@ function finalizeExit(code) {
60
64
  function cliSessionIdOption() {
61
65
  return new Option("-s, --session <id>", "Session ID to use.");
62
66
  }
67
+ function cliContinueOption() {
68
+ return new Option("-C, --continue", "Resume the latest session in the current project.");
69
+ }
63
70
  function cliSessionModeOption() {
64
- return new Option("-m, --mode <mode>", `Session mode: ${formatModeNames()}. Agent is the full tool surface; ask is read-oriented; plan is the plan-file workflow.`)
71
+ return new Option("-m, --mode <mode>", `Session mode: ${formatModeNames()}. Agent is the full tool surface; ask is read-oriented; plan is the plan-file workflow; design is HTML artifacts under .hooman/design.`)
65
72
  .choices(getModeIds())
66
73
  .default("agent");
67
74
  }
75
+ function cliEffortOption() {
76
+ return new Option("--effort <level>", "Reasoning effort for the active model provider.").choices([...REASONING_EFFORT_LEVELS, REASONING_EFFORT_OFF]);
77
+ }
78
+ function cliModelOption() {
79
+ return new Option("--model <name>", "Named LLM from config.json to use for this run.");
80
+ }
68
81
  function cliYoloOption(kind) {
69
82
  const description = kind === "daemon"
70
83
  ? "Allow all tools without remote approval or prompts."
71
84
  : "Allow all tools without prompting for approval.";
72
85
  return new Option("--yolo", description);
73
86
  }
87
+ /** Attach the shared agent-bootstrap flags used by exec, chat, and daemon. */
88
+ function addCliAgentBootstrapOptions(command, kind) {
89
+ return command
90
+ .addOption(cliSessionIdOption())
91
+ .addOption(cliContinueOption())
92
+ .addOption(cliSessionModeOption())
93
+ .addOption(cliEffortOption())
94
+ .addOption(cliModelOption())
95
+ .addOption(cliYoloOption(kind));
96
+ }
97
+ async function resolveCliSessionId(options) {
98
+ const pinned = options.session?.trim();
99
+ if (pinned) {
100
+ return pinned;
101
+ }
102
+ if (options.continue) {
103
+ return (await latestCliSession())?.sessionId;
104
+ }
105
+ return undefined;
106
+ }
107
+ /**
108
+ * Apply `--model` / `--effort` to a session config before bootstrap. Model is
109
+ * applied first so effort targets the selected provider. Matches chat `/model`
110
+ * and `/effort` persistence rules (base-config entries only).
111
+ */
112
+ function applyCliModelAndEffort(config, options) {
113
+ const modelName = options.model?.trim();
114
+ if (modelName) {
115
+ const match = config.llms.find((entry) => entry.name === modelName);
116
+ if (!match) {
117
+ const available = config.llms.map((entry) => entry.name).join(", ");
118
+ throw new Error(`Unknown model "${modelName}". Configured models: ${available || "(none)"}.`);
119
+ }
120
+ config.update({
121
+ llms: config.llms.map((entry) => ({
122
+ ...entry,
123
+ default: entry.name === match.name,
124
+ })),
125
+ });
126
+ config.persistToDisk((base) => base.llms.some((entry) => entry.name === match.name)
127
+ ? {
128
+ llms: base.llms.map((entry) => ({
129
+ ...entry,
130
+ default: entry.name === match.name,
131
+ })),
132
+ }
133
+ : null);
134
+ }
135
+ if (options.effort === undefined) {
136
+ return;
137
+ }
138
+ const parsed = parseReasoningEffortArg(options.effort);
139
+ if (!parsed) {
140
+ throw new Error(`Unknown reasoning effort "${options.effort}". Use off, minimal, low, medium, or high.`);
141
+ }
142
+ const providerName = activeProviderName(config);
143
+ if (!providerName) {
144
+ throw new Error("No active model provider to set reasoning effort on.");
145
+ }
146
+ config.update({
147
+ providers: config.providers.map((entry) => entry.name === providerName
148
+ ? {
149
+ ...entry,
150
+ options: withReasoningEffort(entry.options, parsed.value),
151
+ }
152
+ : entry),
153
+ });
154
+ config.persistToDisk((base) => base.providers.some((entry) => entry.name === providerName)
155
+ ? {
156
+ providers: base.providers.map((entry) => entry.name === providerName
157
+ ? {
158
+ ...entry,
159
+ options: withReasoningEffort(entry.options, parsed.value),
160
+ }
161
+ : entry),
162
+ }
163
+ : null);
164
+ }
74
165
  const REDACTED = "[REDACTED]";
75
166
  const SENSITIVE_KEY_PATTERN = /(api[_-]?key|token|secret|password|authorization|cookie|accesskeyid|secretaccesskey|sessiontoken|headers|env|clientid|clientsecret)/i;
76
167
  function redactSensitiveValue(value) {
@@ -143,28 +234,28 @@ const program = new Command()
143
234
  .description(packageMeta.description)
144
235
  .version(packageMeta.version, "-v, --version")
145
236
  .showHelpAfterError(true);
146
- program
237
+ const execCommand = program
147
238
  .command("exec")
148
239
  .description("Bootstrap an agent and run a single prompt.")
149
- .argument("<prompt>", "Prompt to run once.")
150
- .addOption(cliSessionIdOption())
151
- .addOption(cliSessionModeOption())
152
- .addOption(cliYoloOption("interactive"))
153
- .action(async (prompt, options) => {
240
+ .argument("<prompt>", "Prompt to run once.");
241
+ addCliAgentBootstrapOptions(execCommand, "interactive").action(async (prompt, options) => {
154
242
  // Keep third-party `console.*` chatter (e.g. the Hugging Face Hub's
155
243
  // "Downloading …" lines) off stdout, which carries the agent output.
156
244
  redirectLogs();
157
- const sessionId = options.session?.trim() || crypto.randomUUID();
245
+ const config = createSessionConfig();
246
+ applyCliModelAndEffort(config, options);
247
+ const sessionId = (await resolveCliSessionId(options)) || crypto.randomUUID();
158
248
  const { agent, mcp: { manager }, } = await bootstrap("default", {
159
249
  userId: "default",
160
250
  sessionId,
161
251
  yolo: Boolean(options.yolo),
162
252
  mode: options.mode,
163
253
  interventions: [createToolApprovalIntervention()],
164
- }, true);
254
+ }, true, config);
165
255
  if (canPromptForQuestion()) {
166
256
  setAskUserBackend(agent, createExecAskUserBackend());
167
257
  }
258
+ setBrowserPreviewBackend(agent, createOsBrowserPreviewBackend());
168
259
  // Model weights download progress (llama.cpp GGUF fetch on first use):
169
260
  // live single-line updates on a TTY, coarse log lines when piped.
170
261
  const stopDownloadProgress = subscribeModelDownloadProgress(createModelDownloadLogger({ stream: process.stderr }));
@@ -184,22 +275,17 @@ program
184
275
  }
185
276
  finalizeExit(0);
186
277
  });
187
- program
278
+ const chatCommand = program
188
279
  .command("chat")
189
280
  .description("Start an interactive, stateful CLI chat session.")
190
- .argument("[prompt]", "Optional initial prompt to run after startup.")
191
- .addOption(cliSessionIdOption())
192
- .addOption(cliSessionModeOption())
193
- .addOption(cliYoloOption("interactive"))
194
- .option("-C, --continue", "Resume the latest session in the current project.")
195
- .action(async (prompt, options) => {
281
+ .argument("[prompt]", "Optional initial prompt to run after startup.");
282
+ addCliAgentBootstrapOptions(chatCommand, "interactive").action(async (prompt, options) => {
196
283
  // Ink owns stdout: drop console/SDK chatter instead of redirecting it —
197
284
  // raw stderr writes would garble the live frame (see quietChatLogs).
198
285
  quietChatLogs();
199
286
  const config = createSessionConfig();
200
- const pinnedSession = options.session?.trim();
201
- const continuedSession = options.continue ? await latestCliSession() : null;
202
- let currentSessionId = pinnedSession || continuedSession?.sessionId || crypto.randomUUID();
287
+ applyCliModelAndEffort(config, options);
288
+ let currentSessionId = (await resolveCliSessionId(options)) || crypto.randomUUID();
203
289
  let currentPrompt = prompt?.trim() || undefined;
204
290
  let currentYolo = Boolean(options.yolo);
205
291
  let currentMode = options.mode;
@@ -218,6 +304,7 @@ program
218
304
  ],
219
305
  }, false, config);
220
306
  setAskUserBackend(agent, createChatAskUserBackend(questions));
307
+ setBrowserPreviewBackend(agent, createOsBrowserPreviewBackend());
221
308
  try {
222
309
  const result = await chat({
223
310
  agent,
@@ -286,33 +373,48 @@ sessions
286
373
  });
287
374
  program
288
375
  .command("config")
289
- .description("Dump merged runtime config.json for this working directory with secrets redacted.")
290
- .action(() => {
291
- const appConfig = createRuntimeConfig();
292
- const payload = {
293
- name: appConfig.name,
294
- providers: appConfig.providers,
295
- llms: appConfig.llms,
296
- search: appConfig.search,
297
- prompts: appConfig.prompts,
298
- tools: appConfig.tools,
299
- compaction: appConfig.compaction,
300
- };
301
- const redacted = redactCredentials(payload);
302
- console.log(JSON.stringify(redacted, null, 2));
376
+ .description("Open the interactive configuration UI, or dump redacted runtime config with --debug.")
377
+ .option("-d, --debug", "Dump merged runtime config.json for this working directory with secrets redacted.")
378
+ .action(async (options) => {
379
+ if (options.debug) {
380
+ const appConfig = createRuntimeConfig();
381
+ const payload = {
382
+ name: appConfig.name,
383
+ providers: appConfig.providers,
384
+ llms: appConfig.llms,
385
+ search: appConfig.search,
386
+ prompts: appConfig.prompts,
387
+ tools: appConfig.tools,
388
+ compaction: appConfig.compaction,
389
+ };
390
+ const redacted = redactCredentials(payload);
391
+ console.log(JSON.stringify(redacted, null, 2));
392
+ return;
393
+ }
394
+ quietChatLogs();
395
+ await configure();
396
+ finalizeExit(0);
303
397
  });
304
398
  program
399
+ .command("setup")
400
+ .description("Run first-run setup to create ~/.hooman/config.json (inference + search).")
401
+ .action(async () => {
402
+ quietChatLogs();
403
+ const ok = await onboard();
404
+ finalizeExit(ok ? 0 : 1);
405
+ });
406
+ const daemonCommand = program
305
407
  .command("daemon")
306
- .description("Run a background daemon that processes MCP channel notifications as prompts.")
307
- .addOption(cliSessionIdOption())
308
- .addOption(cliSessionModeOption())
309
- .addOption(cliYoloOption("daemon"))
408
+ .description("Run a background daemon that processes MCP channel notifications as prompts.");
409
+ addCliAgentBootstrapOptions(daemonCommand, "daemon")
310
410
  .option("--debug", "Log each MCP channel notification payload to the console.")
311
411
  .action(async (options) => {
312
412
  // Same as `exec`: console chatter joins the daemon's stderr diagnostics.
313
413
  redirectLogs();
314
- const session = options.session?.trim();
315
- const { agent, config, mcp: { manager }, } = await bootstrap("daemon", {
414
+ const config = createSessionConfig();
415
+ applyCliModelAndEffort(config, options);
416
+ const session = await resolveCliSessionId(options);
417
+ const { agent, mcp: { manager }, } = await bootstrap("daemon", {
316
418
  userId: session,
317
419
  sessionId: session,
318
420
  yolo: Boolean(options.yolo),
@@ -320,7 +422,7 @@ program
320
422
  createInterventions: ({ manager }) => [
321
423
  createDaemonApprovalIntervention(manager),
322
424
  ],
323
- }, true);
425
+ }, true, config);
324
426
  setAskUserBackend(agent, createDaemonAskUserBackend(manager, agent));
325
427
  try {
326
428
  const metadata = await resolveLlmMetadata(config.llm.metadata, config.llm.llmOptions.model, config.llm.provider, configuredLlmContext(config.llm)).catch(() => null);
@@ -381,7 +483,7 @@ mcp
381
483
  }
382
484
  });
383
485
  mcp
384
- .command("auth-status")
486
+ .command("status")
385
487
  .description("Show OAuth status for configured MCP servers.")
386
488
  .action(async () => {
387
489
  const manager = createMcpManager(createRuntimeMcpConfig());
@@ -411,8 +513,24 @@ program
411
513
  });
412
514
  // Default Strands SDK logger for every command (warn+ on stderr); the
413
515
  // commands above additionally re-route or silence global `console` output
414
- // per surface — utility commands (sessions/config/mcp) keep stdout intact.
516
+ // per surface — utility commands (sessions/config --debug/mcp) keep stdout intact.
415
517
  patchSdkLogger();
416
- const argv = process.argv.slice(2).length === 0 ? [...process.argv, "chat"] : process.argv;
417
- await program.parseAsync(argv);
518
+ // No args: first-run onboarding when config.json is missing, otherwise chat.
519
+ if (process.argv.slice(2).length === 0) {
520
+ if (!hasOnboardingConfig()) {
521
+ quietChatLogs();
522
+ if (!(await onboard())) {
523
+ finalizeExit(1);
524
+ }
525
+ else {
526
+ await program.parseAsync([...process.argv, "chat"]);
527
+ }
528
+ }
529
+ else {
530
+ await program.parseAsync([...process.argv, "chat"]);
531
+ }
532
+ }
533
+ else {
534
+ await program.parseAsync(process.argv);
535
+ }
418
536
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ const PROMPT_LABELS = {
20
20
  };
21
21
  const SEARCH_PROVIDER_LABELS = {
22
22
  brave: "Brave",
23
+ duckduckgo: "DuckDuckGo",
23
24
  exa: "Exa",
24
25
  firecrawl: "Firecrawl",
25
26
  litellm: "LiteLLM",
@@ -151,7 +152,7 @@ const DEFAULT_MODEL_BY_PROVIDER = {
151
152
  [LlmProvider.Anthropic]: "claude-sonnet-4-6",
152
153
  [LlmProvider.Azure]: "gpt-5.4-mini",
153
154
  [LlmProvider.Bedrock]: "anthropic.claude-sonnet-4-6",
154
- [LlmProvider.Google]: "gemini-2.5-flash",
155
+ [LlmProvider.Google]: "gemini-3.5-flash",
155
156
  [LlmProvider.Groq]: "openai/gpt-oss-20b",
156
157
  [LlmProvider.LlamaCpp]: "unsloth/gemma-4-E2B-it-GGUF:Q4_K_M",
157
158
  [LlmProvider.Minimax]: "MiniMax-M3",
@@ -371,7 +372,7 @@ const PROVIDER_FIELD_DEFINITIONS = {
371
372
  label: "Reasoning effort",
372
373
  kind: "reasoningEffort",
373
374
  placeholder: "medium",
374
- note: 'Maps to Groq reasoning_effort ("minimal" -> "low"). Allowed: "minimal", "low", "medium", "high", or blank. Only reasoning models honor it.',
375
+ note: 'Qwen on Groq: any level "default". GPT-OSS: minimal/low "low", medium/high as-is. Blank leaves the model default.',
375
376
  },
376
377
  ],
377
378
  [LlmProvider.LlamaCpp]: [
@@ -2700,7 +2701,15 @@ export function ConfigureApp({ config, mcpConfig, mcpManager, skills, onExit, })
2700
2701
  };
2701
2702
  const renderSearchProviderMenu = () => {
2702
2703
  const items = [
2703
- ...["brave", "exa", "firecrawl", "litellm", "serper", "tavily"].map((provider) => ({
2704
+ ...[
2705
+ "brave",
2706
+ "duckduckgo",
2707
+ "exa",
2708
+ "firecrawl",
2709
+ "litellm",
2710
+ "serper",
2711
+ "tavily",
2712
+ ].map((provider) => ({
2704
2713
  label: provider === configData.search.provider
2705
2714
  ? `${SEARCH_PROVIDER_LABELS[provider]} • current`
2706
2715
  : SEARCH_PROVIDER_LABELS[provider],
@@ -2725,9 +2734,12 @@ export function ConfigureApp({ config, mcpConfig, mcpManager, skills, onExit, })
2725
2734
  const renderSearchConfigMenu = () => {
2726
2735
  const activeProvider = configData.search.provider;
2727
2736
  const activeProviderLabel = SEARCH_PROVIDER_LABELS[activeProvider];
2737
+ const isDuckDuckGo = activeProvider === "duckduckgo";
2728
2738
  const isLiteLLM = activeProvider === "litellm";
2729
2739
  const credentialLabel = isLiteLLM ? "Virtual key" : "API key";
2730
- const apiKey = configData.search[activeProvider].apiKey;
2740
+ const apiKey = isDuckDuckGo
2741
+ ? undefined
2742
+ : configData.search[activeProvider].apiKey;
2731
2743
  const redacted = compactJson(maskSensitiveParamsForDisplay({ apiKey: apiKey ?? "" }));
2732
2744
  const litellmItems = isLiteLLM
2733
2745
  ? [
@@ -2783,6 +2795,35 @@ export function ConfigureApp({ config, mcpConfig, mcpManager, skills, onExit, })
2783
2795
  },
2784
2796
  ]
2785
2797
  : [];
2798
+ const credentialItems = isDuckDuckGo
2799
+ ? []
2800
+ : [
2801
+ {
2802
+ label: `${activeProviderLabel} ${credentialLabel.toLowerCase()} • ${truncate(redacted, 44)}`,
2803
+ value: () => promptValue({
2804
+ title: `Update ${activeProviderLabel} ${credentialLabel.toLowerCase()}`,
2805
+ label: credentialLabel,
2806
+ initialValue: apiKey ?? "",
2807
+ onSubmit: async (value) => {
2808
+ const nextApiKey = value.trim();
2809
+ if (!nextApiKey) {
2810
+ throw new Error(`${credentialLabel} is required.`);
2811
+ }
2812
+ if (updateConfig({
2813
+ search: {
2814
+ ...config.search,
2815
+ [activeProvider]: {
2816
+ ...config.search[activeProvider],
2817
+ apiKey: nextApiKey,
2818
+ },
2819
+ },
2820
+ }, `Updated ${activeProviderLabel} ${credentialLabel.toLowerCase()}.`)) {
2821
+ setPrompt(null);
2822
+ }
2823
+ },
2824
+ }),
2825
+ },
2826
+ ];
2786
2827
  const items = [
2787
2828
  {
2788
2829
  label: `Enabled • ${yesNo(configData.search.enabled)}`,
@@ -2802,31 +2843,7 @@ export function ConfigureApp({ config, mcpConfig, mcpManager, skills, onExit, })
2802
2843
  value: () => setScreen({ kind: "config-search-provider" }),
2803
2844
  },
2804
2845
  ...litellmItems,
2805
- {
2806
- label: `${activeProviderLabel} ${credentialLabel.toLowerCase()} • ${truncate(redacted, 44)}`,
2807
- value: () => promptValue({
2808
- title: `Update ${activeProviderLabel} ${credentialLabel.toLowerCase()}`,
2809
- label: credentialLabel,
2810
- initialValue: apiKey ?? "",
2811
- onSubmit: async (value) => {
2812
- const nextApiKey = value.trim();
2813
- if (!nextApiKey) {
2814
- throw new Error(`${credentialLabel} is required.`);
2815
- }
2816
- if (updateConfig({
2817
- search: {
2818
- ...config.search,
2819
- [activeProvider]: {
2820
- ...config.search[activeProvider],
2821
- apiKey: nextApiKey,
2822
- },
2823
- },
2824
- }, `Updated ${activeProviderLabel} ${credentialLabel.toLowerCase()}.`)) {
2825
- setPrompt(null);
2826
- }
2827
- },
2828
- }),
2829
- },
2846
+ ...credentialItems,
2830
2847
  {
2831
2848
  label: "Back",
2832
2849
  value: () => setScreen({ kind: "config-tools" }),