oh-my-parallel-agent-opencode 0.1.0 → 0.2.1

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 (529) hide show
  1. package/LICENSE.md +82 -0
  2. package/README.md +105 -42
  3. package/bin/oh-my-parallel-agent-opencode.js +80 -0
  4. package/bin/platform.js +38 -0
  5. package/bin/platform.test.ts +148 -0
  6. package/dist/agents/atlas.d.ts +22 -0
  7. package/dist/agents/dynamic-agent-prompt-builder.d.ts +30 -0
  8. package/dist/agents/explore.d.ts +7 -0
  9. package/dist/agents/hephaestus.d.ts +6 -0
  10. package/dist/agents/index.d.ts +12 -0
  11. package/dist/agents/librarian.d.ts +7 -0
  12. package/dist/agents/metis.d.ts +21 -0
  13. package/dist/agents/momus.d.ts +21 -0
  14. package/dist/agents/momus.test.d.ts +1 -0
  15. package/dist/agents/multimodal-looker.d.ts +7 -0
  16. package/dist/agents/oracle.d.ts +7 -0
  17. package/dist/agents/prometheus/behavioral-summary.d.ts +6 -0
  18. package/dist/agents/prometheus/high-accuracy-mode.d.ts +6 -0
  19. package/dist/agents/prometheus/identity-constraints.d.ts +7 -0
  20. package/dist/agents/prometheus/index.d.ts +39 -0
  21. package/dist/agents/prometheus/interview-mode.d.ts +7 -0
  22. package/dist/agents/prometheus/plan-generation.d.ts +7 -0
  23. package/dist/agents/prometheus/plan-template.d.ts +7 -0
  24. package/dist/agents/prometheus-prompt.test.d.ts +1 -0
  25. package/dist/agents/sisyphus-junior.d.ts +10 -0
  26. package/dist/agents/sisyphus-junior.test.d.ts +1 -0
  27. package/dist/agents/sisyphus.d.ts +8 -0
  28. package/dist/agents/types.d.ts +63 -0
  29. package/dist/agents/utils.d.ts +16 -0
  30. package/dist/agents/utils.test.d.ts +1 -0
  31. package/dist/cli/config-manager.d.ts +162 -0
  32. package/dist/cli/config-manager.test.d.ts +1 -0
  33. package/dist/cli/doctor/checks/auth.d.ts +7 -0
  34. package/dist/cli/doctor/checks/auth.test.d.ts +1 -0
  35. package/dist/cli/doctor/checks/config.d.ts +8 -0
  36. package/dist/cli/doctor/checks/config.test.d.ts +1 -0
  37. package/dist/cli/doctor/checks/dependencies.d.ts +8 -0
  38. package/dist/cli/doctor/checks/dependencies.test.d.ts +1 -0
  39. package/dist/cli/doctor/checks/gh.d.ts +13 -0
  40. package/dist/cli/doctor/checks/gh.test.d.ts +1 -0
  41. package/dist/cli/doctor/checks/index.d.ts +13 -0
  42. package/dist/cli/doctor/checks/lsp.d.ts +8 -0
  43. package/dist/cli/doctor/checks/lsp.test.d.ts +1 -0
  44. package/dist/cli/doctor/checks/mcp-oauth.d.ts +15 -0
  45. package/dist/cli/doctor/checks/mcp-oauth.test.d.ts +1 -0
  46. package/dist/cli/doctor/checks/mcp.d.ts +6 -0
  47. package/dist/cli/doctor/checks/mcp.test.d.ts +1 -0
  48. package/dist/cli/doctor/checks/model-resolution.d.ts +33 -0
  49. package/dist/cli/doctor/checks/model-resolution.test.d.ts +1 -0
  50. package/dist/cli/doctor/checks/opencode.d.ts +19 -0
  51. package/dist/cli/doctor/checks/opencode.test.d.ts +1 -0
  52. package/dist/cli/doctor/checks/plugin.d.ts +4 -0
  53. package/dist/cli/doctor/checks/plugin.test.d.ts +1 -0
  54. package/dist/cli/doctor/checks/version.d.ts +4 -0
  55. package/dist/cli/doctor/checks/version.test.d.ts +1 -0
  56. package/dist/cli/doctor/constants.d.ts +42 -0
  57. package/dist/cli/doctor/formatter.d.ts +12 -0
  58. package/dist/cli/doctor/formatter.test.d.ts +1 -0
  59. package/dist/cli/doctor/index.d.ts +5 -0
  60. package/dist/cli/doctor/runner.d.ts +7 -0
  61. package/dist/cli/doctor/runner.test.d.ts +1 -0
  62. package/dist/cli/doctor/types.d.ts +91 -0
  63. package/dist/cli/get-local-version/formatter.d.ts +3 -0
  64. package/dist/cli/get-local-version/index.d.ts +3 -0
  65. package/dist/cli/get-local-version/types.d.ts +13 -0
  66. package/dist/cli/index.d.ts +2 -0
  67. package/dist/cli/index.js +26903 -0
  68. package/dist/cli/index.test.d.ts +1 -0
  69. package/dist/cli/install.d.ts +2 -0
  70. package/dist/cli/install.test.d.ts +1 -0
  71. package/dist/cli/mcp-oauth/index.d.ts +6 -0
  72. package/dist/cli/mcp-oauth/index.test.d.ts +1 -0
  73. package/dist/cli/mcp-oauth/login.d.ts +6 -0
  74. package/dist/cli/mcp-oauth/login.test.d.ts +1 -0
  75. package/dist/cli/mcp-oauth/logout.d.ts +4 -0
  76. package/dist/cli/mcp-oauth/logout.test.d.ts +1 -0
  77. package/dist/cli/mcp-oauth/status.d.ts +1 -0
  78. package/dist/cli/mcp-oauth/status.test.d.ts +1 -0
  79. package/dist/cli/model-fallback.d.ts +18 -0
  80. package/dist/cli/model-fallback.test.d.ts +1 -0
  81. package/dist/cli/run/completion.d.ts +2 -0
  82. package/dist/cli/run/completion.test.d.ts +1 -0
  83. package/dist/cli/run/events.d.ts +14 -0
  84. package/dist/cli/run/events.test.d.ts +1 -0
  85. package/dist/cli/run/index.d.ts +2 -0
  86. package/dist/cli/run/runner.d.ts +2 -0
  87. package/dist/cli/run/types.d.ts +73 -0
  88. package/dist/cli/types.d.ts +39 -0
  89. package/dist/config/index.d.ts +2 -0
  90. package/dist/config/schema.d.ts +2651 -0
  91. package/dist/config/schema.test.d.ts +1 -0
  92. package/dist/features/background-agent/concurrency.d.ts +27 -0
  93. package/dist/features/background-agent/concurrency.test.d.ts +1 -0
  94. package/dist/features/background-agent/constants.d.ts +44 -0
  95. package/dist/features/background-agent/index.d.ts +4 -0
  96. package/dist/features/background-agent/manager.d.ts +118 -0
  97. package/dist/features/background-agent/manager.test.d.ts +1 -0
  98. package/dist/features/background-agent/result-handler.d.ts +15 -0
  99. package/dist/features/background-agent/spawner.d.ts +14 -0
  100. package/dist/features/background-agent/state.d.ts +35 -0
  101. package/dist/features/background-agent/types.d.ts +79 -0
  102. package/dist/features/boulder-state/constants.d.ts +10 -0
  103. package/dist/features/boulder-state/index.d.ts +3 -0
  104. package/dist/features/boulder-state/storage.d.ts +28 -0
  105. package/dist/features/boulder-state/storage.test.d.ts +1 -0
  106. package/dist/features/boulder-state/types.d.ts +24 -0
  107. package/dist/features/builtin-commands/commands.d.ts +2 -0
  108. package/dist/features/builtin-commands/index.d.ts +2 -0
  109. package/dist/features/builtin-commands/templates/init-deep.d.ts +1 -0
  110. package/dist/features/builtin-commands/templates/ralph-loop.d.ts +2 -0
  111. package/dist/features/builtin-commands/templates/refactor.d.ts +1 -0
  112. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -0
  113. package/dist/features/builtin-commands/templates/stop-continuation.d.ts +1 -0
  114. package/dist/features/builtin-commands/templates/stop-continuation.test.d.ts +1 -0
  115. package/dist/features/builtin-commands/types.d.ts +6 -0
  116. package/dist/features/builtin-skills/index.d.ts +2 -0
  117. package/dist/features/builtin-skills/skills/dev-browser.d.ts +2 -0
  118. package/dist/features/builtin-skills/skills/frontend-ui-ux.d.ts +2 -0
  119. package/dist/features/builtin-skills/skills/git-master.d.ts +2 -0
  120. package/dist/features/builtin-skills/skills/index.d.ts +4 -0
  121. package/dist/features/builtin-skills/skills/playwright.d.ts +3 -0
  122. package/dist/features/builtin-skills/skills.d.ts +6 -0
  123. package/dist/features/builtin-skills/skills.test.d.ts +1 -0
  124. package/dist/features/builtin-skills/types.d.ts +15 -0
  125. package/dist/features/claude-code-agent-loader/index.d.ts +2 -0
  126. package/dist/features/claude-code-agent-loader/loader.d.ts +3 -0
  127. package/dist/features/claude-code-agent-loader/types.d.ts +14 -0
  128. package/dist/features/claude-code-command-loader/index.d.ts +2 -0
  129. package/dist/features/claude-code-command-loader/loader.d.ts +6 -0
  130. package/dist/features/claude-code-command-loader/types.d.ts +42 -0
  131. package/dist/features/claude-code-mcp-loader/env-expander.d.ts +2 -0
  132. package/dist/features/claude-code-mcp-loader/index.d.ts +10 -0
  133. package/dist/features/claude-code-mcp-loader/loader.d.ts +4 -0
  134. package/dist/features/claude-code-mcp-loader/loader.test.d.ts +1 -0
  135. package/dist/features/claude-code-mcp-loader/transformer.d.ts +2 -0
  136. package/dist/features/claude-code-mcp-loader/types.d.ts +39 -0
  137. package/dist/features/claude-code-plugin-loader/index.d.ts +3 -0
  138. package/dist/features/claude-code-plugin-loader/loader.d.ts +20 -0
  139. package/dist/features/claude-code-plugin-loader/types.d.ts +186 -0
  140. package/dist/features/claude-code-session-state/index.d.ts +1 -0
  141. package/dist/features/claude-code-session-state/state.d.ts +9 -0
  142. package/dist/features/claude-code-session-state/state.test.d.ts +1 -0
  143. package/dist/features/context-injector/collector.d.ts +11 -0
  144. package/dist/features/context-injector/collector.test.d.ts +1 -0
  145. package/dist/features/context-injector/index.d.ts +3 -0
  146. package/dist/features/context-injector/injector.d.ts +39 -0
  147. package/dist/features/context-injector/injector.test.d.ts +1 -0
  148. package/dist/features/context-injector/types.d.ts +83 -0
  149. package/dist/features/hook-message-injector/constants.d.ts +3 -0
  150. package/dist/features/hook-message-injector/index.d.ts +4 -0
  151. package/dist/features/hook-message-injector/injector.d.ts +19 -0
  152. package/dist/features/hook-message-injector/types.d.ts +46 -0
  153. package/dist/features/mcp-oauth/callback-server.d.ts +11 -0
  154. package/dist/features/mcp-oauth/callback-server.test.d.ts +1 -0
  155. package/dist/features/mcp-oauth/dcr.d.ts +34 -0
  156. package/dist/features/mcp-oauth/dcr.test.d.ts +1 -0
  157. package/dist/features/mcp-oauth/discovery.d.ts +8 -0
  158. package/dist/features/mcp-oauth/discovery.test.d.ts +1 -0
  159. package/dist/features/mcp-oauth/index.d.ts +1 -0
  160. package/dist/features/mcp-oauth/provider.d.ts +41 -0
  161. package/dist/features/mcp-oauth/provider.test.d.ts +1 -0
  162. package/dist/features/mcp-oauth/resource-indicator.d.ts +2 -0
  163. package/dist/features/mcp-oauth/resource-indicator.test.d.ts +1 -0
  164. package/dist/features/mcp-oauth/schema.d.ts +6 -0
  165. package/dist/features/mcp-oauth/schema.test.d.ts +1 -0
  166. package/dist/features/mcp-oauth/step-up.d.ts +8 -0
  167. package/dist/features/mcp-oauth/step-up.test.d.ts +1 -0
  168. package/dist/features/mcp-oauth/storage.d.ts +17 -0
  169. package/dist/features/mcp-oauth/storage.test.d.ts +1 -0
  170. package/dist/features/opencode-skill-loader/async-loader.d.ts +6 -0
  171. package/dist/features/opencode-skill-loader/async-loader.test.d.ts +1 -0
  172. package/dist/features/opencode-skill-loader/blocking.d.ts +2 -0
  173. package/dist/features/opencode-skill-loader/blocking.test.d.ts +1 -0
  174. package/dist/features/opencode-skill-loader/discover-worker.d.ts +1 -0
  175. package/dist/features/opencode-skill-loader/index.d.ts +4 -0
  176. package/dist/features/opencode-skill-loader/loader.d.ts +16 -0
  177. package/dist/features/opencode-skill-loader/loader.test.d.ts +1 -0
  178. package/dist/features/opencode-skill-loader/merger.d.ts +7 -0
  179. package/dist/features/opencode-skill-loader/skill-content.d.ts +21 -0
  180. package/dist/features/opencode-skill-loader/skill-content.test.d.ts +1 -0
  181. package/dist/features/opencode-skill-loader/types.d.ts +34 -0
  182. package/dist/features/sisyphus-swarm/mailbox/types.d.ts +191 -0
  183. package/dist/features/sisyphus-swarm/mailbox/types.test.d.ts +1 -0
  184. package/dist/features/sisyphus-tasks/storage.d.ts +9 -0
  185. package/dist/features/sisyphus-tasks/storage.test.d.ts +1 -0
  186. package/dist/features/sisyphus-tasks/types.d.ts +47 -0
  187. package/dist/features/sisyphus-tasks/types.test.d.ts +1 -0
  188. package/dist/features/skill-mcp-manager/env-cleaner.d.ts +2 -0
  189. package/dist/features/skill-mcp-manager/env-cleaner.test.d.ts +1 -0
  190. package/dist/features/skill-mcp-manager/index.d.ts +2 -0
  191. package/dist/features/skill-mcp-manager/manager.d.ts +50 -0
  192. package/dist/features/skill-mcp-manager/manager.test.d.ts +1 -0
  193. package/dist/features/skill-mcp-manager/types.d.ts +11 -0
  194. package/dist/features/task-toast-manager/index.d.ts +2 -0
  195. package/dist/features/task-toast-manager/manager.d.ts +58 -0
  196. package/dist/features/task-toast-manager/manager.test.d.ts +1 -0
  197. package/dist/features/task-toast-manager/types.d.ts +24 -0
  198. package/dist/features/tmux-subagent/action-executor.d.ts +22 -0
  199. package/dist/features/tmux-subagent/decision-engine.d.ts +38 -0
  200. package/dist/features/tmux-subagent/decision-engine.test.d.ts +1 -0
  201. package/dist/features/tmux-subagent/index.d.ts +5 -0
  202. package/dist/features/tmux-subagent/manager.d.ts +59 -0
  203. package/dist/features/tmux-subagent/manager.test.d.ts +1 -0
  204. package/dist/features/tmux-subagent/pane-state-querier.d.ts +2 -0
  205. package/dist/features/tmux-subagent/types.d.ts +53 -0
  206. package/dist/hooks/agent-usage-reminder/constants.d.ts +5 -0
  207. package/dist/hooks/agent-usage-reminder/index.d.ts +22 -0
  208. package/dist/hooks/agent-usage-reminder/storage.d.ts +4 -0
  209. package/dist/hooks/agent-usage-reminder/types.d.ts +6 -0
  210. package/dist/hooks/anthropic-context-window-limit-recovery/executor.d.ts +4 -0
  211. package/dist/hooks/anthropic-context-window-limit-recovery/executor.test.d.ts +1 -0
  212. package/dist/hooks/anthropic-context-window-limit-recovery/index.d.ts +16 -0
  213. package/dist/hooks/anthropic-context-window-limit-recovery/parser.d.ts +2 -0
  214. package/dist/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.d.ts +7 -0
  215. package/dist/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.test.d.ts +1 -0
  216. package/dist/hooks/anthropic-context-window-limit-recovery/pruning-types.d.ts +36 -0
  217. package/dist/hooks/anthropic-context-window-limit-recovery/storage.d.ts +28 -0
  218. package/dist/hooks/anthropic-context-window-limit-recovery/storage.test.d.ts +1 -0
  219. package/dist/hooks/anthropic-context-window-limit-recovery/types.d.ts +37 -0
  220. package/dist/hooks/atlas/index.d.ts +35 -0
  221. package/dist/hooks/atlas/index.test.d.ts +1 -0
  222. package/dist/hooks/auto-slash-command/constants.d.ts +5 -0
  223. package/dist/hooks/auto-slash-command/detector.d.ts +9 -0
  224. package/dist/hooks/auto-slash-command/detector.test.d.ts +1 -0
  225. package/dist/hooks/auto-slash-command/executor.d.ts +11 -0
  226. package/dist/hooks/auto-slash-command/index.d.ts +12 -0
  227. package/dist/hooks/auto-slash-command/index.test.d.ts +1 -0
  228. package/dist/hooks/auto-slash-command/types.d.ts +27 -0
  229. package/dist/hooks/auto-update-checker/cache.d.ts +3 -0
  230. package/dist/hooks/auto-update-checker/checker.d.ts +20 -0
  231. package/dist/hooks/auto-update-checker/checker.test.d.ts +1 -0
  232. package/dist/hooks/auto-update-checker/constants.d.ts +10 -0
  233. package/dist/hooks/auto-update-checker/index.d.ts +17 -0
  234. package/dist/hooks/auto-update-checker/index.test.d.ts +1 -0
  235. package/dist/hooks/auto-update-checker/types.d.ts +25 -0
  236. package/dist/hooks/background-notification/index.d.ts +18 -0
  237. package/dist/hooks/background-notification/types.d.ts +4 -0
  238. package/dist/hooks/category-skill-reminder/index.d.ts +22 -0
  239. package/dist/hooks/category-skill-reminder/index.test.d.ts +1 -0
  240. package/dist/hooks/claude-code-hooks/config-loader.d.ts +13 -0
  241. package/dist/hooks/claude-code-hooks/config.d.ts +3 -0
  242. package/dist/hooks/claude-code-hooks/index.d.ts +48 -0
  243. package/dist/hooks/claude-code-hooks/plugin-config.d.ts +8 -0
  244. package/dist/hooks/claude-code-hooks/post-tool-use.d.ts +40 -0
  245. package/dist/hooks/claude-code-hooks/pre-compact.d.ts +16 -0
  246. package/dist/hooks/claude-code-hooks/pre-tool-use.d.ts +25 -0
  247. package/dist/hooks/claude-code-hooks/stop.d.ts +20 -0
  248. package/dist/hooks/claude-code-hooks/todo.d.ts +12 -0
  249. package/dist/hooks/claude-code-hooks/tool-input-cache.d.ts +5 -0
  250. package/dist/hooks/claude-code-hooks/transcript.d.ts +34 -0
  251. package/dist/hooks/claude-code-hooks/types.d.ts +183 -0
  252. package/dist/hooks/claude-code-hooks/user-prompt-submit.d.ts +22 -0
  253. package/dist/hooks/comment-checker/cli.d.ts +52 -0
  254. package/dist/hooks/comment-checker/cli.test.d.ts +1 -0
  255. package/dist/hooks/comment-checker/downloader.d.ts +25 -0
  256. package/dist/hooks/comment-checker/index.d.ts +19 -0
  257. package/dist/hooks/comment-checker/types.d.ts +31 -0
  258. package/dist/hooks/compaction-context-injector/index.d.ts +8 -0
  259. package/dist/hooks/compaction-context-injector/index.test.d.ts +1 -0
  260. package/dist/hooks/context-window-monitor.d.ts +18 -0
  261. package/dist/hooks/delegate-task-retry/index.d.ts +24 -0
  262. package/dist/hooks/delegate-task-retry/index.test.d.ts +1 -0
  263. package/dist/hooks/directory-agents-injector/constants.d.ts +3 -0
  264. package/dist/hooks/directory-agents-injector/index.d.ts +26 -0
  265. package/dist/hooks/directory-agents-injector/storage.d.ts +1 -0
  266. package/dist/hooks/directory-readme-injector/constants.d.ts +3 -0
  267. package/dist/hooks/directory-readme-injector/index.d.ts +26 -0
  268. package/dist/hooks/directory-readme-injector/storage.d.ts +1 -0
  269. package/dist/hooks/edit-error-recovery/index.d.ts +31 -0
  270. package/dist/hooks/edit-error-recovery/index.test.d.ts +1 -0
  271. package/dist/hooks/empty-task-response-detector.d.ts +12 -0
  272. package/dist/hooks/index.d.ts +35 -0
  273. package/dist/hooks/interactive-bash-session/constants.d.ts +4 -0
  274. package/dist/hooks/interactive-bash-session/index.d.ts +23 -0
  275. package/dist/hooks/interactive-bash-session/storage.d.ts +4 -0
  276. package/dist/hooks/interactive-bash-session/types.d.ts +10 -0
  277. package/dist/hooks/keyword-detector/analyze/default.d.ts +12 -0
  278. package/dist/hooks/keyword-detector/analyze/index.d.ts +1 -0
  279. package/dist/hooks/keyword-detector/constants.d.ts +10 -0
  280. package/dist/hooks/keyword-detector/detector.d.ts +11 -0
  281. package/dist/hooks/keyword-detector/index.d.ts +23 -0
  282. package/dist/hooks/keyword-detector/index.test.d.ts +1 -0
  283. package/dist/hooks/keyword-detector/search/default.d.ts +12 -0
  284. package/dist/hooks/keyword-detector/search/index.d.ts +1 -0
  285. package/dist/hooks/keyword-detector/types.d.ts +4 -0
  286. package/dist/hooks/keyword-detector/ultrawork/default.d.ts +10 -0
  287. package/dist/hooks/keyword-detector/ultrawork/gpt5.2.d.ts +16 -0
  288. package/dist/hooks/keyword-detector/ultrawork/index.d.ts +17 -0
  289. package/dist/hooks/keyword-detector/ultrawork/planner.d.ts +6 -0
  290. package/dist/hooks/keyword-detector/ultrawork/utils.d.ts +24 -0
  291. package/dist/hooks/non-interactive-env/constants.d.ts +34 -0
  292. package/dist/hooks/non-interactive-env/detector.d.ts +1 -0
  293. package/dist/hooks/non-interactive-env/index.d.ts +14 -0
  294. package/dist/hooks/non-interactive-env/index.test.d.ts +1 -0
  295. package/dist/hooks/non-interactive-env/types.d.ts +3 -0
  296. package/dist/hooks/prometheus-md-only/constants.d.ts +7 -0
  297. package/dist/hooks/prometheus-md-only/index.d.ts +12 -0
  298. package/dist/hooks/prometheus-md-only/index.test.d.ts +1 -0
  299. package/dist/hooks/question-label-truncator/index.d.ts +7 -0
  300. package/dist/hooks/question-label-truncator/index.test.d.ts +1 -0
  301. package/dist/hooks/ralph-loop/constants.d.ts +5 -0
  302. package/dist/hooks/ralph-loop/index.d.ts +21 -0
  303. package/dist/hooks/ralph-loop/index.test.d.ts +1 -0
  304. package/dist/hooks/ralph-loop/storage.d.ts +6 -0
  305. package/dist/hooks/ralph-loop/types.d.ts +17 -0
  306. package/dist/hooks/rules-injector/constants.d.ts +8 -0
  307. package/dist/hooks/rules-injector/finder.d.ts +33 -0
  308. package/dist/hooks/rules-injector/finder.test.d.ts +1 -0
  309. package/dist/hooks/rules-injector/index.d.ts +26 -0
  310. package/dist/hooks/rules-injector/matcher.d.ts +21 -0
  311. package/dist/hooks/rules-injector/output-path.d.ts +5 -0
  312. package/dist/hooks/rules-injector/output-path.test.d.ts +1 -0
  313. package/dist/hooks/rules-injector/parser.d.ts +18 -0
  314. package/dist/hooks/rules-injector/parser.test.d.ts +1 -0
  315. package/dist/hooks/rules-injector/storage.d.ts +9 -0
  316. package/dist/hooks/rules-injector/types.d.ts +54 -0
  317. package/dist/hooks/session-notification-utils.d.ts +9 -0
  318. package/dist/hooks/session-notification.d.ts +20 -0
  319. package/dist/hooks/session-notification.test.d.ts +1 -0
  320. package/dist/hooks/session-recovery/constants.d.ts +6 -0
  321. package/dist/hooks/session-recovery/index.d.ts +22 -0
  322. package/dist/hooks/session-recovery/index.test.d.ts +1 -0
  323. package/dist/hooks/session-recovery/storage.d.ts +19 -0
  324. package/dist/hooks/session-recovery/types.d.ts +90 -0
  325. package/dist/hooks/sisyphus-junior-notepad/constants.d.ts +2 -0
  326. package/dist/hooks/sisyphus-junior-notepad/index.d.ts +12 -0
  327. package/dist/hooks/start-work/index.d.ts +16 -0
  328. package/dist/hooks/start-work/index.test.d.ts +1 -0
  329. package/dist/hooks/stop-continuation-guard/index.d.ts +16 -0
  330. package/dist/hooks/stop-continuation-guard/index.test.d.ts +1 -0
  331. package/dist/hooks/subagent-question-blocker/index.d.ts +2 -0
  332. package/dist/hooks/subagent-question-blocker/index.test.d.ts +1 -0
  333. package/dist/hooks/task-resume-info/index.d.ts +11 -0
  334. package/dist/hooks/think-mode/detector.d.ts +5 -0
  335. package/dist/hooks/think-mode/index.d.ts +14 -0
  336. package/dist/hooks/think-mode/index.test.d.ts +1 -0
  337. package/dist/hooks/think-mode/switcher.d.ts +69 -0
  338. package/dist/hooks/think-mode/switcher.test.d.ts +1 -0
  339. package/dist/hooks/think-mode/types.d.ts +21 -0
  340. package/dist/hooks/thinking-block-validator/index.d.ts +30 -0
  341. package/dist/hooks/todo-continuation-enforcer.d.ts +19 -0
  342. package/dist/hooks/todo-continuation-enforcer.test.d.ts +1 -0
  343. package/dist/hooks/tool-output-truncator.d.ts +17 -0
  344. package/dist/hooks/tool-output-truncator.test.d.ts +1 -0
  345. package/dist/hooks/unstable-agent-babysitter/index.d.ts +50 -0
  346. package/dist/hooks/unstable-agent-babysitter/index.test.d.ts +1 -0
  347. package/dist/index.d.ts +5 -0
  348. package/dist/index.js +76117 -0
  349. package/dist/index.test.d.ts +1 -0
  350. package/dist/mcp/context7.d.ts +9 -0
  351. package/dist/mcp/grep-app.d.ts +6 -0
  352. package/dist/mcp/index.d.ts +9 -0
  353. package/dist/mcp/index.test.d.ts +1 -0
  354. package/dist/mcp/types.d.ts +9 -0
  355. package/dist/mcp/websearch.d.ts +9 -0
  356. package/dist/oh-my-parallel-agent-opencode.schema.json +2182 -0
  357. package/dist/plugin-config.d.ts +4 -0
  358. package/dist/plugin-config.test.d.ts +1 -0
  359. package/dist/plugin-handlers/config-handler.d.ts +13 -0
  360. package/dist/plugin-handlers/config-handler.test.d.ts +1 -0
  361. package/dist/plugin-handlers/index.d.ts +1 -0
  362. package/dist/plugin-state.d.ts +6 -0
  363. package/dist/shared/agent-config-integration.test.d.ts +1 -0
  364. package/dist/shared/agent-display-names.d.ts +12 -0
  365. package/dist/shared/agent-display-names.test.d.ts +1 -0
  366. package/dist/shared/agent-tool-restrictions.d.ts +7 -0
  367. package/dist/shared/agent-variant.d.ts +9 -0
  368. package/dist/shared/agent-variant.test.d.ts +1 -0
  369. package/dist/shared/binary-downloader.d.ts +10 -0
  370. package/dist/shared/claude-config-dir.d.ts +1 -0
  371. package/dist/shared/claude-config-dir.test.d.ts +1 -0
  372. package/dist/shared/command-executor.d.ts +21 -0
  373. package/dist/shared/config-errors.d.ts +7 -0
  374. package/dist/shared/connected-providers-cache.d.ts +52 -0
  375. package/dist/shared/data-path.d.ts +30 -0
  376. package/dist/shared/deep-merge.d.ts +13 -0
  377. package/dist/shared/deep-merge.test.d.ts +1 -0
  378. package/dist/shared/dynamic-truncator.d.ts +27 -0
  379. package/dist/shared/external-plugin-detector.d.ts +18 -0
  380. package/dist/shared/external-plugin-detector.test.d.ts +1 -0
  381. package/dist/shared/file-reference-resolver.d.ts +1 -0
  382. package/dist/shared/file-utils.d.ts +7 -0
  383. package/dist/shared/first-message-variant.d.ts +11 -0
  384. package/dist/shared/first-message-variant.test.d.ts +1 -0
  385. package/dist/shared/frontmatter.d.ts +7 -0
  386. package/dist/shared/frontmatter.test.d.ts +1 -0
  387. package/dist/shared/hook-disabled.d.ts +2 -0
  388. package/dist/shared/index.d.ts +36 -0
  389. package/dist/shared/jsonc-parser.d.ts +15 -0
  390. package/dist/shared/jsonc-parser.test.d.ts +1 -0
  391. package/dist/shared/logger.d.ts +2 -0
  392. package/dist/shared/migration.d.ts +32 -0
  393. package/dist/shared/migration.test.d.ts +1 -0
  394. package/dist/shared/model-availability.d.ts +19 -0
  395. package/dist/shared/model-availability.test.d.ts +1 -0
  396. package/dist/shared/model-requirements.d.ts +13 -0
  397. package/dist/shared/model-requirements.test.d.ts +1 -0
  398. package/dist/shared/model-resolution-pipeline.d.ts +24 -0
  399. package/dist/shared/model-resolver.d.ts +22 -0
  400. package/dist/shared/model-resolver.test.d.ts +1 -0
  401. package/dist/shared/model-sanitizer.d.ts +3 -0
  402. package/dist/shared/model-suggestion-retry.d.ts +24 -0
  403. package/dist/shared/model-suggestion-retry.test.d.ts +1 -0
  404. package/dist/shared/ollama-ndjson-parser.d.ts +108 -0
  405. package/dist/shared/opencode-config-dir.d.ts +19 -0
  406. package/dist/shared/opencode-config-dir.test.d.ts +1 -0
  407. package/dist/shared/opencode-version.d.ts +19 -0
  408. package/dist/shared/opencode-version.test.d.ts +1 -0
  409. package/dist/shared/pattern-matcher.d.ts +3 -0
  410. package/dist/shared/permission-compat.d.ts +27 -0
  411. package/dist/shared/permission-compat.test.d.ts +1 -0
  412. package/dist/shared/session-cursor.d.ts +13 -0
  413. package/dist/shared/session-cursor.test.d.ts +1 -0
  414. package/dist/shared/session-injected-paths.d.ts +10 -0
  415. package/dist/shared/session-utils.d.ts +2 -0
  416. package/dist/shared/shell-env.d.ts +41 -0
  417. package/dist/shared/shell-env.test.d.ts +1 -0
  418. package/dist/shared/snake-case.d.ts +5 -0
  419. package/dist/shared/system-directive.d.ts +45 -0
  420. package/dist/shared/system-directive.test.d.ts +1 -0
  421. package/dist/shared/tmux/constants.d.ts +5 -0
  422. package/dist/shared/tmux/index.d.ts +3 -0
  423. package/dist/shared/tmux/tmux-utils.d.ts +17 -0
  424. package/dist/shared/tmux/tmux-utils.test.d.ts +1 -0
  425. package/dist/shared/tmux/types.d.ts +4 -0
  426. package/dist/shared/tool-name.d.ts +1 -0
  427. package/dist/shared/zip-extractor.d.ts +1 -0
  428. package/dist/tools/ast-grep/cli.d.ts +15 -0
  429. package/dist/tools/ast-grep/constants.d.ts +29 -0
  430. package/dist/tools/ast-grep/downloader.d.ts +5 -0
  431. package/dist/tools/ast-grep/index.d.ts +8 -0
  432. package/dist/tools/ast-grep/tools.d.ts +3 -0
  433. package/dist/tools/ast-grep/types.d.ts +58 -0
  434. package/dist/tools/ast-grep/utils.d.ts +5 -0
  435. package/dist/tools/background-task/constants.d.ts +3 -0
  436. package/dist/tools/background-task/index.d.ts +4 -0
  437. package/dist/tools/background-task/tools.d.ts +47 -0
  438. package/dist/tools/background-task/tools.test.d.ts +1 -0
  439. package/dist/tools/background-task/types.d.ts +20 -0
  440. package/dist/tools/call-omo-agent/constants.d.ts +2 -0
  441. package/dist/tools/call-omo-agent/index.d.ts +3 -0
  442. package/dist/tools/call-omo-agent/tools.d.ts +3 -0
  443. package/dist/tools/call-omo-agent/types.d.ts +24 -0
  444. package/dist/tools/delegate-task/categories.d.ts +17 -0
  445. package/dist/tools/delegate-task/constants.d.ts +30 -0
  446. package/dist/tools/delegate-task/executor.d.ts +75 -0
  447. package/dist/tools/delegate-task/helpers.d.ts +30 -0
  448. package/dist/tools/delegate-task/index.d.ts +4 -0
  449. package/dist/tools/delegate-task/prompt-builder.d.ts +6 -0
  450. package/dist/tools/delegate-task/timing.d.ts +11 -0
  451. package/dist/tools/delegate-task/tools.d.ts +6 -0
  452. package/dist/tools/delegate-task/tools.test.d.ts +1 -0
  453. package/dist/tools/delegate-task/types.d.ts +44 -0
  454. package/dist/tools/glob/cli.d.ts +11 -0
  455. package/dist/tools/glob/cli.test.d.ts +1 -0
  456. package/dist/tools/glob/constants.d.ts +6 -0
  457. package/dist/tools/glob/index.d.ts +2 -0
  458. package/dist/tools/glob/tools.d.ts +2 -0
  459. package/dist/tools/glob/types.d.ts +20 -0
  460. package/dist/tools/glob/utils.d.ts +2 -0
  461. package/dist/tools/grep/cli.d.ts +3 -0
  462. package/dist/tools/grep/constants.d.ts +17 -0
  463. package/dist/tools/grep/downloader.d.ts +3 -0
  464. package/dist/tools/grep/downloader.test.d.ts +1 -0
  465. package/dist/tools/grep/index.d.ts +2 -0
  466. package/dist/tools/grep/tools.d.ts +2 -0
  467. package/dist/tools/grep/types.d.ts +36 -0
  468. package/dist/tools/grep/utils.d.ts +3 -0
  469. package/dist/tools/index.d.ts +15 -0
  470. package/dist/tools/interactive-bash/constants.d.ts +3 -0
  471. package/dist/tools/interactive-bash/index.d.ts +3 -0
  472. package/dist/tools/interactive-bash/tools.d.ts +7 -0
  473. package/dist/tools/interactive-bash/utils.d.ts +3 -0
  474. package/dist/tools/look-at/constants.d.ts +2 -0
  475. package/dist/tools/look-at/index.d.ts +3 -0
  476. package/dist/tools/look-at/tools.d.ts +9 -0
  477. package/dist/tools/look-at/tools.test.d.ts +1 -0
  478. package/dist/tools/look-at/types.d.ts +4 -0
  479. package/dist/tools/lsp/client.d.ts +50 -0
  480. package/dist/tools/lsp/config.d.ts +17 -0
  481. package/dist/tools/lsp/config.test.d.ts +1 -0
  482. package/dist/tools/lsp/constants.d.ts +9 -0
  483. package/dist/tools/lsp/index.d.ts +6 -0
  484. package/dist/tools/lsp/tools.d.ts +7 -0
  485. package/dist/tools/lsp/types.d.ts +123 -0
  486. package/dist/tools/lsp/utils.d.ts +26 -0
  487. package/dist/tools/session-manager/constants.d.ts +12 -0
  488. package/dist/tools/session-manager/index.d.ts +3 -0
  489. package/dist/tools/session-manager/storage.d.ts +12 -0
  490. package/dist/tools/session-manager/storage.test.d.ts +1 -0
  491. package/dist/tools/session-manager/tools.d.ts +5 -0
  492. package/dist/tools/session-manager/tools.test.d.ts +1 -0
  493. package/dist/tools/session-manager/types.d.ts +89 -0
  494. package/dist/tools/session-manager/utils.d.ts +11 -0
  495. package/dist/tools/session-manager/utils.test.d.ts +1 -0
  496. package/dist/tools/skill/constants.d.ts +3 -0
  497. package/dist/tools/skill/index.d.ts +3 -0
  498. package/dist/tools/skill/tools.d.ts +4 -0
  499. package/dist/tools/skill/tools.test.d.ts +1 -0
  500. package/dist/tools/skill/types.d.ts +28 -0
  501. package/dist/tools/skill-mcp/constants.d.ts +2 -0
  502. package/dist/tools/skill-mcp/index.d.ts +3 -0
  503. package/dist/tools/skill-mcp/tools.d.ts +11 -0
  504. package/dist/tools/skill-mcp/tools.test.d.ts +1 -0
  505. package/dist/tools/skill-mcp/types.d.ts +8 -0
  506. package/dist/tools/slashcommand/index.d.ts +2 -0
  507. package/dist/tools/slashcommand/tools.d.ts +5 -0
  508. package/dist/tools/slashcommand/tools.test.d.ts +1 -0
  509. package/dist/tools/slashcommand/types.d.ts +24 -0
  510. package/package.json +77 -6
  511. package/postinstall.mjs +43 -0
  512. package/__tests__/agents.test.ts +0 -107
  513. package/__tests__/config-handler.test.ts +0 -198
  514. package/__tests__/dynamic-agent.test.ts +0 -68
  515. package/__tests__/schema.test.ts +0 -149
  516. package/__tests__/setup.test.ts +0 -16
  517. package/bun.lock +0 -29
  518. package/oh-my-parallel-agent-opencode.example.json +0 -7
  519. package/src/agents/explore.ts +0 -117
  520. package/src/agents/index.ts +0 -69
  521. package/src/agents/librarian.ts +0 -302
  522. package/src/agents/metis.ts +0 -341
  523. package/src/agents/momus.ts +0 -237
  524. package/src/agents/types.ts +0 -95
  525. package/src/config/schema.ts +0 -15
  526. package/src/index.ts +0 -116
  527. package/src/plugin-handlers/config-handler.ts +0 -129
  528. package/src/utils/dynamic-agent.ts +0 -37
  529. package/tsconfig.json +0 -19
@@ -0,0 +1,13 @@
1
+ import type { ClaudeHookEvent } from "./types";
2
+ export interface DisabledHooksConfig {
3
+ Stop?: string[];
4
+ PreToolUse?: string[];
5
+ PostToolUse?: string[];
6
+ UserPromptSubmit?: string[];
7
+ PreCompact?: string[];
8
+ }
9
+ export interface PluginExtendedConfig {
10
+ disabledHooks?: DisabledHooksConfig;
11
+ }
12
+ export declare function loadPluginExtendedConfig(): Promise<PluginExtendedConfig>;
13
+ export declare function isHookCommandDisabled(eventType: ClaudeHookEvent, command: string, config: PluginExtendedConfig | null): boolean;
@@ -0,0 +1,3 @@
1
+ import type { ClaudeHooksConfig } from "./types";
2
+ export declare function getClaudeSettingsPaths(customPath?: string): string[];
3
+ export declare function loadClaudeHooksConfig(customSettingsPath?: string): Promise<ClaudeHooksConfig | null>;
@@ -0,0 +1,48 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ import type { PluginConfig } from "./types";
3
+ import type { ContextCollector } from "../../features/context-injector";
4
+ export declare function createClaudeCodeHooksHook(ctx: PluginInput, config?: PluginConfig, contextCollector?: ContextCollector): {
5
+ "experimental.session.compacting": (input: {
6
+ sessionID: string;
7
+ }, output: {
8
+ context: string[];
9
+ }) => Promise<void>;
10
+ "chat.message": (input: {
11
+ sessionID: string;
12
+ agent?: string;
13
+ model?: {
14
+ providerID: string;
15
+ modelID: string;
16
+ };
17
+ messageID?: string;
18
+ }, output: {
19
+ message: Record<string, unknown>;
20
+ parts: Array<{
21
+ type: string;
22
+ text?: string;
23
+ [key: string]: unknown;
24
+ }>;
25
+ }) => Promise<void>;
26
+ "tool.execute.before": (input: {
27
+ tool: string;
28
+ sessionID: string;
29
+ callID: string;
30
+ }, output: {
31
+ args: Record<string, unknown>;
32
+ }) => Promise<void>;
33
+ "tool.execute.after": (input: {
34
+ tool: string;
35
+ sessionID: string;
36
+ callID: string;
37
+ }, output: {
38
+ title: string;
39
+ output: string;
40
+ metadata: unknown;
41
+ }) => Promise<void>;
42
+ event: (input: {
43
+ event: {
44
+ type: string;
45
+ properties?: unknown;
46
+ };
47
+ }) => Promise<void>;
48
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Plugin configuration for Claude Code hooks execution
3
+ * Contains settings for hook command execution (zsh, etc.)
4
+ */
5
+ export declare const DEFAULT_CONFIG: {
6
+ forceZsh: boolean;
7
+ zshPath: string;
8
+ };
@@ -0,0 +1,40 @@
1
+ import type { ClaudeHooksConfig } from "./types";
2
+ import { type PluginExtendedConfig } from "./config-loader";
3
+ export interface PostToolUseClient {
4
+ session: {
5
+ messages: (opts: {
6
+ path: {
7
+ id: string;
8
+ };
9
+ query?: {
10
+ directory: string;
11
+ };
12
+ }) => Promise<unknown>;
13
+ };
14
+ }
15
+ export interface PostToolUseContext {
16
+ sessionId: string;
17
+ toolName: string;
18
+ toolInput: Record<string, unknown>;
19
+ toolOutput: Record<string, unknown>;
20
+ cwd: string;
21
+ transcriptPath?: string;
22
+ toolUseId?: string;
23
+ client?: PostToolUseClient;
24
+ permissionMode?: "default" | "plan" | "acceptEdits" | "bypassPermissions";
25
+ }
26
+ export interface PostToolUseResult {
27
+ block: boolean;
28
+ reason?: string;
29
+ message?: string;
30
+ warnings?: string[];
31
+ elapsedMs?: number;
32
+ hookName?: string;
33
+ toolName?: string;
34
+ additionalContext?: string;
35
+ continue?: boolean;
36
+ stopReason?: string;
37
+ suppressOutput?: boolean;
38
+ systemMessage?: string;
39
+ }
40
+ export declare function executePostToolUseHooks(ctx: PostToolUseContext, config: ClaudeHooksConfig | null, extendedConfig?: PluginExtendedConfig | null): Promise<PostToolUseResult>;
@@ -0,0 +1,16 @@
1
+ import type { ClaudeHooksConfig } from "./types";
2
+ import { type PluginExtendedConfig } from "./config-loader";
3
+ export interface PreCompactContext {
4
+ sessionId: string;
5
+ cwd: string;
6
+ }
7
+ export interface PreCompactResult {
8
+ context: string[];
9
+ elapsedMs?: number;
10
+ hookName?: string;
11
+ continue?: boolean;
12
+ stopReason?: string;
13
+ suppressOutput?: boolean;
14
+ systemMessage?: string;
15
+ }
16
+ export declare function executePreCompactHooks(ctx: PreCompactContext, config: ClaudeHooksConfig | null, extendedConfig?: PluginExtendedConfig | null): Promise<PreCompactResult>;
@@ -0,0 +1,25 @@
1
+ import type { PermissionDecision, ClaudeHooksConfig } from "./types";
2
+ import { type PluginExtendedConfig } from "./config-loader";
3
+ export interface PreToolUseContext {
4
+ sessionId: string;
5
+ toolName: string;
6
+ toolInput: Record<string, unknown>;
7
+ cwd: string;
8
+ transcriptPath?: string;
9
+ toolUseId?: string;
10
+ permissionMode?: "default" | "plan" | "acceptEdits" | "bypassPermissions";
11
+ }
12
+ export interface PreToolUseResult {
13
+ decision: PermissionDecision;
14
+ reason?: string;
15
+ modifiedInput?: Record<string, unknown>;
16
+ elapsedMs?: number;
17
+ hookName?: string;
18
+ toolName?: string;
19
+ inputLines?: string;
20
+ continue?: boolean;
21
+ stopReason?: string;
22
+ suppressOutput?: boolean;
23
+ systemMessage?: string;
24
+ }
25
+ export declare function executePreToolUseHooks(ctx: PreToolUseContext, config: ClaudeHooksConfig | null, extendedConfig?: PluginExtendedConfig | null): Promise<PreToolUseResult>;
@@ -0,0 +1,20 @@
1
+ import type { ClaudeHooksConfig } from "./types";
2
+ import { type PluginExtendedConfig } from "./config-loader";
3
+ export declare function setStopHookActive(sessionId: string, active: boolean): void;
4
+ export declare function getStopHookActive(sessionId: string): boolean;
5
+ export interface StopContext {
6
+ sessionId: string;
7
+ parentSessionId?: string;
8
+ cwd: string;
9
+ transcriptPath?: string;
10
+ permissionMode?: "default" | "acceptEdits" | "bypassPermissions";
11
+ stopHookActive?: boolean;
12
+ }
13
+ export interface StopResult {
14
+ block: boolean;
15
+ reason?: string;
16
+ stopHookActive?: boolean;
17
+ permissionMode?: "default" | "plan" | "acceptEdits" | "bypassPermissions";
18
+ injectPrompt?: string;
19
+ }
20
+ export declare function executeStopHooks(ctx: StopContext, config: ClaudeHooksConfig | null, extendedConfig?: PluginExtendedConfig | null): Promise<StopResult>;
@@ -0,0 +1,12 @@
1
+ import type { TodoFile } from "./types";
2
+ export declare function getTodoPath(sessionId: string): string;
3
+ export interface OpenCodeTodo {
4
+ content: string;
5
+ status: string;
6
+ priority: string;
7
+ id: string;
8
+ }
9
+ export declare function loadTodoFile(sessionId: string): TodoFile | null;
10
+ export declare function saveTodoFile(sessionId: string, file: TodoFile): void;
11
+ export declare function saveOpenCodeTodos(sessionId: string, todos: OpenCodeTodo[]): void;
12
+ export declare function deleteTodoFile(sessionId: string): void;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Caches tool_input from PreToolUse for PostToolUse
3
+ */
4
+ export declare function cacheToolInput(sessionId: string, toolName: string, invocationId: string, toolInput: Record<string, unknown>): void;
5
+ export declare function getToolInput(sessionId: string, toolName: string, invocationId: string): Record<string, unknown> | null;
@@ -0,0 +1,34 @@
1
+ import type { TranscriptEntry } from "./types";
2
+ export declare function getTranscriptPath(sessionId: string): string;
3
+ export declare function appendTranscriptEntry(sessionId: string, entry: TranscriptEntry): void;
4
+ /**
5
+ * Build Claude Code compatible transcript from session messages
6
+ *
7
+ * PORT FROM DISABLED: This calls client.session.messages() API to fetch
8
+ * the full session history and builds a JSONL file in Claude Code format.
9
+ *
10
+ * @param client OpenCode client instance
11
+ * @param sessionId Session ID
12
+ * @param directory Working directory
13
+ * @param currentToolName Current tool being executed (added as last entry)
14
+ * @param currentToolInput Current tool input
15
+ * @returns Temp file path (caller must call deleteTempTranscript!)
16
+ */
17
+ export declare function buildTranscriptFromSession(client: {
18
+ session: {
19
+ messages: (opts: {
20
+ path: {
21
+ id: string;
22
+ };
23
+ query?: {
24
+ directory: string;
25
+ };
26
+ }) => Promise<unknown>;
27
+ };
28
+ }, sessionId: string, directory: string, currentToolName: string, currentToolInput: Record<string, unknown>): Promise<string | null>;
29
+ /**
30
+ * Delete temp transcript file (call in finally block)
31
+ *
32
+ * PORT FROM DISABLED: Cleanup mechanism to avoid disk accumulation
33
+ */
34
+ export declare function deleteTempTranscript(path: string | null): void;
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Claude Code Hooks Type Definitions
3
+ * Maps Claude Code hook concepts to OpenCode plugin events
4
+ */
5
+ export type ClaudeHookEvent = "PreToolUse" | "PostToolUse" | "UserPromptSubmit" | "Stop" | "PreCompact";
6
+ export interface HookMatcher {
7
+ matcher: string;
8
+ hooks: HookCommand[];
9
+ }
10
+ export interface HookCommand {
11
+ type: "command";
12
+ command: string;
13
+ }
14
+ export interface ClaudeHooksConfig {
15
+ PreToolUse?: HookMatcher[];
16
+ PostToolUse?: HookMatcher[];
17
+ UserPromptSubmit?: HookMatcher[];
18
+ Stop?: HookMatcher[];
19
+ PreCompact?: HookMatcher[];
20
+ }
21
+ export interface PreToolUseInput {
22
+ session_id: string;
23
+ transcript_path?: string;
24
+ cwd: string;
25
+ permission_mode?: PermissionMode;
26
+ hook_event_name: "PreToolUse";
27
+ tool_name: string;
28
+ tool_input: Record<string, unknown>;
29
+ tool_use_id?: string;
30
+ hook_source?: HookSource;
31
+ }
32
+ export interface PostToolUseInput {
33
+ session_id: string;
34
+ transcript_path?: string;
35
+ cwd: string;
36
+ permission_mode?: PermissionMode;
37
+ hook_event_name: "PostToolUse";
38
+ tool_name: string;
39
+ tool_input: Record<string, unknown>;
40
+ tool_response: {
41
+ title?: string;
42
+ output?: string;
43
+ [key: string]: unknown;
44
+ };
45
+ tool_use_id?: string;
46
+ hook_source?: HookSource;
47
+ }
48
+ export interface UserPromptSubmitInput {
49
+ session_id: string;
50
+ cwd: string;
51
+ permission_mode?: PermissionMode;
52
+ hook_event_name: "UserPromptSubmit";
53
+ prompt: string;
54
+ session?: {
55
+ id: string;
56
+ };
57
+ hook_source?: HookSource;
58
+ }
59
+ export type PermissionMode = "default" | "plan" | "acceptEdits" | "bypassPermissions";
60
+ export type HookSource = "opencode-plugin";
61
+ export interface StopInput {
62
+ session_id: string;
63
+ transcript_path?: string;
64
+ cwd: string;
65
+ permission_mode?: PermissionMode;
66
+ hook_event_name: "Stop";
67
+ stop_hook_active: boolean;
68
+ todo_path?: string;
69
+ hook_source?: HookSource;
70
+ }
71
+ export interface PreCompactInput {
72
+ session_id: string;
73
+ cwd: string;
74
+ hook_event_name: "PreCompact";
75
+ hook_source?: HookSource;
76
+ }
77
+ export type PermissionDecision = "allow" | "deny" | "ask";
78
+ /**
79
+ * Common JSON fields for all hook outputs (Claude Code spec)
80
+ */
81
+ export interface HookCommonOutput {
82
+ /** If false, Claude stops entirely */
83
+ continue?: boolean;
84
+ /** Message shown to user when continue=false */
85
+ stopReason?: string;
86
+ /** Suppress output from transcript */
87
+ suppressOutput?: boolean;
88
+ /** Warning/message displayed to user */
89
+ systemMessage?: string;
90
+ }
91
+ export interface PreToolUseOutput extends HookCommonOutput {
92
+ /** Deprecated: use hookSpecificOutput.permissionDecision instead */
93
+ decision?: "allow" | "deny" | "approve" | "block" | "ask";
94
+ /** Deprecated: use hookSpecificOutput.permissionDecisionReason instead */
95
+ reason?: string;
96
+ hookSpecificOutput?: {
97
+ hookEventName: "PreToolUse";
98
+ permissionDecision: PermissionDecision;
99
+ permissionDecisionReason?: string;
100
+ updatedInput?: Record<string, unknown>;
101
+ };
102
+ }
103
+ export interface PostToolUseOutput extends HookCommonOutput {
104
+ decision?: "block";
105
+ reason?: string;
106
+ hookSpecificOutput?: {
107
+ hookEventName: "PostToolUse";
108
+ /** Additional context to provide to Claude */
109
+ additionalContext?: string;
110
+ };
111
+ }
112
+ export interface HookResult {
113
+ exitCode: number;
114
+ stdout?: string;
115
+ stderr?: string;
116
+ }
117
+ export interface TranscriptEntry {
118
+ type: "tool_use" | "tool_result" | "user" | "assistant";
119
+ timestamp: string;
120
+ tool_name?: string;
121
+ tool_input?: Record<string, unknown>;
122
+ tool_output?: Record<string, unknown>;
123
+ content?: string;
124
+ }
125
+ export interface TodoItem {
126
+ id: string;
127
+ content: string;
128
+ status: "pending" | "in_progress" | "completed" | "cancelled";
129
+ priority?: "low" | "medium" | "high";
130
+ created_at: string;
131
+ updated_at?: string;
132
+ }
133
+ export interface ClaudeCodeTodoItem {
134
+ content: string;
135
+ status: string;
136
+ activeForm: string;
137
+ }
138
+ export interface TodoFile {
139
+ session_id: string;
140
+ items: TodoItem[];
141
+ created_at: string;
142
+ updated_at: string;
143
+ }
144
+ export interface StopOutput {
145
+ decision?: "block" | "continue";
146
+ reason?: string;
147
+ stop_hook_active?: boolean;
148
+ permission_mode?: PermissionMode;
149
+ inject_prompt?: string;
150
+ }
151
+ export interface PreCompactOutput extends HookCommonOutput {
152
+ /** Additional context to inject into compaction prompt */
153
+ context?: string[];
154
+ hookSpecificOutput?: {
155
+ hookEventName: "PreCompact";
156
+ /** Additional context strings to inject */
157
+ additionalContext?: string[];
158
+ };
159
+ }
160
+ export type ClaudeCodeContent = {
161
+ type: "text";
162
+ text: string;
163
+ } | {
164
+ type: "tool_use";
165
+ id: string;
166
+ name: string;
167
+ input: Record<string, unknown>;
168
+ } | {
169
+ type: "tool_result";
170
+ tool_use_id: string;
171
+ content: string;
172
+ };
173
+ export interface ClaudeCodeMessage {
174
+ type: "user" | "assistant";
175
+ message: {
176
+ role: "user" | "assistant";
177
+ content: ClaudeCodeContent[];
178
+ };
179
+ }
180
+ export interface PluginConfig {
181
+ disabledHooks?: boolean | ClaudeHookEvent[];
182
+ keywordDetectorDisabled?: boolean;
183
+ }
@@ -0,0 +1,22 @@
1
+ import type { ClaudeHooksConfig } from "./types";
2
+ import { type PluginExtendedConfig } from "./config-loader";
3
+ export interface MessagePart {
4
+ type: "text" | "tool_use" | "tool_result";
5
+ text?: string;
6
+ [key: string]: unknown;
7
+ }
8
+ export interface UserPromptSubmitContext {
9
+ sessionId: string;
10
+ parentSessionId?: string;
11
+ prompt: string;
12
+ parts: MessagePart[];
13
+ cwd: string;
14
+ permissionMode?: "default" | "acceptEdits" | "bypassPermissions";
15
+ }
16
+ export interface UserPromptSubmitResult {
17
+ block: boolean;
18
+ reason?: string;
19
+ modifiedParts: MessagePart[];
20
+ messages: string[];
21
+ }
22
+ export declare function executeUserPromptSubmitHooks(ctx: UserPromptSubmitContext, config: ClaudeHooksConfig | null, extendedConfig?: PluginExtendedConfig | null): Promise<UserPromptSubmitResult>;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Asynchronously get comment-checker binary path.
3
+ * Will trigger lazy download if binary not found.
4
+ */
5
+ export declare function getCommentCheckerPath(): Promise<string | null>;
6
+ /**
7
+ * Synchronously get comment-checker path (no download).
8
+ * Returns cached path or searches known locations.
9
+ */
10
+ export declare function getCommentCheckerPathSync(): string | null;
11
+ /**
12
+ * Start background initialization.
13
+ * Call this early to trigger download while other init happens.
14
+ */
15
+ export declare function startBackgroundInit(): void;
16
+ export interface HookInput {
17
+ session_id: string;
18
+ tool_name: string;
19
+ transcript_path: string;
20
+ cwd: string;
21
+ hook_event_name: string;
22
+ tool_input: {
23
+ file_path?: string;
24
+ content?: string;
25
+ old_string?: string;
26
+ new_string?: string;
27
+ edits?: Array<{
28
+ old_string: string;
29
+ new_string: string;
30
+ }>;
31
+ };
32
+ tool_response?: unknown;
33
+ }
34
+ export interface CheckResult {
35
+ hasComments: boolean;
36
+ message: string;
37
+ }
38
+ /**
39
+ * Run comment-checker CLI with given input.
40
+ * @param input Hook input to check
41
+ * @param cliPath Optional explicit path to CLI binary
42
+ * @param customPrompt Optional custom prompt to replace default warning message
43
+ */
44
+ export declare function runCommentChecker(input: HookInput, cliPath?: string, customPrompt?: string): Promise<CheckResult>;
45
+ /**
46
+ * Check if CLI is available (sync check, no download).
47
+ */
48
+ export declare function isCliAvailable(): boolean;
49
+ /**
50
+ * Check if CLI will be available (async, may trigger download).
51
+ */
52
+ export declare function ensureCliAvailable(): Promise<boolean>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Get the cache directory for oh-my-parallel-agent-opencode binaries.
3
+ * On Windows: Uses %LOCALAPPDATA% or %APPDATA% (Windows conventions)
4
+ * On Unix: Follows XDG Base Directory Specification
5
+ */
6
+ export declare function getCacheDir(): string;
7
+ /**
8
+ * Get the binary name based on platform.
9
+ */
10
+ export declare function getBinaryName(): string;
11
+ /**
12
+ * Get the cached binary path if it exists.
13
+ */
14
+ export declare function getCachedBinaryPath(): string | null;
15
+ /**
16
+ * Download the comment-checker binary from GitHub Releases.
17
+ * Returns the path to the downloaded binary, or null on failure.
18
+ */
19
+ export declare function downloadCommentChecker(): Promise<string | null>;
20
+ /**
21
+ * Ensure the comment-checker binary is available.
22
+ * First checks cache, then downloads if needed.
23
+ * Returns the binary path or null if unavailable.
24
+ */
25
+ export declare function ensureCommentCheckerBinary(): Promise<string | null>;
@@ -0,0 +1,19 @@
1
+ import type { CommentCheckerConfig } from "../../config/schema";
2
+ export declare function createCommentCheckerHooks(config?: CommentCheckerConfig): {
3
+ "tool.execute.before": (input: {
4
+ tool: string;
5
+ sessionID: string;
6
+ callID: string;
7
+ }, output: {
8
+ args: Record<string, unknown>;
9
+ }) => Promise<void>;
10
+ "tool.execute.after": (input: {
11
+ tool: string;
12
+ sessionID: string;
13
+ callID: string;
14
+ }, output: {
15
+ title: string;
16
+ output: string;
17
+ metadata: unknown;
18
+ }) => Promise<void>;
19
+ };
@@ -0,0 +1,31 @@
1
+ export type CommentType = "line" | "block" | "docstring";
2
+ export interface CommentInfo {
3
+ text: string;
4
+ lineNumber: number;
5
+ filePath: string;
6
+ commentType: CommentType;
7
+ isDocstring: boolean;
8
+ metadata?: Record<string, string>;
9
+ }
10
+ export interface PendingCall {
11
+ filePath: string;
12
+ content?: string;
13
+ oldString?: string;
14
+ newString?: string;
15
+ edits?: Array<{
16
+ old_string: string;
17
+ new_string: string;
18
+ }>;
19
+ tool: "write" | "edit" | "multiedit";
20
+ sessionID: string;
21
+ timestamp: number;
22
+ }
23
+ export interface FileComments {
24
+ filePath: string;
25
+ comments: CommentInfo[];
26
+ }
27
+ export interface FilterResult {
28
+ shouldSkip: boolean;
29
+ reason?: string;
30
+ }
31
+ export type CommentFilter = (comment: CommentInfo) => FilterResult;
@@ -0,0 +1,8 @@
1
+ export interface SummarizeContext {
2
+ sessionID: string;
3
+ providerID: string;
4
+ modelID: string;
5
+ usageRatio: number;
6
+ directory: string;
7
+ }
8
+ export declare function createCompactionContextInjector(): (ctx: SummarizeContext) => Promise<void>;
@@ -0,0 +1,18 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ export declare function createContextWindowMonitorHook(ctx: PluginInput): {
3
+ "tool.execute.after": (input: {
4
+ tool: string;
5
+ sessionID: string;
6
+ callID: string;
7
+ }, output: {
8
+ title: string;
9
+ output: string;
10
+ metadata: unknown;
11
+ }) => Promise<void>;
12
+ event: ({ event }: {
13
+ event: {
14
+ type: string;
15
+ properties?: unknown;
16
+ };
17
+ }) => Promise<void>;
18
+ };
@@ -0,0 +1,24 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ export interface DelegateTaskErrorPattern {
3
+ pattern: string;
4
+ errorType: string;
5
+ fixHint: string;
6
+ }
7
+ export declare const DELEGATE_TASK_ERROR_PATTERNS: DelegateTaskErrorPattern[];
8
+ export interface DetectedError {
9
+ errorType: string;
10
+ originalOutput: string;
11
+ }
12
+ export declare function detectDelegateTaskError(output: string): DetectedError | null;
13
+ export declare function buildRetryGuidance(errorInfo: DetectedError): string;
14
+ export declare function createDelegateTaskRetryHook(_ctx: PluginInput): {
15
+ "tool.execute.after": (input: {
16
+ tool: string;
17
+ sessionID: string;
18
+ callID: string;
19
+ }, output: {
20
+ title: string;
21
+ output: string;
22
+ metadata: unknown;
23
+ }) => Promise<void>;
24
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export declare const OPENCODE_STORAGE: string;
2
+ export declare const AGENTS_INJECTOR_STORAGE: string;
3
+ export declare const AGENTS_FILENAME = "AGENTS.md";
@@ -0,0 +1,26 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ interface ToolExecuteInput {
3
+ tool: string;
4
+ sessionID: string;
5
+ callID: string;
6
+ }
7
+ interface ToolExecuteOutput {
8
+ title: string;
9
+ output: string;
10
+ metadata: unknown;
11
+ }
12
+ interface ToolExecuteBeforeOutput {
13
+ args: unknown;
14
+ }
15
+ interface EventInput {
16
+ event: {
17
+ type: string;
18
+ properties?: unknown;
19
+ };
20
+ }
21
+ export declare function createDirectoryAgentsInjectorHook(ctx: PluginInput): {
22
+ "tool.execute.before": (input: ToolExecuteInput, output: ToolExecuteBeforeOutput) => Promise<void>;
23
+ "tool.execute.after": (input: ToolExecuteInput, output: ToolExecuteOutput) => Promise<void>;
24
+ event: ({ event }: EventInput) => Promise<void>;
25
+ };
26
+ export {};
@@ -0,0 +1 @@
1
+ export declare const loadInjectedPaths: (sessionID: string) => Set<string>, saveInjectedPaths: (sessionID: string, paths: Set<string>) => void, clearInjectedPaths: (sessionID: string) => void;