@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,68 @@
1
+ /**
2
+ * MCP Rate Limiter with Circuit Breaker
3
+ *
4
+ * Provides per-MCP rate limiting with configurable:
5
+ * - maxRequestsPerMinute
6
+ * - maxTokensPerDay (approximated via request counting)
7
+ *
8
+ * Circuit breaker trips after 5 consecutive failures, resets after 60 seconds.
9
+ */
10
+ export interface RateLimiterConfig {
11
+ maxRequestsPerMinute: number;
12
+ maxTokensPerDay?: number;
13
+ circuitBreakerThreshold?: number;
14
+ circuitBreakerResetMs?: number;
15
+ }
16
+ export declare class McpRateLimiter {
17
+ private requestLog;
18
+ private circuitBreaker;
19
+ private readonly config;
20
+ constructor(config: RateLimiterConfig);
21
+ /**
22
+ * Check if a request to the given MCP is allowed under rate limits.
23
+ * Returns an object with allowed flag and reset time if not allowed.
24
+ */
25
+ canMakeRequest(mcpName: string): {
26
+ allowed: boolean;
27
+ resetAt?: number;
28
+ retryAfterMs?: number;
29
+ };
30
+ /**
31
+ * Record a successful request to update rate tracking.
32
+ */
33
+ recordSuccess(mcpName: string): void;
34
+ /**
35
+ * Record a failed request. After 5 consecutive failures, the circuit breaker trips.
36
+ */
37
+ recordFailure(mcpName: string): void;
38
+ /**
39
+ * Get current rate limit status for an MCP.
40
+ */
41
+ getStatus(mcpName: string): {
42
+ requestsLastMinute: number;
43
+ limitPerMinute: number;
44
+ circuitBreakerOpen: boolean;
45
+ consecutiveFailures: number;
46
+ };
47
+ /**
48
+ * Build a clear quota exhaustion error message.
49
+ */
50
+ buildQuotaExhaustedError(mcpName: string, limitType: "rate" | "circuit_breaker"): string;
51
+ /**
52
+ * Reset all rate limit state for an MCP.
53
+ */
54
+ reset(mcpName: string): void;
55
+ /**
56
+ * Reset all rate limiters globally.
57
+ */
58
+ resetAll(): void;
59
+ private getCircuitBreakerState;
60
+ }
61
+ export declare const defaultRateLimiters: {
62
+ stitch: McpRateLimiter;
63
+ context7: McpRateLimiter;
64
+ grep_app: McpRateLimiter;
65
+ "sequential-thinking": McpRateLimiter;
66
+ mempalace: McpRateLimiter;
67
+ };
68
+ export declare function createMcpRateLimiter(_mcpName: string, config?: Partial<RateLimiterConfig>): McpRateLimiter;
@@ -22,6 +22,14 @@ export type ChatMessageInput = {
22
22
  modelID: string;
23
23
  };
24
24
  };
25
+ type RawLoopCommand = {
26
+ command: "ralph-loop" | "ulw-loop";
27
+ args: string;
28
+ } | {
29
+ command: "cancel-ralph";
30
+ args: "";
31
+ };
32
+ export declare function parseRawLoopSlashCommand(promptText: string): RawLoopCommand | null;
25
33
  export declare function createChatMessageHandler(args: {
26
34
  ctx: PluginContext;
27
35
  pluginConfig: HiaiOpenCodeConfig;
@@ -12,7 +12,7 @@ type CommandExecuteBeforeOutput = {
12
12
  }>;
13
13
  message?: Record<string, unknown>;
14
14
  };
15
- declare const NATIVE_LOOP_TRIGGERED_FLAG = "__omoNativeLoopTriggered";
15
+ declare const NATIVE_LOOP_TRIGGERED_FLAG = "__hiaiNativeLoopTriggered";
16
16
  export declare function createCommandExecuteBeforeHandler(args: {
17
17
  hooks: CreatedHooks;
18
18
  }): (input: CommandExecuteBeforeInput, output: CommandExecuteBeforeOutput) => Promise<void>;
@@ -0,0 +1,2 @@
1
+ import type { EventInput, EventHandlerDeps } from "./types";
2
+ export declare function handleMessageUpdated(input: EventInput, deps: EventHandlerDeps): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import type { EventInput, EventHandlerDeps } from "./types";
2
+ export declare function handleSessionError(input: EventInput, deps: EventHandlerDeps): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import type { EventInput, EventHandlerDeps } from "./types";
2
+ export declare function handleSessionStatus(input: EventInput, deps: EventHandlerDeps): Promise<void>;
@@ -0,0 +1,62 @@
1
+ import type { HiaiOpenCodeConfig } from "../../config";
2
+ import type { CreatedHooks } from "../../create-hooks";
3
+ import type { Managers } from "../../create-managers";
4
+ export type EventInput = Parameters<NonNullable<NonNullable<CreatedHooks["writeExistingFileGuard"]>["event"]>>[0];
5
+ export type PluginContextTyped = {
6
+ directory: string;
7
+ client: {
8
+ session: {
9
+ abort: (input: {
10
+ path: {
11
+ id: string;
12
+ };
13
+ }) => Promise<unknown>;
14
+ promptAsync?: (input: {
15
+ path: {
16
+ id: string;
17
+ };
18
+ body: {
19
+ parts: Array<{
20
+ type: "text";
21
+ text: string;
22
+ }>;
23
+ };
24
+ query: {
25
+ directory: string;
26
+ };
27
+ }) => Promise<unknown>;
28
+ prompt: (input: {
29
+ path: {
30
+ id: string;
31
+ };
32
+ body: {
33
+ parts: Array<{
34
+ type: "text";
35
+ text: string;
36
+ }>;
37
+ };
38
+ query: {
39
+ directory: string;
40
+ };
41
+ }) => Promise<unknown>;
42
+ summarize: (...args: unknown[]) => Promise<unknown>;
43
+ };
44
+ };
45
+ };
46
+ export type EventHandlerDeps = {
47
+ pluginContext: PluginContextTyped;
48
+ pluginConfig: HiaiOpenCodeConfig;
49
+ hooks: CreatedHooks;
50
+ managers: Managers;
51
+ isRuntimeFallbackEnabled: boolean;
52
+ isModelFallbackEnabled: boolean;
53
+ lastKnownModelBySession: Map<string, {
54
+ providerID: string;
55
+ modelID: string;
56
+ }>;
57
+ lastHandledModelErrorMessageID: Map<string, string>;
58
+ lastHandledRetryStatusKey: Map<string, string>;
59
+ resolveFallbackProviderID: (sessionID: string, providerHint?: string) => string;
60
+ shouldAutoRetrySession: (sessionID: string) => boolean;
61
+ autoContinueAfterFallback: (sessionID: string, source: string) => Promise<void>;
62
+ };
@@ -0,0 +1,11 @@
1
+ import type { HiaiOpenCodeConfig } from "../../config";
2
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
3
+ export declare function normalizeFallbackModelID(modelID: string): string;
4
+ export declare function extractErrorName(error: unknown): string | undefined;
5
+ export declare function extractErrorMessage(error: unknown): string;
6
+ export declare function extractProviderModelFromErrorMessage(message: string): {
7
+ providerID?: string;
8
+ modelID?: string;
9
+ };
10
+ export declare function applyUserConfiguredFallbackChain(sessionID: string, agentName: string, currentProviderID: string, pluginConfig: HiaiOpenCodeConfig): void;
11
+ export declare function isCompactionAgent(agent: string): boolean;
@@ -2,6 +2,7 @@ import type { HiaiOpenCodeConfig } from "../config";
2
2
  import type { PluginContext } from "./types";
3
3
  import type { CreatedHooks } from "../create-hooks";
4
4
  import type { Managers } from "../create-managers";
5
+ import type { EventInput } from "./event-handlers/types";
5
6
  type FirstMessageVariantGate = {
6
7
  markSessionCreated: (sessionInfo: {
7
8
  id?: string;
@@ -10,7 +11,6 @@ type FirstMessageVariantGate = {
10
11
  } | undefined) => void;
11
12
  clear: (sessionID: string) => void;
12
13
  };
13
- type EventInput = Parameters<NonNullable<NonNullable<CreatedHooks["writeExistingFileGuard"]>["event"]>>[0];
14
14
  export declare function createEventHandler(args: {
15
15
  ctx: PluginContext;
16
16
  pluginConfig: HiaiOpenCodeConfig;
@@ -22,7 +22,7 @@ export declare function getCacheDir(): string;
22
22
  * Returns the hiai-opencode cache directory.
23
23
  * All platforms: ~/.cache/hiai-opencode
24
24
  */
25
- export declare function getOmoOpenCodeCacheDir(): string;
25
+ export declare function getHiaiOpenCodeCacheDir(): string;
26
26
  /**
27
27
  * Returns the OpenCode cache directory (for reading OpenCode's cache).
28
28
  * All platforms: ~/.cache/opencode
@@ -0,0 +1,70 @@
1
+ export declare const ErrorCodes: {
2
+ readonly AGENT_NOT_FOUND: "HIAI_AGENT_NOT_FOUND";
3
+ readonly AGENT_COMMUNICATION_FAILED: "HIAI_AGENT_COMMUNICATION_FAILED";
4
+ readonly AGENT_TIMEOUT: "HIAI_AGENT_TIMEOUT";
5
+ readonly CONFIG_INVALID: "HIAI_CONFIG_INVALID";
6
+ readonly CONFIG_MISSING_REQUIRED: "HIAI_CONFIG_MISSING_REQUIRED";
7
+ readonly CONFIG_LOAD_FAILED: "HIAI_CONFIG_LOAD_FAILED";
8
+ readonly HOOK_BLOCKED: "HIAI_HOOK_BLOCKED";
9
+ readonly HOOK_EXECUTION_FAILED: "HIAI_HOOK_EXECUTION_FAILED";
10
+ readonly MCP_CONNECTION_FAILED: "HIAI_MCP_CONNECTION_FAILED";
11
+ readonly MCP_SERVER_NOT_FOUND: "HIAI_MCP_SERVER_NOT_FOUND";
12
+ readonly MCP_INVALID_RESPONSE: "HIAI_MCP_INVALID_RESPONSE";
13
+ readonly TASK_NOT_FOUND: "HIAI_TASK_NOT_FOUND";
14
+ readonly TASK_SESSION_MISSING: "HIAI_TASK_SESSION_MISSING";
15
+ readonly TASK_PROMPT_FAILED: "HIAI_TASK_PROMPT_FAILED";
16
+ readonly TASK_DELEGATION_FAILED: "HIAI_TASK_DELEGATION_FAILED";
17
+ readonly IO_FILE_NOT_FOUND: "HIAI_IO_FILE_NOT_FOUND";
18
+ readonly IO_PERMISSION_DENIED: "HIAI_IO_PERMISSION_DENIED";
19
+ readonly IO_ARCHIVE_INVALID: "HIAI_IO_ARCHIVE_INVALID";
20
+ readonly VALIDATION_FAILED: "HIAI_VALIDATION_FAILED";
21
+ readonly VALIDATION_ARGUMENT_MISSING: "HIAI_VALIDATION_ARGUMENT_MISSING";
22
+ };
23
+ export type ErrorCode = (typeof ErrorCodes)[keyof typeof ErrorCodes] | string;
24
+ export declare class HiaiOpenCodeError extends Error {
25
+ readonly code: string;
26
+ readonly category: string;
27
+ constructor(message: string, code: string, category: string);
28
+ toString(): string;
29
+ }
30
+ export declare class AgentError extends HiaiOpenCodeError {
31
+ constructor(message: string, code?: string);
32
+ static notFound(agentName: string): AgentError;
33
+ static timeout(agentName: string, timeoutMs?: number): AgentError;
34
+ static communicationFailed(agentName: string, cause: unknown): AgentError;
35
+ }
36
+ export declare class ConfigError extends HiaiOpenCodeError {
37
+ constructor(message: string, code?: string);
38
+ static missingRequired(field: string): ConfigError;
39
+ static invalid(message: string): ConfigError;
40
+ static loadFailed(path: string, cause: unknown): ConfigError;
41
+ }
42
+ export declare class HookError extends HiaiOpenCodeError {
43
+ constructor(message: string, code?: string);
44
+ static blocked(reason: string): HookError;
45
+ static executionFailed(hookName: string, cause: unknown): HookError;
46
+ }
47
+ export declare class McpError extends HiaiOpenCodeError {
48
+ constructor(message: string, code?: string);
49
+ static connectionFailed(serverName: string, cause: unknown): McpError;
50
+ static serverNotFound(serverName: string): McpError;
51
+ static invalidResponse(serverName: string, details: string): McpError;
52
+ }
53
+ export declare class TaskError extends HiaiOpenCodeError {
54
+ constructor(message: string, code?: string);
55
+ static notFound(taskId: string): TaskError;
56
+ static sessionMissing(taskId: string): TaskError;
57
+ static promptFailed(agentName: string, cause: unknown): TaskError;
58
+ static delegationFailed(details: string): TaskError;
59
+ }
60
+ export declare class ValidationError extends HiaiOpenCodeError {
61
+ constructor(message: string, code?: string);
62
+ static missingArg(argumentName: string): ValidationError;
63
+ static failed(details: string): ValidationError;
64
+ }
65
+ export declare class IoError extends HiaiOpenCodeError {
66
+ constructor(message: string, code?: string);
67
+ static fileNotFound(path: string): IoError;
68
+ static permissionDenied(path: string): IoError;
69
+ static archiveInvalid(details: string): IoError;
70
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Extract sessionID from event properties.
3
+ *
4
+ * Handles two common OpenCode event shapes:
5
+ * - `props.sessionID` (direct field)
6
+ * - `props.info.id` (nested in info object)
7
+ */
8
+ export declare function extractSessionID(props: unknown): string | undefined;
@@ -0,0 +1,14 @@
1
+ export interface GitStateSummary {
2
+ branch: string;
3
+ hasUncommittedChanges: boolean;
4
+ uncommittedCount: number;
5
+ stagedCount: number;
6
+ unstagedCount: number;
7
+ untrackedCount: number;
8
+ cleanWorkingTree: boolean;
9
+ }
10
+ /**
11
+ * Gathers a lightweight summary of current git state for Manager to use
12
+ * before making delegation decisions. Does NOT run git diff (expensive).
13
+ */
14
+ export declare function getGitStateSummary(directory: string): GitStateSummary | null;
@@ -1,73 +1,72 @@
1
- export * from "./frontmatter";
2
- export * from "./command-executor";
3
- export * from "./contains-path";
4
- export * from "./file-reference-resolver";
5
- export * from "./model-sanitizer";
6
- export * from "./logger";
7
- export * from "./snake-case";
8
- export * from "./tool-name";
9
- export * from "./pattern-matcher";
10
- export * from "./hook-disabled";
11
- export * from "./deep-merge";
12
- export * from "./file-utils";
13
- export * from "./dynamic-truncator";
14
- export * from "./data-path";
15
- export * from "./learn-system";
16
- export * from "./config-errors";
17
- export * from "./claude-config-dir";
18
- export * from "./agents-config-dir";
19
- export * from "./jsonc-parser";
20
- export * from "./migration";
21
- export * from "./opencode-config-dir";
22
- export * from "./resolve-agent-definition-paths";
1
+ export { parseFrontmatter, type FrontmatterResult } from "./frontmatter";
2
+ export { executeHookCommand, executeCommand, resolveCommandsInText, type CommandResult, type ExecuteHookOptions } from "./command-executor";
3
+ export { containsPath, isWithinProject } from "./contains-path";
4
+ export { resolveFileReferencesInText } from "./file-reference-resolver";
5
+ export { sanitizeModelField } from "./model-sanitizer";
6
+ export { log, logDebug, logWarn, logError, getLogFilePath, setLogLevel, getLogLevel, setLogLevelFromEnv } from "./logger";
7
+ export { camelToSnake, snakeToCamel, transformObjectKeys, objectToSnakeCase, objectToCamelCase } from "./snake-case";
8
+ export { transformToolName } from "./tool-name";
9
+ export { matchesToolMatcher, findMatchingHooks } from "./pattern-matcher";
10
+ export { isHookDisabled } from "./hook-disabled";
11
+ export { isPlainObject, deepMerge } from "./deep-merge";
12
+ export { isMarkdownFile, isSymbolicLink, resolveSymlink, resolveSymlinkAsync } from "./file-utils";
13
+ export { truncateToTokenLimit, getContextWindowUsage, dynamicTruncate, createDynamicTruncator, type TruncationResult, type TruncationOptions } from "./dynamic-truncator";
14
+ export { getDataDir, getOpenCodeStorageDir, getCacheDir, getHiaiOpenCodeCacheDir, getOpenCodeCacheDir } from "./data-path";
15
+ export { captureLearn, getRelevantLearns, getRecentLearns, formatLearnEntriesForPrompt, type LearnEntry } from "./learn-system";
16
+ export { getConfigLoadErrors, clearConfigLoadErrors, addConfigLoadError, type ConfigLoadError } from "./config-errors";
17
+ export { getClaudeConfigDir } from "./claude-config-dir";
18
+ export { getAgentsConfigDir } from "./agents-config-dir";
19
+ export { parseJsonc, parseJsoncSafe, readJsoncFile, detectConfigFile, detectPluginConfigFile, type JsoncParseResult } from "./jsonc-parser";
20
+ export { AGENT_NAME_MAP, BUILTIN_AGENT_NAMES, migrateAgentNames, HOOK_NAME_MAP, migrateHookNames, MODEL_VERSION_MAP, migrateModelVersions, MODEL_TO_CATEGORY_MAP, migrateAgentConfigToCategory, shouldDeleteAgentConfig, migrateConfigFile } from "./migration";
21
+ export { TAURI_APP_IDENTIFIER, TAURI_APP_IDENTIFIER_DEV, isDevBuild, getOpenCodeConfigDir, getOpenCodeConfigPaths, detectExistingConfigDir } from "./opencode-config-dir";
22
+ export { resolveAgentDefinitionPaths } from "./resolve-agent-definition-paths";
23
23
  export type { OpenCodeBinaryType, OpenCodeConfigDirOptions, OpenCodeConfigPaths, } from "./opencode-config-dir-types";
24
- export * from "./opencode-version";
25
- export * from "./opencode-storage-detection";
26
- export * from "./permission-compat";
27
- export * from "./external-plugin-detector";
28
- export * from "./zip-extractor";
29
- export * from "./binary-downloader";
30
- export * from "./write-file-atomically";
31
- export * from "./agent-variant";
32
- export * from "./session-cursor";
33
- export * from "./shell-env";
34
- export * from "./system-directive";
35
- export * from "./agent-tool-restrictions";
36
- export * from "./model-requirements";
37
- export * from "./model-resolver";
24
+ export { MINIMUM_OPENCODE_VERSION, OPENCODE_NATIVE_AGENTS_INJECTION_VERSION, OPENCODE_SQLITE_VERSION, parseVersion, compareVersions, getOpenCodeVersion, isOpenCodeVersionAtLeast, resetVersionCache, setVersionCache } from "./opencode-version";
25
+ export { isSqliteBackend, resetSqliteBackendCache } from "./opencode-storage-detection";
26
+ export { createAgentToolRestrictions, createAgentToolAllowlist, migrateToolsToPermission, migrateAgentConfig, type PermissionValue, type PermissionFormat } from "./permission-compat";
27
+ export { detectExternalNotificationPlugin, detectExternalSkillPlugin, getNotificationConflictWarning, getSkillPluginConflictWarning, type ExternalNotifierResult, type ExternalSkillPluginResult } from "./external-plugin-detector";
28
+ export { extractZip } from "./zip-extractor";
29
+ export { getCachedBinaryPath, ensureCacheDir, downloadArchive, extractTarGz, extractZipArchive, cleanupArchive, ensureExecutable } from "./binary-downloader";
30
+ export { writeFileAtomically } from "./write-file-atomically";
31
+ export { resolveAgentVariant, resolveVariantForModel, applyAgentVariant } from "./agent-variant";
32
+ export { consumeNewMessages, resetMessageCursor, getMessageCursor, restoreMessageCursor, type CursorMessage, type CursorState } from "./session-cursor";
33
+ export { detectShellType, shellEscape, buildEnvPrefix, shellEscapeForDoubleQuotedCommand, type ShellType } from "./shell-env";
34
+ export { SYSTEM_DIRECTIVE_PREFIX, createSystemDirective, isSystemDirective, hasSystemReminder, removeSystemReminders, SystemDirectiveTypes, type SystemDirectiveType } from "./system-directive";
35
+ export { getAgentToolRestrictions, hasAgentToolRestrictions } from "./agent-tool-restrictions";
36
+ export { AGENT_MODEL_REQUIREMENTS, CATEGORY_MODEL_REQUIREMENTS, initializeModelRequirements, type FallbackEntry, type ModelRequirement } from "./model-requirements";
37
+ export { resolveModel, resolveModelWithFallback, normalizeFallbackModels, flattenToFallbackModelStrings, type ModelResolutionInput, type ModelSource, type ExtendedModelResolutionInput } from "./model-resolver";
38
38
  export { normalizeModel, normalizeModelID } from "./model-normalization";
39
- export { normalizeFallbackModels, flattenToFallbackModelStrings } from "./model-resolver";
40
39
  export { resolveModelPipeline } from "./model-resolution-pipeline";
41
40
  export type { ModelResolutionRequest, ModelResolutionProvenance, ModelResolutionResult, } from "./model-resolution-types";
42
- export * from "./model-availability";
43
- export * from "./model-capabilities";
44
- export * from "./model-capabilities-cache";
45
- export * from "./model-capability-heuristics";
46
- export * from "./model-settings-compatibility";
47
- export * from "./fallback-model-availability";
48
- export * from "./connected-providers-cache";
49
- export * from "./context-limit-resolver";
50
- export * from "./session-utils";
51
- export * from "./tmux";
52
- export * from "./model-suggestion-retry";
53
- export * from "./opencode-server-auth";
54
- export * from "./opencode-http-api";
55
- export * from "./port-utils";
56
- export * from "./git-worktree";
57
- export * from "./safe-create-hook";
58
- export * from "./truncate-description";
59
- export * from "./opencode-storage-paths";
60
- export * from "./opencode-message-dir";
61
- export * from "./opencode-command-dirs";
62
- export * from "./project-discovery-dirs";
63
- export * from "./normalize-sdk-response";
64
- export * from "./session-directory-resolver";
65
- export * from "./prompt-tools";
66
- export * from "./compaction-marker";
67
- export * from "./internal-initiator-marker";
68
- export * from "./plugin-command-discovery";
41
+ export { fuzzyMatchModel, isModelAvailable, getConnectedProviders, fetchAvailableModels, __resetModelCache, isModelCacheAvailable } from "./model-availability";
42
+ export { getBundledModelCapabilitiesSnapshot, getModelCapabilities, type GetModelCapabilitiesInput, type ModelCapabilities, type ModelCapabilitiesDiagnostics, type ModelCapabilitiesSnapshot, type ModelCapabilitiesSnapshotEntry } from "./model-capabilities";
43
+ export { MODELS_DEV_SOURCE_URL, buildModelCapabilitiesSnapshotFromModelsDev, fetchModelCapabilitiesSnapshot, createModelCapabilitiesCacheStore, readModelCapabilitiesCache, hasModelCapabilitiesCache, writeModelCapabilitiesCache, refreshModelCapabilitiesCache } from "./model-capabilities-cache";
44
+ export { initializeModelHeuristics, detectHeuristicModelFamily } from "./model-capability-heuristics";
45
+ export { resolveCompatibleModelSettings, type ModelSettingsCompatibilityInput, type ModelSettingsCompatibilityChange, type ModelSettingsCompatibilityResult } from "./model-settings-compatibility";
46
+ export { resolveFirstAvailableFallback, isAnyFallbackModelAvailable, isAnyProviderConnected } from "./fallback-model-availability";
47
+ export { createConnectedProvidersCacheStore, findProviderModelMetadata, readConnectedProvidersCache, hasConnectedProvidersCache, readProviderModelsCache, hasProviderModelsCache, writeProviderModelsCache, updateConnectedProvidersCache, _resetMemCacheForTesting, type ModelMetadata, type ProviderModelsCache } from "./connected-providers-cache";
48
+ export { resolveActualContextLimit, type ContextLimitModelCacheState } from "./context-limit-resolver";
49
+ export { isCallerOrchestrator } from "./session-utils";
50
+ export { isInsideTmux, getCurrentPaneId, isServerRunning, resetServerCheck, markServerRunningInProcess, getPaneDimensions, spawnTmuxPane, closeTmuxPane, replaceTmuxPane, spawnTmuxWindow, spawnTmuxSession, applyLayout, enforceMainPaneWidth, POLL_INTERVAL_BACKGROUND_MS, SESSION_TIMEOUT_MS, SESSION_MISSING_GRACE_MS, SESSION_READY_POLL_INTERVAL_MS, SESSION_READY_TIMEOUT_MS, type SpawnPaneResult, type SplitDirection, type PaneDimensions } from "./tmux";
51
+ export { parseModelSuggestion, promptWithModelSuggestionRetry, promptSyncWithModelSuggestionRetry, type ModelSuggestionInfo } from "./model-suggestion-retry";
52
+ export { getServerBasicAuthHeader, injectServerAuthIntoClient } from "./opencode-server-auth";
53
+ export { getServerBaseUrl, patchPart, deletePart } from "./opencode-http-api";
54
+ export { isPortAvailable, findAvailablePort, getAvailableServerPort, DEFAULT_SERVER_PORT, type AutoPortResult } from "./port-utils";
55
+ export { parseGitStatusPorcelainLine, parseGitStatusPorcelain, parseGitDiffNumstat, collectGitDiffStats, formatFileChanges, type GitFileStatus, type GitFileStat, type ParsedGitStatusPorcelainLine } from "./git-worktree";
56
+ export { safeCreateHook } from "./safe-create-hook";
57
+ export { truncateDescription } from "./truncate-description";
58
+ export { OPENCODE_STORAGE, MESSAGE_STORAGE, PART_STORAGE, SESSION_STORAGE } from "./opencode-storage-paths";
59
+ export { getMessageDir } from "./opencode-message-dir";
60
+ export { getOpenCodeCommandDirs, getOpenCodeSkillDirs } from "./opencode-command-dirs";
61
+ export { findProjectClaudeSkillDirs, findProjectAgentsSkillDirs, findProjectOpencodeSkillDirs, findProjectOpencodeCommandDirs } from "./project-discovery-dirs";
62
+ export { normalizeSDKResponse, type NormalizeSDKResponseOptions } from "./normalize-sdk-response";
63
+ export { isWindowsAppDataDirectory, resolveSessionDirectory } from "./session-directory-resolver";
64
+ export { normalizePromptTools, resolveInheritedPromptTools, type PromptToolPermission } from "./prompt-tools";
65
+ export { isCompactionAgent, hasCompactionPart, isCompactionMessage, getCompactionPartStorageDir, hasCompactionPartInStorage } from "./compaction-marker";
66
+ export { HIAI_INTERNAL_INITIATOR_MARKER, stripInternalInitiatorMarkers, createInternalAgentTextPart } from "./internal-initiator-marker";
67
+ export { discoverPluginCommandDefinitions, type PluginCommandDiscoveryOptions } from "./plugin-command-discovery";
69
68
  export { SessionCategoryRegistry } from "./session-category-registry";
70
- export * from "./plugin-identity";
71
- export * from "./log-legacy-plugin-startup-warning";
72
- export * from "./task-system-enabled";
73
- export * from "./parse-tools-config";
69
+ export { PLUGIN_NAME, LEGACY_PLUGIN_NAME, PUBLISHED_PACKAGE_NAME, ACCEPTED_PACKAGE_NAMES, CONFIG_BASENAME, LEGACY_CONFIG_BASENAME, LOG_FILENAME, CACHE_DIR_NAME } from "./plugin-identity";
70
+ export { logLegacyPluginStartupWarning } from "./log-legacy-plugin-startup-warning";
71
+ export { isTaskSystemEnabled, type TaskSystemConfig } from "./task-system-enabled";
72
+ export { parseToolsConfig } from "./parse-tools-config";
@@ -1,4 +1,4 @@
1
- export declare const OMO_INTERNAL_INITIATOR_MARKER = "<!-- OMO_INTERNAL_INITIATOR -->";
1
+ export declare const HIAI_INTERNAL_INITIATOR_MARKER = "<!-- HIAI_INTERNAL_INITIATOR -->";
2
2
  export declare function stripInternalInitiatorMarkers(text: string): string;
3
3
  export declare function createInternalAgentTextPart(text: string): {
4
4
  type: "text";
@@ -1,4 +1,8 @@
1
- export declare function log(message: string, data?: unknown): void;
1
+ export declare function log(message: string, data?: unknown, level?: string): void;
2
+ export declare function logDebug(message: string, data?: unknown): void;
2
3
  export declare function logWarn(message: string, data?: unknown): void;
3
4
  export declare function logError(message: string, data?: unknown): void;
4
5
  export declare function getLogFilePath(): string;
6
+ export declare function setLogLevel(level: string): void;
7
+ export declare function getLogLevel(): string;
8
+ export declare function setLogLevelFromEnv(): void;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * MITIGATION ONLY - upstream fix required
3
+ *
4
+ * This module provides a temporary cache for reasoning_content that gets stripped
5
+ * during message serialization in OpenAI-compatible SDKs. The root cause is an upstream
6
+ * bug where reasoning_content fields are lost when messages are processed through
7
+ * the SDK's message handling pipeline.
8
+ *
9
+ * The actual fix requires an update to the upstream SDK. This cache is a workaround
10
+ * that stores reasoning_content separately and allows reinjection when needed.
11
+ *
12
+ * Usage:
13
+ * 1. Before message serialization: cache.save(sessionId, index, content)
14
+ * 2. After message deserialization: cache.retrieve(sessionId, index)
15
+ * 3. To restore: messages = cache.reinjectIntoMessages(sessionId, messages)
16
+ */
17
+ export declare class ReasoningContentCache {
18
+ private cache;
19
+ private readonly TTL_MS;
20
+ private makeKey;
21
+ /**
22
+ * Save reasoning_content for a specific message in a session.
23
+ * @param sessionId - The session identifier
24
+ * @param index - The message index in the session
25
+ * @param content - The reasoning_content string to cache
26
+ */
27
+ save(sessionId: string, index: number, content: string): void;
28
+ /**
29
+ * Retrieve cached reasoning_content for a specific message.
30
+ * @param sessionId - The session identifier
31
+ * @param index - The message index in the session
32
+ * @returns The cached content or null if not found/expired
33
+ */
34
+ retrieve(sessionId: string, index: number): string | null;
35
+ /**
36
+ * Reinject reasoning_content into messages that may have lost it during serialization.
37
+ * This iterates through messages and restores reasoning_content from the cache where
38
+ * the field is missing or empty but we have a cached value.
39
+ *
40
+ * Handles two message structures:
41
+ * - MessageWithParts (with info/reasoning_content at msg.info.reasoning_content)
42
+ * - Flat objects (with reasoning_content at msg.reasoning_content, legacy path)
43
+ *
44
+ * @param sessionId - The session identifier
45
+ * @param messages - The messages array to process
46
+ * @returns Messages with reasoning_content restored where applicable
47
+ */
48
+ reinjectIntoMessages(sessionId: string, messages: unknown[]): unknown[];
49
+ /**
50
+ * Clear all cache entries for a specific session.
51
+ * Call this when a session is cleaned up.
52
+ */
53
+ clearSession(sessionId: string): void;
54
+ /**
55
+ * Clear all expired entries. Called automatically on retrieve,
56
+ * but can be triggered manually for batch cleanup.
57
+ */
58
+ clearExpired(): number;
59
+ /**
60
+ * Get cache statistics for monitoring.
61
+ */
62
+ stats(): {
63
+ size: number;
64
+ oldestTimestamp: number | null;
65
+ newestTimestamp: number | null;
66
+ };
67
+ }
68
+ export declare const reasoningContentCache: ReasoningContentCache;
@@ -1,5 +1,5 @@
1
- interface SafeCreateHookOptions {
1
+ export declare function safeCreateHook<T>(hookNameOrFactory: string | (() => T | null), factoryOrOptions?: (() => T | null) | {
2
2
  enabled?: boolean;
3
- }
4
- export declare function safeCreateHook<T>(name: string, factory: () => T, options?: SafeCreateHookOptions): T | null;
5
- export {};
3
+ }, options?: {
4
+ enabled?: boolean;
5
+ }): T | null;
@@ -1,3 +1,3 @@
1
- export declare const PRIMARY_ALLOWED_AGENTS: readonly ["researcher", "strategist", "coder", "critic", "designer", "writer", "multimodal"];
2
- export declare const ALLOWED_AGENTS: readonly ["researcher", "strategist", "coder", "critic", "designer", "writer", "multimodal"];
1
+ export declare const PRIMARY_ALLOWED_AGENTS: readonly ["researcher", "strategist", "coder", "critic", "designer", "writer", "vision"];
2
+ export declare const ALLOWED_AGENTS: readonly ["researcher", "strategist", "coder", "critic", "designer", "writer", "vision"];
3
3
  export declare const CALL_HIAI_AGENT_DESCRIPTION = "Spawn canonical agents or custom agents. run_in_background REQUIRED (true=async with task_id, false=sync).\n\nCanonical built-in agents:\n{primary_agents}\n\nCustom agents registered via user or project agent directories are also supported.\n\nPass `session_id=<id>` to continue previous agent with full context. Nested subagent depth is tracked automatically and blocked past the configured limit. Prompts MUST be in English. Use `background_output` for async results.";
@@ -1,7 +1,7 @@
1
1
  export declare const SUB_AGENT_CONFIG_KEY = "sub";
2
2
  export declare const CODER_AGENT_CONFIG_KEY = "coder";
3
3
  export declare const CRITIC_AGENT_CONFIG_KEY = "critic";
4
- export declare const CANONICAL_DELEGATE_AGENT_KEYS: readonly ["bob", "manager", "strategist", "critic", "coder", "sub", "researcher", "multimodal", "designer", "writer", "agent-skills"];
4
+ export declare const CANONICAL_DELEGATE_AGENT_KEYS: readonly ["bob", "manager", "strategist", "critic", "coder", "sub", "researcher", "vision", "designer", "writer", "agent-skills"];
5
5
  type CanonicalDelegateAgentKey = (typeof CANONICAL_DELEGATE_AGENT_KEYS)[number];
6
6
  export type { CanonicalDelegateAgentKey };
7
7
  export declare function resolveCanonicalDelegateAgentKey(agentName: string): string;
@@ -1,2 +1,2 @@
1
- export declare const MULTIMODAL_LOOKER_AGENT: "ui";
1
+ export declare const MULTIMODAL_LOOKER_AGENT: "vision";
2
2
  export declare const LOOK_AT_DESCRIPTION = "Extract basic information from media files (PDFs, images, diagrams) when a quick summary suffices over precise reading. Good for simple text-based content extraction without using the Read tool. NEVER use for visual precision, aesthetic evaluation, or exact accuracy - use Read tool instead for those cases.";