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
package/README.md CHANGED
@@ -2,18 +2,22 @@
2
2
  <img src="docs/src/assets/logo.svg" alt="Hooman logo" width="128" />
3
3
  <h1>Hooman</h1>
4
4
  <p>
5
- Hooman is a hackable, local-first AI agent toolkit for local workflows. It is built with TypeScript, <a href="https://www.npmjs.com/package/@strands-agents/sdk">Strands Agents SDK</a>, and <a href="https://github.com/vadimdemedes/ink">Ink</a>.
5
+ <strong>The full-stack open-source agentic ecosystem.</strong><br />
6
+ Local-first with llama.cpp &amp; MLX. BYOK or your own inference endpoints.<br />
7
+ CLI · VS Code · ACP · daemon channels · Design mode — one MIT-licensed runtime.
6
8
  </p>
7
9
  <p>
8
10
  <a href="https://nodejs.org"><img src="https://img.shields.io/badge/runtime-Node.js-5FA04E?logo=nodedotjs&logoColor=white" alt="Node.js" /></a>
9
11
  <a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/language-TypeScript-3178C6?logo=typescript&logoColor=white" alt="TypeScript" /></a>
10
- <a href="https://github.com/vadimdemedes/ink"><img src="https://img.shields.io/badge/ui-Ink-6f42c1" alt="Ink" /></a>
11
- <a href="https://github.com/vaibhavpandeyvpz/hooman/actions/workflows/publish-npm.yml"><img src="https://img.shields.io/github/actions/workflow/status/vaibhavpandeyvpz/hooman/publish-npm.yml?branch=main&label=build" alt="Build" /></a>
12
+ <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-0091cd" alt="MIT" /></a>
13
+ <a href="https://github.com/vaibhavpandeyvpz/hooman/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/vaibhavpandeyvpz/hooman/ci.yml?branch=main&label=ci" alt="CI" /></a>
14
+ <a href="https://github.com/vaibhavpandeyvpz/hooman/actions/workflows/docs.yml"><img src="https://img.shields.io/github/actions/workflow/status/vaibhavpandeyvpz/hooman/docs.yml?branch=main&label=docs" alt="Docs" /></a>
12
15
  <a href="https://github.com/vaibhavpandeyvpz/hooman/stargazers"><img src="https://img.shields.io/github/stars/vaibhavpandeyvpz/hooman?style=flat" alt="GitHub Repo stars" /></a>
13
16
  <a href="https://github.com/vaibhavpandeyvpz/hooman/commits/main"><img src="https://img.shields.io/github/last-commit/vaibhavpandeyvpz/hooman" alt="GitHub last commit" /></a>
14
17
  </p>
15
18
  <p>
16
- <img src="docs/src/assets/screenshots-hero.png" alt="Hooman screenshot" />
19
+ <img src="docs/public/screenshots/ask-mode.png" alt="Hooman CLI" width="480" />
20
+ <img src="docs/public/screenshots/agent-mode.png" alt="Hooman in VS Code" width="640" />
17
21
  </p>
18
22
  <p>
19
23
  <strong><a href="https://vaibhavpandey.com/hooman/">Website</a></strong> ·
@@ -22,31 +26,51 @@
22
26
  </p>
23
27
  </div>
24
28
 
25
- Hooman reads your codebase, edits files, and runs commands — from a terminal, VS Code, or any [Agent Client Protocol](https://agentclientprotocol.com) client. Bring your own model; your config, keys, and sessions never leave `~/.hooman`.
29
+ Hooman is a mature, local-first AI agent runtime for teams that want the full stack — not a thin chat wrapper. It reads your codebase, edits files, runs commands, automates channels, and ships design artifacts — from a terminal, VS Code, or any [Agent Client Protocol](https://agentclientprotocol.com) client.
26
30
 
27
- - a one-shot `exec` command for single prompts
28
- - a stateful `chat` interface for iterative sessions, with an in-chat `/config` workflow for models, MCP servers, and skills
29
- - a `daemon` command for channel-driven MCP automation
30
- - an `acp` command for running Hooman as an Agent Client Protocol agent over stdio (used by the [VS Code extension](https://vaibhavpandey.com/hooman/guides/vscode/) and editors like Zed)
31
+ **Open source (MIT). No account. No telemetry.** Bring your own keys, point at private inference endpoints, or run fully offline with llama.cpp / MLX. Config, secrets, and sessions stay in `~/.hooman`.
32
+
33
+ | Surface | What it is |
34
+ | --------------- | --------------------------------------------------------------------------------------------------------------------------- |
35
+ | `hooman chat` | Stateful Ink TUI with modes, slash commands, and live cost/context |
36
+ | `hooman exec` | One-shot agent runs for scripts and CI |
37
+ | `hooman daemon` | Channel-driven MCP automation (Slack, Telegram, cron, …) |
38
+ | `hooman acp` | ACP agent over stdio — powers the [VS Code extension](https://vaibhavpandey.com/hooman/guides/vscode/) and editors like Zed |
39
+ | Design mode | HTML → preview → Figma / Sketch / PDF / PPTX |
31
40
 
32
41
  ## Quick start
33
42
 
43
+ macOS & Linux:
44
+
34
45
  ```bash
35
- npx hoomanjs
46
+ curl -fsSL https://raw.githubusercontent.com/vaibhavpandeyvpz/hooman/main/install.sh | bash
47
+ ```
48
+
49
+ Windows (PowerShell):
50
+
51
+ ```powershell
52
+ irm https://raw.githubusercontent.com/vaibhavpandeyvpz/hooman/main/install.ps1 | iex
36
53
  ```
37
54
 
38
- Or install globally (`npm i -g hoomanjs`), or via Bun (`bunx hoomanjs`). Then run `/config` inside the chat to pick a provider and model. Full walkthrough: [Getting Started](https://vaibhavpandey.com/hooman/getting-started/).
55
+ Or skip the installer and run `npx hoomanjs` / `bunx hoomanjs`, or install with `npm i -g hoomanjs` / `bun add -g hoomanjs`. On first run (when `~/.hooman/config.json` is missing), a **setup** wizard asks for an inference provider and search; then chat starts. Re-run anytime with `hooman setup`. Full walkthrough: [Getting Started](https://vaibhavpandey.com/hooman/getting-started/).
56
+
57
+ ## Why Hooman
58
+
59
+ - **Full-stack, not single-surface** — CLI, VS Code, ACP, daemon channels, and Design mode share one runtime and one local config.
60
+ - **Local-first by default** — first-run setup offers llama.cpp (GGUF) and Apple Silicon MLX; weights download on demand; no API key required to start.
61
+ - **Enterprise-friendly** — MIT license, BYOK, OpenAI-compatible custom base URLs, no telemetry, data residency under your control.
62
+ - **Most-featured agent toolkit** — Agent / Plan / Ask / Design modes, MCP + OAuth, skills, subagents, approvals, background shell jobs, context & cost tracking.
39
63
 
40
64
  ## Features
41
65
 
42
- - Multiple LLM providers: `anthropic`, `azure`, `bedrock`, `google`, `groq`, `llama-cpp` (local GGUF, the default), `minimax`, `mlx` (local, Apple Silicon), `moonshot`, `ollama`, `openai`, `openrouter`, `xai` — see [Models](https://vaibhavpandey.com/hooman/guides/configuration/models/)
43
- - MCP server support (`stdio`, `streamable-http`, `sse`) with OAuth (DCR + CIMD), lazy MCP tool discovery via `search_tools` / `activate_tools`, and channel-driven automation via `hooman daemon` — see [MCP](https://vaibhavpandey.com/hooman/guides/mcp/)
44
- - Runtime [Skills](https://vaibhavpandey.com/hooman/guides/skills/): bundled built-ins plus a local `~/.hooman/skills` catalog
45
- - Built-in read-only subagents, a ripgrep-backed `grep` tool, and an `ask_user` tool for mid-task questions — see [Tools](https://vaibhavpandey.com/hooman/guides/tools/)
46
- - Context-window utilization and session-cost tracking backed by [models.dev](https://models.dev), shown live in every surface
47
- - Interactive terminal UI for chat and configuration, plus a native [VS Code chat panel](https://vaibhavpandey.com/hooman/guides/vscode/)
66
+ - **Providers:** `anthropic`, `azure`, `bedrock`, `google`, `groq`, `llama-cpp`, `minimax`, `mlx`, `moonshot`, `ollama`, `openai`, `openrouter`, `xai` — see [Models](https://vaibhavpandey.com/hooman/guides/configuration/models/)
67
+ - **Modes:** `agent` / `plan` / `ask` / `design` plus a separate Yolo auto-approve toggle — see [Modes](https://vaibhavpandey.com/hooman/guides/modes/) and [Design](https://vaibhavpandey.com/hooman/guides/modes/design/)
68
+ - **MCP:** `stdio`, `streamable-http`, `sse` with OAuth (DCR + CIMD), lazy tool discovery, optional Playwright browser MCP, and `hooman daemon` channels — see [MCP](https://vaibhavpandey.com/hooman/guides/mcp/)
69
+ - **Skills:** bundled built-ins (including `hooman-design`), `~/.hooman/skills`, and project-local `.hooman/skills` — see [Skills](https://vaibhavpandey.com/hooman/guides/skills/)
70
+ - **Tools:** filesystem (respects `.gitignore`), ripgrep `grep`, background shell (`run_in_background` / `shell_output` / `shell_stop`), `ask_user`, and read-only `launch_subagent` kinds see [Tools](https://vaibhavpandey.com/hooman/guides/tools/)
71
+ - **VS Code:** native chat panel with Mermaid, plan checklists, Changes keep/undo, fork/copy, turn revert, and background-terminals strip — see [VS Code](https://vaibhavpandey.com/hooman/guides/vscode/)
48
72
 
49
- See the [full documentation](https://vaibhavpandey.com/hooman/) for CLI commands, configuration layout, provider setup, and more.
73
+ See the [full documentation](https://vaibhavpandey.com/hooman/) for CLI commands, configuration, provider setup, and more.
50
74
 
51
75
  ## Related
52
76
 
@@ -66,3 +90,5 @@ After making any code change, run both `npm run typecheck` and `npm run build`.
66
90
  ## License
67
91
 
68
92
  MIT. See [`LICENSE`](LICENSE).
93
+
94
+ Built by [Vaibhav Pandey](https://vaibhavpandey.com/) · [GitHub](https://github.com/vaibhavpandeyvpz) · [LinkedIn](https://www.linkedin.com/in/vaibhavpandeyvpz/)
@@ -4,6 +4,30 @@ type AgentIdentity = {
4
4
  name: string;
5
5
  version: string;
6
6
  };
7
+ /**
8
+ * Params/response for the custom `_hoomanjs/rewind_session` method (turn
9
+ * revert). Not part of the ACP spec — registered as a custom request
10
+ * via `AgentApp.onRequest(method: string, parser, handler)`. `messageId` is
11
+ * the agent-generated ACP id (see the MessageId RFD) of the turn's user
12
+ * message, captured by the client from that message's `user_message_chunk`
13
+ * echo — never minted by the client itself.
14
+ */
15
+ export interface RewindSessionRequest {
16
+ sessionId: string;
17
+ messageId: string;
18
+ }
19
+ export interface RewindSessionResponse {
20
+ /** False when `messageId` has no recorded boundary (e.g. session reloaded since that turn ran). */
21
+ reverted: boolean;
22
+ }
23
+ /** Params/response for the custom `_hoomanjs/stop_shell_job` method. */
24
+ export interface StopShellJobRequest {
25
+ sessionId: string;
26
+ jobId: string;
27
+ }
28
+ export interface StopShellJobResponse {
29
+ stopped: boolean;
30
+ }
7
31
  /**
8
32
  * Hooman's ACP agent, built on the app-style SDK API.
9
33
  *
@@ -21,6 +45,24 @@ export declare class HoomanAcpAgent {
21
45
  deleteSession(params: DeleteSessionRequest): Promise<void>;
22
46
  newSession(params: NewSessionRequest): Promise<NewSessionResponse>;
23
47
  forkSession(params: ForkSessionRequest, _client: AgentContext): Promise<ForkSessionResponse>;
48
+ /**
49
+ * Turn revert (custom `_hoomanjs/rewind_session` method, not part
50
+ * of the ACP spec): splice `agent.messages` back to the message index
51
+ * bookmarked for `messageId` (see {@link recordTurnBoundary}), dropping
52
+ * that turn and every turn after it, then persist the trimmed history.
53
+ *
54
+ * Returns `reverted: false` instead of erroring when `messageId` has no
55
+ * recorded boundary — e.g. the session was reloaded since that turn ran,
56
+ * so its in-memory bookmark (and the client's matching file-edit
57
+ * baselines) no longer exist.
58
+ */
59
+ rewindSession(params: RewindSessionRequest): Promise<RewindSessionResponse>;
60
+ /**
61
+ * Custom `_hoomanjs/stop_shell_job`: stop a background shell job by id.
62
+ * Routes through {@link ShellJobManager.stop}, which kills the host terminal
63
+ * (process group) and emits the completion notification the UI listens for.
64
+ */
65
+ stopShellJob(params: StopShellJobRequest): Promise<StopShellJobResponse>;
24
66
  loadSession(params: LoadSessionRequest, client: AgentContext): Promise<LoadSessionResponse>;
25
67
  /**
26
68
  * Handle `session/resume`: reactivate a persisted session's in-memory state