@hiai-gg/hiai-opencode 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/.env.example +4 -0
  2. package/AGENTS.md +40 -44
  3. package/ARCHITECTURE.md +4 -3
  4. package/LICENSE.md +14 -0
  5. package/README.md +61 -30
  6. package/assets/cli/hiai-opencode.mjs +4 -4
  7. package/config/hiai-opencode.schema.json +11 -13
  8. package/dist/agents/{bob.d.ts → bob/claude.d.ts} +6 -2
  9. package/dist/agents/bob/core.d.ts +6 -0
  10. package/dist/agents/bob/gpt.d.ts +11 -0
  11. package/dist/agents/bob/index.d.ts +3 -0
  12. package/dist/agents/coder/core.d.ts +4 -0
  13. package/dist/agents/coder/gpt.d.ts +1 -4
  14. package/dist/agents/coder/index.d.ts +1 -0
  15. package/dist/agents/manager/agent.d.ts +1 -1
  16. package/dist/agents/manager/default-prompt-sections.d.ts +4 -4
  17. package/dist/agents/manager/guard-integration.d.ts +1 -0
  18. package/dist/agents/prompt-library/index.d.ts +0 -1
  19. package/dist/agents/prompt-library/shared-execution.d.ts +9 -0
  20. package/dist/agents/strategist/behavioral-summary.d.ts +1 -1
  21. package/dist/agents/strategist/identity-constraints.d.ts +1 -1
  22. package/dist/agents/strategist/plan-generation.d.ts +1 -1
  23. package/dist/agents/types.d.ts +2 -1
  24. package/dist/config/defaults.d.ts +1 -0
  25. package/dist/config/platform-schema.d.ts +26 -26
  26. package/dist/config/schema/agent-names.d.ts +6 -6
  27. package/dist/config/schema/agent-overrides.d.ts +0 -128
  28. package/dist/config/schema/hiai-opencode-config.d.ts +0 -128
  29. package/dist/config/types.d.ts +2 -2
  30. package/dist/features/background-agent/error-classifier.d.ts +1 -0
  31. package/dist/features/background-agent/manager-notifier.d.ts +46 -0
  32. package/dist/features/background-agent/manager-types.d.ts +40 -0
  33. package/dist/features/background-agent/manager.d.ts +3 -19
  34. package/dist/features/background-agent/polling-manager.d.ts +51 -0
  35. package/dist/features/boulder-state/constants.d.ts +3 -0
  36. package/dist/features/boulder-state/storage.d.ts +95 -0
  37. package/dist/features/boulder-state/types.d.ts +17 -0
  38. package/dist/features/builtin-commands/templates/doctor.d.ts +1 -1
  39. package/dist/features/builtin-commands/templates/loop.d.ts +2 -0
  40. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
  41. package/dist/features/builtin-skills/skills/interview-me.d.ts +2 -0
  42. package/dist/features/builtin-skills/skills/planning-and-task-breakdown.d.ts +2 -0
  43. package/dist/hooks/manager/resolve-active-boulder-session.d.ts +5 -0
  44. package/dist/hooks/manager/system-reminder-templates.d.ts +2 -2
  45. package/dist/hooks/reasoning-content-cache/hook.d.ts +11 -0
  46. package/dist/hooks/reasoning-content-cache/index.d.ts +1 -0
  47. package/dist/hooks/session-recovery/checkpoint.d.ts +48 -0
  48. package/dist/hooks/session-recovery/enhanced-hook.d.ts +30 -0
  49. package/dist/hooks/session-recovery/state-backup.d.ts +76 -0
  50. package/dist/hooks/shared/compaction-in-progress.d.ts +4 -0
  51. package/dist/hooks/start-work/context-info-builder.d.ts +2 -0
  52. package/dist/hooks/start-work/git-operations.d.ts +47 -0
  53. package/dist/hooks/start-work/worktree-block.d.ts +2 -1
  54. package/dist/hooks/start-work/worktree-detector.d.ts +45 -0
  55. package/dist/hooks/strategist-md-only/agent-resolution.d.ts +1 -1
  56. package/dist/hooks/strategist-md-only/constants.d.ts +6 -0
  57. package/dist/hooks/token-budget.d.ts +30 -0
  58. package/dist/index.js +1275 -1132
  59. package/dist/mcp/rate-limiter.d.ts +68 -0
  60. package/dist/plugin/chat-message.d.ts +8 -0
  61. package/dist/plugin/command-execute-before.d.ts +1 -1
  62. package/dist/plugin/event-handlers/message-updated.d.ts +2 -0
  63. package/dist/plugin/event-handlers/session-error.d.ts +2 -0
  64. package/dist/plugin/event-handlers/session-status.d.ts +2 -0
  65. package/dist/plugin/event-handlers/types.d.ts +62 -0
  66. package/dist/plugin/event-handlers/utils.d.ts +11 -0
  67. package/dist/plugin/event.d.ts +1 -1
  68. package/dist/shared/data-path.d.ts +1 -1
  69. package/dist/shared/errors.d.ts +70 -0
  70. package/dist/shared/extract-session-id.d.ts +8 -0
  71. package/dist/shared/git-worktree/get-git-state-summary.d.ts +14 -0
  72. package/dist/shared/index.d.ts +67 -68
  73. package/dist/shared/internal-initiator-marker.d.ts +1 -1
  74. package/dist/shared/logger.d.ts +5 -1
  75. package/dist/shared/reasoning-content-cache.d.ts +68 -0
  76. package/dist/shared/safe-create-hook.d.ts +4 -4
  77. package/dist/tools/call-hiai-agent/constants.d.ts +2 -2
  78. package/dist/tools/delegate-task/sub-agent.d.ts +1 -1
  79. package/dist/tools/look-at/constants.d.ts +1 -1
  80. package/docs/architecture/bob-manager-architecture.md +244 -0
  81. package/docs/hiai-opencode/adr/ADR-001-agent-identity-section-injection.md +66 -0
  82. package/docs/hiai-opencode/adr/ADR-002-anti-loop-guard-priority.md +63 -0
  83. package/docs/hiai-opencode/adr/ADR-003-compaction-mechanism.md +71 -0
  84. package/docs/hiai-opencode/adr/ADR-004-session-recovery.md +76 -0
  85. package/docs/hiai-opencode/api.md +305 -0
  86. package/docs/hiai-opencode/hooks-architecture.md +225 -0
  87. package/docs/hiai-opencode/migration.md +209 -0
  88. package/docs/quickstart.md +1 -1
  89. package/docs/skill-discovery.md +288 -0
  90. package/package.json +2 -2
  91. package/skills/agent-browser/SKILL.md +193 -0
  92. package/skills/apple-hig/SKILL.md +43 -0
  93. package/skills/article-magazine/SKILL.md +46 -0
  94. package/skills/article-magazine/example.html +81 -0
  95. package/skills/article-magazine/example.md +38 -0
  96. package/skills/canvas-design/SKILL.md +45 -0
  97. package/skills/design-templates/audio-jingle/SKILL.md +132 -0
  98. package/skills/design-templates/audio-jingle/example.html +128 -0
  99. package/skills/design-templates/blog-post/SKILL.md +80 -0
  100. package/skills/design-templates/blog-post/example.html +80 -0
  101. package/skills/design-templates/clinical-case-report/SKILL.md +209 -0
  102. package/skills/design-templates/clinical-case-report/example.html +698 -0
  103. package/skills/design-templates/clinical-case-report/examples/example-stemi.html +698 -0
  104. package/skills/design-templates/clinical-case-report/references/case-formats.md +94 -0
  105. package/skills/design-templates/clinical-case-report/references/checklist.md +41 -0
  106. package/skills/design-templates/critique/SKILL.md +258 -0
  107. package/skills/design-templates/critique/example.html +671 -0
  108. package/skills/design-templates/dashboard/SKILL.md +76 -0
  109. package/skills/design-templates/dashboard/example.html +118 -0
  110. package/skills/design-templates/dating-web/SKILL.md +92 -0
  111. package/skills/design-templates/dating-web/example.html +265 -0
  112. package/skills/design-templates/dcf-valuation/SKILL.md +140 -0
  113. package/skills/design-templates/dcf-valuation/references/sector-wacc.md +42 -0
  114. package/skills/design-templates/digital-eguide/SKILL.md +94 -0
  115. package/skills/design-templates/digital-eguide/example.html +204 -0
  116. package/skills/design-templates/docs-page/SKILL.md +80 -0
  117. package/skills/design-templates/docs-page/example.html +122 -0
  118. package/skills/design-templates/email-marketing/SKILL.md +84 -0
  119. package/skills/design-templates/email-marketing/example.html +159 -0
  120. package/skills/design-templates/eng-runbook/SKILL.md +51 -0
  121. package/skills/design-templates/eng-runbook/example.html +250 -0
  122. package/skills/design-templates/finance-report/SKILL.md +61 -0
  123. package/skills/design-templates/finance-report/example.html +242 -0
  124. package/skills/design-templates/flowai-live-dashboard-template/SKILL.md +87 -0
  125. package/skills/design-templates/flowai-live-dashboard-template/assets/template.html +387 -0
  126. package/skills/design-templates/flowai-live-dashboard-template/example.html +13 -0
  127. package/skills/design-templates/flowai-live-dashboard-template/references/checklist.md +35 -0
  128. package/skills/design-templates/gamified-app/SKILL.md +108 -0
  129. package/skills/design-templates/gamified-app/example.html +292 -0
  130. package/skills/design-templates/github-dashboard/SKILL.md +130 -0
  131. package/skills/design-templates/github-dashboard/example.html +473 -0
  132. package/skills/design-templates/github-dashboard/references/README.md +10 -0
  133. package/skills/design-templates/github-dashboard/references/artifact-example.json +15 -0
  134. package/skills/design-templates/github-dashboard/references/example-data.json +138 -0
  135. package/skills/design-templates/github-dashboard/references/provenance-example.json +92 -0
  136. package/skills/design-templates/github-dashboard/references/template.html +473 -0
  137. package/skills/design-templates/guizang-ppt/LICENSE +21 -0
  138. package/skills/design-templates/guizang-ppt/README.en.md +119 -0
  139. package/skills/design-templates/guizang-ppt/README.md +120 -0
  140. package/skills/design-templates/guizang-ppt/README.pt-BR.md +121 -0
  141. package/skills/design-templates/guizang-ppt/SKILL.md +313 -0
  142. package/skills/design-templates/guizang-ppt/assets/example-slides.html +318 -0
  143. package/skills/design-templates/guizang-ppt/assets/template.html +647 -0
  144. package/skills/design-templates/guizang-ppt/references/checklist.md +265 -0
  145. package/skills/design-templates/guizang-ppt/references/components.md +363 -0
  146. package/skills/design-templates/guizang-ppt/references/layouts.md +630 -0
  147. package/skills/design-templates/guizang-ppt/references/styles.md +195 -0
  148. package/skills/design-templates/guizang-ppt/references/themes.md +122 -0
  149. package/skills/design-templates/hr-onboarding/SKILL.md +52 -0
  150. package/skills/design-templates/hr-onboarding/example.html +219 -0
  151. package/skills/design-templates/html-ppt/.clawscan-allow +12 -0
  152. package/skills/design-templates/html-ppt/LICENSE +21 -0
  153. package/skills/design-templates/html-ppt/README.md +234 -0
  154. package/skills/design-templates/html-ppt/README.pt-BR.md +239 -0
  155. package/skills/design-templates/html-ppt/README.zh-CN.md +238 -0
  156. package/skills/design-templates/html-ppt/SKILL.md +250 -0
  157. package/skills/design-templates/html-ppt/assets/animations/animations.css +138 -0
  158. package/skills/design-templates/html-ppt/assets/animations/fx/_util.js +63 -0
  159. package/skills/design-templates/html-ppt/assets/animations/fx/chain-react.js +41 -0
  160. package/skills/design-templates/html-ppt/assets/animations/fx/confetti-cannon.js +49 -0
  161. package/skills/design-templates/html-ppt/assets/animations/fx/constellation.js +44 -0
  162. package/skills/design-templates/html-ppt/assets/animations/fx/counter-explosion.js +58 -0
  163. package/skills/design-templates/html-ppt/assets/animations/fx/data-stream.js +45 -0
  164. package/skills/design-templates/html-ppt/assets/animations/fx/firework.js +51 -0
  165. package/skills/design-templates/html-ppt/assets/animations/fx/galaxy-swirl.js +33 -0
  166. package/skills/design-templates/html-ppt/assets/animations/fx/gradient-blob.js +39 -0
  167. package/skills/design-templates/html-ppt/assets/animations/fx/knowledge-graph.js +69 -0
  168. package/skills/design-templates/html-ppt/assets/animations/fx/letter-explode.js +50 -0
  169. package/skills/design-templates/html-ppt/assets/animations/fx/magnetic-field.js +40 -0
  170. package/skills/design-templates/html-ppt/assets/animations/fx/matrix-rain.js +33 -0
  171. package/skills/design-templates/html-ppt/assets/animations/fx/neural-net.js +75 -0
  172. package/skills/design-templates/html-ppt/assets/animations/fx/orbit-ring.js +38 -0
  173. package/skills/design-templates/html-ppt/assets/animations/fx/particle-burst.js +42 -0
  174. package/skills/design-templates/html-ppt/assets/animations/fx/shockwave.js +39 -0
  175. package/skills/design-templates/html-ppt/assets/animations/fx/sparkle-trail.js +62 -0
  176. package/skills/design-templates/html-ppt/assets/animations/fx/starfield.js +30 -0
  177. package/skills/design-templates/html-ppt/assets/animations/fx/typewriter-multi.js +51 -0
  178. package/skills/design-templates/html-ppt/assets/animations/fx/word-cascade.js +47 -0
  179. package/skills/design-templates/html-ppt/assets/animations/fx-runtime.js +99 -0
  180. package/skills/design-templates/html-ppt/assets/base.css +150 -0
  181. package/skills/design-templates/html-ppt/assets/fonts.css +9 -0
  182. package/skills/design-templates/html-ppt/assets/runtime.js +960 -0
  183. package/skills/design-templates/html-ppt/assets/themes/academic-paper.css +23 -0
  184. package/skills/design-templates/html-ppt/assets/themes/arctic-cool.css +14 -0
  185. package/skills/design-templates/html-ppt/assets/themes/aurora.css +20 -0
  186. package/skills/design-templates/html-ppt/assets/themes/bauhaus.css +16 -0
  187. package/skills/design-templates/html-ppt/assets/themes/blueprint.css +19 -0
  188. package/skills/design-templates/html-ppt/assets/themes/catppuccin-latte.css +14 -0
  189. package/skills/design-templates/html-ppt/assets/themes/catppuccin-mocha.css +14 -0
  190. package/skills/design-templates/html-ppt/assets/themes/corporate-clean.css +19 -0
  191. package/skills/design-templates/html-ppt/assets/themes/cyberpunk-neon.css +23 -0
  192. package/skills/design-templates/html-ppt/assets/themes/dracula.css +14 -0
  193. package/skills/design-templates/html-ppt/assets/themes/editorial-serif.css +18 -0
  194. package/skills/design-templates/html-ppt/assets/themes/engineering-whiteprint.css +26 -0
  195. package/skills/design-templates/html-ppt/assets/themes/glassmorphism.css +21 -0
  196. package/skills/design-templates/html-ppt/assets/themes/gruvbox-dark.css +14 -0
  197. package/skills/design-templates/html-ppt/assets/themes/japanese-minimal.css +21 -0
  198. package/skills/design-templates/html-ppt/assets/themes/magazine-bold.css +21 -0
  199. package/skills/design-templates/html-ppt/assets/themes/memphis-pop.css +20 -0
  200. package/skills/design-templates/html-ppt/assets/themes/midcentury.css +19 -0
  201. package/skills/design-templates/html-ppt/assets/themes/minimal-white.css +16 -0
  202. package/skills/design-templates/html-ppt/assets/themes/neo-brutalism.css +17 -0
  203. package/skills/design-templates/html-ppt/assets/themes/news-broadcast.css +20 -0
  204. package/skills/design-templates/html-ppt/assets/themes/nord.css +14 -0
  205. package/skills/design-templates/html-ppt/assets/themes/pitch-deck-vc.css +21 -0
  206. package/skills/design-templates/html-ppt/assets/themes/rainbow-gradient.css +16 -0
  207. package/skills/design-templates/html-ppt/assets/themes/retro-tv.css +22 -0
  208. package/skills/design-templates/html-ppt/assets/themes/rose-pine.css +14 -0
  209. package/skills/design-templates/html-ppt/assets/themes/sharp-mono.css +17 -0
  210. package/skills/design-templates/html-ppt/assets/themes/soft-pastel.css +14 -0
  211. package/skills/design-templates/html-ppt/assets/themes/solarized-light.css +14 -0
  212. package/skills/design-templates/html-ppt/assets/themes/sunset-warm.css +14 -0
  213. package/skills/design-templates/html-ppt/assets/themes/swiss-grid.css +17 -0
  214. package/skills/design-templates/html-ppt/assets/themes/terminal-green.css +18 -0
  215. package/skills/design-templates/html-ppt/assets/themes/tokyo-night.css +14 -0
  216. package/skills/design-templates/html-ppt/assets/themes/vaporwave.css +21 -0
  217. package/skills/design-templates/html-ppt/assets/themes/xiaohongshu-white.css +16 -0
  218. package/skills/design-templates/html-ppt/assets/themes/y2k-chrome.css +20 -0
  219. package/skills/design-templates/html-ppt/docs/readme/_theme-cell.html +56 -0
  220. package/skills/design-templates/html-ppt/docs/readme/animations.png +0 -0
  221. package/skills/design-templates/html-ppt/docs/readme/hero.gif +0 -0
  222. package/skills/design-templates/html-ppt/docs/readme/layouts-live.gif +0 -0
  223. package/skills/design-templates/html-ppt/docs/readme/layouts.png +0 -0
  224. package/skills/design-templates/html-ppt/docs/readme/montage-animations.html +61 -0
  225. package/skills/design-templates/html-ppt/docs/readme/montage-layouts.html +72 -0
  226. package/skills/design-templates/html-ppt/docs/readme/montage-templates.html +72 -0
  227. package/skills/design-templates/html-ppt/docs/readme/montage-themes.html +38 -0
  228. package/skills/design-templates/html-ppt/docs/readme/presenter-mode.png +0 -0
  229. package/skills/design-templates/html-ppt/docs/readme/templates.png +0 -0
  230. package/skills/design-templates/html-ppt/docs/readme/themes.png +0 -0
  231. package/skills/design-templates/html-ppt/examples/demo-deck/index.html +161 -0
  232. package/skills/design-templates/html-ppt/references/animations.md +147 -0
  233. package/skills/design-templates/html-ppt/references/authoring-guide.md +141 -0
  234. package/skills/design-templates/html-ppt/references/full-decks.md +98 -0
  235. package/skills/design-templates/html-ppt/references/layouts.md +103 -0
  236. package/skills/design-templates/html-ppt/references/presenter-mode.md +240 -0
  237. package/skills/design-templates/html-ppt/references/themes.md +107 -0
  238. package/skills/design-templates/html-ppt/scripts/new-deck.sh +46 -0
  239. package/skills/design-templates/html-ppt/scripts/render.sh +71 -0
  240. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_01.png +0 -0
  241. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_02.png +0 -0
  242. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_03.png +0 -0
  243. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_04.png +0 -0
  244. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_05.png +0 -0
  245. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_06.png +0 -0
  246. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_07.png +0 -0
  247. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_08.png +0 -0
  248. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_09.png +0 -0
  249. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_10.png +0 -0
  250. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_11.png +0 -0
  251. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_12.png +0 -0
  252. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_13.png +0 -0
  253. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_14.png +0 -0
  254. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_15.png +0 -0
  255. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_16.png +0 -0
  256. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_17.png +0 -0
  257. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_18.png +0 -0
  258. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_19.png +0 -0
  259. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_20.png +0 -0
  260. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_01.png +0 -0
  261. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_02.png +0 -0
  262. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_03.png +0 -0
  263. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_04.png +0 -0
  264. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_05.png +0 -0
  265. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_06.png +0 -0
  266. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_07.png +0 -0
  267. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_08.png +0 -0
  268. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_09.png +0 -0
  269. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_10.png +0 -0
  270. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_11.png +0 -0
  271. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_12.png +0 -0
  272. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_13.png +0 -0
  273. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_14.png +0 -0
  274. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_15.png +0 -0
  275. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_16.png +0 -0
  276. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_17.png +0 -0
  277. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_18.png +0 -0
  278. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_19.png +0 -0
  279. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_20.png +0 -0
  280. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_21.png +0 -0
  281. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_22.png +0 -0
  282. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_23.png +0 -0
  283. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_24.png +0 -0
  284. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_25.png +0 -0
  285. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_26.png +0 -0
  286. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_27.png +0 -0
  287. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_28.png +0 -0
  288. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_29.png +0 -0
  289. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_30.png +0 -0
  290. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_31.png +0 -0
  291. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_32.png +0 -0
  292. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_33.png +0 -0
  293. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_34.png +0 -0
  294. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_35.png +0 -0
  295. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_36.png +0 -0
  296. package/skills/design-templates/html-ppt/templates/animation-showcase.html +172 -0
  297. package/skills/design-templates/html-ppt/templates/deck.html +69 -0
  298. package/skills/design-templates/html-ppt/templates/full-decks/course-module/README.md +8 -0
  299. package/skills/design-templates/html-ppt/templates/full-decks/course-module/index.html +189 -0
  300. package/skills/design-templates/html-ppt/templates/full-decks/course-module/style.css +46 -0
  301. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/README.md +11 -0
  302. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/index.html +138 -0
  303. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/style.css +60 -0
  304. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/README.md +11 -0
  305. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/index.html +180 -0
  306. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/style.css +54 -0
  307. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/README.md +11 -0
  308. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/index.html +199 -0
  309. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/style.css +55 -0
  310. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/README.md +11 -0
  311. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/index.html +190 -0
  312. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/style.css +49 -0
  313. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/README.md +11 -0
  314. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/index.html +144 -0
  315. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/style.css +59 -0
  316. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/README.md +9 -0
  317. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/index.html +148 -0
  318. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/style.css +40 -0
  319. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/README.md +102 -0
  320. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/index.html +187 -0
  321. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/style.css +216 -0
  322. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/README.md +8 -0
  323. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/index.html +121 -0
  324. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/style.css +39 -0
  325. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/README.md +8 -0
  326. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/index.html +156 -0
  327. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/style.css +49 -0
  328. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/README.md +11 -0
  329. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/index.html +183 -0
  330. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/style.css +62 -0
  331. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/README.md +8 -0
  332. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/index.html +127 -0
  333. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/style.css +55 -0
  334. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/README.md +11 -0
  335. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/index.html +147 -0
  336. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/style.css +66 -0
  337. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/README.md +9 -0
  338. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/index.html +133 -0
  339. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/style.css +47 -0
  340. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/README.md +11 -0
  341. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/index.html +187 -0
  342. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/style.css +63 -0
  343. package/skills/design-templates/html-ppt/templates/full-decks-index.html +82 -0
  344. package/skills/design-templates/html-ppt/templates/layout-showcase.html +47 -0
  345. package/skills/design-templates/html-ppt/templates/single-page/arch-diagram.html +46 -0
  346. package/skills/design-templates/html-ppt/templates/single-page/big-quote.html +18 -0
  347. package/skills/design-templates/html-ppt/templates/single-page/bullets.html +19 -0
  348. package/skills/design-templates/html-ppt/templates/single-page/chart-bar.html +30 -0
  349. package/skills/design-templates/html-ppt/templates/single-page/chart-line.html +35 -0
  350. package/skills/design-templates/html-ppt/templates/single-page/chart-pie.html +36 -0
  351. package/skills/design-templates/html-ppt/templates/single-page/chart-radar.html +31 -0
  352. package/skills/design-templates/html-ppt/templates/single-page/code.html +33 -0
  353. package/skills/design-templates/html-ppt/templates/single-page/comparison.html +47 -0
  354. package/skills/design-templates/html-ppt/templates/single-page/cover.html +32 -0
  355. package/skills/design-templates/html-ppt/templates/single-page/cta.html +27 -0
  356. package/skills/design-templates/html-ppt/templates/single-page/diff.html +35 -0
  357. package/skills/design-templates/html-ppt/templates/single-page/flow-diagram.html +33 -0
  358. package/skills/design-templates/html-ppt/templates/single-page/gantt.html +29 -0
  359. package/skills/design-templates/html-ppt/templates/single-page/image-grid.html +34 -0
  360. package/skills/design-templates/html-ppt/templates/single-page/image-hero.html +33 -0
  361. package/skills/design-templates/html-ppt/templates/single-page/kpi-grid.html +19 -0
  362. package/skills/design-templates/html-ppt/templates/single-page/mindmap.html +38 -0
  363. package/skills/design-templates/html-ppt/templates/single-page/process-steps.html +27 -0
  364. package/skills/design-templates/html-ppt/templates/single-page/pros-cons.html +31 -0
  365. package/skills/design-templates/html-ppt/templates/single-page/roadmap.html +46 -0
  366. package/skills/design-templates/html-ppt/templates/single-page/section-divider.html +17 -0
  367. package/skills/design-templates/html-ppt/templates/single-page/stat-highlight.html +17 -0
  368. package/skills/design-templates/html-ppt/templates/single-page/table.html +33 -0
  369. package/skills/design-templates/html-ppt/templates/single-page/terminal.html +35 -0
  370. package/skills/design-templates/html-ppt/templates/single-page/thanks.html +21 -0
  371. package/skills/design-templates/html-ppt/templates/single-page/three-column.html +18 -0
  372. package/skills/design-templates/html-ppt/templates/single-page/timeline.html +32 -0
  373. package/skills/design-templates/html-ppt/templates/single-page/toc.html +26 -0
  374. package/skills/design-templates/html-ppt/templates/single-page/todo-checklist.html +33 -0
  375. package/skills/design-templates/html-ppt/templates/single-page/two-column.html +39 -0
  376. package/skills/design-templates/html-ppt/templates/theme-showcase.html +151 -0
  377. package/skills/design-templates/html-ppt-course-module/SKILL.md +78 -0
  378. package/skills/design-templates/html-ppt-course-module/example.html +542 -0
  379. package/skills/design-templates/html-ppt-dir-key-nav-minimal/SKILL.md +77 -0
  380. package/skills/design-templates/html-ppt-dir-key-nav-minimal/example.html +366 -0
  381. package/skills/design-templates/html-ppt-graphify-dark-graph/SKILL.md +77 -0
  382. package/skills/design-templates/html-ppt-graphify-dark-graph/example.html +402 -0
  383. package/skills/design-templates/html-ppt-hermes-cyber-terminal/SKILL.md +77 -0
  384. package/skills/design-templates/html-ppt-hermes-cyber-terminal/example.html +422 -0
  385. package/skills/design-templates/html-ppt-knowledge-arch-blueprint/SKILL.md +77 -0
  386. package/skills/design-templates/html-ppt-knowledge-arch-blueprint/example.html +407 -0
  387. package/skills/design-templates/html-ppt-obsidian-claude-gradient/SKILL.md +77 -0
  388. package/skills/design-templates/html-ppt-obsidian-claude-gradient/example.html +371 -0
  389. package/skills/design-templates/html-ppt-pitch-deck/SKILL.md +78 -0
  390. package/skills/design-templates/html-ppt-pitch-deck/example.html +495 -0
  391. package/skills/design-templates/html-ppt-presenter-mode-reveal/SKILL.md +78 -0
  392. package/skills/design-templates/html-ppt-presenter-mode-reveal/example.html +725 -0
  393. package/skills/design-templates/html-ppt-product-launch/SKILL.md +77 -0
  394. package/skills/design-templates/html-ppt-product-launch/example.html +467 -0
  395. package/skills/design-templates/html-ppt-taste-brutalist/SKILL.md +70 -0
  396. package/skills/design-templates/html-ppt-taste-brutalist/example.html +774 -0
  397. package/skills/design-templates/html-ppt-taste-editorial/SKILL.md +62 -0
  398. package/skills/design-templates/html-ppt-taste-editorial/example.html +689 -0
  399. package/skills/design-templates/html-ppt-tech-sharing/SKILL.md +77 -0
  400. package/skills/design-templates/html-ppt-tech-sharing/example.html +512 -0
  401. package/skills/design-templates/html-ppt-testing-safety-alert/SKILL.md +78 -0
  402. package/skills/design-templates/html-ppt-testing-safety-alert/example.html +413 -0
  403. package/skills/design-templates/html-ppt-weekly-report/SKILL.md +77 -0
  404. package/skills/design-templates/html-ppt-weekly-report/example.html +489 -0
  405. package/skills/design-templates/html-ppt-xhs-pastel-card/SKILL.md +78 -0
  406. package/skills/design-templates/html-ppt-xhs-pastel-card/example.html +381 -0
  407. package/skills/design-templates/html-ppt-xhs-post/SKILL.md +78 -0
  408. package/skills/design-templates/html-ppt-xhs-post/example.html +487 -0
  409. package/skills/design-templates/html-ppt-xhs-white-editorial/SKILL.md +77 -0
  410. package/skills/design-templates/html-ppt-xhs-white-editorial/example.html +418 -0
  411. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/LICENSE +21 -0
  412. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/SKILL.md +93 -0
  413. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/example.html +1640 -0
  414. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/template.json +48 -0
  415. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/LICENSE +21 -0
  416. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/SKILL.md +93 -0
  417. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/example.html +833 -0
  418. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/template.json +49 -0
  419. package/skills/design-templates/html-ppt-zhangzara-block-frame/LICENSE +21 -0
  420. package/skills/design-templates/html-ppt-zhangzara-block-frame/SKILL.md +93 -0
  421. package/skills/design-templates/html-ppt-zhangzara-block-frame/example.html +1453 -0
  422. package/skills/design-templates/html-ppt-zhangzara-block-frame/template.json +47 -0
  423. package/skills/design-templates/html-ppt-zhangzara-blue-professional/LICENSE +21 -0
  424. package/skills/design-templates/html-ppt-zhangzara-blue-professional/SKILL.md +93 -0
  425. package/skills/design-templates/html-ppt-zhangzara-blue-professional/example.html +1423 -0
  426. package/skills/design-templates/html-ppt-zhangzara-blue-professional/template.json +44 -0
  427. package/skills/design-templates/html-ppt-zhangzara-bold-poster/LICENSE +21 -0
  428. package/skills/design-templates/html-ppt-zhangzara-bold-poster/SKILL.md +93 -0
  429. package/skills/design-templates/html-ppt-zhangzara-bold-poster/example.html +876 -0
  430. package/skills/design-templates/html-ppt-zhangzara-bold-poster/template.json +45 -0
  431. package/skills/design-templates/html-ppt-zhangzara-broadside/LICENSE +21 -0
  432. package/skills/design-templates/html-ppt-zhangzara-broadside/SKILL.md +92 -0
  433. package/skills/design-templates/html-ppt-zhangzara-broadside/example.html +2144 -0
  434. package/skills/design-templates/html-ppt-zhangzara-broadside/template.json +49 -0
  435. package/skills/design-templates/html-ppt-zhangzara-capsule/LICENSE +21 -0
  436. package/skills/design-templates/html-ppt-zhangzara-capsule/SKILL.md +92 -0
  437. package/skills/design-templates/html-ppt-zhangzara-capsule/example.html +1413 -0
  438. package/skills/design-templates/html-ppt-zhangzara-capsule/template.json +51 -0
  439. package/skills/design-templates/html-ppt-zhangzara-cartesian/LICENSE +21 -0
  440. package/skills/design-templates/html-ppt-zhangzara-cartesian/SKILL.md +92 -0
  441. package/skills/design-templates/html-ppt-zhangzara-cartesian/example.html +1136 -0
  442. package/skills/design-templates/html-ppt-zhangzara-cartesian/template.json +47 -0
  443. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/LICENSE +21 -0
  444. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/SKILL.md +93 -0
  445. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/example.html +1205 -0
  446. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/template.json +49 -0
  447. package/skills/design-templates/html-ppt-zhangzara-coral/LICENSE +21 -0
  448. package/skills/design-templates/html-ppt-zhangzara-coral/SKILL.md +92 -0
  449. package/skills/design-templates/html-ppt-zhangzara-coral/example.html +1487 -0
  450. package/skills/design-templates/html-ppt-zhangzara-coral/template.json +45 -0
  451. package/skills/design-templates/html-ppt-zhangzara-creative-mode/LICENSE +21 -0
  452. package/skills/design-templates/html-ppt-zhangzara-creative-mode/SKILL.md +99 -0
  453. package/skills/design-templates/html-ppt-zhangzara-creative-mode/assets/deck-stage.js +619 -0
  454. package/skills/design-templates/html-ppt-zhangzara-creative-mode/example.html +636 -0
  455. package/skills/design-templates/html-ppt-zhangzara-creative-mode/template.json +47 -0
  456. package/skills/design-templates/html-ppt-zhangzara-daisy-days/LICENSE +21 -0
  457. package/skills/design-templates/html-ppt-zhangzara-daisy-days/SKILL.md +93 -0
  458. package/skills/design-templates/html-ppt-zhangzara-daisy-days/example.html +469 -0
  459. package/skills/design-templates/html-ppt-zhangzara-daisy-days/template.json +54 -0
  460. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/LICENSE +21 -0
  461. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/SKILL.md +98 -0
  462. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/assets/deck-stage.js +619 -0
  463. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/example.html +737 -0
  464. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/template.json +44 -0
  465. package/skills/design-templates/html-ppt-zhangzara-grove/LICENSE +21 -0
  466. package/skills/design-templates/html-ppt-zhangzara-grove/SKILL.md +92 -0
  467. package/skills/design-templates/html-ppt-zhangzara-grove/example.html +1676 -0
  468. package/skills/design-templates/html-ppt-zhangzara-grove/template.json +51 -0
  469. package/skills/figma-code-connect-components/SKILL.md +42 -0
  470. package/skills/figma-create-design-system-rules/SKILL.md +42 -0
  471. package/skills/figma-create-new-file/SKILL.md +41 -0
  472. package/skills/figma-generate-design/SKILL.md +42 -0
  473. package/skills/figma-generate-library/SKILL.md +42 -0
  474. package/skills/figma-implement-design/SKILL.md +42 -0
  475. package/skills/figma-use/SKILL.md +42 -0
  476. package/skills/full-page-screenshot/SKILL.md +42 -0
  477. package/skills/interview-me/SKILL.md +64 -0
  478. package/skills/planning-and-task-breakdown/SKILL.md +52 -0
  479. package/skills/sora/SKILL.md +43 -0
  480. package/skills/theme-factory/SKILL.md +43 -0
  481. package/skills/web-design-guidelines/SKILL.md +42 -0
  482. package/dist/agents/prompt-library/orchestration.d.ts +0 -4
  483. package/skills/brainstorming/SKILL.md +0 -164
  484. package/skills/brainstorming/scripts/frame-template.html +0 -214
  485. package/skills/brainstorming/scripts/helper.js +0 -88
  486. package/skills/brainstorming/scripts/server.cjs +0 -354
  487. package/skills/brainstorming/scripts/start-server.sh +0 -148
  488. package/skills/brainstorming/scripts/stop-server.sh +0 -56
  489. package/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
  490. package/skills/brainstorming/visual-companion.md +0 -287
@@ -1153,134 +1153,6 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1153
1153
  variant: z.ZodOptional<z.ZodString>;
1154
1154
  }, z.core.$strip>>;
1155
1155
  }, z.core.$strip>>;
1156
- multimodal: z.ZodOptional<z.ZodObject<{
1157
- model: z.ZodOptional<z.ZodString>;
1158
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodObject<{
1159
- model: z.ZodString;
1160
- variant: z.ZodOptional<z.ZodString>;
1161
- reasoningEffort: z.ZodOptional<z.ZodEnum<{
1162
- none: "none";
1163
- minimal: "minimal";
1164
- low: "low";
1165
- medium: "medium";
1166
- high: "high";
1167
- xhigh: "xhigh";
1168
- }>>;
1169
- temperature: z.ZodOptional<z.ZodNumber>;
1170
- top_p: z.ZodOptional<z.ZodNumber>;
1171
- maxTokens: z.ZodOptional<z.ZodNumber>;
1172
- thinking: z.ZodOptional<z.ZodObject<{
1173
- type: z.ZodEnum<{
1174
- enabled: "enabled";
1175
- disabled: "disabled";
1176
- }>;
1177
- budgetTokens: z.ZodOptional<z.ZodNumber>;
1178
- }, z.core.$strip>>;
1179
- }, z.core.$strip>>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1180
- model: z.ZodString;
1181
- variant: z.ZodOptional<z.ZodString>;
1182
- reasoningEffort: z.ZodOptional<z.ZodEnum<{
1183
- none: "none";
1184
- minimal: "minimal";
1185
- low: "low";
1186
- medium: "medium";
1187
- high: "high";
1188
- xhigh: "xhigh";
1189
- }>>;
1190
- temperature: z.ZodOptional<z.ZodNumber>;
1191
- top_p: z.ZodOptional<z.ZodNumber>;
1192
- maxTokens: z.ZodOptional<z.ZodNumber>;
1193
- thinking: z.ZodOptional<z.ZodObject<{
1194
- type: z.ZodEnum<{
1195
- enabled: "enabled";
1196
- disabled: "disabled";
1197
- }>;
1198
- budgetTokens: z.ZodOptional<z.ZodNumber>;
1199
- }, z.core.$strip>>;
1200
- }, z.core.$strip>]>>]>>;
1201
- variant: z.ZodOptional<z.ZodString>;
1202
- category: z.ZodOptional<z.ZodString>;
1203
- skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
1204
- temperature: z.ZodOptional<z.ZodNumber>;
1205
- top_p: z.ZodOptional<z.ZodNumber>;
1206
- prompt: z.ZodOptional<z.ZodString>;
1207
- prompt_append: z.ZodOptional<z.ZodString>;
1208
- tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1209
- disable: z.ZodOptional<z.ZodBoolean>;
1210
- description: z.ZodOptional<z.ZodString>;
1211
- mode: z.ZodOptional<z.ZodEnum<{
1212
- primary: "primary";
1213
- subagent: "subagent";
1214
- all: "all";
1215
- }>>;
1216
- color: z.ZodOptional<z.ZodString>;
1217
- permission: z.ZodOptional<z.ZodObject<{
1218
- edit: z.ZodOptional<z.ZodEnum<{
1219
- allow: "allow";
1220
- deny: "deny";
1221
- ask: "ask";
1222
- }>>;
1223
- bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
1224
- allow: "allow";
1225
- deny: "deny";
1226
- ask: "ask";
1227
- }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
1228
- allow: "allow";
1229
- deny: "deny";
1230
- ask: "ask";
1231
- }>>]>>;
1232
- webfetch: z.ZodOptional<z.ZodEnum<{
1233
- allow: "allow";
1234
- deny: "deny";
1235
- ask: "ask";
1236
- }>>;
1237
- task: z.ZodOptional<z.ZodEnum<{
1238
- allow: "allow";
1239
- deny: "deny";
1240
- ask: "ask";
1241
- }>>;
1242
- doom_loop: z.ZodOptional<z.ZodEnum<{
1243
- allow: "allow";
1244
- deny: "deny";
1245
- ask: "ask";
1246
- }>>;
1247
- external_directory: z.ZodOptional<z.ZodEnum<{
1248
- allow: "allow";
1249
- deny: "deny";
1250
- ask: "ask";
1251
- }>>;
1252
- }, z.core.$strip>>;
1253
- maxTokens: z.ZodOptional<z.ZodNumber>;
1254
- thinking: z.ZodOptional<z.ZodObject<{
1255
- type: z.ZodEnum<{
1256
- enabled: "enabled";
1257
- disabled: "disabled";
1258
- }>;
1259
- budgetTokens: z.ZodOptional<z.ZodNumber>;
1260
- }, z.core.$strip>>;
1261
- reasoningEffort: z.ZodOptional<z.ZodEnum<{
1262
- none: "none";
1263
- minimal: "minimal";
1264
- low: "low";
1265
- medium: "medium";
1266
- high: "high";
1267
- xhigh: "xhigh";
1268
- }>>;
1269
- textVerbosity: z.ZodOptional<z.ZodEnum<{
1270
- low: "low";
1271
- medium: "medium";
1272
- high: "high";
1273
- }>>;
1274
- providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1275
- ultrawork: z.ZodOptional<z.ZodObject<{
1276
- model: z.ZodOptional<z.ZodString>;
1277
- variant: z.ZodOptional<z.ZodString>;
1278
- }, z.core.$strip>>;
1279
- compaction: z.ZodOptional<z.ZodObject<{
1280
- model: z.ZodOptional<z.ZodString>;
1281
- variant: z.ZodOptional<z.ZodString>;
1282
- }, z.core.$strip>>;
1283
- }, z.core.$strip>>;
1284
1156
  "quality-guardian": z.ZodOptional<z.ZodObject<{
1285
1157
  model: z.ZodOptional<z.ZodString>;
1286
1158
  fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodObject<{
@@ -1057,134 +1057,6 @@ export declare const HiaiOpenCodeConfigSchema: z.ZodObject<{
1057
1057
  variant: z.ZodOptional<z.ZodString>;
1058
1058
  }, z.core.$strip>>;
1059
1059
  }, z.core.$strip>>;
1060
- multimodal: z.ZodOptional<z.ZodObject<{
1061
- model: z.ZodOptional<z.ZodString>;
1062
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodObject<{
1063
- model: z.ZodString;
1064
- variant: z.ZodOptional<z.ZodString>;
1065
- reasoningEffort: z.ZodOptional<z.ZodEnum<{
1066
- none: "none";
1067
- minimal: "minimal";
1068
- low: "low";
1069
- medium: "medium";
1070
- high: "high";
1071
- xhigh: "xhigh";
1072
- }>>;
1073
- temperature: z.ZodOptional<z.ZodNumber>;
1074
- top_p: z.ZodOptional<z.ZodNumber>;
1075
- maxTokens: z.ZodOptional<z.ZodNumber>;
1076
- thinking: z.ZodOptional<z.ZodObject<{
1077
- type: z.ZodEnum<{
1078
- enabled: "enabled";
1079
- disabled: "disabled";
1080
- }>;
1081
- budgetTokens: z.ZodOptional<z.ZodNumber>;
1082
- }, z.core.$strip>>;
1083
- }, z.core.$strip>>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1084
- model: z.ZodString;
1085
- variant: z.ZodOptional<z.ZodString>;
1086
- reasoningEffort: z.ZodOptional<z.ZodEnum<{
1087
- none: "none";
1088
- minimal: "minimal";
1089
- low: "low";
1090
- medium: "medium";
1091
- high: "high";
1092
- xhigh: "xhigh";
1093
- }>>;
1094
- temperature: z.ZodOptional<z.ZodNumber>;
1095
- top_p: z.ZodOptional<z.ZodNumber>;
1096
- maxTokens: z.ZodOptional<z.ZodNumber>;
1097
- thinking: z.ZodOptional<z.ZodObject<{
1098
- type: z.ZodEnum<{
1099
- enabled: "enabled";
1100
- disabled: "disabled";
1101
- }>;
1102
- budgetTokens: z.ZodOptional<z.ZodNumber>;
1103
- }, z.core.$strip>>;
1104
- }, z.core.$strip>]>>]>>;
1105
- variant: z.ZodOptional<z.ZodString>;
1106
- category: z.ZodOptional<z.ZodString>;
1107
- skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
1108
- temperature: z.ZodOptional<z.ZodNumber>;
1109
- top_p: z.ZodOptional<z.ZodNumber>;
1110
- prompt: z.ZodOptional<z.ZodString>;
1111
- prompt_append: z.ZodOptional<z.ZodString>;
1112
- tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1113
- disable: z.ZodOptional<z.ZodBoolean>;
1114
- description: z.ZodOptional<z.ZodString>;
1115
- mode: z.ZodOptional<z.ZodEnum<{
1116
- primary: "primary";
1117
- subagent: "subagent";
1118
- all: "all";
1119
- }>>;
1120
- color: z.ZodOptional<z.ZodString>;
1121
- permission: z.ZodOptional<z.ZodObject<{
1122
- edit: z.ZodOptional<z.ZodEnum<{
1123
- allow: "allow";
1124
- deny: "deny";
1125
- ask: "ask";
1126
- }>>;
1127
- bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
1128
- allow: "allow";
1129
- deny: "deny";
1130
- ask: "ask";
1131
- }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
1132
- allow: "allow";
1133
- deny: "deny";
1134
- ask: "ask";
1135
- }>>]>>;
1136
- webfetch: z.ZodOptional<z.ZodEnum<{
1137
- allow: "allow";
1138
- deny: "deny";
1139
- ask: "ask";
1140
- }>>;
1141
- task: z.ZodOptional<z.ZodEnum<{
1142
- allow: "allow";
1143
- deny: "deny";
1144
- ask: "ask";
1145
- }>>;
1146
- doom_loop: z.ZodOptional<z.ZodEnum<{
1147
- allow: "allow";
1148
- deny: "deny";
1149
- ask: "ask";
1150
- }>>;
1151
- external_directory: z.ZodOptional<z.ZodEnum<{
1152
- allow: "allow";
1153
- deny: "deny";
1154
- ask: "ask";
1155
- }>>;
1156
- }, z.core.$strip>>;
1157
- maxTokens: z.ZodOptional<z.ZodNumber>;
1158
- thinking: z.ZodOptional<z.ZodObject<{
1159
- type: z.ZodEnum<{
1160
- enabled: "enabled";
1161
- disabled: "disabled";
1162
- }>;
1163
- budgetTokens: z.ZodOptional<z.ZodNumber>;
1164
- }, z.core.$strip>>;
1165
- reasoningEffort: z.ZodOptional<z.ZodEnum<{
1166
- none: "none";
1167
- minimal: "minimal";
1168
- low: "low";
1169
- medium: "medium";
1170
- high: "high";
1171
- xhigh: "xhigh";
1172
- }>>;
1173
- textVerbosity: z.ZodOptional<z.ZodEnum<{
1174
- low: "low";
1175
- medium: "medium";
1176
- high: "high";
1177
- }>>;
1178
- providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1179
- ultrawork: z.ZodOptional<z.ZodObject<{
1180
- model: z.ZodOptional<z.ZodString>;
1181
- variant: z.ZodOptional<z.ZodString>;
1182
- }, z.core.$strip>>;
1183
- compaction: z.ZodOptional<z.ZodObject<{
1184
- model: z.ZodOptional<z.ZodString>;
1185
- variant: z.ZodOptional<z.ZodString>;
1186
- }, z.core.$strip>>;
1187
- }, z.core.$strip>>;
1188
1060
  "quality-guardian": z.ZodOptional<z.ZodObject<{
1189
1061
  model: z.ZodOptional<z.ZodString>;
1190
1062
  fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodObject<{
@@ -22,9 +22,9 @@ export interface ModelSlotsConfig {
22
22
  vision?: ModelSlotConfig;
23
23
  sub?: ModelSlotConfig;
24
24
  }
25
- export declare const CANONICAL_AGENT_NAMES: readonly ["bob", "manager", "strategist", "critic", "coder", "designer", "sub", "researcher", "multimodal", "quality-guardian", "writer", "agent-skills"];
25
+ export declare const CANONICAL_AGENT_NAMES: readonly ["bob", "manager", "strategist", "critic", "coder", "designer", "sub", "researcher", "vision", "quality-guardian", "writer", "agent-skills"];
26
26
  export type CanonicalAgentName = (typeof CANONICAL_AGENT_NAMES)[number];
27
- export declare const LEGACY_AGENT_ALIAS_NAMES: readonly ["general", "zoe", "build", "pre-plan", "vision", "logician", "librarian", "explore", "ui", "code-reviewer", "systematic-debugger", "mindmodel", "ledger-creator", "bootstrapper", "project-initializer", "guard", "brainstormer"];
27
+ export declare const LEGACY_AGENT_ALIAS_NAMES: readonly ["general", "zoe", "build", "pre-plan", "multimodal", "ui", "logician", "librarian", "explore", "code-reviewer", "systematic-debugger", "mindmodel", "ledger-creator", "bootstrapper", "project-initializer", "guard", "brainstormer"];
28
28
  export type LegacyAgentAliasName = (typeof LEGACY_AGENT_ALIAS_NAMES)[number];
29
29
  export declare const LEGACY_AGENT_ALIAS_TO_CANONICAL: Record<LegacyAgentAliasName, CanonicalAgentName>;
30
30
  export type KnownAgentName = CanonicalAgentName | LegacyAgentAliasName;
@@ -1,5 +1,6 @@
1
1
  export declare function isRecord(value: unknown): value is Record<string, unknown>;
2
2
  export declare function isAbortedSessionError(error: unknown): boolean;
3
+ export declare function isRecoverablePromptInjectionError(error: unknown): boolean;
3
4
  export declare function getErrorText(error: unknown): string;
4
5
  export declare function extractErrorName(error: unknown): string | undefined;
5
6
  export declare function extractErrorMessage(error: unknown): string | undefined;
@@ -0,0 +1,46 @@
1
+ import type { BackgroundTask } from "./types";
2
+ import type { BackgroundTaskNotificationTask } from "./background-task-notification-template";
3
+ export interface NotifierAdapter {
4
+ client: {
5
+ session: {
6
+ messages: (input: {
7
+ path: {
8
+ id: string;
9
+ };
10
+ }) => Promise<unknown>;
11
+ promptAsync: (input: {
12
+ path: {
13
+ id: string;
14
+ };
15
+ body: {
16
+ noReply?: boolean;
17
+ agent?: string;
18
+ model?: {
19
+ providerID: string;
20
+ modelID: string;
21
+ };
22
+ variant?: string;
23
+ tools?: Record<string, boolean | "allow" | "deny" | "ask">;
24
+ parts: Array<{
25
+ type: "text";
26
+ text: string;
27
+ }>;
28
+ };
29
+ }) => Promise<unknown>;
30
+ };
31
+ };
32
+ directory: string;
33
+ enableParentSessionNotifications: boolean;
34
+ tasks: Map<string, BackgroundTask>;
35
+ completedTaskSummaries: Map<string, BackgroundTaskNotificationTask[]>;
36
+ pendingByParent: Map<string, Set<string>>;
37
+ pendingNotifications: Map<string, string[]>;
38
+ notificationQueueByParent: Map<string, Promise<void>>;
39
+ queuePendingNotification: (parentSessionID: string, notification: string) => void;
40
+ scheduleTaskRemoval: (taskId: string, rescheduleCount?: number) => void;
41
+ clearNotificationsForTask: (taskId: string) => void;
42
+ cleanupPendingByParent: (task: BackgroundTask) => void;
43
+ getTasksByParentSession: (sessionID: string) => BackgroundTask[];
44
+ }
45
+ export declare function enqueueNotificationForParent(adapter: NotifierAdapter, parentSessionID: string | undefined, operation: () => Promise<void>): Promise<void>;
46
+ export declare function notifyParentSession(adapter: NotifierAdapter, task: BackgroundTask): Promise<void>;
@@ -0,0 +1,40 @@
1
+ import type { BackgroundTask, LaunchInput } from "./types";
2
+ export interface MessagePartInfo {
3
+ id?: string;
4
+ sessionID?: string;
5
+ type?: string;
6
+ tool?: string;
7
+ state?: {
8
+ status?: string;
9
+ input?: Record<string, unknown>;
10
+ };
11
+ }
12
+ export interface EventProperties {
13
+ sessionID?: string;
14
+ info?: {
15
+ id?: string;
16
+ };
17
+ [key: string]: unknown;
18
+ }
19
+ export interface BackgroundEvent {
20
+ type: string;
21
+ properties?: EventProperties;
22
+ }
23
+ export interface Todo {
24
+ content: string;
25
+ status: string;
26
+ priority: string;
27
+ id: string;
28
+ }
29
+ export interface QueueItem {
30
+ task: BackgroundTask;
31
+ input: LaunchInput;
32
+ }
33
+ export interface SubagentSessionCreatedEvent {
34
+ sessionID: string;
35
+ parentID: string;
36
+ title: string;
37
+ }
38
+ export type OnSubagentSessionCreated = (event: SubagentSessionCreatedEvent) => Promise<void>;
39
+ export declare const MAX_TASK_REMOVAL_RESCHEDULES = 6;
40
+ export declare function resolveMessagePartInfo(properties: EventProperties | undefined): MessagePartInfo | undefined;
@@ -3,23 +3,8 @@ import type { BackgroundTask, LaunchInput, ResumeInput } from "./types";
3
3
  import { TaskHistory } from "./task-history";
4
4
  import type { BackgroundTaskConfig, TmuxConfig } from "../../config/schema";
5
5
  import { type SubagentSpawnContext } from "./subagent-spawn-limits";
6
- interface EventProperties {
7
- sessionID?: string;
8
- info?: {
9
- id?: string;
10
- };
11
- [key: string]: unknown;
12
- }
13
- interface Event {
14
- type: string;
15
- properties?: EventProperties;
16
- }
17
- export interface SubagentSessionCreatedEvent {
18
- sessionID: string;
19
- parentID: string;
20
- title: string;
21
- }
22
- export type OnSubagentSessionCreated = (event: SubagentSessionCreatedEvent) => Promise<void>;
6
+ import type { OnSubagentSessionCreated, BackgroundEvent } from "./manager-types";
7
+ export type { SubagentSessionCreatedEvent, OnSubagentSessionCreated } from "./manager-types";
23
8
  export declare class BackgroundManager {
24
9
  private tasks;
25
10
  private notifications;
@@ -94,7 +79,7 @@ export declare class BackgroundManager {
94
79
  private clearSessionOutputObserved;
95
80
  private clearSessionTodoObservation;
96
81
  private hasOutputSignalFromPart;
97
- handleEvent(event: Event): void;
82
+ handleEvent(event: BackgroundEvent): void;
98
83
  private handleSessionErrorEvent;
99
84
  private tryFallbackRetry;
100
85
  markForNotification(task: BackgroundTask): void;
@@ -164,4 +149,3 @@ export declare class BackgroundManager {
164
149
  shutdown(): Promise<void>;
165
150
  private enqueueNotificationForParent;
166
151
  }
167
- export {};
@@ -0,0 +1,51 @@
1
+ import type { BackgroundTaskConfig } from "../../config/schema";
2
+ import type { ConcurrencyManager } from "./concurrency";
3
+ import type { TaskHistory } from "./task-history";
4
+ import { checkAndInterruptStaleTasks } from "./task-poller";
5
+ import type { BackgroundTask, LaunchInput } from "./types";
6
+ type OpencodeClient = Parameters<typeof checkAndInterruptStaleTasks>[0]["client"];
7
+ interface QueueItem {
8
+ task: BackgroundTask;
9
+ input: LaunchInput;
10
+ }
11
+ export interface PollingManagerAdapter {
12
+ readonly tasks: Map<string, BackgroundTask>;
13
+ readonly notifications: Map<string, BackgroundTask[]>;
14
+ readonly client: OpencodeClient;
15
+ readonly directory: string;
16
+ readonly config?: BackgroundTaskConfig;
17
+ readonly concurrencyManager: ConcurrencyManager;
18
+ readonly taskHistory: TaskHistory;
19
+ readonly queuesByKey: Map<string, QueueItem[]>;
20
+ readonly completionTimers: Map<string, ReturnType<typeof setTimeout>>;
21
+ readonly idleDeferralTimers: Map<string, ReturnType<typeof setTimeout>>;
22
+ tryFallbackRetry(task: BackgroundTask, errorInfo: {
23
+ name?: string;
24
+ message?: string;
25
+ }, source: string): Promise<boolean>;
26
+ tryCompleteTask(task: BackgroundTask, source: string): Promise<boolean>;
27
+ validateSessionHasOutput(sessionID: string): Promise<boolean>;
28
+ checkSessionTodos(sessionID: string): Promise<boolean>;
29
+ enqueueNotificationForParent(parentSessionID: string | undefined, operation: () => Promise<void>): Promise<void>;
30
+ notifyParentSession(task: BackgroundTask): Promise<void>;
31
+ unregisterRootDescendant(rootSessionID: string): void;
32
+ cleanupPendingByParent(task: BackgroundTask): void;
33
+ clearNotificationsForTask(taskId: string): void;
34
+ scheduleTaskRemoval(taskId: string): void;
35
+ markForNotification(task: BackgroundTask): void;
36
+ }
37
+ export declare class TaskPollingManager {
38
+ private adapter;
39
+ private pollingInterval?;
40
+ private pollingInFlight;
41
+ constructor(adapter: PollingManagerAdapter);
42
+ startPolling(): void;
43
+ stopPolling(): void;
44
+ hasRunningTasks(): boolean;
45
+ private verifySessionExists;
46
+ private pruneStaleTasksAndNotifications;
47
+ private checkAndInterruptStaleTasks;
48
+ private failCrashedTask;
49
+ private pollRunningTasks;
50
+ }
51
+ export {};
@@ -8,3 +8,6 @@ export declare const NOTEPAD_DIR = "notepads";
8
8
  export declare const NOTEPAD_BASE_PATH = ".bob/notepads";
9
9
  /** Strategist plan directory pattern */
10
10
  export declare const STRATEGIST_PLANS_DIR = ".bob/plans";
11
+ export declare const BOULDER_REGISTRY_DIR = ".bob/boulder-registry";
12
+ export declare const WORKTREE_BASE_DIR = ".opencode/worktrees";
13
+ export declare const LEGACY_BOULDER_FILE = "boulder.json";
@@ -4,8 +4,37 @@
4
4
  * Handles reading/writing boulder.json for active plan tracking.
5
5
  */
6
6
  import type { BoulderState, PlanProgress, TaskSessionState } from "./types";
7
+ export declare function validatePlanName(planName: string): void;
7
8
  export declare function getBoulderFilePath(directory: string): string;
9
+ /**
10
+ * Read boulder state — v2 compatible
11
+ *
12
+ * v2 behavior:
13
+ * 1. Check if registry exists and has entries
14
+ * 2. If exactly ONE plan exists, return that plan's state (single-plan mode)
15
+ * 3. If ZERO plans exist, check for legacy boulder.json (migration needed)
16
+ * 4. If MULTIPLE plans exist, return null (caller must use registry functions)
17
+ *
18
+ * @param directory - Root directory (where .bob/ lives)
19
+ * @returns BoulderState | null
20
+ *
21
+ * @deprecated For multi-plan scenarios, use readBoulderForPlan() directly
22
+ */
8
23
  export declare function readBoulderState(directory: string): BoulderState | null;
24
+ /**
25
+ * Write boulder state — v2 compatible
26
+ *
27
+ * v2 behavior:
28
+ * 1. Ensure registry exists (triggers migration if legacy boulder.json found)
29
+ * 2. Write to registry using state.plan_name
30
+ * 3. If legacy boulder.json exists, migrate it
31
+ *
32
+ * @param directory - Root directory (where .bob/ lives)
33
+ * @param state - BoulderState to write
34
+ * @returns true on success, false on failure
35
+ *
36
+ * @deprecated For multi-plan scenarios, use writeBoulderForPlan() directly
37
+ */
9
38
  export declare function writeBoulderState(directory: string, state: BoulderState): boolean;
10
39
  export declare function appendSessionId(directory: string, sessionId: string, origin?: "direct" | "appended"): BoulderState | null;
11
40
  export declare function clearBoulderState(directory: string): boolean;
@@ -42,3 +71,69 @@ export declare function getPlanName(planPath: string): string;
42
71
  * Create a new boulder state for a plan.
43
72
  */
44
73
  export declare function createBoulderState(planPath: string, sessionId: string, agent?: string, worktreePath?: string): BoulderState;
74
+ /**
75
+ * Get the boulder registry directory path
76
+ * @returns `{directory}/.bob/boulder-registry`
77
+ */
78
+ export declare function getRegistryDir(directory: string): string;
79
+ /**
80
+ * Read boulder state for a specific plan from registry
81
+ * @returns BoulderState | null if not found or invalid
82
+ */
83
+ export declare function readBoulderForPlan(directory: string, planName: string): BoulderState | null;
84
+ /**
85
+ * Write boulder state for a specific plan atomically
86
+ * Pattern: write to .tmp file, then rename (atomic on POSIX)
87
+ * @returns true on success, false on failure
88
+ */
89
+ export declare function writeBoulderForPlan(directory: string, planName: string, state: BoulderState): boolean;
90
+ /**
91
+ * Delete boulder state for a specific plan from registry
92
+ * @returns true on success, false if file doesn't exist or error
93
+ */
94
+ export declare function deleteBoulderForPlan(directory: string, planName: string): boolean;
95
+ /**
96
+ * Get list of all active plan names from registry
97
+ * @returns Array of plan names (without .json extension)
98
+ */
99
+ export declare function getActivePlans(directory: string): string[];
100
+ /**
101
+ * Get count of active plans
102
+ */
103
+ export declare function getActivePlanCount(directory: string): number;
104
+ /**
105
+ * Find which plan a session ID belongs to
106
+ * Searches all registry files for the session ID
107
+ * @returns Plan name or null if not found
108
+ */
109
+ export declare function findPlanNameForSession(directory: string, sessionId: string): string | null;
110
+ /**
111
+ * Check if there's a conflicting active plan (not the excluded one)
112
+ * @returns true if another plan exists
113
+ */
114
+ export declare function hasConflictingPlan(directory: string, excludePlanName: string): boolean;
115
+ /**
116
+ * Migrate v1 boulder.json to v2 registry format
117
+ * Reads old boulder.json, copies to boulder-registry/{plan_name}.json, renames to .bak
118
+ * @returns true on success or if already migrated, false on failure
119
+ */
120
+ export declare function migrateV1ToV2(directory: string): boolean;
121
+ /**
122
+ * Ensure registry directory exists, trigger migration if v1 found
123
+ */
124
+ export declare function ensureRegistryExists(directory: string): void;
125
+ /**
126
+ * Complete a plan: sync notepads from worktree, remove worktree, delete boulder from registry
127
+ * @param directory - Root directory (where registry lives)
128
+ * @param planName - Plan name to complete
129
+ * @param worktreePath - Optional worktree path to clean up
130
+ * @returns true on success
131
+ */
132
+ export declare function completePlan(directory: string, planName: string, worktreePath?: string): boolean;
133
+ /**
134
+ * Sync .bob/ directory from worktree back to root
135
+ * Copies notepads and other boulder state files
136
+ * @param rootDirectory - Main repo root
137
+ * @param worktreePath - Worktree path to sync from
138
+ */
139
+ export declare function syncBoulderNotepadsFromWorktree(rootDirectory: string, worktreePath: string): void;
@@ -4,6 +4,23 @@
4
4
  * Manages the active work plan state for Bob orchestrator.
5
5
  * Named after Bob's boulder - the eternal task that must be rolled.
6
6
  */
7
+ /**
8
+ * BoulderState - DO NOT MODIFY
9
+ *
10
+ * This type is used by 10+ consumer files across the codebase.
11
+ * Any changes require updating ALL consumers:
12
+ * - resolve-active-boulder-session.ts
13
+ * - idle-event.ts (lines 54, 162, 205)
14
+ * - boulder-continuation-injector.ts
15
+ * - tool-execute-after.ts
16
+ * - tool-execute-before.ts
17
+ * - agent-resolution.ts
18
+ * - boulder-session-lineage.ts
19
+ * - background-launch-session-tracking.ts
20
+ *
21
+ * For new fields, add to BoulderState interface here AND update all consumers.
22
+ * For registry-specific data, use separate BoulderRegistry type (not this one).
23
+ */
7
24
  export interface BoulderState {
8
25
  /** Absolute path to the active plan file */
9
26
  active_plan: string;
@@ -1 +1 @@
1
- export declare const DOCTOR_TEMPLATE = "# Hiai OpenCode Doctor Command\n\n## Purpose\n\nUse /doctor to run the hiai-opencode install/runtime diagnostic and report actionable setup issues.\n\n## Execute\n\nRun:\n\n```bash\nhiai-opencode doctor\n```\n\nIf the binary is not on PATH, try the package-local fallback:\n\n```bash\nnode ./node_modules/@hiai-gg/hiai-opencode/assets/cli/hiai-opencode.mjs doctor\n```\n\n## Report\n\nSummarize:\n\n- config path\n- enabled and disabled MCP servers\n- missing env vars by name only\n- static `.mcp.json` freshness and whether it is managed by hiai-opencode\n- OpenCode Connect visibility for configured model providers\n- OpenCode plugin registration sanity (including `plugin: [\"list\"]` misconfiguration warning)\n- skill materialization status from skill registry\n- agent count and naming summary\n- LSP runtime availability\n- MemPalace python source and selected interpreter (env/config/auto)\n- MCP tool probes (real connect + tools/list) for stdio and basic endpoint probes for remote MCP\n\nRules:\n\n- Do not print API key values.\n- Do not ask for model provider env vars such as OPENROUTER_API_KEY or OPENAI_API_KEY; normal model auth belongs to OpenCode Connect.\n- If `opencode mcp list` is empty but doctor/mcp-status sees servers, explain the runtime-vs-static config distinction and run `hiai-opencode export-mcp .mcp.json` if the user wants static visibility.\n- Do not run package installs unless the user explicitly asks.\n";
1
+ export declare const DOCTOR_TEMPLATE = "# Hiai OpenCode Doctor Command\n\n## Purpose\n\nUse /doctor to run the hiai-opencode install/runtime diagnostic and report actionable setup issues.\n\n## Execute\n\nRun:\n\n```bash\nhiai-opencode doctor\n```\n\nIf the binary is not on PATH, try the package-local fallback:\n\n```bash\nnode ./node_modules/@hiai-gg/hiai-opencode/assets/cli/hiai-opencode.mjs doctor\n```\n\n## Report\n\nSummarize:\n\n- config path\n- enabled and disabled MCP servers\n- missing env vars by name only\n- static `.mcp.json` freshness and whether it is managed by hiai-opencode\n- OpenCode Connect visibility for configured model providers\n- OpenCode plugin registration sanity (including `plugin: [\"list\"]` misconfiguration warning)\n- skill materialization status from skill registry\n- agent count and naming summary\n- LSP runtime availability\n- MemPalace python source and selected interpreter (env/config/auto)\n- MCP tool probes (real connect + tools/list) for stdio and basic endpoint probes for remote MCP\n\nRules:\n\n- Do not print API key values.\n- Do not ask for model provider env vars such as OPENROUTER_API_KEY or OPENAI_API_KEY; normal model auth belongs to OpenCode Connect.\n- If `opencode mcp list` is empty but doctor/mcp-status sees servers, explain the runtime-vs-static config distinction and run `hiai-opencode export-mcp .opencode/.mcp.json` if the user wants static visibility.\n- Do not run package installs unless the user explicitly asks.\n";
@@ -0,0 +1,2 @@
1
+ export declare const LOOP_COMMAND_TEMPLATE = "You are starting a Development Loop - a self-referential loop that runs until task completion.\n\n## How the Loop Works\n\n1. You will work on the task continuously\n2. When you believe the task is fully complete, output: `<promise>{{COMPLETION_PROMISE}}</promise>`\n3. If mode is \"ultrawork\", Critic must verify your work before the loop ends\n4. Maximum iterations: {{MAX_ITERATIONS}}\n\n## Modes\n\n| Mode | Max Iterations | Verification |\n|------|---------------|--------------|\n| normal | 100 | None |\n| ultrawork | 500 | Critic gate after first completion promise |\n\n## Exit Conditions\n\n1. **Normal mode**: Output `<promise>DONE</promise>` when fully complete\n2. **Ultrawork mode**: First `<promise>DONE</promise>` triggers Critic verification. Loop ends only after Critic verifies.\n3. **Max Iterations**: Loop stops automatically at limit\n4. **Cancel**: User runs `/cancel-loop` command\n\n## Your Task\n\nParse the arguments:\n- Task description (required)\n- --mode=normal|ultrawork (default: normal)\n- --completion-promise=TEXT (default: DONE)\n- --strategy=reset|continue (default: continue)\n\nBegin working on the task.";
2
+ export declare const CANCEL_LOOP_TEMPLATE = "Cancel the currently active Development Loop.\n\nThis will:\n1. Stop the loop from continuing\n2. Clear the loop state file\n3. Allow the session to end normally\n\nCheck if a loop is active and cancel it. Inform the user of the result.";
@@ -1 +1 @@
1
- export declare const START_WORK_TEMPLATE = "You are starting a Bob work session.\n\n## ARGUMENTS\n\n- `/start-work [plan-name] [--worktree <path>]`\n - `plan-name` (optional): name or partial match of the plan to start\n - `--worktree <path>` (optional): absolute path to an existing git worktree to work in\n - If specified and valid: hook pre-sets worktree_path in boulder.json\n - If specified but invalid: you must run `git worktree add <path> <branch>` first\n - If omitted: work directly in the current project directory (no worktree)\n\n## WHAT TO DO\n\n1. **Find available plans**: Search for Strategist-generated plan files at `.bob/plans/`\n\n2. **Check for active boulder state**: Read `.bob/boulder.json` if it exists\n\n3. **Decision logic**:\n - If `.bob/boulder.json` exists AND plan is NOT complete (has unchecked boxes):\n - **APPEND** current session to session_ids\n - Continue work on existing plan\n - If no active plan OR plan is complete:\n - List available plan files\n - If ONE plan: auto-select it\n - If MULTIPLE plans: show list with timestamps, ask user to select\n\n4. **Worktree Setup** (ONLY when `--worktree` was explicitly specified and `worktree_path` not already set in boulder.json):\n 1. `git worktree list --porcelain` - see available worktrees\n 2. Create: `git worktree add <absolute-path> <branch-or-HEAD>`\n 3. Update boulder.json to add `\"worktree_path\": \"<absolute-path>\"`\n 4. All work happens inside that worktree directory\n\n5. **Create/Update boulder.json**:\n ```json\n {\n \"active_plan\": \"/absolute/path/to/plan.md\",\n \"started_at\": \"ISO_TIMESTAMP\",\n \"session_ids\": [\"session_id_1\", \"session_id_2\"],\n \"plan_name\": \"plan-name\",\n \"worktree_path\": \"/absolute/path/to/git/worktree\"\n }\n ```\n\n6. **Read the plan file** and start executing tasks according to guard workflow\n\n## OUTPUT FORMAT\n\nWhen listing plans for selection:\n```\nAvailable Work Plans\n\nCurrent Time: {ISO timestamp}\nSession ID: {current session id}\n\n1. [plan-name-1.md] - Modified: {date} - Progress: 3/10 tasks\n2. [plan-name-2.md] - Modified: {date} - Progress: 0/5 tasks\n\nWhich plan would you like to work on? (Enter number or plan name)\n```\n\nWhen resuming existing work:\n```\nResuming Work Session\n\nActive Plan: {plan-name}\nProgress: {completed}/{total} tasks\nSessions: {count} (appending current session)\nWorktree: {worktree_path}\n\nReading plan and continuing from last incomplete task...\n```\n\nWhen auto-selecting single plan:\n```\nStarting Work Session\n\nPlan: {plan-name}\nSession ID: {session_id}\nStarted: {timestamp}\nWorktree: {worktree_path}\n\nReading plan and beginning execution...\n```\n\n## CRITICAL\n\n- The session_id is injected by the hook - use it directly\n- Always update boulder.json BEFORE starting work\n- If worktree_path is set in boulder.json, all work happens inside that worktree directory\n- Read the FULL plan file before delegating any tasks\n- Follow guard delegation protocols (7-section format)\n\n## TASK BREAKDOWN (MANDATORY)\n\nAfter reading the plan file, you MUST decompose every plan task into granular, implementation-level sub-steps and register ALL of them as task/todo items BEFORE starting any work.\n\n**How to break down**:\n- Each plan checkbox item (e.g., `- [ ] Add user authentication`) must be split into concrete, actionable sub-tasks\n- Sub-tasks should be specific enough that each one touches a clear set of files/functions\n- Include: file to modify, what to change, expected behavior, and how to verify\n- Do NOT leave any task vague - \"implement feature X\" is NOT acceptable; \"add validateToken() to src/auth/middleware.ts that checks JWT expiry and returns 401\" IS acceptable\n\n**Example breakdown**:\nPlan task: `- [ ] Add rate limiting to API`\n\u2192 Todo items:\n 1. Create `src/middleware/rate-limiter.ts` with sliding window algorithm (max 100 req/min per IP)\n 2. Add RateLimiter middleware to `src/app.ts` router chain, before auth middleware\n 3. Add rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining) to response in `rate-limiter.ts`\n 4. Add test: verify 429 response after exceeding limit in `src/middleware/rate-limiter.test.ts`\n 5. Add test: verify headers are present on normal responses\n\nRegister these as task/todo items so progress is tracked and visible throughout the session.\n\n## WORKTREE COMPLETION\n\nWhen working in a worktree (`worktree_path` is set in boulder.json) and ALL plan tasks are complete:\n1. Commit all remaining changes in the worktree\n2. **Sync .bob state back**: Copy `.bob/` from the worktree to the main repo before removal.\n This is CRITICAL when `.bob/` is gitignored - state written during worktree execution would otherwise be lost.\n ```bash\n cp -r <worktree-path>/.bob/* <main-repo>/.bob/ 2>/dev/null || true\n ```\n3. Switch to the main working directory (the original repo, NOT the worktree)\n4. Merge the worktree branch into the current branch: `git merge <worktree-branch>`\n5. If merge succeeds, clean up: `git worktree remove <worktree-path>`\n6. Remove the boulder.json state\n\nThis is the DEFAULT behavior when `--worktree` was used. Skip merge only if the user explicitly instructs otherwise (e.g., asks to create a PR instead).";
1
+ export declare const START_WORK_TEMPLATE = "You are starting an orchestration work session.\n\n**Orchestrator agent**: Bob is the primary orchestrator. For complex/waved plans, Bob dispatches Manager as a subagent for parallel wave coordination. For simple plans, Bob executes directly without dispatching Manager.\n\n## ARGUMENTS\n\n- `/start-work [plan-name] [--worktree <path>]`\n - `plan-name` (optional): name or partial match of the plan to start\n - `--worktree <path>` (optional): absolute path to an existing git worktree to work in\n - If specified and valid: hook pre-sets `worktree_path` in the active boulder registry entry\n - If specified but invalid: you must run `git worktree add <path> <branch>` first\n - If omitted: work directly in the current project directory (no worktree)\n\n## WHAT TO DO\n\n1. **Find available plans**: Search for Strategist-generated plan files at `.bob/plans/`\n\n2. **Check for active boulder state**: Read `.bob/boulder-registry/` for active plans\n\n3. **Decision logic**:\n - If the plan already exists in `.bob/boulder-registry/` AND is NOT complete:\n - **APPEND** current session to session_ids\n - Continue work on existing plan\n - If no active plan OR plan is complete:\n - List available plan files\n - If ONE plan: auto-select it\n - If MULTIPLE plans: show list with timestamps, ask user to select\n\n4. **Worktree Setup** (ONLY when `--worktree` was explicitly specified and `worktree_path` not already set in the active registry entry):\n 1. `git worktree list --porcelain` - see available worktrees\n 2. Create: `git worktree add <absolute-path> <branch-or-HEAD>`\n 3. Update the active registry entry to add `\"worktree_path\": \"<absolute-path>\"`\n 4. All work happens inside that worktree directory\n\n5. **Create/Update active boulder registry entry**:\n ```json\n {\n \"active_plan\": \"/absolute/path/to/plan.md\",\n \"started_at\": \"ISO_TIMESTAMP\",\n \"session_ids\": [\"session_id_1\", \"session_id_2\"],\n \"plan_name\": \"plan-name\",\n \"worktree_path\": \"/absolute/path/to/git/worktree\"\n }\n ```\n\n6. **Read the plan file** and start executing tasks according to guard workflow\n\n## OUTPUT FORMAT\n\nWhen listing plans for selection:\n```\nAvailable Work Plans\n\nCurrent Time: {ISO timestamp}\nSession ID: {current session id}\n\n1. [plan-name-1.md] - Modified: {date} - Progress: 3/10 tasks\n2. [plan-name-2.md] - Modified: {date} - Progress: 0/5 tasks\n\nWhich plan would you like to work on? (Enter number or plan name)\n```\n\nWhen resuming existing work:\n```\nResuming Work Session\n\nActive Plan: {plan-name}\nProgress: {completed}/{total} tasks\nSessions: {count} (appending current session)\nWorktree: {worktree_path}\n\nReading plan and continuing from last incomplete task...\n```\n\nWhen auto-selecting single plan:\n```\nStarting Work Session\n\nPlan: {plan-name}\nSession ID: {session_id}\nStarted: {timestamp}\nWorktree: {worktree_path}\n\nReading plan and beginning execution...\n```\n\n## CRITICAL\n\n- The session_id is injected by the hook - use it directly\n- Always update the active boulder registry entry BEFORE starting work\n- If `worktree_path` is set in the active registry entry, all work happens inside that worktree directory\n- Read the FULL plan file before delegating any tasks\n- Follow guard delegation protocols (7-section format)\n\n## TASK BREAKDOWN (MANDATORY)\n\nAfter reading the plan file, you MUST decompose every plan task into granular, implementation-level sub-steps and register ALL of them as task/todo items BEFORE starting any work.\n\n**How to break down**:\n- Each plan checkbox item (e.g., `- [ ] Add user authentication`) must be split into concrete, actionable sub-tasks\n- Sub-tasks should be specific enough that each one touches a clear set of files/functions\n- Include: file to modify, what to change, expected behavior, and how to verify\n- Do NOT leave any task vague - \"implement feature X\" is NOT acceptable; \"add validateToken() to src/auth/middleware.ts that checks JWT expiry and returns 401\" IS acceptable\n\n**Example breakdown**:\nPlan task: `- [ ] Add rate limiting to API`\n\u2192 Todo items:\n 1. Create `src/middleware/rate-limiter.ts` with sliding window algorithm (max 100 req/min per IP)\n 2. Add RateLimiter middleware to `src/app.ts` router chain, before auth middleware\n 3. Add rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining) to response in `rate-limiter.ts`\n 4. Add test: verify 429 response after exceeding limit in `src/middleware/rate-limiter.test.ts`\n 5. Add test: verify headers are present on normal responses\n\nRegister these as task/todo items so progress is tracked and visible throughout the session.\n\n## WORKTREE COMPLETION\n\nWhen ALL plan tasks are complete:\n1. Commit remaining changes in the worktree\n2. The plugin auto-syncs `.bob/notepads/` back to the main repo\n3. The worktree is auto-removed via `git worktree remove`\n4. The plan is deregistered from `boulder-registry/`\n\nDo NOT manually copy `.bob/` -- the plugin handles this.\n\n## PARALLEL PLANS\n\nMultiple plans can run simultaneously. Each plan lives in its own git worktree\nat `.opencode/worktrees/<plan-name>/` for complete filesystem isolation.\n\n- Auto-worktree: created automatically when a second plan starts - no `--worktree` needed\n- Manual worktree: `--worktree <path>` overrides the default location\n- Registry: `.bob/boulder-registry/{plan-name}.json` tracks each plan independently\n- Stop-continuation: only affects the calling session's plan, not other active plans\n";