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,22 @@
1
+ import type { TmuxConfig } from "../../config/schema";
2
+ import type { PaneAction, WindowState } from "./types";
3
+ export interface ActionResult {
4
+ success: boolean;
5
+ paneId?: string;
6
+ error?: string;
7
+ }
8
+ export interface ExecuteActionsResult {
9
+ success: boolean;
10
+ spawnedPaneId?: string;
11
+ results: Array<{
12
+ action: PaneAction;
13
+ result: ActionResult;
14
+ }>;
15
+ }
16
+ export interface ExecuteContext {
17
+ config: TmuxConfig;
18
+ serverUrl: string;
19
+ windowState: WindowState;
20
+ }
21
+ export declare function executeAction(action: PaneAction, ctx: ExecuteContext): Promise<ActionResult>;
22
+ export declare function executeActions(actions: PaneAction[], ctx: ExecuteContext): Promise<ExecuteActionsResult>;
@@ -0,0 +1,38 @@
1
+ import type { WindowState, PaneAction, SpawnDecision, CapacityConfig, TmuxPaneInfo, SplitDirection } from "./types";
2
+ export interface SessionMapping {
3
+ sessionId: string;
4
+ paneId: string;
5
+ createdAt: Date;
6
+ }
7
+ export interface GridCapacity {
8
+ cols: number;
9
+ rows: number;
10
+ total: number;
11
+ }
12
+ export interface GridSlot {
13
+ row: number;
14
+ col: number;
15
+ }
16
+ export interface GridPlan {
17
+ cols: number;
18
+ rows: number;
19
+ slotWidth: number;
20
+ slotHeight: number;
21
+ }
22
+ export interface SpawnTarget {
23
+ targetPaneId: string;
24
+ splitDirection: SplitDirection;
25
+ }
26
+ export declare function getColumnCount(paneCount: number): number;
27
+ export declare function getColumnWidth(agentAreaWidth: number, paneCount: number): number;
28
+ export declare function isSplittableAtCount(agentAreaWidth: number, paneCount: number): boolean;
29
+ export declare function findMinimalEvictions(agentAreaWidth: number, currentCount: number): number | null;
30
+ export declare function canSplitPane(pane: TmuxPaneInfo, direction: SplitDirection): boolean;
31
+ export declare function canSplitPaneAnyDirection(pane: TmuxPaneInfo): boolean;
32
+ export declare function getBestSplitDirection(pane: TmuxPaneInfo): SplitDirection | null;
33
+ export declare function calculateCapacity(windowWidth: number, windowHeight: number): GridCapacity;
34
+ export declare function computeGridPlan(windowWidth: number, windowHeight: number, paneCount: number): GridPlan;
35
+ export declare function mapPaneToSlot(pane: TmuxPaneInfo, plan: GridPlan, mainPaneWidth: number): GridSlot;
36
+ export declare function findSpawnTarget(state: WindowState): SpawnTarget | null;
37
+ export declare function decideSpawnActions(state: WindowState, sessionId: string, description: string, _config: CapacityConfig, sessionMappings: SessionMapping[]): SpawnDecision;
38
+ export declare function decideCloseAction(state: WindowState, sessionId: string, sessionMappings: SessionMapping[]): PaneAction | null;
@@ -0,0 +1,5 @@
1
+ export * from "./manager";
2
+ export * from "./types";
3
+ export * from "./pane-state-querier";
4
+ export * from "./decision-engine";
5
+ export * from "./action-executor";
@@ -0,0 +1,59 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ import type { TmuxConfig } from "../../config/schema";
3
+ interface SessionCreatedEvent {
4
+ type: string;
5
+ properties?: {
6
+ info?: {
7
+ id?: string;
8
+ parentID?: string;
9
+ title?: string;
10
+ };
11
+ };
12
+ }
13
+ export interface TmuxUtilDeps {
14
+ isInsideTmux: () => boolean;
15
+ getCurrentPaneId: () => string | undefined;
16
+ }
17
+ /**
18
+ * State-first Tmux Session Manager
19
+ *
20
+ * Architecture:
21
+ * 1. QUERY: Get actual tmux pane state (source of truth)
22
+ * 2. DECIDE: Pure function determines actions based on state
23
+ * 3. EXECUTE: Execute actions with verification
24
+ * 4. UPDATE: Update internal cache only after tmux confirms success
25
+ *
26
+ * The internal `sessions` Map is just a cache for sessionId<->paneId mapping.
27
+ * The REAL source of truth is always queried from tmux.
28
+ */
29
+ export declare class TmuxSessionManager {
30
+ private client;
31
+ private tmuxConfig;
32
+ private serverUrl;
33
+ private sourcePaneId;
34
+ private sessions;
35
+ private pendingSessions;
36
+ private pollInterval?;
37
+ private deps;
38
+ constructor(ctx: PluginInput, tmuxConfig: TmuxConfig, deps?: TmuxUtilDeps);
39
+ private isEnabled;
40
+ private getCapacityConfig;
41
+ private getSessionMappings;
42
+ private waitForSessionReady;
43
+ onSessionCreated(event: SessionCreatedEvent): Promise<void>;
44
+ onSessionDeleted(event: {
45
+ sessionID: string;
46
+ }): Promise<void>;
47
+ private startPolling;
48
+ private stopPolling;
49
+ private pollSessions;
50
+ private closeSessionById;
51
+ createEventHandler(): (input: {
52
+ event: {
53
+ type: string;
54
+ properties?: unknown;
55
+ };
56
+ }) => Promise<void>;
57
+ cleanup(): Promise<void>;
58
+ }
59
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { WindowState } from "./types";
2
+ export declare function queryWindowState(sourcePaneId: string): Promise<WindowState | null>;
@@ -0,0 +1,53 @@
1
+ export interface TrackedSession {
2
+ sessionId: string;
3
+ paneId: string;
4
+ description: string;
5
+ createdAt: Date;
6
+ lastSeenAt: Date;
7
+ lastMessageCount?: number;
8
+ stableIdlePolls?: number;
9
+ }
10
+ export declare const MIN_PANE_WIDTH = 52;
11
+ export declare const MIN_PANE_HEIGHT = 11;
12
+ export interface TmuxPaneInfo {
13
+ paneId: string;
14
+ width: number;
15
+ height: number;
16
+ left: number;
17
+ top: number;
18
+ title: string;
19
+ isActive: boolean;
20
+ }
21
+ export interface WindowState {
22
+ windowWidth: number;
23
+ windowHeight: number;
24
+ mainPane: TmuxPaneInfo | null;
25
+ agentPanes: TmuxPaneInfo[];
26
+ }
27
+ export type SplitDirection = "-h" | "-v";
28
+ export type PaneAction = {
29
+ type: "close";
30
+ paneId: string;
31
+ sessionId: string;
32
+ } | {
33
+ type: "spawn";
34
+ sessionId: string;
35
+ description: string;
36
+ targetPaneId: string;
37
+ splitDirection: SplitDirection;
38
+ } | {
39
+ type: "replace";
40
+ paneId: string;
41
+ oldSessionId: string;
42
+ newSessionId: string;
43
+ description: string;
44
+ };
45
+ export interface SpawnDecision {
46
+ canSpawn: boolean;
47
+ actions: PaneAction[];
48
+ reason?: string;
49
+ }
50
+ export interface CapacityConfig {
51
+ mainPaneMinWidth: number;
52
+ agentPaneWidth: number;
53
+ }
@@ -0,0 +1,5 @@
1
+ export declare const OPENCODE_STORAGE: string;
2
+ export declare const AGENT_USAGE_REMINDER_STORAGE: string;
3
+ export declare const TARGET_TOOLS: Set<string>;
4
+ export declare const AGENT_TOOLS: Set<string>;
5
+ export declare const REMINDER_MESSAGE = "\n[Agent Usage Reminder]\n\nYou called a search/fetch tool directly without leveraging specialized agents.\n\nRECOMMENDED: Use delegate_task with explore/librarian agents for better results:\n\n```\n// Parallel exploration - fire multiple agents simultaneously\ndelegate_task(agent=\"explore\", prompt=\"Find all files matching pattern X\")\ndelegate_task(agent=\"explore\", prompt=\"Search for implementation of Y\") \ndelegate_task(agent=\"librarian\", prompt=\"Lookup documentation for Z\")\n\n// Then continue your work while they run in background\n// System will notify you when each completes\n```\n\nWHY:\n- Agents can perform deeper, more thorough searches\n- Background tasks run in parallel, saving time\n- Specialized agents have domain expertise\n- Reduces context window usage in main session\n\nALWAYS prefer: Multiple parallel delegate_task calls > Direct tool calls\n";
@@ -0,0 +1,22 @@
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 EventInput {
13
+ event: {
14
+ type: string;
15
+ properties?: unknown;
16
+ };
17
+ }
18
+ export declare function createAgentUsageReminderHook(_ctx: PluginInput): {
19
+ "tool.execute.after": (input: ToolExecuteInput, output: ToolExecuteOutput) => Promise<void>;
20
+ event: ({ event }: EventInput) => Promise<void>;
21
+ };
22
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { AgentUsageState } from "./types";
2
+ export declare function loadAgentUsageState(sessionID: string): AgentUsageState | null;
3
+ export declare function saveAgentUsageState(state: AgentUsageState): void;
4
+ export declare function clearAgentUsageState(sessionID: string): void;
@@ -0,0 +1,6 @@
1
+ export interface AgentUsageState {
2
+ sessionID: string;
3
+ agentUsed: boolean;
4
+ reminderCount: number;
5
+ updatedAt: number;
6
+ }
@@ -0,0 +1,4 @@
1
+ import type { AutoCompactState } from "./types";
2
+ import type { ExperimentalConfig } from "../../config";
3
+ export declare function getLastAssistant(sessionID: string, client: any, directory: string): Promise<Record<string, unknown> | null>;
4
+ export declare function executeCompact(sessionID: string, msg: Record<string, unknown>, autoCompactState: AutoCompactState, client: any, directory: string, experimental?: ExperimentalConfig): Promise<void>;
@@ -0,0 +1,16 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ import type { ExperimentalConfig } from "../../config";
3
+ export interface AnthropicContextWindowLimitRecoveryOptions {
4
+ experimental?: ExperimentalConfig;
5
+ }
6
+ export declare function createAnthropicContextWindowLimitRecoveryHook(ctx: PluginInput, options?: AnthropicContextWindowLimitRecoveryOptions): {
7
+ event: ({ event }: {
8
+ event: {
9
+ type: string;
10
+ properties?: unknown;
11
+ };
12
+ }) => Promise<void>;
13
+ };
14
+ export type { AutoCompactState, ParsedTokenLimitError, TruncateState } from "./types";
15
+ export { parseAnthropicTokenLimitError } from "./parser";
16
+ export { executeCompact, getLastAssistant } from "./executor";
@@ -0,0 +1,2 @@
1
+ import type { ParsedTokenLimitError } from "./types";
2
+ export declare function parseAnthropicTokenLimitError(err: unknown): ParsedTokenLimitError | null;
@@ -0,0 +1,7 @@
1
+ import type { PruningState } from "./pruning-types";
2
+ export interface DeduplicationConfig {
3
+ enabled: boolean;
4
+ protectedTools?: string[];
5
+ }
6
+ export declare function createToolSignature(toolName: string, input: unknown): string;
7
+ export declare function executeDeduplication(sessionID: string, state: PruningState, config: DeduplicationConfig, protectedTools: Set<string>): number;
@@ -0,0 +1,36 @@
1
+ export interface ToolCallSignature {
2
+ toolName: string;
3
+ signature: string;
4
+ callID: string;
5
+ turn: number;
6
+ }
7
+ export interface FileOperation {
8
+ callID: string;
9
+ tool: string;
10
+ filePath: string;
11
+ turn: number;
12
+ }
13
+ export interface ErroredToolCall {
14
+ callID: string;
15
+ toolName: string;
16
+ turn: number;
17
+ errorAge: number;
18
+ }
19
+ export interface PruningResult {
20
+ itemsPruned: number;
21
+ totalTokensSaved: number;
22
+ strategies: {
23
+ deduplication: number;
24
+ supersedeWrites: number;
25
+ purgeErrors: number;
26
+ };
27
+ }
28
+ export interface PruningState {
29
+ toolIdsToPrune: Set<string>;
30
+ currentTurn: number;
31
+ fileOperations: Map<string, FileOperation[]>;
32
+ toolSignatures: Map<string, ToolCallSignature[]>;
33
+ erroredTools: Map<string, ErroredToolCall>;
34
+ }
35
+ export declare const CHARS_PER_TOKEN = 4;
36
+ export declare function estimateTokens(text: string): number;
@@ -0,0 +1,28 @@
1
+ export interface ToolResultInfo {
2
+ partPath: string;
3
+ partId: string;
4
+ messageID: string;
5
+ toolName: string;
6
+ outputSize: number;
7
+ }
8
+ export declare function findToolResultsBySize(sessionID: string): ToolResultInfo[];
9
+ export declare function findLargestToolResult(sessionID: string): ToolResultInfo | null;
10
+ export declare function truncateToolResult(partPath: string): {
11
+ success: boolean;
12
+ toolName?: string;
13
+ originalSize?: number;
14
+ };
15
+ export declare function getTotalToolOutputSize(sessionID: string): number;
16
+ export declare function countTruncatedResults(sessionID: string): number;
17
+ export interface AggressiveTruncateResult {
18
+ success: boolean;
19
+ sufficient: boolean;
20
+ truncatedCount: number;
21
+ totalBytesRemoved: number;
22
+ targetBytesToRemove: number;
23
+ truncatedTools: Array<{
24
+ toolName: string;
25
+ originalSize: number;
26
+ }>;
27
+ }
28
+ export declare function truncateUntilTargetTokens(sessionID: string, currentTokens: number, maxTokens: number, targetRatio?: number, charsPerToken?: number): AggressiveTruncateResult;
@@ -0,0 +1,37 @@
1
+ export interface ParsedTokenLimitError {
2
+ currentTokens: number;
3
+ maxTokens: number;
4
+ requestId?: string;
5
+ errorType: string;
6
+ providerID?: string;
7
+ modelID?: string;
8
+ messageIndex?: number;
9
+ }
10
+ export interface RetryState {
11
+ attempt: number;
12
+ lastAttemptTime: number;
13
+ }
14
+ export interface TruncateState {
15
+ truncateAttempt: number;
16
+ lastTruncatedPartId?: string;
17
+ }
18
+ export interface AutoCompactState {
19
+ pendingCompact: Set<string>;
20
+ errorDataBySession: Map<string, ParsedTokenLimitError>;
21
+ retryStateBySession: Map<string, RetryState>;
22
+ truncateStateBySession: Map<string, TruncateState>;
23
+ emptyContentAttemptBySession: Map<string, number>;
24
+ compactionInProgress: Set<string>;
25
+ }
26
+ export declare const RETRY_CONFIG: {
27
+ readonly maxAttempts: 2;
28
+ readonly initialDelayMs: 2000;
29
+ readonly backoffFactor: 2;
30
+ readonly maxDelayMs: 30000;
31
+ };
32
+ export declare const TRUNCATE_CONFIG: {
33
+ readonly maxTruncateAttempts: 20;
34
+ readonly minOutputSizeToTruncate: 500;
35
+ readonly targetTokenRatio: 0.5;
36
+ readonly charsPerToken: 4;
37
+ };
@@ -0,0 +1,35 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ import type { BackgroundManager } from "../../features/background-agent";
3
+ export declare const HOOK_NAME = "atlas";
4
+ interface ToolExecuteAfterInput {
5
+ tool: string;
6
+ sessionID?: string;
7
+ callID?: string;
8
+ }
9
+ interface ToolExecuteAfterOutput {
10
+ title: string;
11
+ output: string;
12
+ metadata: Record<string, unknown>;
13
+ }
14
+ export interface AtlasHookOptions {
15
+ directory: string;
16
+ backgroundManager?: BackgroundManager;
17
+ }
18
+ export declare function createAtlasHook(ctx: PluginInput, options?: AtlasHookOptions): {
19
+ handler: ({ event }: {
20
+ event: {
21
+ type: string;
22
+ properties?: unknown;
23
+ };
24
+ }) => Promise<void>;
25
+ "tool.execute.before": (input: {
26
+ tool: string;
27
+ sessionID?: string;
28
+ callID?: string;
29
+ }, output: {
30
+ args: Record<string, unknown>;
31
+ message?: string;
32
+ }) => Promise<void>;
33
+ "tool.execute.after": (input: ToolExecuteAfterInput, output: ToolExecuteAfterOutput) => Promise<void>;
34
+ };
35
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ export declare const HOOK_NAME: "auto-slash-command";
2
+ export declare const AUTO_SLASH_COMMAND_TAG_OPEN = "<auto-slash-command>";
3
+ export declare const AUTO_SLASH_COMMAND_TAG_CLOSE = "</auto-slash-command>";
4
+ export declare const SLASH_COMMAND_PATTERN: RegExp;
5
+ export declare const EXCLUDED_COMMANDS: Set<string>;
@@ -0,0 +1,9 @@
1
+ import type { ParsedSlashCommand } from "./types";
2
+ export declare function removeCodeBlocks(text: string): string;
3
+ export declare function parseSlashCommand(text: string): ParsedSlashCommand | null;
4
+ export declare function isExcludedCommand(command: string): boolean;
5
+ export declare function detectSlashCommand(text: string): ParsedSlashCommand | null;
6
+ export declare function extractPromptText(parts: Array<{
7
+ type: string;
8
+ text?: string;
9
+ }>): string;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import { type LoadedSkill } from "../../features/opencode-skill-loader";
2
+ import type { ParsedSlashCommand } from "./types";
3
+ export interface ExecutorOptions {
4
+ skills?: LoadedSkill[];
5
+ }
6
+ export interface ExecuteResult {
7
+ success: boolean;
8
+ replacementText?: string;
9
+ error?: string;
10
+ }
11
+ export declare function executeSlashCommand(parsed: ParsedSlashCommand, options?: ExecutorOptions): Promise<ExecuteResult>;
@@ -0,0 +1,12 @@
1
+ import type { AutoSlashCommandHookInput, AutoSlashCommandHookOutput } from "./types";
2
+ import type { LoadedSkill } from "../../features/opencode-skill-loader";
3
+ export * from "./detector";
4
+ export * from "./executor";
5
+ export * from "./constants";
6
+ export * from "./types";
7
+ export interface AutoSlashCommandHookOptions {
8
+ skills?: LoadedSkill[];
9
+ }
10
+ export declare function createAutoSlashCommandHook(options?: AutoSlashCommandHookOptions): {
11
+ "chat.message": (input: AutoSlashCommandHookInput, output: AutoSlashCommandHookOutput) => Promise<void>;
12
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,27 @@
1
+ export interface AutoSlashCommandHookInput {
2
+ sessionID: string;
3
+ agent?: string;
4
+ model?: {
5
+ providerID: string;
6
+ modelID: string;
7
+ };
8
+ messageID?: string;
9
+ }
10
+ export interface AutoSlashCommandHookOutput {
11
+ message: Record<string, unknown>;
12
+ parts: Array<{
13
+ type: string;
14
+ text?: string;
15
+ [key: string]: unknown;
16
+ }>;
17
+ }
18
+ export interface ParsedSlashCommand {
19
+ command: string;
20
+ args: string;
21
+ raw: string;
22
+ }
23
+ export interface AutoSlashCommandResult {
24
+ detected: boolean;
25
+ parsedCommand?: ParsedSlashCommand;
26
+ injectedMessage?: string;
27
+ }
@@ -0,0 +1,3 @@
1
+ export declare function invalidatePackage(packageName?: string): boolean;
2
+ /** @deprecated Use invalidatePackage instead - this nukes ALL plugins */
3
+ export declare function invalidateCache(): boolean;
@@ -0,0 +1,20 @@
1
+ import type { UpdateCheckResult } from "./types";
2
+ export declare function isLocalDevMode(directory: string): boolean;
3
+ export declare function getLocalDevPath(directory: string): string | null;
4
+ export declare function getLocalDevVersion(directory: string): string | null;
5
+ export interface PluginEntryInfo {
6
+ entry: string;
7
+ isPinned: boolean;
8
+ pinnedVersion: string | null;
9
+ configPath: string;
10
+ }
11
+ export declare function findPluginEntry(directory: string): PluginEntryInfo | null;
12
+ export declare function getCachedVersion(): string | null;
13
+ /**
14
+ * Updates a pinned version entry in the config file.
15
+ * Only replaces within the "plugin" array to avoid unintended edits.
16
+ * Preserves JSONC comments and formatting via string replacement.
17
+ */
18
+ export declare function updatePinnedVersion(configPath: string, oldEntry: string, newVersion: string): boolean;
19
+ export declare function getLatestVersion(channel?: string): Promise<string | null>;
20
+ export declare function checkForUpdate(directory: string): Promise<UpdateCheckResult>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ export declare const PACKAGE_NAME = "oh-my-parallel-agent-opencode";
2
+ export declare const NPM_REGISTRY_URL = "https://registry.npmjs.org/-/package/oh-my-parallel-agent-opencode/dist-tags";
3
+ export declare const NPM_FETCH_TIMEOUT = 5000;
4
+ export declare const CACHE_DIR: string;
5
+ export declare const VERSION_FILE: string;
6
+ export declare const INSTALLED_PACKAGE_JSON: string;
7
+ export declare function getWindowsAppdataDir(): string | null;
8
+ export declare const USER_CONFIG_DIR: string;
9
+ export declare const USER_OPENCODE_CONFIG: string;
10
+ export declare const USER_OPENCODE_CONFIG_JSONC: string;
@@ -0,0 +1,17 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ import type { AutoUpdateCheckerOptions } from "./types";
3
+ export declare function isPrereleaseVersion(version: string): boolean;
4
+ export declare function isDistTag(version: string): boolean;
5
+ export declare function isPrereleaseOrDistTag(pinnedVersion: string | null): boolean;
6
+ export declare function extractChannel(version: string | null): string;
7
+ export declare function createAutoUpdateCheckerHook(ctx: PluginInput, options?: AutoUpdateCheckerOptions): {
8
+ event: ({ event }: {
9
+ event: {
10
+ type: string;
11
+ properties?: unknown;
12
+ };
13
+ }) => void;
14
+ };
15
+ export type { UpdateCheckResult, AutoUpdateCheckerOptions } from "./types";
16
+ export { checkForUpdate } from "./checker";
17
+ export { invalidatePackage, invalidateCache } from "./cache";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,25 @@
1
+ export interface NpmDistTags {
2
+ latest: string;
3
+ [key: string]: string;
4
+ }
5
+ export interface OpencodeConfig {
6
+ plugin?: string[];
7
+ [key: string]: unknown;
8
+ }
9
+ export interface PackageJson {
10
+ version: string;
11
+ name?: string;
12
+ [key: string]: unknown;
13
+ }
14
+ export interface UpdateCheckResult {
15
+ needsUpdate: boolean;
16
+ currentVersion: string | null;
17
+ latestVersion: string | null;
18
+ isLocalDev: boolean;
19
+ isPinned: boolean;
20
+ }
21
+ export interface AutoUpdateCheckerOptions {
22
+ showStartupToast?: boolean;
23
+ isSisyphusEnabled?: boolean;
24
+ autoUpdate?: boolean;
25
+ }
@@ -0,0 +1,18 @@
1
+ import type { BackgroundManager } from "../../features/background-agent";
2
+ interface Event {
3
+ type: string;
4
+ properties?: Record<string, unknown>;
5
+ }
6
+ interface EventInput {
7
+ event: Event;
8
+ }
9
+ /**
10
+ * Background notification hook - handles event routing to BackgroundManager.
11
+ *
12
+ * Notifications are now delivered directly via session.prompt({ noReply })
13
+ * from the manager, so this hook only needs to handle event routing.
14
+ */
15
+ export declare function createBackgroundNotificationHook(manager: BackgroundManager): {
16
+ event: ({ event }: EventInput) => Promise<void>;
17
+ };
18
+ export type { BackgroundNotificationHookConfig } from "./types";
@@ -0,0 +1,4 @@
1
+ import type { BackgroundTask } from "../../features/background-agent";
2
+ export interface BackgroundNotificationHookConfig {
3
+ formatNotification?: (tasks: BackgroundTask[]) => string;
4
+ }
@@ -0,0 +1,22 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ interface ToolExecuteInput {
3
+ tool: string;
4
+ sessionID: string;
5
+ callID: string;
6
+ agent?: string;
7
+ }
8
+ interface ToolExecuteOutput {
9
+ title: string;
10
+ output: string;
11
+ metadata: unknown;
12
+ }
13
+ export declare function createCategorySkillReminderHook(_ctx: PluginInput): {
14
+ "tool.execute.after": (input: ToolExecuteInput, output: ToolExecuteOutput) => Promise<void>;
15
+ event: ({ event }: {
16
+ event: {
17
+ type: string;
18
+ properties?: unknown;
19
+ };
20
+ }) => Promise<void>;
21
+ };
22
+ export {};
@@ -0,0 +1 @@
1
+ export {};