@hiai-gg/hiai-opencode 0.2.1 → 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 (477) hide show
  1. package/.env.example +4 -0
  2. package/AGENTS.md +34 -38
  3. package/ARCHITECTURE.md +4 -3
  4. package/LICENSE.md +14 -0
  5. package/README.md +52 -21
  6. package/config/hiai-opencode.schema.json +11 -13
  7. package/dist/agents/{bob.d.ts → bob/claude.d.ts} +6 -2
  8. package/dist/agents/bob/core.d.ts +6 -0
  9. package/dist/agents/bob/gpt.d.ts +11 -0
  10. package/dist/agents/bob/index.d.ts +3 -0
  11. package/dist/agents/coder/core.d.ts +4 -0
  12. package/dist/agents/coder/gpt.d.ts +1 -4
  13. package/dist/agents/coder/index.d.ts +1 -0
  14. package/dist/agents/manager/agent.d.ts +1 -1
  15. package/dist/agents/manager/default-prompt-sections.d.ts +3 -3
  16. package/dist/agents/manager/guard-integration.d.ts +1 -0
  17. package/dist/agents/prompt-library/index.d.ts +0 -1
  18. package/dist/agents/prompt-library/shared-execution.d.ts +9 -0
  19. package/dist/agents/strategist/behavioral-summary.d.ts +1 -1
  20. package/dist/agents/strategist/identity-constraints.d.ts +1 -1
  21. package/dist/agents/strategist/plan-generation.d.ts +1 -1
  22. package/dist/agents/types.d.ts +2 -1
  23. package/dist/config/defaults.d.ts +1 -0
  24. package/dist/config/platform-schema.d.ts +26 -26
  25. package/dist/config/schema/agent-names.d.ts +6 -6
  26. package/dist/config/schema/agent-overrides.d.ts +0 -128
  27. package/dist/config/schema/hiai-opencode-config.d.ts +0 -128
  28. package/dist/config/types.d.ts +2 -2
  29. package/dist/features/background-agent/manager-notifier.d.ts +46 -0
  30. package/dist/features/background-agent/manager-types.d.ts +40 -0
  31. package/dist/features/background-agent/manager.d.ts +3 -19
  32. package/dist/features/background-agent/polling-manager.d.ts +51 -0
  33. package/dist/features/boulder-state/storage.d.ts +1 -0
  34. package/dist/features/builtin-commands/templates/loop.d.ts +2 -0
  35. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
  36. package/dist/features/builtin-skills/skills/interview-me.d.ts +2 -0
  37. package/dist/features/builtin-skills/skills/planning-and-task-breakdown.d.ts +2 -0
  38. package/dist/hooks/reasoning-content-cache/hook.d.ts +11 -0
  39. package/dist/hooks/reasoning-content-cache/index.d.ts +1 -0
  40. package/dist/hooks/session-recovery/checkpoint.d.ts +48 -0
  41. package/dist/hooks/session-recovery/enhanced-hook.d.ts +30 -0
  42. package/dist/hooks/session-recovery/state-backup.d.ts +76 -0
  43. package/dist/hooks/shared/compaction-in-progress.d.ts +4 -0
  44. package/dist/hooks/start-work/git-operations.d.ts +47 -0
  45. package/dist/hooks/token-budget.d.ts +30 -0
  46. package/dist/index.js +1185 -1078
  47. package/dist/mcp/rate-limiter.d.ts +68 -0
  48. package/dist/plugin/chat-message.d.ts +8 -0
  49. package/dist/plugin/command-execute-before.d.ts +1 -1
  50. package/dist/plugin/event-handlers/message-updated.d.ts +2 -0
  51. package/dist/plugin/event-handlers/session-error.d.ts +2 -0
  52. package/dist/plugin/event-handlers/session-status.d.ts +2 -0
  53. package/dist/plugin/event-handlers/types.d.ts +62 -0
  54. package/dist/plugin/event-handlers/utils.d.ts +11 -0
  55. package/dist/plugin/event.d.ts +1 -1
  56. package/dist/shared/data-path.d.ts +1 -1
  57. package/dist/shared/errors.d.ts +70 -0
  58. package/dist/shared/extract-session-id.d.ts +8 -0
  59. package/dist/shared/git-worktree/get-git-state-summary.d.ts +14 -0
  60. package/dist/shared/index.d.ts +67 -68
  61. package/dist/shared/internal-initiator-marker.d.ts +1 -1
  62. package/dist/shared/logger.d.ts +5 -1
  63. package/dist/shared/reasoning-content-cache.d.ts +68 -0
  64. package/dist/shared/safe-create-hook.d.ts +4 -4
  65. package/dist/tools/call-hiai-agent/constants.d.ts +2 -2
  66. package/dist/tools/delegate-task/sub-agent.d.ts +1 -1
  67. package/dist/tools/look-at/constants.d.ts +1 -1
  68. package/docs/architecture/bob-manager-architecture.md +244 -0
  69. package/docs/hiai-opencode/adr/ADR-001-agent-identity-section-injection.md +66 -0
  70. package/docs/hiai-opencode/adr/ADR-002-anti-loop-guard-priority.md +63 -0
  71. package/docs/hiai-opencode/adr/ADR-003-compaction-mechanism.md +71 -0
  72. package/docs/hiai-opencode/adr/ADR-004-session-recovery.md +76 -0
  73. package/docs/hiai-opencode/api.md +305 -0
  74. package/docs/hiai-opencode/hooks-architecture.md +225 -0
  75. package/docs/hiai-opencode/migration.md +209 -0
  76. package/docs/skill-discovery.md +288 -0
  77. package/package.json +1 -1
  78. package/skills/agent-browser/SKILL.md +193 -0
  79. package/skills/apple-hig/SKILL.md +43 -0
  80. package/skills/article-magazine/SKILL.md +46 -0
  81. package/skills/article-magazine/example.html +81 -0
  82. package/skills/article-magazine/example.md +38 -0
  83. package/skills/canvas-design/SKILL.md +45 -0
  84. package/skills/design-templates/audio-jingle/SKILL.md +132 -0
  85. package/skills/design-templates/audio-jingle/example.html +128 -0
  86. package/skills/design-templates/blog-post/SKILL.md +80 -0
  87. package/skills/design-templates/blog-post/example.html +80 -0
  88. package/skills/design-templates/clinical-case-report/SKILL.md +209 -0
  89. package/skills/design-templates/clinical-case-report/example.html +698 -0
  90. package/skills/design-templates/clinical-case-report/examples/example-stemi.html +698 -0
  91. package/skills/design-templates/clinical-case-report/references/case-formats.md +94 -0
  92. package/skills/design-templates/clinical-case-report/references/checklist.md +41 -0
  93. package/skills/design-templates/critique/SKILL.md +258 -0
  94. package/skills/design-templates/critique/example.html +671 -0
  95. package/skills/design-templates/dashboard/SKILL.md +76 -0
  96. package/skills/design-templates/dashboard/example.html +118 -0
  97. package/skills/design-templates/dating-web/SKILL.md +92 -0
  98. package/skills/design-templates/dating-web/example.html +265 -0
  99. package/skills/design-templates/dcf-valuation/SKILL.md +140 -0
  100. package/skills/design-templates/dcf-valuation/references/sector-wacc.md +42 -0
  101. package/skills/design-templates/digital-eguide/SKILL.md +94 -0
  102. package/skills/design-templates/digital-eguide/example.html +204 -0
  103. package/skills/design-templates/docs-page/SKILL.md +80 -0
  104. package/skills/design-templates/docs-page/example.html +122 -0
  105. package/skills/design-templates/email-marketing/SKILL.md +84 -0
  106. package/skills/design-templates/email-marketing/example.html +159 -0
  107. package/skills/design-templates/eng-runbook/SKILL.md +51 -0
  108. package/skills/design-templates/eng-runbook/example.html +250 -0
  109. package/skills/design-templates/finance-report/SKILL.md +61 -0
  110. package/skills/design-templates/finance-report/example.html +242 -0
  111. package/skills/design-templates/flowai-live-dashboard-template/SKILL.md +87 -0
  112. package/skills/design-templates/flowai-live-dashboard-template/assets/template.html +387 -0
  113. package/skills/design-templates/flowai-live-dashboard-template/example.html +13 -0
  114. package/skills/design-templates/flowai-live-dashboard-template/references/checklist.md +35 -0
  115. package/skills/design-templates/gamified-app/SKILL.md +108 -0
  116. package/skills/design-templates/gamified-app/example.html +292 -0
  117. package/skills/design-templates/github-dashboard/SKILL.md +130 -0
  118. package/skills/design-templates/github-dashboard/example.html +473 -0
  119. package/skills/design-templates/github-dashboard/references/README.md +10 -0
  120. package/skills/design-templates/github-dashboard/references/artifact-example.json +15 -0
  121. package/skills/design-templates/github-dashboard/references/example-data.json +138 -0
  122. package/skills/design-templates/github-dashboard/references/provenance-example.json +92 -0
  123. package/skills/design-templates/github-dashboard/references/template.html +473 -0
  124. package/skills/design-templates/guizang-ppt/LICENSE +21 -0
  125. package/skills/design-templates/guizang-ppt/README.en.md +119 -0
  126. package/skills/design-templates/guizang-ppt/README.md +120 -0
  127. package/skills/design-templates/guizang-ppt/README.pt-BR.md +121 -0
  128. package/skills/design-templates/guizang-ppt/SKILL.md +313 -0
  129. package/skills/design-templates/guizang-ppt/assets/example-slides.html +318 -0
  130. package/skills/design-templates/guizang-ppt/assets/template.html +647 -0
  131. package/skills/design-templates/guizang-ppt/references/checklist.md +265 -0
  132. package/skills/design-templates/guizang-ppt/references/components.md +363 -0
  133. package/skills/design-templates/guizang-ppt/references/layouts.md +630 -0
  134. package/skills/design-templates/guizang-ppt/references/styles.md +195 -0
  135. package/skills/design-templates/guizang-ppt/references/themes.md +122 -0
  136. package/skills/design-templates/hr-onboarding/SKILL.md +52 -0
  137. package/skills/design-templates/hr-onboarding/example.html +219 -0
  138. package/skills/design-templates/html-ppt/.clawscan-allow +12 -0
  139. package/skills/design-templates/html-ppt/LICENSE +21 -0
  140. package/skills/design-templates/html-ppt/README.md +234 -0
  141. package/skills/design-templates/html-ppt/README.pt-BR.md +239 -0
  142. package/skills/design-templates/html-ppt/README.zh-CN.md +238 -0
  143. package/skills/design-templates/html-ppt/SKILL.md +250 -0
  144. package/skills/design-templates/html-ppt/assets/animations/animations.css +138 -0
  145. package/skills/design-templates/html-ppt/assets/animations/fx/_util.js +63 -0
  146. package/skills/design-templates/html-ppt/assets/animations/fx/chain-react.js +41 -0
  147. package/skills/design-templates/html-ppt/assets/animations/fx/confetti-cannon.js +49 -0
  148. package/skills/design-templates/html-ppt/assets/animations/fx/constellation.js +44 -0
  149. package/skills/design-templates/html-ppt/assets/animations/fx/counter-explosion.js +58 -0
  150. package/skills/design-templates/html-ppt/assets/animations/fx/data-stream.js +45 -0
  151. package/skills/design-templates/html-ppt/assets/animations/fx/firework.js +51 -0
  152. package/skills/design-templates/html-ppt/assets/animations/fx/galaxy-swirl.js +33 -0
  153. package/skills/design-templates/html-ppt/assets/animations/fx/gradient-blob.js +39 -0
  154. package/skills/design-templates/html-ppt/assets/animations/fx/knowledge-graph.js +69 -0
  155. package/skills/design-templates/html-ppt/assets/animations/fx/letter-explode.js +50 -0
  156. package/skills/design-templates/html-ppt/assets/animations/fx/magnetic-field.js +40 -0
  157. package/skills/design-templates/html-ppt/assets/animations/fx/matrix-rain.js +33 -0
  158. package/skills/design-templates/html-ppt/assets/animations/fx/neural-net.js +75 -0
  159. package/skills/design-templates/html-ppt/assets/animations/fx/orbit-ring.js +38 -0
  160. package/skills/design-templates/html-ppt/assets/animations/fx/particle-burst.js +42 -0
  161. package/skills/design-templates/html-ppt/assets/animations/fx/shockwave.js +39 -0
  162. package/skills/design-templates/html-ppt/assets/animations/fx/sparkle-trail.js +62 -0
  163. package/skills/design-templates/html-ppt/assets/animations/fx/starfield.js +30 -0
  164. package/skills/design-templates/html-ppt/assets/animations/fx/typewriter-multi.js +51 -0
  165. package/skills/design-templates/html-ppt/assets/animations/fx/word-cascade.js +47 -0
  166. package/skills/design-templates/html-ppt/assets/animations/fx-runtime.js +99 -0
  167. package/skills/design-templates/html-ppt/assets/base.css +150 -0
  168. package/skills/design-templates/html-ppt/assets/fonts.css +9 -0
  169. package/skills/design-templates/html-ppt/assets/runtime.js +960 -0
  170. package/skills/design-templates/html-ppt/assets/themes/academic-paper.css +23 -0
  171. package/skills/design-templates/html-ppt/assets/themes/arctic-cool.css +14 -0
  172. package/skills/design-templates/html-ppt/assets/themes/aurora.css +20 -0
  173. package/skills/design-templates/html-ppt/assets/themes/bauhaus.css +16 -0
  174. package/skills/design-templates/html-ppt/assets/themes/blueprint.css +19 -0
  175. package/skills/design-templates/html-ppt/assets/themes/catppuccin-latte.css +14 -0
  176. package/skills/design-templates/html-ppt/assets/themes/catppuccin-mocha.css +14 -0
  177. package/skills/design-templates/html-ppt/assets/themes/corporate-clean.css +19 -0
  178. package/skills/design-templates/html-ppt/assets/themes/cyberpunk-neon.css +23 -0
  179. package/skills/design-templates/html-ppt/assets/themes/dracula.css +14 -0
  180. package/skills/design-templates/html-ppt/assets/themes/editorial-serif.css +18 -0
  181. package/skills/design-templates/html-ppt/assets/themes/engineering-whiteprint.css +26 -0
  182. package/skills/design-templates/html-ppt/assets/themes/glassmorphism.css +21 -0
  183. package/skills/design-templates/html-ppt/assets/themes/gruvbox-dark.css +14 -0
  184. package/skills/design-templates/html-ppt/assets/themes/japanese-minimal.css +21 -0
  185. package/skills/design-templates/html-ppt/assets/themes/magazine-bold.css +21 -0
  186. package/skills/design-templates/html-ppt/assets/themes/memphis-pop.css +20 -0
  187. package/skills/design-templates/html-ppt/assets/themes/midcentury.css +19 -0
  188. package/skills/design-templates/html-ppt/assets/themes/minimal-white.css +16 -0
  189. package/skills/design-templates/html-ppt/assets/themes/neo-brutalism.css +17 -0
  190. package/skills/design-templates/html-ppt/assets/themes/news-broadcast.css +20 -0
  191. package/skills/design-templates/html-ppt/assets/themes/nord.css +14 -0
  192. package/skills/design-templates/html-ppt/assets/themes/pitch-deck-vc.css +21 -0
  193. package/skills/design-templates/html-ppt/assets/themes/rainbow-gradient.css +16 -0
  194. package/skills/design-templates/html-ppt/assets/themes/retro-tv.css +22 -0
  195. package/skills/design-templates/html-ppt/assets/themes/rose-pine.css +14 -0
  196. package/skills/design-templates/html-ppt/assets/themes/sharp-mono.css +17 -0
  197. package/skills/design-templates/html-ppt/assets/themes/soft-pastel.css +14 -0
  198. package/skills/design-templates/html-ppt/assets/themes/solarized-light.css +14 -0
  199. package/skills/design-templates/html-ppt/assets/themes/sunset-warm.css +14 -0
  200. package/skills/design-templates/html-ppt/assets/themes/swiss-grid.css +17 -0
  201. package/skills/design-templates/html-ppt/assets/themes/terminal-green.css +18 -0
  202. package/skills/design-templates/html-ppt/assets/themes/tokyo-night.css +14 -0
  203. package/skills/design-templates/html-ppt/assets/themes/vaporwave.css +21 -0
  204. package/skills/design-templates/html-ppt/assets/themes/xiaohongshu-white.css +16 -0
  205. package/skills/design-templates/html-ppt/assets/themes/y2k-chrome.css +20 -0
  206. package/skills/design-templates/html-ppt/docs/readme/_theme-cell.html +56 -0
  207. package/skills/design-templates/html-ppt/docs/readme/animations.png +0 -0
  208. package/skills/design-templates/html-ppt/docs/readme/hero.gif +0 -0
  209. package/skills/design-templates/html-ppt/docs/readme/layouts-live.gif +0 -0
  210. package/skills/design-templates/html-ppt/docs/readme/layouts.png +0 -0
  211. package/skills/design-templates/html-ppt/docs/readme/montage-animations.html +61 -0
  212. package/skills/design-templates/html-ppt/docs/readme/montage-layouts.html +72 -0
  213. package/skills/design-templates/html-ppt/docs/readme/montage-templates.html +72 -0
  214. package/skills/design-templates/html-ppt/docs/readme/montage-themes.html +38 -0
  215. package/skills/design-templates/html-ppt/docs/readme/presenter-mode.png +0 -0
  216. package/skills/design-templates/html-ppt/docs/readme/templates.png +0 -0
  217. package/skills/design-templates/html-ppt/docs/readme/themes.png +0 -0
  218. package/skills/design-templates/html-ppt/examples/demo-deck/index.html +161 -0
  219. package/skills/design-templates/html-ppt/references/animations.md +147 -0
  220. package/skills/design-templates/html-ppt/references/authoring-guide.md +141 -0
  221. package/skills/design-templates/html-ppt/references/full-decks.md +98 -0
  222. package/skills/design-templates/html-ppt/references/layouts.md +103 -0
  223. package/skills/design-templates/html-ppt/references/presenter-mode.md +240 -0
  224. package/skills/design-templates/html-ppt/references/themes.md +107 -0
  225. package/skills/design-templates/html-ppt/scripts/new-deck.sh +46 -0
  226. package/skills/design-templates/html-ppt/scripts/render.sh +71 -0
  227. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_01.png +0 -0
  228. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_02.png +0 -0
  229. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_03.png +0 -0
  230. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_04.png +0 -0
  231. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_05.png +0 -0
  232. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_06.png +0 -0
  233. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_07.png +0 -0
  234. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_08.png +0 -0
  235. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_09.png +0 -0
  236. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_10.png +0 -0
  237. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_11.png +0 -0
  238. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_12.png +0 -0
  239. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_13.png +0 -0
  240. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_14.png +0 -0
  241. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_15.png +0 -0
  242. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_16.png +0 -0
  243. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_17.png +0 -0
  244. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_18.png +0 -0
  245. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_19.png +0 -0
  246. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_20.png +0 -0
  247. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_01.png +0 -0
  248. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_02.png +0 -0
  249. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_03.png +0 -0
  250. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_04.png +0 -0
  251. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_05.png +0 -0
  252. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_06.png +0 -0
  253. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_07.png +0 -0
  254. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_08.png +0 -0
  255. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_09.png +0 -0
  256. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_10.png +0 -0
  257. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_11.png +0 -0
  258. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_12.png +0 -0
  259. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_13.png +0 -0
  260. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_14.png +0 -0
  261. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_15.png +0 -0
  262. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_16.png +0 -0
  263. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_17.png +0 -0
  264. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_18.png +0 -0
  265. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_19.png +0 -0
  266. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_20.png +0 -0
  267. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_21.png +0 -0
  268. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_22.png +0 -0
  269. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_23.png +0 -0
  270. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_24.png +0 -0
  271. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_25.png +0 -0
  272. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_26.png +0 -0
  273. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_27.png +0 -0
  274. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_28.png +0 -0
  275. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_29.png +0 -0
  276. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_30.png +0 -0
  277. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_31.png +0 -0
  278. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_32.png +0 -0
  279. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_33.png +0 -0
  280. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_34.png +0 -0
  281. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_35.png +0 -0
  282. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_36.png +0 -0
  283. package/skills/design-templates/html-ppt/templates/animation-showcase.html +172 -0
  284. package/skills/design-templates/html-ppt/templates/deck.html +69 -0
  285. package/skills/design-templates/html-ppt/templates/full-decks/course-module/README.md +8 -0
  286. package/skills/design-templates/html-ppt/templates/full-decks/course-module/index.html +189 -0
  287. package/skills/design-templates/html-ppt/templates/full-decks/course-module/style.css +46 -0
  288. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/README.md +11 -0
  289. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/index.html +138 -0
  290. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/style.css +60 -0
  291. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/README.md +11 -0
  292. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/index.html +180 -0
  293. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/style.css +54 -0
  294. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/README.md +11 -0
  295. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/index.html +199 -0
  296. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/style.css +55 -0
  297. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/README.md +11 -0
  298. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/index.html +190 -0
  299. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/style.css +49 -0
  300. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/README.md +11 -0
  301. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/index.html +144 -0
  302. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/style.css +59 -0
  303. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/README.md +9 -0
  304. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/index.html +148 -0
  305. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/style.css +40 -0
  306. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/README.md +102 -0
  307. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/index.html +187 -0
  308. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/style.css +216 -0
  309. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/README.md +8 -0
  310. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/index.html +121 -0
  311. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/style.css +39 -0
  312. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/README.md +8 -0
  313. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/index.html +156 -0
  314. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/style.css +49 -0
  315. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/README.md +11 -0
  316. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/index.html +183 -0
  317. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/style.css +62 -0
  318. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/README.md +8 -0
  319. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/index.html +127 -0
  320. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/style.css +55 -0
  321. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/README.md +11 -0
  322. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/index.html +147 -0
  323. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/style.css +66 -0
  324. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/README.md +9 -0
  325. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/index.html +133 -0
  326. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/style.css +47 -0
  327. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/README.md +11 -0
  328. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/index.html +187 -0
  329. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/style.css +63 -0
  330. package/skills/design-templates/html-ppt/templates/full-decks-index.html +82 -0
  331. package/skills/design-templates/html-ppt/templates/layout-showcase.html +47 -0
  332. package/skills/design-templates/html-ppt/templates/single-page/arch-diagram.html +46 -0
  333. package/skills/design-templates/html-ppt/templates/single-page/big-quote.html +18 -0
  334. package/skills/design-templates/html-ppt/templates/single-page/bullets.html +19 -0
  335. package/skills/design-templates/html-ppt/templates/single-page/chart-bar.html +30 -0
  336. package/skills/design-templates/html-ppt/templates/single-page/chart-line.html +35 -0
  337. package/skills/design-templates/html-ppt/templates/single-page/chart-pie.html +36 -0
  338. package/skills/design-templates/html-ppt/templates/single-page/chart-radar.html +31 -0
  339. package/skills/design-templates/html-ppt/templates/single-page/code.html +33 -0
  340. package/skills/design-templates/html-ppt/templates/single-page/comparison.html +47 -0
  341. package/skills/design-templates/html-ppt/templates/single-page/cover.html +32 -0
  342. package/skills/design-templates/html-ppt/templates/single-page/cta.html +27 -0
  343. package/skills/design-templates/html-ppt/templates/single-page/diff.html +35 -0
  344. package/skills/design-templates/html-ppt/templates/single-page/flow-diagram.html +33 -0
  345. package/skills/design-templates/html-ppt/templates/single-page/gantt.html +29 -0
  346. package/skills/design-templates/html-ppt/templates/single-page/image-grid.html +34 -0
  347. package/skills/design-templates/html-ppt/templates/single-page/image-hero.html +33 -0
  348. package/skills/design-templates/html-ppt/templates/single-page/kpi-grid.html +19 -0
  349. package/skills/design-templates/html-ppt/templates/single-page/mindmap.html +38 -0
  350. package/skills/design-templates/html-ppt/templates/single-page/process-steps.html +27 -0
  351. package/skills/design-templates/html-ppt/templates/single-page/pros-cons.html +31 -0
  352. package/skills/design-templates/html-ppt/templates/single-page/roadmap.html +46 -0
  353. package/skills/design-templates/html-ppt/templates/single-page/section-divider.html +17 -0
  354. package/skills/design-templates/html-ppt/templates/single-page/stat-highlight.html +17 -0
  355. package/skills/design-templates/html-ppt/templates/single-page/table.html +33 -0
  356. package/skills/design-templates/html-ppt/templates/single-page/terminal.html +35 -0
  357. package/skills/design-templates/html-ppt/templates/single-page/thanks.html +21 -0
  358. package/skills/design-templates/html-ppt/templates/single-page/three-column.html +18 -0
  359. package/skills/design-templates/html-ppt/templates/single-page/timeline.html +32 -0
  360. package/skills/design-templates/html-ppt/templates/single-page/toc.html +26 -0
  361. package/skills/design-templates/html-ppt/templates/single-page/todo-checklist.html +33 -0
  362. package/skills/design-templates/html-ppt/templates/single-page/two-column.html +39 -0
  363. package/skills/design-templates/html-ppt/templates/theme-showcase.html +151 -0
  364. package/skills/design-templates/html-ppt-course-module/SKILL.md +78 -0
  365. package/skills/design-templates/html-ppt-course-module/example.html +542 -0
  366. package/skills/design-templates/html-ppt-dir-key-nav-minimal/SKILL.md +77 -0
  367. package/skills/design-templates/html-ppt-dir-key-nav-minimal/example.html +366 -0
  368. package/skills/design-templates/html-ppt-graphify-dark-graph/SKILL.md +77 -0
  369. package/skills/design-templates/html-ppt-graphify-dark-graph/example.html +402 -0
  370. package/skills/design-templates/html-ppt-hermes-cyber-terminal/SKILL.md +77 -0
  371. package/skills/design-templates/html-ppt-hermes-cyber-terminal/example.html +422 -0
  372. package/skills/design-templates/html-ppt-knowledge-arch-blueprint/SKILL.md +77 -0
  373. package/skills/design-templates/html-ppt-knowledge-arch-blueprint/example.html +407 -0
  374. package/skills/design-templates/html-ppt-obsidian-claude-gradient/SKILL.md +77 -0
  375. package/skills/design-templates/html-ppt-obsidian-claude-gradient/example.html +371 -0
  376. package/skills/design-templates/html-ppt-pitch-deck/SKILL.md +78 -0
  377. package/skills/design-templates/html-ppt-pitch-deck/example.html +495 -0
  378. package/skills/design-templates/html-ppt-presenter-mode-reveal/SKILL.md +78 -0
  379. package/skills/design-templates/html-ppt-presenter-mode-reveal/example.html +725 -0
  380. package/skills/design-templates/html-ppt-product-launch/SKILL.md +77 -0
  381. package/skills/design-templates/html-ppt-product-launch/example.html +467 -0
  382. package/skills/design-templates/html-ppt-taste-brutalist/SKILL.md +70 -0
  383. package/skills/design-templates/html-ppt-taste-brutalist/example.html +774 -0
  384. package/skills/design-templates/html-ppt-taste-editorial/SKILL.md +62 -0
  385. package/skills/design-templates/html-ppt-taste-editorial/example.html +689 -0
  386. package/skills/design-templates/html-ppt-tech-sharing/SKILL.md +77 -0
  387. package/skills/design-templates/html-ppt-tech-sharing/example.html +512 -0
  388. package/skills/design-templates/html-ppt-testing-safety-alert/SKILL.md +78 -0
  389. package/skills/design-templates/html-ppt-testing-safety-alert/example.html +413 -0
  390. package/skills/design-templates/html-ppt-weekly-report/SKILL.md +77 -0
  391. package/skills/design-templates/html-ppt-weekly-report/example.html +489 -0
  392. package/skills/design-templates/html-ppt-xhs-pastel-card/SKILL.md +78 -0
  393. package/skills/design-templates/html-ppt-xhs-pastel-card/example.html +381 -0
  394. package/skills/design-templates/html-ppt-xhs-post/SKILL.md +78 -0
  395. package/skills/design-templates/html-ppt-xhs-post/example.html +487 -0
  396. package/skills/design-templates/html-ppt-xhs-white-editorial/SKILL.md +77 -0
  397. package/skills/design-templates/html-ppt-xhs-white-editorial/example.html +418 -0
  398. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/LICENSE +21 -0
  399. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/SKILL.md +93 -0
  400. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/example.html +1640 -0
  401. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/template.json +48 -0
  402. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/LICENSE +21 -0
  403. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/SKILL.md +93 -0
  404. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/example.html +833 -0
  405. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/template.json +49 -0
  406. package/skills/design-templates/html-ppt-zhangzara-block-frame/LICENSE +21 -0
  407. package/skills/design-templates/html-ppt-zhangzara-block-frame/SKILL.md +93 -0
  408. package/skills/design-templates/html-ppt-zhangzara-block-frame/example.html +1453 -0
  409. package/skills/design-templates/html-ppt-zhangzara-block-frame/template.json +47 -0
  410. package/skills/design-templates/html-ppt-zhangzara-blue-professional/LICENSE +21 -0
  411. package/skills/design-templates/html-ppt-zhangzara-blue-professional/SKILL.md +93 -0
  412. package/skills/design-templates/html-ppt-zhangzara-blue-professional/example.html +1423 -0
  413. package/skills/design-templates/html-ppt-zhangzara-blue-professional/template.json +44 -0
  414. package/skills/design-templates/html-ppt-zhangzara-bold-poster/LICENSE +21 -0
  415. package/skills/design-templates/html-ppt-zhangzara-bold-poster/SKILL.md +93 -0
  416. package/skills/design-templates/html-ppt-zhangzara-bold-poster/example.html +876 -0
  417. package/skills/design-templates/html-ppt-zhangzara-bold-poster/template.json +45 -0
  418. package/skills/design-templates/html-ppt-zhangzara-broadside/LICENSE +21 -0
  419. package/skills/design-templates/html-ppt-zhangzara-broadside/SKILL.md +92 -0
  420. package/skills/design-templates/html-ppt-zhangzara-broadside/example.html +2144 -0
  421. package/skills/design-templates/html-ppt-zhangzara-broadside/template.json +49 -0
  422. package/skills/design-templates/html-ppt-zhangzara-capsule/LICENSE +21 -0
  423. package/skills/design-templates/html-ppt-zhangzara-capsule/SKILL.md +92 -0
  424. package/skills/design-templates/html-ppt-zhangzara-capsule/example.html +1413 -0
  425. package/skills/design-templates/html-ppt-zhangzara-capsule/template.json +51 -0
  426. package/skills/design-templates/html-ppt-zhangzara-cartesian/LICENSE +21 -0
  427. package/skills/design-templates/html-ppt-zhangzara-cartesian/SKILL.md +92 -0
  428. package/skills/design-templates/html-ppt-zhangzara-cartesian/example.html +1136 -0
  429. package/skills/design-templates/html-ppt-zhangzara-cartesian/template.json +47 -0
  430. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/LICENSE +21 -0
  431. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/SKILL.md +93 -0
  432. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/example.html +1205 -0
  433. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/template.json +49 -0
  434. package/skills/design-templates/html-ppt-zhangzara-coral/LICENSE +21 -0
  435. package/skills/design-templates/html-ppt-zhangzara-coral/SKILL.md +92 -0
  436. package/skills/design-templates/html-ppt-zhangzara-coral/example.html +1487 -0
  437. package/skills/design-templates/html-ppt-zhangzara-coral/template.json +45 -0
  438. package/skills/design-templates/html-ppt-zhangzara-creative-mode/LICENSE +21 -0
  439. package/skills/design-templates/html-ppt-zhangzara-creative-mode/SKILL.md +99 -0
  440. package/skills/design-templates/html-ppt-zhangzara-creative-mode/assets/deck-stage.js +619 -0
  441. package/skills/design-templates/html-ppt-zhangzara-creative-mode/example.html +636 -0
  442. package/skills/design-templates/html-ppt-zhangzara-creative-mode/template.json +47 -0
  443. package/skills/design-templates/html-ppt-zhangzara-daisy-days/LICENSE +21 -0
  444. package/skills/design-templates/html-ppt-zhangzara-daisy-days/SKILL.md +93 -0
  445. package/skills/design-templates/html-ppt-zhangzara-daisy-days/example.html +469 -0
  446. package/skills/design-templates/html-ppt-zhangzara-daisy-days/template.json +54 -0
  447. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/LICENSE +21 -0
  448. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/SKILL.md +98 -0
  449. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/assets/deck-stage.js +619 -0
  450. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/example.html +737 -0
  451. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/template.json +44 -0
  452. package/skills/design-templates/html-ppt-zhangzara-grove/LICENSE +21 -0
  453. package/skills/design-templates/html-ppt-zhangzara-grove/SKILL.md +92 -0
  454. package/skills/design-templates/html-ppt-zhangzara-grove/example.html +1676 -0
  455. package/skills/design-templates/html-ppt-zhangzara-grove/template.json +51 -0
  456. package/skills/figma-code-connect-components/SKILL.md +42 -0
  457. package/skills/figma-create-design-system-rules/SKILL.md +42 -0
  458. package/skills/figma-create-new-file/SKILL.md +41 -0
  459. package/skills/figma-generate-design/SKILL.md +42 -0
  460. package/skills/figma-generate-library/SKILL.md +42 -0
  461. package/skills/figma-implement-design/SKILL.md +42 -0
  462. package/skills/figma-use/SKILL.md +42 -0
  463. package/skills/full-page-screenshot/SKILL.md +42 -0
  464. package/skills/interview-me/SKILL.md +64 -0
  465. package/skills/planning-and-task-breakdown/SKILL.md +52 -0
  466. package/skills/sora/SKILL.md +43 -0
  467. package/skills/theme-factory/SKILL.md +43 -0
  468. package/skills/web-design-guidelines/SKILL.md +42 -0
  469. package/dist/agents/prompt-library/orchestration.d.ts +0 -4
  470. package/skills/brainstorming/SKILL.md +0 -164
  471. package/skills/brainstorming/scripts/frame-template.html +0 -214
  472. package/skills/brainstorming/scripts/helper.js +0 -88
  473. package/skills/brainstorming/scripts/server.cjs +0 -354
  474. package/skills/brainstorming/scripts/start-server.sh +0 -148
  475. package/skills/brainstorming/scripts/stop-server.sh +0 -56
  476. package/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
  477. package/skills/brainstorming/visual-companion.md +0 -287
@@ -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;
@@ -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 {};
@@ -4,6 +4,7 @@
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;
8
9
  /**
9
10
  * Read boulder state — v2 compatible
@@ -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 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";
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";
@@ -0,0 +1,2 @@
1
+ import type { BuiltinSkill } from "../types";
2
+ export declare const interviewMeSkill: BuiltinSkill;
@@ -0,0 +1,2 @@
1
+ import type { BuiltinSkill } from "../types";
2
+ export declare const planningAndTaskBreakdownSkill: BuiltinSkill;
@@ -0,0 +1,11 @@
1
+ import type { Message, Part } from "@opencode-ai/sdk";
2
+ interface MessageWithParts {
3
+ info: Message;
4
+ parts: Part[];
5
+ }
6
+ export declare function createReasoningContentCacheHook(): {
7
+ "experimental.chat.messages.transform": (input: Record<string, never>, output: {
8
+ messages: MessageWithParts[];
9
+ }) => Promise<void>;
10
+ };
11
+ export {};
@@ -0,0 +1 @@
1
+ export { createReasoningContentCacheHook } from "./hook";
@@ -0,0 +1,48 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ export interface RecoveryCheckpoint {
3
+ version: number;
4
+ sessionID: string;
5
+ timestamp: number;
6
+ phase: "pre_compaction" | "pre_tool_execution" | "pre_continuation" | "pre_model_switch";
7
+ context: {
8
+ agent?: string;
9
+ model?: {
10
+ providerID: string;
11
+ modelID: string;
12
+ variant?: string;
13
+ };
14
+ tools?: Record<string, boolean>;
15
+ messageCount?: number;
16
+ };
17
+ }
18
+ /**
19
+ * Creates a recovery checkpoint before error-prone operations.
20
+ * This allows the system to restore context if a subsequent operation fails.
21
+ */
22
+ export declare class RecoveryCheckpointManager {
23
+ private checkpoints;
24
+ private backupDir;
25
+ constructor(ctx: PluginInput);
26
+ /**
27
+ * Create a checkpoint before an operation that could fail.
28
+ */
29
+ checkpoint(sessionID: string, phase: RecoveryCheckpoint["phase"], context?: RecoveryCheckpoint["context"]): Promise<void>;
30
+ /**
31
+ * Get the last checkpoint for a session.
32
+ */
33
+ getLastCheckpoint(sessionID: string): RecoveryCheckpoint | undefined;
34
+ /**
35
+ * Clear the checkpoint after successful operation completion.
36
+ */
37
+ clearCheckpoint(sessionID: string): void;
38
+ /**
39
+ * Check if a recent checkpoint exists for a session.
40
+ */
41
+ hasRecentCheckpoint(sessionID: string, maxAgeMs?: number): boolean;
42
+ private persistCheckpoint;
43
+ private deletePersistedCheckpoint;
44
+ }
45
+ /**
46
+ * Creates a recovery checkpoint manager.
47
+ */
48
+ export declare function createRecoveryCheckpointManager(ctx: PluginInput): RecoveryCheckpointManager;
@@ -0,0 +1,30 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ import type { SessionRecoveryHook, SessionRecoveryOptions } from "./hook";
3
+ import { type SessionStateSnapshot } from "./state-backup";
4
+ export interface EnhancedSessionRecoveryHook extends SessionRecoveryHook {
5
+ captureState: (sessionID: string, options?: CaptureOptions) => Promise<void>;
6
+ getSnapshot: (sessionID: string) => SessionStateSnapshot | undefined;
7
+ clearSnapshot: (sessionID: string) => void;
8
+ }
9
+ export interface CaptureOptions {
10
+ agent?: string;
11
+ model?: {
12
+ providerID: string;
13
+ modelID: string;
14
+ variant?: string;
15
+ };
16
+ tools?: Record<string, boolean>;
17
+ todoSnapshot?: Array<{
18
+ id: string;
19
+ content: string;
20
+ status: string;
21
+ }>;
22
+ activePlanName?: string;
23
+ continuationState?: {
24
+ failureCount: number;
25
+ lastInjectedAt?: number;
26
+ stagnationCount: number;
27
+ };
28
+ sessionTitle?: string;
29
+ }
30
+ export declare function createSessionRecoveryHook(ctx: PluginInput, options?: SessionRecoveryOptions): EnhancedSessionRecoveryHook;
@@ -0,0 +1,76 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ export interface SessionStateSnapshot {
3
+ sessionID: string;
4
+ timestamp: number;
5
+ agent?: string;
6
+ model?: {
7
+ providerID: string;
8
+ modelID: string;
9
+ variant?: string;
10
+ };
11
+ tools?: Record<string, boolean>;
12
+ todoSnapshot?: Array<{
13
+ id: string;
14
+ content: string;
15
+ status: string;
16
+ }>;
17
+ activePlanName?: string;
18
+ continuationState?: {
19
+ failureCount: number;
20
+ lastInjectedAt?: number;
21
+ stagnationCount: number;
22
+ };
23
+ sessionTitle?: string;
24
+ }
25
+ /**
26
+ * Manages durable session state backups for recovery scenarios.
27
+ * Snapshots are written to the filesystem so they survive process restarts.
28
+ */
29
+ export declare class SessionStateBackupManager {
30
+ private snapshots;
31
+ private backupDir;
32
+ constructor(ctx: PluginInput);
33
+ /**
34
+ * Capture a comprehensive snapshot of the current session state.
35
+ * This is designed to be called before error-prone operations.
36
+ */
37
+ capture(sessionID: string, options?: {
38
+ agent?: string;
39
+ model?: {
40
+ providerID: string;
41
+ modelID: string;
42
+ variant?: string;
43
+ };
44
+ tools?: Record<string, boolean>;
45
+ todoSnapshot?: Array<{
46
+ id: string;
47
+ content: string;
48
+ status: string;
49
+ }>;
50
+ activePlanName?: string;
51
+ continuationState?: {
52
+ failureCount: number;
53
+ lastInjectedAt?: number;
54
+ stagnationCount: number;
55
+ };
56
+ sessionTitle?: string;
57
+ }): Promise<void>;
58
+ /**
59
+ * Retrieve a snapshot for a session if one exists.
60
+ */
61
+ getSnapshot(sessionID: string): SessionStateSnapshot | undefined;
62
+ /**
63
+ * Clear a snapshot after successful recovery or when no longer needed.
64
+ */
65
+ clearSnapshot(sessionID: string): void;
66
+ /**
67
+ * Check if a recent snapshot exists for a session.
68
+ */
69
+ hasRecentSnapshot(sessionID: string, maxAgeMs?: number): boolean;
70
+ private persistSnapshot;
71
+ private deletePersistedSnapshot;
72
+ }
73
+ /**
74
+ * Creates a session state backup manager for the plugin.
75
+ */
76
+ export declare function createSessionStateBackupManager(ctx: PluginInput): SessionStateBackupManager;
@@ -0,0 +1,4 @@
1
+ export declare function isCompacting(sessionID: string): boolean;
2
+ export declare function markCompacting(sessionID: string): void;
3
+ export declare function markCompactionDone(sessionID: string): void;
4
+ export declare function clearSession(sessionID: string): void;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Git Operations for Manager Source Control Integration (CH-007)
3
+ *
4
+ * Provides git utilities for branch tracking and divergence detection.
5
+ */
6
+ /**
7
+ * Get the current git branch name for a directory
8
+ * @returns branch name or null if not a git repo
9
+ */
10
+ export declare function getCurrentBranch(directory: string): string | null;
11
+ /**
12
+ * Check if the current branch has diverged from its upstream
13
+ * Returns true if branch has diverged (both ahead and behind) or has unpulled commits
14
+ * @returns true if divergence detected
15
+ */
16
+ export declare function hasUpstreamDivergence(directory: string): boolean;
17
+ /**
18
+ * Get list of modified files compared to HEAD
19
+ * @returns array of relative file paths
20
+ */
21
+ export declare function getModifiedFiles(directory: string): string[];
22
+ /**
23
+ * Get list of staged files
24
+ * @returns array of relative file paths
25
+ */
26
+ export declare function getStagedFiles(directory: string): string[];
27
+ /**
28
+ * Check if there are uncommitted changes
29
+ * @returns true if there are uncommitted changes
30
+ */
31
+ export declare function hasUncommittedChanges(directory: string): boolean;
32
+ /**
33
+ * Run `git merge --no-commit` to check if a merge would succeed without committing
34
+ * This is used to check if the current branch can be merged into without conflicts
35
+ * @returns true if merge would succeed (no conflicts), false if there are conflicts
36
+ */
37
+ export declare function canMergeWithoutConflicts(directory: string, targetBranch?: string): boolean;
38
+ /**
39
+ * Get branch info for a directory including divergence status
40
+ * @returns branch info object
41
+ */
42
+ export declare function getBranchInfo(directory: string): {
43
+ branch_name: string | null;
44
+ upstream_divergence: boolean;
45
+ modified_files: string[];
46
+ has_uncommitted: boolean;
47
+ };
@@ -0,0 +1,30 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ import { type ContextLimitModelCacheState } from "../shared/context-limit-resolver";
3
+ export interface TokenBudgetConfig {
4
+ warningThreshold80?: number;
5
+ warningThreshold90?: number;
6
+ hardLimitThreshold?: number;
7
+ }
8
+ export declare function createTokenBudgetHook(ctx: PluginInput, modelCacheState?: ContextLimitModelCacheState, config?: TokenBudgetConfig): {
9
+ "tool.execute.before": (input: {
10
+ tool: string;
11
+ sessionID: string;
12
+ callID: string;
13
+ }) => Promise<void>;
14
+ "tool.execute.after": (input: {
15
+ tool: string;
16
+ sessionID: string;
17
+ callID: string;
18
+ }, output: {
19
+ title: string;
20
+ output: string;
21
+ metadata: unknown;
22
+ }) => Promise<void>;
23
+ event: ({ event, }: {
24
+ event: {
25
+ type: string;
26
+ properties?: unknown;
27
+ };
28
+ }) => Promise<void>;
29
+ };
30
+ export type TokenBudgetHook = ReturnType<typeof createTokenBudgetHook>;