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

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 (532) hide show
  1. package/LICENSE.md +82 -0
  2. package/README.ja.md +392 -0
  3. package/README.ko.md +397 -0
  4. package/README.md +375 -56
  5. package/README.zh-cn.md +402 -0
  6. package/bin/oh-my-parallel-agent-opencode.js +80 -0
  7. package/bin/platform.js +38 -0
  8. package/bin/platform.test.ts +148 -0
  9. package/dist/agents/atlas.d.ts +22 -0
  10. package/dist/agents/dynamic-agent-prompt-builder.d.ts +30 -0
  11. package/dist/agents/explore.d.ts +7 -0
  12. package/dist/agents/hephaestus.d.ts +6 -0
  13. package/dist/agents/index.d.ts +12 -0
  14. package/dist/agents/librarian.d.ts +7 -0
  15. package/dist/agents/metis.d.ts +21 -0
  16. package/dist/agents/momus.d.ts +21 -0
  17. package/dist/agents/momus.test.d.ts +1 -0
  18. package/dist/agents/multimodal-looker.d.ts +7 -0
  19. package/dist/agents/oracle.d.ts +7 -0
  20. package/dist/agents/prometheus/behavioral-summary.d.ts +6 -0
  21. package/dist/agents/prometheus/high-accuracy-mode.d.ts +6 -0
  22. package/dist/agents/prometheus/identity-constraints.d.ts +7 -0
  23. package/dist/agents/prometheus/index.d.ts +39 -0
  24. package/dist/agents/prometheus/interview-mode.d.ts +7 -0
  25. package/dist/agents/prometheus/plan-generation.d.ts +7 -0
  26. package/dist/agents/prometheus/plan-template.d.ts +7 -0
  27. package/dist/agents/prometheus-prompt.test.d.ts +1 -0
  28. package/dist/agents/sisyphus-junior.d.ts +10 -0
  29. package/dist/agents/sisyphus-junior.test.d.ts +1 -0
  30. package/dist/agents/sisyphus.d.ts +8 -0
  31. package/dist/agents/types.d.ts +63 -0
  32. package/dist/agents/utils.d.ts +16 -0
  33. package/dist/agents/utils.test.d.ts +1 -0
  34. package/dist/cli/config-manager.d.ts +162 -0
  35. package/dist/cli/config-manager.test.d.ts +1 -0
  36. package/dist/cli/doctor/checks/auth.d.ts +7 -0
  37. package/dist/cli/doctor/checks/auth.test.d.ts +1 -0
  38. package/dist/cli/doctor/checks/config.d.ts +8 -0
  39. package/dist/cli/doctor/checks/config.test.d.ts +1 -0
  40. package/dist/cli/doctor/checks/dependencies.d.ts +8 -0
  41. package/dist/cli/doctor/checks/dependencies.test.d.ts +1 -0
  42. package/dist/cli/doctor/checks/gh.d.ts +13 -0
  43. package/dist/cli/doctor/checks/gh.test.d.ts +1 -0
  44. package/dist/cli/doctor/checks/index.d.ts +13 -0
  45. package/dist/cli/doctor/checks/lsp.d.ts +8 -0
  46. package/dist/cli/doctor/checks/lsp.test.d.ts +1 -0
  47. package/dist/cli/doctor/checks/mcp-oauth.d.ts +15 -0
  48. package/dist/cli/doctor/checks/mcp-oauth.test.d.ts +1 -0
  49. package/dist/cli/doctor/checks/mcp.d.ts +6 -0
  50. package/dist/cli/doctor/checks/mcp.test.d.ts +1 -0
  51. package/dist/cli/doctor/checks/model-resolution.d.ts +33 -0
  52. package/dist/cli/doctor/checks/model-resolution.test.d.ts +1 -0
  53. package/dist/cli/doctor/checks/opencode.d.ts +19 -0
  54. package/dist/cli/doctor/checks/opencode.test.d.ts +1 -0
  55. package/dist/cli/doctor/checks/plugin.d.ts +4 -0
  56. package/dist/cli/doctor/checks/plugin.test.d.ts +1 -0
  57. package/dist/cli/doctor/checks/version.d.ts +4 -0
  58. package/dist/cli/doctor/checks/version.test.d.ts +1 -0
  59. package/dist/cli/doctor/constants.d.ts +42 -0
  60. package/dist/cli/doctor/formatter.d.ts +12 -0
  61. package/dist/cli/doctor/formatter.test.d.ts +1 -0
  62. package/dist/cli/doctor/index.d.ts +5 -0
  63. package/dist/cli/doctor/runner.d.ts +7 -0
  64. package/dist/cli/doctor/runner.test.d.ts +1 -0
  65. package/dist/cli/doctor/types.d.ts +91 -0
  66. package/dist/cli/get-local-version/formatter.d.ts +3 -0
  67. package/dist/cli/get-local-version/index.d.ts +3 -0
  68. package/dist/cli/get-local-version/types.d.ts +13 -0
  69. package/dist/cli/index.d.ts +2 -0
  70. package/dist/cli/index.js +26903 -0
  71. package/dist/cli/index.test.d.ts +1 -0
  72. package/dist/cli/install.d.ts +2 -0
  73. package/dist/cli/install.test.d.ts +1 -0
  74. package/dist/cli/mcp-oauth/index.d.ts +6 -0
  75. package/dist/cli/mcp-oauth/index.test.d.ts +1 -0
  76. package/dist/cli/mcp-oauth/login.d.ts +6 -0
  77. package/dist/cli/mcp-oauth/login.test.d.ts +1 -0
  78. package/dist/cli/mcp-oauth/logout.d.ts +4 -0
  79. package/dist/cli/mcp-oauth/logout.test.d.ts +1 -0
  80. package/dist/cli/mcp-oauth/status.d.ts +1 -0
  81. package/dist/cli/mcp-oauth/status.test.d.ts +1 -0
  82. package/dist/cli/model-fallback.d.ts +18 -0
  83. package/dist/cli/model-fallback.test.d.ts +1 -0
  84. package/dist/cli/run/completion.d.ts +2 -0
  85. package/dist/cli/run/completion.test.d.ts +1 -0
  86. package/dist/cli/run/events.d.ts +14 -0
  87. package/dist/cli/run/events.test.d.ts +1 -0
  88. package/dist/cli/run/index.d.ts +2 -0
  89. package/dist/cli/run/runner.d.ts +2 -0
  90. package/dist/cli/run/types.d.ts +73 -0
  91. package/dist/cli/types.d.ts +39 -0
  92. package/dist/config/index.d.ts +2 -0
  93. package/dist/config/schema.d.ts +2651 -0
  94. package/dist/config/schema.test.d.ts +1 -0
  95. package/dist/features/background-agent/concurrency.d.ts +27 -0
  96. package/dist/features/background-agent/concurrency.test.d.ts +1 -0
  97. package/dist/features/background-agent/constants.d.ts +44 -0
  98. package/dist/features/background-agent/index.d.ts +4 -0
  99. package/dist/features/background-agent/manager.d.ts +118 -0
  100. package/dist/features/background-agent/manager.test.d.ts +1 -0
  101. package/dist/features/background-agent/result-handler.d.ts +15 -0
  102. package/dist/features/background-agent/spawner.d.ts +14 -0
  103. package/dist/features/background-agent/state.d.ts +35 -0
  104. package/dist/features/background-agent/types.d.ts +79 -0
  105. package/dist/features/boulder-state/constants.d.ts +10 -0
  106. package/dist/features/boulder-state/index.d.ts +3 -0
  107. package/dist/features/boulder-state/storage.d.ts +28 -0
  108. package/dist/features/boulder-state/storage.test.d.ts +1 -0
  109. package/dist/features/boulder-state/types.d.ts +24 -0
  110. package/dist/features/builtin-commands/commands.d.ts +2 -0
  111. package/dist/features/builtin-commands/index.d.ts +2 -0
  112. package/dist/features/builtin-commands/templates/init-deep.d.ts +1 -0
  113. package/dist/features/builtin-commands/templates/ralph-loop.d.ts +2 -0
  114. package/dist/features/builtin-commands/templates/refactor.d.ts +1 -0
  115. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -0
  116. package/dist/features/builtin-commands/templates/stop-continuation.d.ts +1 -0
  117. package/dist/features/builtin-commands/templates/stop-continuation.test.d.ts +1 -0
  118. package/dist/features/builtin-commands/types.d.ts +6 -0
  119. package/dist/features/builtin-skills/index.d.ts +2 -0
  120. package/dist/features/builtin-skills/skills/dev-browser.d.ts +2 -0
  121. package/dist/features/builtin-skills/skills/frontend-ui-ux.d.ts +2 -0
  122. package/dist/features/builtin-skills/skills/git-master.d.ts +2 -0
  123. package/dist/features/builtin-skills/skills/index.d.ts +4 -0
  124. package/dist/features/builtin-skills/skills/playwright.d.ts +3 -0
  125. package/dist/features/builtin-skills/skills.d.ts +6 -0
  126. package/dist/features/builtin-skills/skills.test.d.ts +1 -0
  127. package/dist/features/builtin-skills/types.d.ts +15 -0
  128. package/dist/features/claude-code-agent-loader/index.d.ts +2 -0
  129. package/dist/features/claude-code-agent-loader/loader.d.ts +3 -0
  130. package/dist/features/claude-code-agent-loader/types.d.ts +14 -0
  131. package/dist/features/claude-code-command-loader/index.d.ts +2 -0
  132. package/dist/features/claude-code-command-loader/loader.d.ts +6 -0
  133. package/dist/features/claude-code-command-loader/types.d.ts +42 -0
  134. package/dist/features/claude-code-mcp-loader/env-expander.d.ts +2 -0
  135. package/dist/features/claude-code-mcp-loader/index.d.ts +10 -0
  136. package/dist/features/claude-code-mcp-loader/loader.d.ts +4 -0
  137. package/dist/features/claude-code-mcp-loader/loader.test.d.ts +1 -0
  138. package/dist/features/claude-code-mcp-loader/transformer.d.ts +2 -0
  139. package/dist/features/claude-code-mcp-loader/types.d.ts +39 -0
  140. package/dist/features/claude-code-plugin-loader/index.d.ts +3 -0
  141. package/dist/features/claude-code-plugin-loader/loader.d.ts +20 -0
  142. package/dist/features/claude-code-plugin-loader/types.d.ts +186 -0
  143. package/dist/features/claude-code-session-state/index.d.ts +1 -0
  144. package/dist/features/claude-code-session-state/state.d.ts +9 -0
  145. package/dist/features/claude-code-session-state/state.test.d.ts +1 -0
  146. package/dist/features/context-injector/collector.d.ts +11 -0
  147. package/dist/features/context-injector/collector.test.d.ts +1 -0
  148. package/dist/features/context-injector/index.d.ts +3 -0
  149. package/dist/features/context-injector/injector.d.ts +39 -0
  150. package/dist/features/context-injector/injector.test.d.ts +1 -0
  151. package/dist/features/context-injector/types.d.ts +83 -0
  152. package/dist/features/hook-message-injector/constants.d.ts +3 -0
  153. package/dist/features/hook-message-injector/index.d.ts +4 -0
  154. package/dist/features/hook-message-injector/injector.d.ts +19 -0
  155. package/dist/features/hook-message-injector/types.d.ts +46 -0
  156. package/dist/features/mcp-oauth/callback-server.d.ts +11 -0
  157. package/dist/features/mcp-oauth/callback-server.test.d.ts +1 -0
  158. package/dist/features/mcp-oauth/dcr.d.ts +34 -0
  159. package/dist/features/mcp-oauth/dcr.test.d.ts +1 -0
  160. package/dist/features/mcp-oauth/discovery.d.ts +8 -0
  161. package/dist/features/mcp-oauth/discovery.test.d.ts +1 -0
  162. package/dist/features/mcp-oauth/index.d.ts +1 -0
  163. package/dist/features/mcp-oauth/provider.d.ts +41 -0
  164. package/dist/features/mcp-oauth/provider.test.d.ts +1 -0
  165. package/dist/features/mcp-oauth/resource-indicator.d.ts +2 -0
  166. package/dist/features/mcp-oauth/resource-indicator.test.d.ts +1 -0
  167. package/dist/features/mcp-oauth/schema.d.ts +6 -0
  168. package/dist/features/mcp-oauth/schema.test.d.ts +1 -0
  169. package/dist/features/mcp-oauth/step-up.d.ts +8 -0
  170. package/dist/features/mcp-oauth/step-up.test.d.ts +1 -0
  171. package/dist/features/mcp-oauth/storage.d.ts +17 -0
  172. package/dist/features/mcp-oauth/storage.test.d.ts +1 -0
  173. package/dist/features/opencode-skill-loader/async-loader.d.ts +6 -0
  174. package/dist/features/opencode-skill-loader/async-loader.test.d.ts +1 -0
  175. package/dist/features/opencode-skill-loader/blocking.d.ts +2 -0
  176. package/dist/features/opencode-skill-loader/blocking.test.d.ts +1 -0
  177. package/dist/features/opencode-skill-loader/discover-worker.d.ts +1 -0
  178. package/dist/features/opencode-skill-loader/index.d.ts +4 -0
  179. package/dist/features/opencode-skill-loader/loader.d.ts +16 -0
  180. package/dist/features/opencode-skill-loader/loader.test.d.ts +1 -0
  181. package/dist/features/opencode-skill-loader/merger.d.ts +7 -0
  182. package/dist/features/opencode-skill-loader/skill-content.d.ts +21 -0
  183. package/dist/features/opencode-skill-loader/skill-content.test.d.ts +1 -0
  184. package/dist/features/opencode-skill-loader/types.d.ts +34 -0
  185. package/dist/features/sisyphus-swarm/mailbox/types.d.ts +191 -0
  186. package/dist/features/sisyphus-swarm/mailbox/types.test.d.ts +1 -0
  187. package/dist/features/sisyphus-tasks/storage.d.ts +9 -0
  188. package/dist/features/sisyphus-tasks/storage.test.d.ts +1 -0
  189. package/dist/features/sisyphus-tasks/types.d.ts +47 -0
  190. package/dist/features/sisyphus-tasks/types.test.d.ts +1 -0
  191. package/dist/features/skill-mcp-manager/env-cleaner.d.ts +2 -0
  192. package/dist/features/skill-mcp-manager/env-cleaner.test.d.ts +1 -0
  193. package/dist/features/skill-mcp-manager/index.d.ts +2 -0
  194. package/dist/features/skill-mcp-manager/manager.d.ts +50 -0
  195. package/dist/features/skill-mcp-manager/manager.test.d.ts +1 -0
  196. package/dist/features/skill-mcp-manager/types.d.ts +11 -0
  197. package/dist/features/task-toast-manager/index.d.ts +2 -0
  198. package/dist/features/task-toast-manager/manager.d.ts +58 -0
  199. package/dist/features/task-toast-manager/manager.test.d.ts +1 -0
  200. package/dist/features/task-toast-manager/types.d.ts +24 -0
  201. package/dist/features/tmux-subagent/action-executor.d.ts +22 -0
  202. package/dist/features/tmux-subagent/decision-engine.d.ts +38 -0
  203. package/dist/features/tmux-subagent/decision-engine.test.d.ts +1 -0
  204. package/dist/features/tmux-subagent/index.d.ts +5 -0
  205. package/dist/features/tmux-subagent/manager.d.ts +59 -0
  206. package/dist/features/tmux-subagent/manager.test.d.ts +1 -0
  207. package/dist/features/tmux-subagent/pane-state-querier.d.ts +2 -0
  208. package/dist/features/tmux-subagent/types.d.ts +53 -0
  209. package/dist/hooks/agent-usage-reminder/constants.d.ts +5 -0
  210. package/dist/hooks/agent-usage-reminder/index.d.ts +22 -0
  211. package/dist/hooks/agent-usage-reminder/storage.d.ts +4 -0
  212. package/dist/hooks/agent-usage-reminder/types.d.ts +6 -0
  213. package/dist/hooks/anthropic-context-window-limit-recovery/executor.d.ts +4 -0
  214. package/dist/hooks/anthropic-context-window-limit-recovery/executor.test.d.ts +1 -0
  215. package/dist/hooks/anthropic-context-window-limit-recovery/index.d.ts +16 -0
  216. package/dist/hooks/anthropic-context-window-limit-recovery/parser.d.ts +2 -0
  217. package/dist/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.d.ts +7 -0
  218. package/dist/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.test.d.ts +1 -0
  219. package/dist/hooks/anthropic-context-window-limit-recovery/pruning-types.d.ts +36 -0
  220. package/dist/hooks/anthropic-context-window-limit-recovery/storage.d.ts +28 -0
  221. package/dist/hooks/anthropic-context-window-limit-recovery/storage.test.d.ts +1 -0
  222. package/dist/hooks/anthropic-context-window-limit-recovery/types.d.ts +37 -0
  223. package/dist/hooks/atlas/index.d.ts +35 -0
  224. package/dist/hooks/atlas/index.test.d.ts +1 -0
  225. package/dist/hooks/auto-slash-command/constants.d.ts +5 -0
  226. package/dist/hooks/auto-slash-command/detector.d.ts +9 -0
  227. package/dist/hooks/auto-slash-command/detector.test.d.ts +1 -0
  228. package/dist/hooks/auto-slash-command/executor.d.ts +11 -0
  229. package/dist/hooks/auto-slash-command/index.d.ts +12 -0
  230. package/dist/hooks/auto-slash-command/index.test.d.ts +1 -0
  231. package/dist/hooks/auto-slash-command/types.d.ts +27 -0
  232. package/dist/hooks/auto-update-checker/cache.d.ts +3 -0
  233. package/dist/hooks/auto-update-checker/checker.d.ts +20 -0
  234. package/dist/hooks/auto-update-checker/checker.test.d.ts +1 -0
  235. package/dist/hooks/auto-update-checker/constants.d.ts +10 -0
  236. package/dist/hooks/auto-update-checker/index.d.ts +17 -0
  237. package/dist/hooks/auto-update-checker/index.test.d.ts +1 -0
  238. package/dist/hooks/auto-update-checker/types.d.ts +25 -0
  239. package/dist/hooks/background-notification/index.d.ts +18 -0
  240. package/dist/hooks/background-notification/types.d.ts +4 -0
  241. package/dist/hooks/category-skill-reminder/index.d.ts +22 -0
  242. package/dist/hooks/category-skill-reminder/index.test.d.ts +1 -0
  243. package/dist/hooks/claude-code-hooks/config-loader.d.ts +13 -0
  244. package/dist/hooks/claude-code-hooks/config.d.ts +3 -0
  245. package/dist/hooks/claude-code-hooks/index.d.ts +48 -0
  246. package/dist/hooks/claude-code-hooks/plugin-config.d.ts +8 -0
  247. package/dist/hooks/claude-code-hooks/post-tool-use.d.ts +40 -0
  248. package/dist/hooks/claude-code-hooks/pre-compact.d.ts +16 -0
  249. package/dist/hooks/claude-code-hooks/pre-tool-use.d.ts +25 -0
  250. package/dist/hooks/claude-code-hooks/stop.d.ts +20 -0
  251. package/dist/hooks/claude-code-hooks/todo.d.ts +12 -0
  252. package/dist/hooks/claude-code-hooks/tool-input-cache.d.ts +5 -0
  253. package/dist/hooks/claude-code-hooks/transcript.d.ts +34 -0
  254. package/dist/hooks/claude-code-hooks/types.d.ts +183 -0
  255. package/dist/hooks/claude-code-hooks/user-prompt-submit.d.ts +22 -0
  256. package/dist/hooks/comment-checker/cli.d.ts +52 -0
  257. package/dist/hooks/comment-checker/cli.test.d.ts +1 -0
  258. package/dist/hooks/comment-checker/downloader.d.ts +25 -0
  259. package/dist/hooks/comment-checker/index.d.ts +19 -0
  260. package/dist/hooks/comment-checker/types.d.ts +31 -0
  261. package/dist/hooks/compaction-context-injector/index.d.ts +8 -0
  262. package/dist/hooks/compaction-context-injector/index.test.d.ts +1 -0
  263. package/dist/hooks/context-window-monitor.d.ts +18 -0
  264. package/dist/hooks/delegate-task-retry/index.d.ts +24 -0
  265. package/dist/hooks/delegate-task-retry/index.test.d.ts +1 -0
  266. package/dist/hooks/directory-agents-injector/constants.d.ts +3 -0
  267. package/dist/hooks/directory-agents-injector/index.d.ts +26 -0
  268. package/dist/hooks/directory-agents-injector/storage.d.ts +1 -0
  269. package/dist/hooks/directory-readme-injector/constants.d.ts +3 -0
  270. package/dist/hooks/directory-readme-injector/index.d.ts +26 -0
  271. package/dist/hooks/directory-readme-injector/storage.d.ts +1 -0
  272. package/dist/hooks/edit-error-recovery/index.d.ts +31 -0
  273. package/dist/hooks/edit-error-recovery/index.test.d.ts +1 -0
  274. package/dist/hooks/empty-task-response-detector.d.ts +12 -0
  275. package/dist/hooks/index.d.ts +35 -0
  276. package/dist/hooks/interactive-bash-session/constants.d.ts +4 -0
  277. package/dist/hooks/interactive-bash-session/index.d.ts +23 -0
  278. package/dist/hooks/interactive-bash-session/storage.d.ts +4 -0
  279. package/dist/hooks/interactive-bash-session/types.d.ts +10 -0
  280. package/dist/hooks/keyword-detector/analyze/default.d.ts +12 -0
  281. package/dist/hooks/keyword-detector/analyze/index.d.ts +1 -0
  282. package/dist/hooks/keyword-detector/constants.d.ts +10 -0
  283. package/dist/hooks/keyword-detector/detector.d.ts +11 -0
  284. package/dist/hooks/keyword-detector/index.d.ts +23 -0
  285. package/dist/hooks/keyword-detector/index.test.d.ts +1 -0
  286. package/dist/hooks/keyword-detector/search/default.d.ts +12 -0
  287. package/dist/hooks/keyword-detector/search/index.d.ts +1 -0
  288. package/dist/hooks/keyword-detector/types.d.ts +4 -0
  289. package/dist/hooks/keyword-detector/ultrawork/default.d.ts +10 -0
  290. package/dist/hooks/keyword-detector/ultrawork/gpt5.2.d.ts +16 -0
  291. package/dist/hooks/keyword-detector/ultrawork/index.d.ts +17 -0
  292. package/dist/hooks/keyword-detector/ultrawork/planner.d.ts +6 -0
  293. package/dist/hooks/keyword-detector/ultrawork/utils.d.ts +24 -0
  294. package/dist/hooks/non-interactive-env/constants.d.ts +34 -0
  295. package/dist/hooks/non-interactive-env/detector.d.ts +1 -0
  296. package/dist/hooks/non-interactive-env/index.d.ts +14 -0
  297. package/dist/hooks/non-interactive-env/index.test.d.ts +1 -0
  298. package/dist/hooks/non-interactive-env/types.d.ts +3 -0
  299. package/dist/hooks/prometheus-md-only/constants.d.ts +7 -0
  300. package/dist/hooks/prometheus-md-only/index.d.ts +12 -0
  301. package/dist/hooks/prometheus-md-only/index.test.d.ts +1 -0
  302. package/dist/hooks/question-label-truncator/index.d.ts +7 -0
  303. package/dist/hooks/question-label-truncator/index.test.d.ts +1 -0
  304. package/dist/hooks/ralph-loop/constants.d.ts +5 -0
  305. package/dist/hooks/ralph-loop/index.d.ts +21 -0
  306. package/dist/hooks/ralph-loop/index.test.d.ts +1 -0
  307. package/dist/hooks/ralph-loop/storage.d.ts +6 -0
  308. package/dist/hooks/ralph-loop/types.d.ts +17 -0
  309. package/dist/hooks/rules-injector/constants.d.ts +8 -0
  310. package/dist/hooks/rules-injector/finder.d.ts +33 -0
  311. package/dist/hooks/rules-injector/finder.test.d.ts +1 -0
  312. package/dist/hooks/rules-injector/index.d.ts +26 -0
  313. package/dist/hooks/rules-injector/matcher.d.ts +21 -0
  314. package/dist/hooks/rules-injector/output-path.d.ts +5 -0
  315. package/dist/hooks/rules-injector/output-path.test.d.ts +1 -0
  316. package/dist/hooks/rules-injector/parser.d.ts +18 -0
  317. package/dist/hooks/rules-injector/parser.test.d.ts +1 -0
  318. package/dist/hooks/rules-injector/storage.d.ts +9 -0
  319. package/dist/hooks/rules-injector/types.d.ts +54 -0
  320. package/dist/hooks/session-notification-utils.d.ts +9 -0
  321. package/dist/hooks/session-notification.d.ts +20 -0
  322. package/dist/hooks/session-notification.test.d.ts +1 -0
  323. package/dist/hooks/session-recovery/constants.d.ts +6 -0
  324. package/dist/hooks/session-recovery/index.d.ts +22 -0
  325. package/dist/hooks/session-recovery/index.test.d.ts +1 -0
  326. package/dist/hooks/session-recovery/storage.d.ts +19 -0
  327. package/dist/hooks/session-recovery/types.d.ts +90 -0
  328. package/dist/hooks/sisyphus-junior-notepad/constants.d.ts +2 -0
  329. package/dist/hooks/sisyphus-junior-notepad/index.d.ts +12 -0
  330. package/dist/hooks/start-work/index.d.ts +16 -0
  331. package/dist/hooks/start-work/index.test.d.ts +1 -0
  332. package/dist/hooks/stop-continuation-guard/index.d.ts +16 -0
  333. package/dist/hooks/stop-continuation-guard/index.test.d.ts +1 -0
  334. package/dist/hooks/subagent-question-blocker/index.d.ts +2 -0
  335. package/dist/hooks/subagent-question-blocker/index.test.d.ts +1 -0
  336. package/dist/hooks/task-resume-info/index.d.ts +11 -0
  337. package/dist/hooks/think-mode/detector.d.ts +5 -0
  338. package/dist/hooks/think-mode/index.d.ts +14 -0
  339. package/dist/hooks/think-mode/index.test.d.ts +1 -0
  340. package/dist/hooks/think-mode/switcher.d.ts +69 -0
  341. package/dist/hooks/think-mode/switcher.test.d.ts +1 -0
  342. package/dist/hooks/think-mode/types.d.ts +21 -0
  343. package/dist/hooks/thinking-block-validator/index.d.ts +30 -0
  344. package/dist/hooks/todo-continuation-enforcer.d.ts +19 -0
  345. package/dist/hooks/todo-continuation-enforcer.test.d.ts +1 -0
  346. package/dist/hooks/tool-output-truncator.d.ts +17 -0
  347. package/dist/hooks/tool-output-truncator.test.d.ts +1 -0
  348. package/dist/hooks/unstable-agent-babysitter/index.d.ts +50 -0
  349. package/dist/hooks/unstable-agent-babysitter/index.test.d.ts +1 -0
  350. package/dist/index.d.ts +5 -0
  351. package/dist/index.js +76117 -0
  352. package/dist/index.test.d.ts +1 -0
  353. package/dist/mcp/context7.d.ts +9 -0
  354. package/dist/mcp/grep-app.d.ts +6 -0
  355. package/dist/mcp/index.d.ts +9 -0
  356. package/dist/mcp/index.test.d.ts +1 -0
  357. package/dist/mcp/types.d.ts +9 -0
  358. package/dist/mcp/websearch.d.ts +9 -0
  359. package/dist/oh-my-parallel-agent-opencode.schema.json +2182 -0
  360. package/dist/plugin-config.d.ts +4 -0
  361. package/dist/plugin-config.test.d.ts +1 -0
  362. package/dist/plugin-handlers/config-handler.d.ts +13 -0
  363. package/dist/plugin-handlers/config-handler.test.d.ts +1 -0
  364. package/dist/plugin-handlers/index.d.ts +1 -0
  365. package/dist/plugin-state.d.ts +6 -0
  366. package/dist/shared/agent-config-integration.test.d.ts +1 -0
  367. package/dist/shared/agent-display-names.d.ts +12 -0
  368. package/dist/shared/agent-display-names.test.d.ts +1 -0
  369. package/dist/shared/agent-tool-restrictions.d.ts +7 -0
  370. package/dist/shared/agent-variant.d.ts +9 -0
  371. package/dist/shared/agent-variant.test.d.ts +1 -0
  372. package/dist/shared/binary-downloader.d.ts +10 -0
  373. package/dist/shared/claude-config-dir.d.ts +1 -0
  374. package/dist/shared/claude-config-dir.test.d.ts +1 -0
  375. package/dist/shared/command-executor.d.ts +21 -0
  376. package/dist/shared/config-errors.d.ts +7 -0
  377. package/dist/shared/connected-providers-cache.d.ts +52 -0
  378. package/dist/shared/data-path.d.ts +30 -0
  379. package/dist/shared/deep-merge.d.ts +13 -0
  380. package/dist/shared/deep-merge.test.d.ts +1 -0
  381. package/dist/shared/dynamic-truncator.d.ts +27 -0
  382. package/dist/shared/external-plugin-detector.d.ts +18 -0
  383. package/dist/shared/external-plugin-detector.test.d.ts +1 -0
  384. package/dist/shared/file-reference-resolver.d.ts +1 -0
  385. package/dist/shared/file-utils.d.ts +7 -0
  386. package/dist/shared/first-message-variant.d.ts +11 -0
  387. package/dist/shared/first-message-variant.test.d.ts +1 -0
  388. package/dist/shared/frontmatter.d.ts +7 -0
  389. package/dist/shared/frontmatter.test.d.ts +1 -0
  390. package/dist/shared/hook-disabled.d.ts +2 -0
  391. package/dist/shared/index.d.ts +36 -0
  392. package/dist/shared/jsonc-parser.d.ts +15 -0
  393. package/dist/shared/jsonc-parser.test.d.ts +1 -0
  394. package/dist/shared/logger.d.ts +2 -0
  395. package/dist/shared/migration.d.ts +32 -0
  396. package/dist/shared/migration.test.d.ts +1 -0
  397. package/dist/shared/model-availability.d.ts +19 -0
  398. package/dist/shared/model-availability.test.d.ts +1 -0
  399. package/dist/shared/model-requirements.d.ts +13 -0
  400. package/dist/shared/model-requirements.test.d.ts +1 -0
  401. package/dist/shared/model-resolution-pipeline.d.ts +24 -0
  402. package/dist/shared/model-resolver.d.ts +22 -0
  403. package/dist/shared/model-resolver.test.d.ts +1 -0
  404. package/dist/shared/model-sanitizer.d.ts +3 -0
  405. package/dist/shared/model-suggestion-retry.d.ts +24 -0
  406. package/dist/shared/model-suggestion-retry.test.d.ts +1 -0
  407. package/dist/shared/ollama-ndjson-parser.d.ts +108 -0
  408. package/dist/shared/opencode-config-dir.d.ts +19 -0
  409. package/dist/shared/opencode-config-dir.test.d.ts +1 -0
  410. package/dist/shared/opencode-version.d.ts +19 -0
  411. package/dist/shared/opencode-version.test.d.ts +1 -0
  412. package/dist/shared/pattern-matcher.d.ts +3 -0
  413. package/dist/shared/permission-compat.d.ts +27 -0
  414. package/dist/shared/permission-compat.test.d.ts +1 -0
  415. package/dist/shared/session-cursor.d.ts +13 -0
  416. package/dist/shared/session-cursor.test.d.ts +1 -0
  417. package/dist/shared/session-injected-paths.d.ts +10 -0
  418. package/dist/shared/session-utils.d.ts +2 -0
  419. package/dist/shared/shell-env.d.ts +41 -0
  420. package/dist/shared/shell-env.test.d.ts +1 -0
  421. package/dist/shared/snake-case.d.ts +5 -0
  422. package/dist/shared/system-directive.d.ts +45 -0
  423. package/dist/shared/system-directive.test.d.ts +1 -0
  424. package/dist/shared/tmux/constants.d.ts +5 -0
  425. package/dist/shared/tmux/index.d.ts +3 -0
  426. package/dist/shared/tmux/tmux-utils.d.ts +17 -0
  427. package/dist/shared/tmux/tmux-utils.test.d.ts +1 -0
  428. package/dist/shared/tmux/types.d.ts +4 -0
  429. package/dist/shared/tool-name.d.ts +1 -0
  430. package/dist/shared/zip-extractor.d.ts +1 -0
  431. package/dist/tools/ast-grep/cli.d.ts +15 -0
  432. package/dist/tools/ast-grep/constants.d.ts +29 -0
  433. package/dist/tools/ast-grep/downloader.d.ts +5 -0
  434. package/dist/tools/ast-grep/index.d.ts +8 -0
  435. package/dist/tools/ast-grep/tools.d.ts +3 -0
  436. package/dist/tools/ast-grep/types.d.ts +58 -0
  437. package/dist/tools/ast-grep/utils.d.ts +5 -0
  438. package/dist/tools/background-task/constants.d.ts +3 -0
  439. package/dist/tools/background-task/index.d.ts +4 -0
  440. package/dist/tools/background-task/tools.d.ts +47 -0
  441. package/dist/tools/background-task/tools.test.d.ts +1 -0
  442. package/dist/tools/background-task/types.d.ts +20 -0
  443. package/dist/tools/call-omo-agent/constants.d.ts +2 -0
  444. package/dist/tools/call-omo-agent/index.d.ts +3 -0
  445. package/dist/tools/call-omo-agent/tools.d.ts +3 -0
  446. package/dist/tools/call-omo-agent/types.d.ts +24 -0
  447. package/dist/tools/delegate-task/categories.d.ts +17 -0
  448. package/dist/tools/delegate-task/constants.d.ts +30 -0
  449. package/dist/tools/delegate-task/executor.d.ts +75 -0
  450. package/dist/tools/delegate-task/helpers.d.ts +30 -0
  451. package/dist/tools/delegate-task/index.d.ts +4 -0
  452. package/dist/tools/delegate-task/prompt-builder.d.ts +6 -0
  453. package/dist/tools/delegate-task/timing.d.ts +11 -0
  454. package/dist/tools/delegate-task/tools.d.ts +6 -0
  455. package/dist/tools/delegate-task/tools.test.d.ts +1 -0
  456. package/dist/tools/delegate-task/types.d.ts +44 -0
  457. package/dist/tools/glob/cli.d.ts +11 -0
  458. package/dist/tools/glob/cli.test.d.ts +1 -0
  459. package/dist/tools/glob/constants.d.ts +6 -0
  460. package/dist/tools/glob/index.d.ts +2 -0
  461. package/dist/tools/glob/tools.d.ts +2 -0
  462. package/dist/tools/glob/types.d.ts +20 -0
  463. package/dist/tools/glob/utils.d.ts +2 -0
  464. package/dist/tools/grep/cli.d.ts +3 -0
  465. package/dist/tools/grep/constants.d.ts +17 -0
  466. package/dist/tools/grep/downloader.d.ts +3 -0
  467. package/dist/tools/grep/downloader.test.d.ts +1 -0
  468. package/dist/tools/grep/index.d.ts +2 -0
  469. package/dist/tools/grep/tools.d.ts +2 -0
  470. package/dist/tools/grep/types.d.ts +36 -0
  471. package/dist/tools/grep/utils.d.ts +3 -0
  472. package/dist/tools/index.d.ts +15 -0
  473. package/dist/tools/interactive-bash/constants.d.ts +3 -0
  474. package/dist/tools/interactive-bash/index.d.ts +3 -0
  475. package/dist/tools/interactive-bash/tools.d.ts +7 -0
  476. package/dist/tools/interactive-bash/utils.d.ts +3 -0
  477. package/dist/tools/look-at/constants.d.ts +2 -0
  478. package/dist/tools/look-at/index.d.ts +3 -0
  479. package/dist/tools/look-at/tools.d.ts +9 -0
  480. package/dist/tools/look-at/tools.test.d.ts +1 -0
  481. package/dist/tools/look-at/types.d.ts +4 -0
  482. package/dist/tools/lsp/client.d.ts +50 -0
  483. package/dist/tools/lsp/config.d.ts +17 -0
  484. package/dist/tools/lsp/config.test.d.ts +1 -0
  485. package/dist/tools/lsp/constants.d.ts +9 -0
  486. package/dist/tools/lsp/index.d.ts +6 -0
  487. package/dist/tools/lsp/tools.d.ts +7 -0
  488. package/dist/tools/lsp/types.d.ts +123 -0
  489. package/dist/tools/lsp/utils.d.ts +26 -0
  490. package/dist/tools/session-manager/constants.d.ts +12 -0
  491. package/dist/tools/session-manager/index.d.ts +3 -0
  492. package/dist/tools/session-manager/storage.d.ts +12 -0
  493. package/dist/tools/session-manager/storage.test.d.ts +1 -0
  494. package/dist/tools/session-manager/tools.d.ts +5 -0
  495. package/dist/tools/session-manager/tools.test.d.ts +1 -0
  496. package/dist/tools/session-manager/types.d.ts +89 -0
  497. package/dist/tools/session-manager/utils.d.ts +11 -0
  498. package/dist/tools/session-manager/utils.test.d.ts +1 -0
  499. package/dist/tools/skill/constants.d.ts +3 -0
  500. package/dist/tools/skill/index.d.ts +3 -0
  501. package/dist/tools/skill/tools.d.ts +4 -0
  502. package/dist/tools/skill/tools.test.d.ts +1 -0
  503. package/dist/tools/skill/types.d.ts +28 -0
  504. package/dist/tools/skill-mcp/constants.d.ts +2 -0
  505. package/dist/tools/skill-mcp/index.d.ts +3 -0
  506. package/dist/tools/skill-mcp/tools.d.ts +11 -0
  507. package/dist/tools/skill-mcp/tools.test.d.ts +1 -0
  508. package/dist/tools/skill-mcp/types.d.ts +8 -0
  509. package/dist/tools/slashcommand/index.d.ts +2 -0
  510. package/dist/tools/slashcommand/tools.d.ts +5 -0
  511. package/dist/tools/slashcommand/tools.test.d.ts +1 -0
  512. package/dist/tools/slashcommand/types.d.ts +24 -0
  513. package/package.json +77 -6
  514. package/postinstall.mjs +43 -0
  515. package/__tests__/agents.test.ts +0 -107
  516. package/__tests__/config-handler.test.ts +0 -198
  517. package/__tests__/dynamic-agent.test.ts +0 -68
  518. package/__tests__/schema.test.ts +0 -149
  519. package/__tests__/setup.test.ts +0 -16
  520. package/bun.lock +0 -29
  521. package/oh-my-parallel-agent-opencode.example.json +0 -7
  522. package/src/agents/explore.ts +0 -117
  523. package/src/agents/index.ts +0 -69
  524. package/src/agents/librarian.ts +0 -302
  525. package/src/agents/metis.ts +0 -341
  526. package/src/agents/momus.ts +0 -237
  527. package/src/agents/types.ts +0 -95
  528. package/src/config/schema.ts +0 -15
  529. package/src/index.ts +0 -116
  530. package/src/plugin-handlers/config-handler.ts +0 -129
  531. package/src/utils/dynamic-agent.ts +0 -37
  532. package/tsconfig.json +0 -19
@@ -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 createRulesInjectorHook(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,21 @@
1
+ import type { RuleMetadata } from "./types";
2
+ export interface MatchResult {
3
+ applies: boolean;
4
+ reason?: string;
5
+ }
6
+ /**
7
+ * Check if a rule should apply to the current file based on metadata
8
+ */
9
+ export declare function shouldApplyRule(metadata: RuleMetadata, currentFilePath: string, projectRoot: string | null): MatchResult;
10
+ /**
11
+ * Check if realPath already exists in cache (symlink deduplication)
12
+ */
13
+ export declare function isDuplicateByRealPath(realPath: string, cache: Set<string>): boolean;
14
+ /**
15
+ * Create SHA-256 hash of content, truncated to 16 chars
16
+ */
17
+ export declare function createContentHash(content: string): string;
18
+ /**
19
+ * Check if content hash already exists in cache
20
+ */
21
+ export declare function isDuplicateByContentHash(hash: string, cache: Set<string>): boolean;
@@ -0,0 +1,5 @@
1
+ export interface ToolExecuteOutputShape {
2
+ title: string;
3
+ metadata: unknown;
4
+ }
5
+ export declare function getRuleInjectionFilePath(output: ToolExecuteOutputShape): string | null;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ import type { RuleMetadata } from "./types";
2
+ export interface RuleFrontmatterResult {
3
+ metadata: RuleMetadata;
4
+ body: string;
5
+ }
6
+ /**
7
+ * Parse YAML frontmatter from rule file content
8
+ * Supports:
9
+ * - Single string: globs: "**\/*.py"
10
+ * - Inline array: globs: ["**\/*.py", "src/**\/*.ts"]
11
+ * - Multi-line array:
12
+ * globs:
13
+ * - "**\/*.py"
14
+ * - "src/**\/*.ts"
15
+ * - Comma-separated: globs: "**\/*.py, src/**\/*.ts"
16
+ * - Claude Code 'paths' field (alias for globs)
17
+ */
18
+ export declare function parseRuleFrontmatter(content: string): RuleFrontmatterResult;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ export declare function loadInjectedRules(sessionID: string): {
2
+ contentHashes: Set<string>;
3
+ realPaths: Set<string>;
4
+ };
5
+ export declare function saveInjectedRules(sessionID: string, data: {
6
+ contentHashes: Set<string>;
7
+ realPaths: Set<string>;
8
+ }): void;
9
+ export declare function clearInjectedRules(sessionID: string): void;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Rule file metadata (Claude Code style frontmatter)
3
+ * Supports both Claude Code format (globs, paths) and GitHub Copilot format (applyTo)
4
+ * @see https://docs.anthropic.com/en/docs/claude-code/settings#rule-files
5
+ * @see https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot
6
+ */
7
+ export interface RuleMetadata {
8
+ description?: string;
9
+ globs?: string | string[];
10
+ alwaysApply?: boolean;
11
+ }
12
+ /**
13
+ * Rule information with path context and content
14
+ */
15
+ export interface RuleInfo {
16
+ /** Absolute path to the rule file */
17
+ path: string;
18
+ /** Path relative to project root */
19
+ relativePath: string;
20
+ /** Directory distance from target file (0 = same dir) */
21
+ distance: number;
22
+ /** Rule file content (without frontmatter) */
23
+ content: string;
24
+ /** SHA-256 hash of content for deduplication */
25
+ contentHash: string;
26
+ /** Parsed frontmatter metadata */
27
+ metadata: RuleMetadata;
28
+ /** Why this rule matched (e.g., "alwaysApply", "glob: *.ts", "path match") */
29
+ matchReason: string;
30
+ /** Real path after symlink resolution (for duplicate detection) */
31
+ realPath: string;
32
+ }
33
+ /**
34
+ * Rule file candidate with discovery context
35
+ */
36
+ export interface RuleFileCandidate {
37
+ path: string;
38
+ realPath: string;
39
+ isGlobal: boolean;
40
+ distance: number;
41
+ /** Single-file rules (e.g., .github/copilot-instructions.md) always apply without frontmatter */
42
+ isSingleFile?: boolean;
43
+ }
44
+ /**
45
+ * Session storage for injected rules tracking
46
+ */
47
+ export interface InjectedRulesData {
48
+ sessionID: string;
49
+ /** Content hashes of already injected rules */
50
+ injectedHashes: string[];
51
+ /** Real paths of already injected rules (for symlink deduplication) */
52
+ injectedRealPaths: string[];
53
+ updatedAt: number;
54
+ }
@@ -0,0 +1,9 @@
1
+ type Platform = "darwin" | "linux" | "win32" | "unsupported";
2
+ export declare const getNotifySendPath: () => Promise<string | null>;
3
+ export declare const getOsascriptPath: () => Promise<string | null>;
4
+ export declare const getPowershellPath: () => Promise<string | null>;
5
+ export declare const getAfplayPath: () => Promise<string | null>;
6
+ export declare const getPaplayPath: () => Promise<string | null>;
7
+ export declare const getAplayPath: () => Promise<string | null>;
8
+ export declare function startBackgroundCheck(platform: Platform): void;
9
+ export {};
@@ -0,0 +1,20 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ interface SessionNotificationConfig {
3
+ title?: string;
4
+ message?: string;
5
+ playSound?: boolean;
6
+ soundPath?: string;
7
+ /** Delay in ms before sending notification to confirm session is still idle (default: 1500) */
8
+ idleConfirmationDelay?: number;
9
+ /** Skip notification if there are incomplete todos (default: true) */
10
+ skipIfIncompleteTodos?: boolean;
11
+ /** Maximum number of sessions to track before cleanup (default: 100) */
12
+ maxTrackedSessions?: number;
13
+ }
14
+ export declare function createSessionNotification(ctx: PluginInput, config?: SessionNotificationConfig): ({ event }: {
15
+ event: {
16
+ type: string;
17
+ properties?: unknown;
18
+ };
19
+ }) => Promise<void>;
20
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export declare const OPENCODE_STORAGE: string;
2
+ export declare const MESSAGE_STORAGE: string;
3
+ export declare const PART_STORAGE: string;
4
+ export declare const THINKING_TYPES: Set<string>;
5
+ export declare const META_TYPES: Set<string>;
6
+ export declare const CONTENT_TYPES: Set<string>;
@@ -0,0 +1,22 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ import type { ExperimentalConfig } from "../../config";
3
+ export interface SessionRecoveryOptions {
4
+ experimental?: ExperimentalConfig;
5
+ }
6
+ type RecoveryErrorType = "tool_result_missing" | "thinking_block_order" | "thinking_disabled_violation" | null;
7
+ interface MessageInfo {
8
+ id?: string;
9
+ role?: string;
10
+ sessionID?: string;
11
+ parentID?: string;
12
+ error?: unknown;
13
+ }
14
+ export declare function detectErrorType(error: unknown): RecoveryErrorType;
15
+ export interface SessionRecoveryHook {
16
+ handleSessionRecovery: (info: MessageInfo) => Promise<boolean>;
17
+ isRecoverableError: (error: unknown) => boolean;
18
+ setOnAbortCallback: (callback: (sessionID: string) => void) => void;
19
+ setOnRecoveryCompleteCallback: (callback: (sessionID: string) => void) => void;
20
+ }
21
+ export declare function createSessionRecoveryHook(ctx: PluginInput, options?: SessionRecoveryOptions): SessionRecoveryHook;
22
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ import type { StoredMessageMeta, StoredPart } from "./types";
2
+ export declare function generatePartId(): string;
3
+ export declare function getMessageDir(sessionID: string): string;
4
+ export declare function readMessages(sessionID: string): StoredMessageMeta[];
5
+ export declare function readParts(messageID: string): StoredPart[];
6
+ export declare function hasContent(part: StoredPart): boolean;
7
+ export declare function messageHasContent(messageID: string): boolean;
8
+ export declare function injectTextPart(sessionID: string, messageID: string, text: string): boolean;
9
+ export declare function findEmptyMessages(sessionID: string): string[];
10
+ export declare function findEmptyMessageByIndex(sessionID: string, targetIndex: number): string | null;
11
+ export declare function findFirstEmptyMessage(sessionID: string): string | null;
12
+ export declare function findMessagesWithThinkingBlocks(sessionID: string): string[];
13
+ export declare function findMessagesWithThinkingOnly(sessionID: string): string[];
14
+ export declare function findMessagesWithOrphanThinking(sessionID: string): string[];
15
+ export declare function prependThinkingPart(sessionID: string, messageID: string): boolean;
16
+ export declare function stripThinkingParts(messageID: string): boolean;
17
+ export declare function replaceEmptyTextParts(messageID: string, replacementText: string): boolean;
18
+ export declare function findMessagesWithEmptyTextParts(sessionID: string): string[];
19
+ export declare function findMessageByIndexNeedingThinking(sessionID: string, targetIndex: number): string | null;
@@ -0,0 +1,90 @@
1
+ export type ThinkingPartType = "thinking" | "redacted_thinking" | "reasoning";
2
+ export type MetaPartType = "step-start" | "step-finish";
3
+ export type ContentPartType = "text" | "tool" | "tool_use" | "tool_result";
4
+ export interface StoredMessageMeta {
5
+ id: string;
6
+ sessionID: string;
7
+ role: "user" | "assistant";
8
+ parentID?: string;
9
+ time?: {
10
+ created: number;
11
+ completed?: number;
12
+ };
13
+ error?: unknown;
14
+ }
15
+ export interface StoredTextPart {
16
+ id: string;
17
+ sessionID: string;
18
+ messageID: string;
19
+ type: "text";
20
+ text: string;
21
+ synthetic?: boolean;
22
+ ignored?: boolean;
23
+ }
24
+ export interface StoredToolPart {
25
+ id: string;
26
+ sessionID: string;
27
+ messageID: string;
28
+ type: "tool";
29
+ callID: string;
30
+ tool: string;
31
+ state: {
32
+ status: "pending" | "running" | "completed" | "error";
33
+ input: Record<string, unknown>;
34
+ output?: string;
35
+ error?: string;
36
+ };
37
+ }
38
+ export interface StoredReasoningPart {
39
+ id: string;
40
+ sessionID: string;
41
+ messageID: string;
42
+ type: "reasoning";
43
+ text: string;
44
+ }
45
+ export interface StoredStepPart {
46
+ id: string;
47
+ sessionID: string;
48
+ messageID: string;
49
+ type: "step-start" | "step-finish";
50
+ }
51
+ export type StoredPart = StoredTextPart | StoredToolPart | StoredReasoningPart | StoredStepPart | {
52
+ id: string;
53
+ sessionID: string;
54
+ messageID: string;
55
+ type: string;
56
+ [key: string]: unknown;
57
+ };
58
+ export interface MessageData {
59
+ info?: {
60
+ id?: string;
61
+ role?: string;
62
+ sessionID?: string;
63
+ parentID?: string;
64
+ error?: unknown;
65
+ agent?: string;
66
+ model?: {
67
+ providerID: string;
68
+ modelID: string;
69
+ };
70
+ system?: string;
71
+ tools?: Record<string, boolean>;
72
+ };
73
+ parts?: Array<{
74
+ type: string;
75
+ id?: string;
76
+ text?: string;
77
+ thinking?: string;
78
+ name?: string;
79
+ input?: Record<string, unknown>;
80
+ callID?: string;
81
+ }>;
82
+ }
83
+ export interface ResumeConfig {
84
+ sessionID: string;
85
+ agent?: string;
86
+ model?: {
87
+ providerID: string;
88
+ modelID: string;
89
+ };
90
+ }
@@ -0,0 +1,2 @@
1
+ export declare const HOOK_NAME = "sisyphus-junior-notepad";
2
+ export declare const NOTEPAD_DIRECTIVE = "\n<Work_Context>\n## Notepad Location (for recording learnings)\nNOTEPAD PATH: .sisyphus/notepads/{plan-name}/\n- learnings.md: Record patterns, conventions, successful approaches\n- issues.md: Record problems, blockers, gotchas encountered\n- decisions.md: Record architectural choices and rationales\n- problems.md: Record unresolved issues, technical debt\n\nYou SHOULD append findings to notepad files after completing work.\nIMPORTANT: Always APPEND to notepad files - never overwrite or use Edit tool.\n\n## Plan Location (READ ONLY)\nPLAN PATH: .sisyphus/plans/{plan-name}.md\n\nCRITICAL RULE: NEVER MODIFY THE PLAN FILE\n\nThe plan file (.sisyphus/plans/*.md) is SACRED and READ-ONLY.\n- You may READ the plan to understand tasks\n- You may READ checkbox items to know what to do\n- You MUST NOT edit, modify, or update the plan file\n- You MUST NOT mark checkboxes as complete in the plan\n- Only the Orchestrator manages the plan file\n\nVIOLATION = IMMEDIATE FAILURE. The Orchestrator tracks plan state.\n</Work_Context>\n";
@@ -0,0 +1,12 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ export * from "./constants";
3
+ export declare function createSisyphusJuniorNotepadHook(ctx: PluginInput): {
4
+ "tool.execute.before": (input: {
5
+ tool: string;
6
+ sessionID: string;
7
+ callID: string;
8
+ }, output: {
9
+ args: Record<string, unknown>;
10
+ message?: string;
11
+ }) => Promise<void>;
12
+ };
@@ -0,0 +1,16 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ export declare const HOOK_NAME = "start-work";
3
+ interface StartWorkHookInput {
4
+ sessionID: string;
5
+ messageID?: string;
6
+ }
7
+ interface StartWorkHookOutput {
8
+ parts: Array<{
9
+ type: string;
10
+ text?: string;
11
+ }>;
12
+ }
13
+ export declare function createStartWorkHook(ctx: PluginInput): {
14
+ "chat.message": (input: StartWorkHookInput, output: StartWorkHookOutput) => Promise<void>;
15
+ };
16
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ export interface StopContinuationGuard {
3
+ event: (input: {
4
+ event: {
5
+ type: string;
6
+ properties?: unknown;
7
+ };
8
+ }) => Promise<void>;
9
+ "chat.message": (input: {
10
+ sessionID?: string;
11
+ }) => Promise<void>;
12
+ stop: (sessionID: string) => void;
13
+ isStopped: (sessionID: string) => boolean;
14
+ clear: (sessionID: string) => void;
15
+ }
16
+ export declare function createStopContinuationGuardHook(_ctx: PluginInput): StopContinuationGuard;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { Hooks } from "@opencode-ai/plugin";
2
+ export declare function createSubagentQuestionBlockerHook(): Hooks;
@@ -0,0 +1,11 @@
1
+ export declare function createTaskResumeInfoHook(): {
2
+ "tool.execute.after": (input: {
3
+ tool: string;
4
+ sessionID: string;
5
+ callID: string;
6
+ }, output: {
7
+ title: string;
8
+ output: string;
9
+ metadata: unknown;
10
+ }) => Promise<void>;
11
+ };
@@ -0,0 +1,5 @@
1
+ export declare function detectThinkKeyword(text: string): boolean;
2
+ export declare function extractPromptText(parts: Array<{
3
+ type: string;
4
+ text?: string;
5
+ }>): string;
@@ -0,0 +1,14 @@
1
+ import type { ThinkModeInput } from "./types";
2
+ export * from "./detector";
3
+ export * from "./switcher";
4
+ export * from "./types";
5
+ export declare function clearThinkModeState(sessionID: string): void;
6
+ export declare function createThinkModeHook(): {
7
+ "chat.params": (output: ThinkModeInput, sessionID: string) => Promise<void>;
8
+ event: ({ event }: {
9
+ event: {
10
+ type: string;
11
+ properties?: unknown;
12
+ };
13
+ }) => Promise<void>;
14
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Think Mode Switcher
3
+ *
4
+ * This module handles "thinking mode" activation for reasoning-capable models.
5
+ * When a user includes "think" keywords in their prompt, models are upgraded to
6
+ * their high-reasoning variants with extended thinking budgets.
7
+ *
8
+ * PROVIDER ALIASING:
9
+ * GitHub Copilot acts as a proxy provider that routes to underlying providers
10
+ * (Anthropic, Google, OpenAI). We resolve the proxy to the actual provider
11
+ * based on model name patterns, allowing GitHub Copilot to inherit thinking
12
+ * configurations without duplication.
13
+ *
14
+ * NORMALIZATION:
15
+ * Model IDs are normalized (dots → hyphens in version numbers) to handle API
16
+ * inconsistencies defensively while maintaining backwards compatibility.
17
+ */
18
+ export declare const THINKING_CONFIGS: {
19
+ readonly anthropic: {
20
+ readonly thinking: {
21
+ readonly type: "enabled";
22
+ readonly budgetTokens: 64000;
23
+ };
24
+ readonly maxTokens: 128000;
25
+ };
26
+ readonly "amazon-bedrock": {
27
+ readonly reasoningConfig: {
28
+ readonly type: "enabled";
29
+ readonly budgetTokens: 32000;
30
+ };
31
+ readonly maxTokens: 64000;
32
+ };
33
+ readonly google: {
34
+ readonly providerOptions: {
35
+ readonly google: {
36
+ readonly thinkingConfig: {
37
+ readonly thinkingLevel: "HIGH";
38
+ };
39
+ };
40
+ };
41
+ };
42
+ readonly "google-vertex": {
43
+ readonly providerOptions: {
44
+ readonly "google-vertex": {
45
+ readonly thinkingConfig: {
46
+ readonly thinkingLevel: "HIGH";
47
+ };
48
+ };
49
+ };
50
+ };
51
+ readonly openai: {
52
+ readonly reasoning_effort: "high";
53
+ };
54
+ readonly "zai-coding-plan": {
55
+ readonly providerOptions: {
56
+ readonly "zai-coding-plan": {
57
+ readonly extra_body: {
58
+ readonly thinking: {
59
+ readonly type: "enabled";
60
+ readonly clear_thinking: false;
61
+ };
62
+ };
63
+ };
64
+ };
65
+ };
66
+ };
67
+ export declare function getHighVariant(modelID: string): string | null;
68
+ export declare function isAlreadyHighVariant(modelID: string): boolean;
69
+ export declare function getThinkingConfig(providerID: string, modelID: string): Record<string, unknown> | null;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ export interface ThinkModeState {
2
+ requested: boolean;
3
+ modelSwitched: boolean;
4
+ thinkingConfigInjected: boolean;
5
+ providerID?: string;
6
+ modelID?: string;
7
+ }
8
+ export interface ModelRef {
9
+ providerID: string;
10
+ modelID: string;
11
+ }
12
+ export interface MessageWithModel {
13
+ model?: ModelRef;
14
+ }
15
+ export interface ThinkModeInput {
16
+ parts: Array<{
17
+ type: string;
18
+ text?: string;
19
+ }>;
20
+ message: MessageWithModel;
21
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Proactive Thinking Block Validator Hook
3
+ *
4
+ * Prevents "Expected thinking/redacted_thinking but found tool_use" errors
5
+ * by validating and fixing message structure BEFORE sending to Anthropic API.
6
+ *
7
+ * This hook runs on the "experimental.chat.messages.transform" hook point,
8
+ * which is called before messages are converted to ModelMessage format and
9
+ * sent to the API.
10
+ *
11
+ * Key differences from session-recovery hook:
12
+ * - PROACTIVE (prevents error) vs REACTIVE (fixes after error)
13
+ * - Runs BEFORE API call vs AFTER API error
14
+ * - User never sees the error vs User sees error then recovery
15
+ */
16
+ import type { Message, Part } from "@opencode-ai/sdk";
17
+ interface MessageWithParts {
18
+ info: Message;
19
+ parts: Part[];
20
+ }
21
+ type MessagesTransformHook = {
22
+ "experimental.chat.messages.transform"?: (input: Record<string, never>, output: {
23
+ messages: MessageWithParts[];
24
+ }) => Promise<void>;
25
+ };
26
+ /**
27
+ * Validate and fix assistant messages that have tool_use but no thinking block
28
+ */
29
+ export declare function createThinkingBlockValidatorHook(): MessagesTransformHook;
30
+ export {};
@@ -0,0 +1,19 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ import type { BackgroundManager } from "../features/background-agent";
3
+ export interface TodoContinuationEnforcerOptions {
4
+ backgroundManager?: BackgroundManager;
5
+ skipAgents?: string[];
6
+ isContinuationStopped?: (sessionID: string) => boolean;
7
+ }
8
+ export interface TodoContinuationEnforcer {
9
+ handler: (input: {
10
+ event: {
11
+ type: string;
12
+ properties?: unknown;
13
+ };
14
+ }) => Promise<void>;
15
+ markRecovering: (sessionID: string) => void;
16
+ markRecoveryComplete: (sessionID: string) => void;
17
+ cancelAllCountdowns: () => void;
18
+ }
19
+ export declare function createTodoContinuationEnforcer(ctx: PluginInput, options?: TodoContinuationEnforcerOptions): TodoContinuationEnforcer;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ import type { ExperimentalConfig } from "../config/schema";
3
+ interface ToolOutputTruncatorOptions {
4
+ experimental?: ExperimentalConfig;
5
+ }
6
+ export declare function createToolOutputTruncatorHook(ctx: PluginInput, options?: ToolOutputTruncatorOptions): {
7
+ "tool.execute.after": (input: {
8
+ tool: string;
9
+ sessionID: string;
10
+ callID: string;
11
+ }, output: {
12
+ title: string;
13
+ output: string;
14
+ metadata: unknown;
15
+ }) => Promise<void>;
16
+ };
17
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,50 @@
1
+ import type { BackgroundManager } from "../../features/background-agent";
2
+ type BabysittingConfig = {
3
+ timeout_ms?: number;
4
+ };
5
+ type BabysitterContext = {
6
+ directory: string;
7
+ client: {
8
+ session: {
9
+ messages: (args: {
10
+ path: {
11
+ id: string;
12
+ };
13
+ }) => Promise<{
14
+ data?: unknown;
15
+ } | unknown[]>;
16
+ prompt: (args: {
17
+ path: {
18
+ id: string;
19
+ };
20
+ body: {
21
+ parts: Array<{
22
+ type: "text";
23
+ text: string;
24
+ }>;
25
+ agent?: string;
26
+ model?: {
27
+ providerID: string;
28
+ modelID: string;
29
+ };
30
+ };
31
+ query?: {
32
+ directory?: string;
33
+ };
34
+ }) => Promise<unknown>;
35
+ };
36
+ };
37
+ };
38
+ type BabysitterOptions = {
39
+ backgroundManager: Pick<BackgroundManager, "getTasksByParentSession">;
40
+ config?: BabysittingConfig;
41
+ };
42
+ export declare function createUnstableAgentBabysitterHook(ctx: BabysitterContext, options: BabysitterOptions): {
43
+ event: ({ event }: {
44
+ event: {
45
+ type: string;
46
+ properties?: unknown;
47
+ };
48
+ }) => Promise<void>;
49
+ };
50
+ export {};