@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
@@ -0,0 +1,305 @@
1
+ # API Documentation
2
+
3
+ **hiai-opencode** configuration schema, agent model slots, MCP options, skill discovery, and hook configuration.
4
+
5
+ ---
6
+
7
+ ## Plugin Configuration Schema (`hiai-opencode.json`)
8
+
9
+ The user-facing config file lives at the project root (or `.opencode/hiai-opencode.json`). The canonical JSON Schema is at `config/hiai-opencode.schema.json`.
10
+
11
+ ### Top-Level Shape
12
+
13
+ ```json
14
+ {
15
+ "$schema": "./config/hiai-opencode.schema.json",
16
+ "models": { /* 10 primary model slots */ },
17
+ "auth": { /* service auth placeholders */ },
18
+ "mcp": { /* MCP server enable/disable */ },
19
+ "lsp": { /* LSP tool enable/disable */ },
20
+ "skill_discovery": { /* external skill folder scanning */ },
21
+ "subtask2": { "replace_generic": boolean },
22
+ "ralph_loop": { "enabled": boolean, "auto_start_threshold": number }
23
+ }
24
+ ```
25
+
26
+ Only `models` is required. All other top-level keys are optional.
27
+
28
+ ---
29
+
30
+ ## Agent Model Slots
31
+
32
+ The `models` object holds **10 primary slots** — one per visible agent. Each slot accepts either a plain model-ID string or an object with `model` + optional `recommended`.
33
+
34
+ ### TypeScript Interface
35
+
36
+ ```typescript
37
+ type ModelSlot =
38
+ | string
39
+ | {
40
+ model: string;
41
+ recommended?:
42
+ | "xhigh" // architectural planning
43
+ | "high" // complex deep work
44
+ | "middle" // guard / gatekeeping
45
+ | "fast" // bounded cheap tasks
46
+ | "design" // UI / visual
47
+ | "writing" // copy / content
48
+ | "vision"; // multimodal extraction
49
+ };
50
+ ```
51
+
52
+ ### The 10 Slots
53
+
54
+ | Config key | Display name | Purpose | Default recommended |
55
+ |---|---|---|---|
56
+ | `bob` | Bob | Orchestrator, router, entry point | `high` |
57
+ | `coder` | Coder | Deep implementation, bounded execution | `fast` |
58
+ | `strategist` | Strategist | Planning, architecture, pre-check | `xhigh` |
59
+ | `manager` | Manager | Delegation orchestrator, TODO tracker, memory steward | `middle` |
60
+ | `critic` | Critic | Review gate, high-accuracy verification | `high` |
61
+ | `designer` | Designer | UI/visual direction via Stitch MCP | `design` |
62
+ | `researcher` | Researcher | Local + external search | `fast` |
63
+ | `writer` | Writer | Copy, content, positioning, SEO | `writing` |
64
+ | `vision` | Vision | PDF/image/diagram extraction, browser UI verification | `vision` |
65
+ | `sub` | Sub | Bounded compatibility wrapper (hidden) | `fast` |
66
+
67
+ > **Note:** `guard` and `brainstormer` are legacy config keys preserved for migration compatibility. They map to `manager` and `writer` respectively via `src/shared/migration/agent-names.ts`. The schema still requires `guard` and `brainstormer` entries, but the runtime resolves them to the canonical slots.
68
+
69
+ ### Recommended Effort Tiers
70
+
71
+ The `recommended` field is advisory only — it appends a prompt hint so the agent allocates the right reasoning effort. It does not change routing or enforce limits.
72
+
73
+ ---
74
+
75
+ ## MCP Server Configuration
76
+
77
+ The `mcp` object in `hiai-opencode.json` is the **user-facing on/off switchboard**. The source of truth for launch wiring (command, env vars, install strategy) is `src/mcp/registry.ts`.
78
+
79
+ ### Generic Toggle
80
+
81
+ ```json
82
+ {
83
+ "mcp": {
84
+ "<server>": { "enabled": boolean }
85
+ }
86
+ }
87
+ ```
88
+
89
+ ### All MCP Servers
90
+
91
+ | Server | Config key | Default | Key env var | What it enables |
92
+ |---|---|---|---|---|
93
+ | Stitch | `mcp.stitch` | `true` | `STITCH_AI_API_KEY` | Designer: design systems, screen generation |
94
+ | Sequential Thinking | `mcp.sequential-thinking` | `true` | — | Strategist + Critic: deep reasoning |
95
+ | MemPalace | `mcp.mempalace` | `true` | `MEMPALACE_PYTHON` | Manager (primary), all agents (search before answer) |
96
+ | Context7 | `mcp.context7` | `true` | `CONTEXT7_API_KEY` | Researcher + Coder: library API lookup |
97
+ | grep_app | `mcp.grep_app` | `true` | — | Researcher: OSS code pattern search |
98
+ | Agent Browser | `mcp.agentBrowser` | `true` | `AGENT_BROWSER_*` | Coder: browser automation via `/agent-browser` skill |
99
+
100
+ ### MemPalace Extended Config
101
+
102
+ ```json
103
+ {
104
+ "mcp": {
105
+ "mempalace": {
106
+ "enabled": true,
107
+ "pythonPath": "{env:MEMPALACE_PYTHON:-./.venv/bin/python}"
108
+ }
109
+ }
110
+ }
111
+ ```
112
+
113
+ - `pythonPath`: optional explicit Python/Ruv interpreter. Overrides `MEMPALACE_PYTHON` env var.
114
+ - When `HIAI_MCP_AUTO_INSTALL` is not `0`, `false`, or `no`, the launcher attempts `python -m pip install --user mempalace` on first start.
115
+
116
+ ### Agent Browser Extended Config
117
+
118
+ ```json
119
+ {
120
+ "mcp": {
121
+ "agentBrowser": {
122
+ "enabled": true,
123
+ "autoInstall": false,
124
+ "sessionPrefix": "hiai-opencode",
125
+ "timeout": 30000,
126
+ "maxBatchCommands": 20
127
+ }
128
+ }
129
+ }
130
+ ```
131
+
132
+ ### Environment Variables in MCP Config
133
+
134
+ Use the `{env:VARIABLE_NAME}` placeholder to pass secrets through the env scrubber:
135
+
136
+ ```json
137
+ {
138
+ "mcp": {
139
+ "firecrawl-cli": {
140
+ "enabled": true,
141
+ "environment": { "FIRECRAWL_API_KEY": "{env:FIRECRAWL_API_KEY}" }
142
+ }
143
+ }
144
+ }
145
+ ```
146
+
147
+ Explicit `environment` entries are an allowlist and bypass the filter that strips secret-shaped variables from `process.env` before launching stdio MCP servers.
148
+
149
+ ---
150
+
151
+ ## Skill Discovery Options
152
+
153
+ The `skill_discovery` object controls which external skill folders are scanned.
154
+
155
+ ### TypeScript Interface
156
+
157
+ ```typescript
158
+ interface SkillDiscovery {
159
+ config_sources: boolean; // default: true — hiai-opencode bundled skills
160
+ project_opencode: boolean; // default: true — .opencode/skills in project
161
+ global_opencode: boolean; // default: false — global ~/.opencode/skills/
162
+ project_claude: boolean; // default: false — project-level Claude skills
163
+ global_claude: boolean; // default: false — global ~/.claude/skills/
164
+ project_agents: boolean; // default: false — project-level Agents skills
165
+ global_agents: boolean; // default: false — global agents skills
166
+ }
167
+ ```
168
+
169
+ ### Default (Deterministic) Configuration
170
+
171
+ ```json
172
+ {
173
+ "skill_discovery": {
174
+ "config_sources": true,
175
+ "project_opencode": true,
176
+ "global_opencode": false,
177
+ "project_claude": false,
178
+ "global_claude": false,
179
+ "project_agents": false,
180
+ "global_agents": false
181
+ }
182
+ }
183
+ ```
184
+
185
+ ### Per-Skill Disable
186
+
187
+ To silence noisy individual skills without disabling an entire folder:
188
+
189
+ ```json
190
+ {
191
+ "skills": {
192
+ "disable": ["claude-md-management"]
193
+ }
194
+ }
195
+ ```
196
+
197
+ ---
198
+
199
+ ## Hook Configuration
200
+
201
+ Hooks are registered internally and not directly user-configurable in `hiai-opencode.json`. The hook system intercepts OpenCode lifecycle events.
202
+
203
+ ### Configuration via `ralph_loop`
204
+
205
+ Ralph-loop continuation behavior is tunable:
206
+
207
+ ```json
208
+ {
209
+ "ralph_loop": {
210
+ "enabled": true,
211
+ "auto_start_threshold": 5
212
+ }
213
+ }
214
+ ```
215
+
216
+ - `enabled`: whether ralph-loop is active
217
+ - `auto_start_threshold`: auto-start ralph-loop when this many or more open todos exist in a single session. `0` disables auto-start.
218
+
219
+ ### Compaction Configuration
220
+
221
+ Compaction is triggered automatically at 78% context usage. Per-agent compaction model overrides can be set via:
222
+
223
+ ```json
224
+ {
225
+ "agents": {
226
+ "<agentName>": {
227
+ "compaction": {
228
+ "model": "provider/model-id"
229
+ }
230
+ }
231
+ }
232
+ }
233
+ ```
234
+
235
+ ### Available Hooks (55 total)
236
+
237
+ | Tier | Count | Files | Purpose |
238
+ |---|---|---|---|
239
+ | Core | 45 | `createSessionHooks` (23), `createToolGuardHooks` (16), `createTransformHooks` (6) | Primary session monitoring, tool guards, message transforms |
240
+ | Continuation | 8 | `createContinuationHooks` | Todo enforcement, stop-continuation guard, compaction context, session recovery |
241
+ | Skill | 2 | `createSkillHooks` | Category skill reminder, auto-slash command |
242
+
243
+ ### Key Compaction Hooks
244
+
245
+ | Hook | Handler | Purpose |
246
+ |---|---|---|
247
+ | `preemptive-compaction` | `tool.execute.after`, `event` | Triggers `session.summarize()` when usage > 78% |
248
+ | `context-window-monitor` | `tool.execute.after`, `event` | Injects usage reminder at > 70% |
249
+ | `compaction-context-injector` | `experimental.session.compacting` | Injects checkpoint context post-compaction |
250
+ | `compaction-todo-preserver` | `experimental.session.compacting` | Preserves/restores todo list around compaction |
251
+ | `anthropic-context-window-limit-recovery` | `event` | Multi-strategy error recovery |
252
+
253
+ See [hooks-architecture.md](./hooks-architecture.md) for the full architecture.
254
+
255
+ ---
256
+
257
+ ## Ralph-Loop Configuration
258
+
259
+ ```json
260
+ {
261
+ "ralph_loop": {
262
+ "enabled": true,
263
+ "auto_start_threshold": 5
264
+ }
265
+ }
266
+ ```
267
+
268
+ The ralph-loop continuation engine runs an explicit completion loop for multi-todo sessions. It stops on `<promise>DONE</promise>`. Cancel with `/cancel-ralph`.
269
+
270
+ | Field | Type | Default | Description |
271
+ |---|---|---|---|
272
+ | `enabled` | boolean | `true` | Whether ralph-loop is enabled |
273
+ | `auto_start_threshold` | number | `0` | Auto-start when open todos ≥ this value. `0` disables |
274
+
275
+ ---
276
+
277
+ ## LSP Configuration
278
+
279
+ LSP tool defaults (not runtime language servers):
280
+
281
+ ```json
282
+ {
283
+ "lsp": {
284
+ "typescript": { "enabled": true },
285
+ "svelte": { "enabled": true },
286
+ "eslint": { "enabled": true },
287
+ "bash": { "enabled": true },
288
+ "pyright": { "enabled": true }
289
+ }
290
+ }
291
+ ```
292
+
293
+ ---
294
+
295
+ ## Subtask2 Configuration
296
+
297
+ ```json
298
+ {
299
+ "subtask2": {
300
+ "replace_generic": true
301
+ }
302
+ }
303
+ ```
304
+
305
+ When `true`, generic `task()` responses are replaced with a structured return prompt before the parent agent sees them.
@@ -0,0 +1,225 @@
1
+ # ARC-001: Hook Architecture
2
+
3
+ **Owner:** hiai-opencode core
4
+ **Status:** Implemented
5
+ **Created:** 2026-05-15
6
+
7
+ ## Overview
8
+
9
+ The hook system is the primary extension point for hiai-opencode. It intercepts OpenCode lifecycle events (session lifecycle, tool execution, message updates) and allows the plugin to react, inject context, or trigger side effects.
10
+
11
+ Hooks are registered as handlers on OpenCode's plugin interface. Each hook returns an object with one or more handler methods corresponding to OpenCode hook types: `event`, `tool.execute.before`, `tool.execute.after`, `experimental.chat.messages.transform`, and `experimental.session.compacting`.
12
+
13
+ ## Hook Tiers
14
+
15
+ Hooks are organized into three tiers:
16
+
17
+ | Tier | Count | Files | Purpose |
18
+ |------|-------|-------|---------|
19
+ | **Core** | 43 | `create-core-hooks.ts` → `createSessionHooks` (22), `createToolGuardHooks` (15), `createTransformHooks` (6) | Primary session monitoring, tool guards, message transforms |
20
+ | **Continuation** | 8 | `create-continuation-hooks.ts` | Todo enforcement, stop-continuation guard, compaction context, session recovery, delegate task retry |
21
+ | **Skill** | 2 | `create-skill-hooks.ts` | Category skill reminder, auto-slash command |
22
+
23
+ Total: **53 hooks** across the three tiers.
24
+
25
+ ## Compaction System Architecture
26
+
27
+ The compaction system prevents context window exhaustion through a layered approach:
28
+
29
+ ```
30
+ ┌─────────────────────────────────────────────────────┐
31
+ │ Compaction Flow │
32
+ │ │
33
+ │ Preemptive Compaction │
34
+ │ ├── Trigger: usage ratio > 78% after assistant msg │
35
+ │ ├── monitor: tokenCache (providerID, modelID, tokens)│
36
+ │ ├── guard: isCompacting() — prevents concurrent │
37
+ │ └── action: session.summarize() with timeout │
38
+ │ │
39
+ │ Auto-Compact (error-triggered) │
40
+ │ ├── Trigger: session.error with parsed token limit │
41
+ │ ├── Strategy 1: empty-content-recovery │
42
+ │ ├── Strategy 2: deduplication │
43
+ │ ├── Strategy 3: target-token-truncation │
44
+ │ ├── Strategy 4: aggressive-truncation │
45
+ │ └── Strategy 5: summarize-retry │
46
+ │ │
47
+ │ Post-Compaction Degradation Monitor │
48
+ │ ├── Track: 5 messages after compaction │
49
+ │ ├── Trigger: 3 consecutive no-text responses │
50
+ │ ├── Action: recovery compaction with toast │
51
+ │ └── Guard: MAX_RECOVERY_ATTEMPTS=3 │
52
+ └─────────────────────────────────────────────────────┘
53
+ ```
54
+
55
+ ## Key Hooks
56
+
57
+ ### `preemptive-compaction.ts`
58
+
59
+ **Type:** Core — Session hook
60
+ **Handlers:** `tool.execute.after`, `event`
61
+
62
+ Preemptively triggers compaction when the session's token usage exceeds 78% of the resolved context limit. It does not wait for an error.
63
+
64
+ **Trigger conditions:**
65
+ - Usage ratio `(inputTokens + cacheReadTokens) / actualLimit > 0.78`
66
+ - Session has a cached token state (populated via `message.updated`)
67
+ - No active compaction in progress (`isCompacting()`)
68
+ - Cooldown elapsed (>60s since last compaction attempt)
69
+
70
+ **Key functions:**
71
+ - `withTimeout(promise, 60_000)` — hard timeout on summarize call
72
+ - `resolveCompactionModel()` — resolves per-agent compaction model override from `pluginConfig.agents.<agent>.compaction.model`
73
+ - `markCompacting()` / `markCompactionDone()` — shared state guard
74
+
75
+ **Dependencies:** `shared/compaction-in-progress` (isCompacting, markCompacting, markCompactionDone)
76
+
77
+ ### `context-window-monitor.ts`
78
+
79
+ **Type:** Core — Session hook
80
+ **Handlers:** `tool.execute.after`, `event`
81
+
82
+ Monitors context usage and injects a reminder directive when usage exceeds 70%. Unlike preemptive compaction, this does not trigger compaction — it only advises the agent to be more concise.
83
+
84
+ **Trigger conditions:**
85
+ - Usage ratio > 0.70 after assistant message finish
86
+ - Session not yet reminded
87
+
88
+ **Effect:** Appends to tool output:
89
+ ```
90
+ [Context Status: {usedPct}% used ({usedTokens}/{limitTokens} tokens), {remainingPct}% remaining]
91
+ ```
92
+
93
+ ### `anthropic-context-window-limit-recovery/`
94
+
95
+ **Type:** Core — Session hook (disposable)
96
+ **Handler:** `event`
97
+
98
+ Recovers from context window limit errors using a multi-strategy approach applied in sequence.
99
+
100
+ **Recovery strategies (priority order):**
101
+
102
+ | Strategy | File | Mechanism |
103
+ |----------|------|-----------|
104
+ | Empty content recovery | `empty-content-recovery.ts` | Handle empty/null content blocks in messages |
105
+ | Deduplication | `deduplication-recovery.ts` | Remove duplicate tool results from context |
106
+ | Target token truncation | `target-token-truncation.ts` | Truncate largest tool outputs to fit 50% target ratio |
107
+ | Aggressive truncation | `aggressive-truncation-strategy.ts` | Last-resort truncation with minimal output preservation |
108
+ | Summarize retry | `summarize-retry-strategy.ts` | Compaction + summarization then retry |
109
+
110
+ **Event handling:**
111
+ - `session.error` — parse error with `parseAnthropicTokenLimitError()`, schedule compaction with 300ms delay
112
+ - `message.updated` — capture error info if role=assistant with error
113
+ - `session.idle` — execute compaction if session is in pendingCompact state and has no summary
114
+
115
+ **Configuration:**
116
+ - Max attempts: 2
117
+ - Initial delay: 2s, backoff ×2, max 30s
118
+ - Max truncation attempts: 20
119
+ - Target token ratio: 0.5
120
+
121
+ ### `compaction-context-injector/`
122
+
123
+ **Type:** Core — Transform hook (on `experimental.session.compacting`)
124
+ **Handlers:** `capture(sessionID)`, `inject(sessionID?)`, `event`
125
+
126
+ Injects context around compaction events. The `capture` function saves the agent config checkpoint before compaction. The `inject` function appends the compaction context prompt after compaction.
127
+
128
+ **Event handling:**
129
+ - `session.compacted` — recovers checkpointed agent config, warns about no-text tails
130
+ - `session.idle` — finalizes tracked assistant messages
131
+ - `message.part.delta` — tracks text output to detect no-text tails
132
+
133
+ **Key behavior:** Integrates with `backgroundManager.taskHistory` to inject active delegated session history into the compaction context prompt.
134
+
135
+ ### `compaction-todo-preserver/`
136
+
137
+ **Type:** Core — Transform hook (on `experimental.session.compacting`)
138
+ **Handlers:** `capture(sessionID)`, `event`
139
+
140
+ Captures the todo list before compaction and restores it after.
141
+
142
+ **Event handling:**
143
+ - `session.compacted` — restores todos via `opencode/session/todo`'s `Todo.update`
144
+ - `session.deleted` — clears local snapshot
145
+
146
+ **Behavior:** Skips restore if todos already exist post-compaction.
147
+
148
+ ## Shared State
149
+
150
+ ### `shared/compaction-in-progress.ts`
151
+
152
+ ```typescript
153
+ const compactionInProgress = new Set<string>()
154
+
155
+ export function isCompacting(sessionID: string): boolean
156
+ export function markCompacting(sessionID: string): void
157
+ export function markCompactionDone(sessionID: string): void
158
+ export function clearSession(sessionID: string): void
159
+ ```
160
+
161
+ Prevents concurrent compaction attempts on the same session. Used by `preemptive-compaction.ts`, `preemptive-compaction-degradation-monitor.ts`, and `anthropic-context-window-limit-recovery/recovery-hook.ts`.
162
+
163
+ ### `shared/compaction-model-resolver.ts`
164
+
165
+ ```typescript
166
+ resolveCompactionModel(
167
+ pluginConfig: HiaiOpenCodeConfig,
168
+ sessionID: string,
169
+ originalProviderID: string,
170
+ originalModelID: string
171
+ ): { providerID: string; modelID: string }
172
+ ```
173
+
174
+ Resolves which model to use for compaction, reading from the session's assigned agent name. Falls back to the original model if no override is configured.
175
+
176
+ ## Hook Execution Order
177
+
178
+ Hooks are executed in registration order. OpenCode calls handlers synchronously per hook type. The execution order across tiers is not deterministic — each hook type (`event`, `tool.execute.after`, etc.) runs its registered hooks in the order they were composed in `createHooks()`.
179
+
180
+ **Observed execution order for compaction:**
181
+
182
+ 1. `context-window-monitor` — `tool.execute.after`: checks usage ratio, does not trigger compaction
183
+ 2. `preemptive-compaction` — `tool.execute.after`: checks usage ratio, may trigger compaction via `session.summarize()`
184
+ 3. `preemptive-compaction-degradation-monitor` — driven by `preemptive-compaction` callback, monitors post-compaction messages
185
+ 4. `compaction-context-injector` — `experimental.session.compacting`: injects context
186
+ 5. `compaction-todo-preserver` — `experimental.session.compacting`: preserves todos
187
+ 6. `anthropic-context-window-limit-recovery` — `event` (`session.error`): handles error-based compaction
188
+
189
+ ## Error Handling
190
+
191
+ - **`withTimeout` wrapper:** All `session.summarize()` calls are wrapped in a timeout (60s preemptive, 120s recovery). On timeout, the compaction is considered failed and the session continues.
192
+ - **Toast notifications:** Failures in preemptive compaction show a warning toast. Recovery compaction shows a "Session Degradation Detected" toast.
193
+ - **Per-hook isolation:** The `safeHook()` wrapper in composition files catches errors per-hook without breaking the chain. A failing hook does not prevent other hooks from running.
194
+ - **`dispose()`:** Some hooks expose a `dispose()` function to clean up timers and state. These are called via `disposeCreatedHooks()` when the plugin shuts down.
195
+
196
+ ## Hook Handler Types
197
+
198
+ | Handler | File pattern | Purpose |
199
+ |---------|-------------|---------|
200
+ | `event` | Most session hooks | Handle session lifecycle events: `session.created`, `session.deleted`, `session.idle`, `session.error`, `session.compacted`, `message.updated` |
201
+ | `tool.execute.before` | Tool guard hooks | Inspect/modify tool input before execution |
202
+ | `tool.execute.after` | Tool guard hooks, monitoring hooks | Inspect/modify tool output after execution |
203
+ | `experimental.chat.messages.transform` | Transform hooks | Modify message content before sending to model |
204
+ | `experimental.session.compacting` | Compaction hooks | Capture/restore state around compaction |
205
+
206
+ ## Key Files Reference
207
+
208
+ | File | Purpose |
209
+ |------|---------|
210
+ | `src/create-hooks.ts` | Top-level hook composition — `createCoreHooks()` + `createContinuationHooks()` + `createSkillHooks()` |
211
+ | `src/plugin/hooks/create-core-hooks.ts` | Aggregates session, tool guard, and transform hooks |
212
+ | `src/plugin/hooks/create-session-hooks.ts` | 22 session lifecycle hooks |
213
+ | `src/plugin/hooks/create-tool-guard-hooks.ts` | 15 pre/post tool execution guards |
214
+ | `src/plugin/hooks/create-transform-hooks.ts` | 6 message transform hooks |
215
+ | `src/plugin/hooks/create-continuation-hooks.ts` | 8 continuation/todo hooks |
216
+ | `src/plugin/hooks/create-skill-hooks.ts` | 2 skill hooks |
217
+ | `src/hooks/shared/compaction-in-progress.ts` | Shared compaction lock |
218
+ | `src/hooks/shared/compaction-model-resolver.ts` | Per-agent compaction model resolution |
219
+ | `src/hooks/preemptive-compaction.ts` | Preemptive compaction trigger |
220
+ | `src/hooks/preemptive-compaction-degradation-monitor.ts` | Post-compaction degradation detection |
221
+ | `src/hooks/preemptive-compaction-no-text-tail.ts` | Detects no-text assistant responses |
222
+ | `src/hooks/context-window-monitor.ts` | Context usage reminder |
223
+ | `src/hooks/anthropic-context-window-limit-recovery/` | Multi-strategy error recovery (~31 files) |
224
+ | `src/hooks/compaction-context-injector/` | Compaction context injection |
225
+ | `src/hooks/compaction-todo-preserver/` | Todo preservation |