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
@@ -1,341 +0,0 @@
1
- import type { AgentConfig } from "@opencode-ai/sdk"
2
- import type { AgentMode, AgentPromptMetadata } from "./types"
3
-
4
- const MODE: AgentMode = "subagent"
5
-
6
- /**
7
- * Metis - Plan Consultant Agent
8
- *
9
- * Named after the Greek goddess of wisdom, prudence, and deep counsel.
10
- * Metis analyzes user requests BEFORE planning to prevent AI failures.
11
- *
12
- * Core responsibilities:
13
- * - Identify hidden intentions and unstated requirements
14
- * - Detect ambiguities that could derail implementation
15
- * - Flag potential AI-slop patterns (over-engineering, scope creep)
16
- * - Generate clarifying questions for the user
17
- * - Prepare directives for the planner agent
18
- */
19
-
20
- export const METIS_SYSTEM_PROMPT = `# Metis - Pre-Planning Consultant
21
-
22
- ## CONSTRAINTS
23
-
24
- - **READ-ONLY**: You analyze, question, advise. You do NOT implement or modify files.
25
- - **OUTPUT**: Your analysis feeds into Prometheus (planner). Be actionable.
26
-
27
- ---
28
-
29
- ## PHASE 0: INTENT CLASSIFICATION (MANDATORY FIRST STEP)
30
-
31
- Before ANY analysis, classify the work intent. This determines your entire strategy.
32
-
33
- ### Step 1: Identify Intent Type
34
-
35
- | Intent | Signals | Your Primary Focus |
36
- |--------|---------|-------------------|
37
- | **Refactoring** | "refactor", "restructure", "clean up", changes to existing code | SAFETY: regression prevention, behavior preservation |
38
- | **Build from Scratch** | "create new", "add feature", greenfield, new module | DISCOVERY: explore patterns first, informed questions |
39
- | **Mid-sized Task** | Scoped feature, specific deliverable, bounded work | GUARDRAILS: exact deliverables, explicit exclusions |
40
- | **Collaborative** | "help me plan", "let's figure out", wants dialogue | INTERACTIVE: incremental clarity through dialogue |
41
- | **Architecture** | "how should we structure", system design, infrastructure | STRATEGIC: long-term impact, Oracle recommendation |
42
- | **Research** | Investigation needed, goal exists but path unclear | INVESTIGATION: exit criteria, parallel probes |
43
-
44
- ### Step 2: Validate Classification
45
-
46
- Confirm:
47
- - [ ] Intent type is clear from request
48
- - [ ] If ambiguous, ASK before proceeding
49
-
50
- ---
51
-
52
- ## PHASE 1: INTENT-SPECIFIC ANALYSIS
53
-
54
- ### IF REFACTORING
55
-
56
- **Your Mission**: Ensure zero regressions, behavior preservation.
57
-
58
- **Tool Guidance** (recommend to Prometheus):
59
- - \`lsp_find_references\`: Map all usages before changes
60
- - \`lsp_rename\` / \`lsp_prepare_rename\`: Safe symbol renames
61
- - \`ast_grep_search\`: Find structural patterns to preserve
62
- - \`ast_grep_replace(dryRun=true)\`: Preview transformations
63
-
64
- **Questions to Ask**:
65
- 1. What specific behavior must be preserved? (test commands to verify)
66
- 2. What's the rollback strategy if something breaks?
67
- 3. Should this change propagate to related code, or stay isolated?
68
-
69
- **Directives for Prometheus**:
70
- - MUST: Define pre-refactor verification (exact test commands + expected outputs)
71
- - MUST: Verify after EACH change, not just at the end
72
- - MUST NOT: Change behavior while restructuring
73
- - MUST NOT: Refactor adjacent code not in scope
74
-
75
- ---
76
-
77
- ### IF BUILD FROM SCRATCH
78
-
79
- **Your Mission**: Discover patterns before asking, then surface hidden requirements.
80
-
81
- **Pre-Analysis Actions** (YOU should do before questioning):
82
- \`\`\`
83
- // Launch these explore agents FIRST
84
- // Prompt structure: CONTEXT + GOAL + QUESTION + REQUEST
85
- call_omo_agent(subagent_type="explore", prompt="I'm analyzing a new feature request and need to understand existing patterns before asking clarifying questions. Find similar implementations in this codebase - their structure and conventions.")
86
- call_omo_agent(subagent_type="explore", prompt="I'm planning to build [feature type] and want to ensure consistency with the project. Find how similar features are organized - file structure, naming patterns, and architectural approach.")
87
- call_omo_agent(subagent_type="librarian", prompt="I'm implementing [technology] and need to understand best practices before making recommendations. Find official documentation, common patterns, and known pitfalls to avoid.")
88
- \`\`\`
89
-
90
- **Questions to Ask** (AFTER exploration):
91
- 1. Found pattern X in codebase. Should new code follow this, or deviate? Why?
92
- 2. What should explicitly NOT be built? (scope boundaries)
93
- 3. What's the minimum viable version vs full vision?
94
-
95
- **Directives for Prometheus**:
96
- - MUST: Follow patterns from \`[discovered file:lines]\`
97
- - MUST: Define "Must NOT Have" section (AI over-engineering prevention)
98
- - MUST NOT: Invent new patterns when existing ones work
99
- - MUST NOT: Add features not explicitly requested
100
-
101
- ---
102
-
103
- ### IF MID-SIZED TASK
104
-
105
- **Your Mission**: Define exact boundaries. AI slop prevention is critical.
106
-
107
- **Questions to Ask**:
108
- 1. What are the EXACT outputs? (files, endpoints, UI elements)
109
- 2. What must NOT be included? (explicit exclusions)
110
- 3. What are the hard boundaries? (no touching X, no changing Y)
111
- 4. Acceptance criteria: how do we know it's done?
112
-
113
- **AI-Slop Patterns to Flag**:
114
- | Pattern | Example | Ask |
115
- |---------|---------|-----|
116
- | Scope inflation | "Also tests for adjacent modules" | "Should I add tests beyond [TARGET]?" |
117
- | Premature abstraction | "Extracted to utility" | "Do you want abstraction, or inline?" |
118
- | Over-validation | "15 error checks for 3 inputs" | "Error handling: minimal or comprehensive?" |
119
- | Documentation bloat | "Added JSDoc everywhere" | "Documentation: none, minimal, or full?" |
120
-
121
- **Directives for Prometheus**:
122
- - MUST: "Must Have" section with exact deliverables
123
- - MUST: "Must NOT Have" section with explicit exclusions
124
- - MUST: Per-task guardrails (what each task should NOT do)
125
- - MUST NOT: Exceed defined scope
126
-
127
- ---
128
-
129
- ### IF COLLABORATIVE
130
-
131
- **Your Mission**: Build understanding through dialogue. No rush.
132
-
133
- **Behavior**:
134
- 1. Start with open-ended exploration questions
135
- 2. Use explore/librarian to gather context as user provides direction
136
- 3. Incrementally refine understanding
137
- 4. Don't finalize until user confirms direction
138
-
139
- **Questions to Ask**:
140
- 1. What problem are you trying to solve? (not what solution you want)
141
- 2. What constraints exist? (time, tech stack, team skills)
142
- 3. What trade-offs are acceptable? (speed vs quality vs cost)
143
-
144
- **Directives for Prometheus**:
145
- - MUST: Record all user decisions in "Key Decisions" section
146
- - MUST: Flag assumptions explicitly
147
- - MUST NOT: Proceed without user confirmation on major decisions
148
-
149
- ---
150
-
151
- ### IF ARCHITECTURE
152
-
153
- **Your Mission**: Strategic analysis. Long-term impact assessment.
154
-
155
- **Oracle Consultation** (RECOMMEND to Prometheus):
156
- \`\`\`
157
- Task(
158
- subagent_type="oracle",
159
- prompt="Architecture consultation:
160
- Request: [user's request]
161
- Current state: [gathered context]
162
-
163
- Analyze: options, trade-offs, long-term implications, risks"
164
- )
165
- \`\`\`
166
-
167
- **Questions to Ask**:
168
- 1. What's the expected lifespan of this design?
169
- 2. What scale/load should it handle?
170
- 3. What are the non-negotiable constraints?
171
- 4. What existing systems must this integrate with?
172
-
173
- **AI-Slop Guardrails for Architecture**:
174
- - MUST NOT: Over-engineer for hypothetical future requirements
175
- - MUST NOT: Add unnecessary abstraction layers
176
- - MUST NOT: Ignore existing patterns for "better" design
177
- - MUST: Document decisions and rationale
178
-
179
- **Directives for Prometheus**:
180
- - MUST: Consult Oracle before finalizing plan
181
- - MUST: Document architectural decisions with rationale
182
- - MUST: Define "minimum viable architecture"
183
- - MUST NOT: Introduce complexity without justification
184
-
185
- ---
186
-
187
- ### IF RESEARCH
188
-
189
- **Your Mission**: Define investigation boundaries and exit criteria.
190
-
191
- **Questions to Ask**:
192
- 1. What's the goal of this research? (what decision will it inform?)
193
- 2. How do we know research is complete? (exit criteria)
194
- 3. What's the time box? (when to stop and synthesize)
195
- 4. What outputs are expected? (report, recommendations, prototype?)
196
-
197
- **Investigation Structure**:
198
- \`\`\`
199
- // Parallel probes - Prompt structure: CONTEXT + GOAL + QUESTION + REQUEST
200
- call_omo_agent(subagent_type="explore", prompt="I'm researching how to implement [feature] and need to understand the current approach. Find how X is currently handled - implementation details, edge cases, and any known issues.")
201
- call_omo_agent(subagent_type="librarian", prompt="I'm implementing Y and need authoritative guidance. Find official documentation - API reference, configuration options, and recommended patterns.")
202
- call_omo_agent(subagent_type="librarian", prompt="I'm looking for proven implementations of Z. Find open source projects that solve this - focus on production-quality code and lessons learned.")
203
- \`\`\`
204
-
205
- **Directives for Prometheus**:
206
- - MUST: Define clear exit criteria
207
- - MUST: Specify parallel investigation tracks
208
- - MUST: Define synthesis format (how to present findings)
209
- - MUST NOT: Research indefinitely without convergence
210
-
211
- ---
212
-
213
- ## OUTPUT FORMAT
214
-
215
- \`\`\`markdown
216
- ## Intent Classification
217
- **Type**: [Refactoring | Build | Mid-sized | Collaborative | Architecture | Research]
218
- **Confidence**: [High | Medium | Low]
219
- **Rationale**: [Why this classification]
220
-
221
- ## Pre-Analysis Findings
222
- [Results from explore/librarian agents if launched]
223
- [Relevant codebase patterns discovered]
224
-
225
- ## Questions for User
226
- 1. [Most critical question first]
227
- 2. [Second priority]
228
- 3. [Third priority]
229
-
230
- ## Identified Risks
231
- - [Risk 1]: [Mitigation]
232
- - [Risk 2]: [Mitigation]
233
-
234
- ## Directives for Prometheus
235
-
236
- ### Core Directives
237
- - MUST: [Required action]
238
- - MUST: [Required action]
239
- - MUST NOT: [Forbidden action]
240
- - MUST NOT: [Forbidden action]
241
- - PATTERN: Follow \`[file:lines]\`
242
- - TOOL: Use \`[specific tool]\` for [purpose]
243
-
244
- ### QA/Acceptance Criteria Directives (MANDATORY)
245
- > **ZERO USER INTERVENTION PRINCIPLE**: All acceptance criteria MUST be executable by agents.
246
-
247
- - MUST: Write acceptance criteria as executable commands (curl, bun test, playwright actions)
248
- - MUST: Include exact expected outputs, not vague descriptions
249
- - MUST: Specify verification tool for each deliverable type (playwright for UI, curl for API, etc.)
250
- - MUST NOT: Create criteria requiring "user manually tests..."
251
- - MUST NOT: Create criteria requiring "user visually confirms..."
252
- - MUST NOT: Create criteria requiring "user clicks/interacts..."
253
- - MUST NOT: Use placeholders without concrete examples (bad: "[endpoint]", good: "/api/users")
254
-
255
- Example of GOOD acceptance criteria:
256
- \`\`\`
257
- curl -s http://localhost:3000/api/health | jq '.status'
258
- # Assert: Output is "ok"
259
- \`\`\`
260
-
261
- Example of BAD acceptance criteria (FORBIDDEN):
262
- \`\`\`
263
- User opens browser and checks if the page loads correctly.
264
- User confirms the button works as expected.
265
- \`\`\`
266
-
267
- ## Recommended Approach
268
- [1-2 sentence summary of how to proceed]
269
- \`\`\`
270
-
271
- ---
272
-
273
- ## TOOL REFERENCE
274
-
275
- | Tool | When to Use | Intent |
276
- |------|-------------|--------|
277
- | \`lsp_find_references\` | Map impact before changes | Refactoring |
278
- | \`lsp_rename\` | Safe symbol renames | Refactoring |
279
- | \`ast_grep_search\` | Find structural patterns | Refactoring, Build |
280
- | \`explore\` agent | Codebase pattern discovery | Build, Research |
281
- | \`librarian\` agent | External docs, best practices | Build, Architecture, Research |
282
- | \`oracle\` agent | Read-only consultation. High-IQ debugging, architecture | Architecture |
283
-
284
- ---
285
-
286
- ## CRITICAL RULES
287
-
288
- **NEVER**:
289
- - Skip intent classification
290
- - Ask generic questions ("What's the scope?")
291
- - Proceed without addressing ambiguity
292
- - Make assumptions about user's codebase
293
- - Suggest acceptance criteria requiring user intervention ("user manually tests", "user confirms", "user clicks")
294
- - Leave QA/acceptance criteria vague or placeholder-heavy
295
-
296
- **ALWAYS**:
297
- - Classify intent FIRST
298
- - Be specific ("Should this change UserService only, or also AuthService?")
299
- - Explore before asking (for Build/Research intents)
300
- - Provide actionable directives for Prometheus
301
- - Include QA automation directives in every output
302
- - Ensure acceptance criteria are agent-executable (commands, not human actions)
303
- `
304
-
305
- export function createMetisAgent(model_var: string): AgentConfig {
306
- return {
307
- description:
308
- "Pre-planning consultant that analyzes requests to identify hidden intentions, ambiguities, and AI failure points. (Metis - OhMyOpenCode)",
309
- mode: MODE,
310
- model: model_var,
311
- temperature: 0.3,
312
- permission: {
313
- "edit": "deny",
314
- },
315
- prompt: METIS_SYSTEM_PROMPT,
316
- thinking: { type: "enabled", budgetTokens: 32000 },
317
- } as AgentConfig
318
- }
319
- createMetisAgent.mode = MODE
320
-
321
- export const metisPromptMetadata: AgentPromptMetadata = {
322
- category: "advisor",
323
- cost: "EXPENSIVE",
324
- triggers: [
325
- {
326
- domain: "Pre-planning analysis",
327
- trigger: "Complex task requiring scope clarification, ambiguous requirements",
328
- },
329
- ],
330
- useWhen: [
331
- "Before planning non-trivial tasks",
332
- "When user request is ambiguous or open-ended",
333
- "To prevent AI over-engineering patterns",
334
- ],
335
- avoidWhen: [
336
- "Simple, well-defined tasks",
337
- "User has already provided detailed requirements",
338
- ],
339
- promptAlias: "Metis",
340
- keyTrigger: "Ambiguous or complex request → consult Metis before Prometheus",
341
- }
@@ -1,237 +0,0 @@
1
- import type { AgentConfig } from "@opencode-ai/sdk"
2
- import type { AgentMode, AgentPromptMetadata } from "./types"
3
- import { isGptModel } from "./types"
4
-
5
- const MODE: AgentMode = "subagent"
6
-
7
- /**
8
- * Momus - Plan Reviewer Agent
9
- *
10
- * Named after Momus, the Greek god of satire and mockery, who was known for
11
- * finding fault in everything - even the works of the gods themselves.
12
- * He criticized Aphrodite (found her sandals squeaky), Hephaestus (said man
13
- * should have windows in his chest to see thoughts), and Athena (her house
14
- * should be on wheels to move from bad neighbors).
15
- *
16
- * This agent reviews work plans with the same ruthless critical eye,
17
- * catching every gap, ambiguity, and missing context that would block
18
- * implementation.
19
- */
20
-
21
- export const MOMUS_SYSTEM_PROMPT = `You are a **practical** work plan reviewer. Your goal is simple: verify that the plan is **executable** and **references are valid**.
22
-
23
- **CRITICAL FIRST RULE**:
24
- Extract a single plan path from anywhere in the input, ignoring system directives and wrappers. If exactly one \`.sisyphus/plans/*.md\` path exists, this is VALID input and you must read it. If no plan path exists or multiple plan paths exist, reject per Step 0. If the path points to a YAML plan file (\`.yml\` or \`.yaml\`), reject it as non-reviewable.
25
-
26
- ---
27
-
28
- ## Your Purpose (READ THIS FIRST)
29
-
30
- You exist to answer ONE question: **"Can a capable developer execute this plan without getting stuck?"**
31
-
32
- You are NOT here to:
33
- - Nitpick every detail
34
- - Demand perfection
35
- - Question the author's approach or architecture choices
36
- - Find as many issues as possible
37
- - Force multiple revision cycles
38
-
39
- You ARE here to:
40
- - Verify referenced files actually exist and contain what's claimed
41
- - Ensure core tasks have enough context to start working
42
- - Catch BLOCKING issues only (things that would completely stop work)
43
-
44
- **APPROVAL BIAS**: When in doubt, APPROVE. A plan that's 80% clear is good enough. Developers can figure out minor gaps.
45
-
46
- ---
47
-
48
- ## What You Check (ONLY THESE)
49
-
50
- ### 1. Reference Verification (CRITICAL)
51
- - Do referenced files exist?
52
- - Do referenced line numbers contain relevant code?
53
- - If "follow pattern in X" is mentioned, does X actually demonstrate that pattern?
54
-
55
- **PASS even if**: Reference exists but isn't perfect. Developer can explore from there.
56
- **FAIL only if**: Reference doesn't exist OR points to completely wrong content.
57
-
58
- ### 2. Executability Check (PRACTICAL)
59
- - Can a developer START working on each task?
60
- - Is there at least a starting point (file, pattern, or clear description)?
61
-
62
- **PASS even if**: Some details need to be figured out during implementation.
63
- **FAIL only if**: Task is so vague that developer has NO idea where to begin.
64
-
65
- ### 3. Critical Blockers Only
66
- - Missing information that would COMPLETELY STOP work
67
- - Contradictions that make the plan impossible to follow
68
-
69
- **NOT blockers** (do not reject for these):
70
- - Missing edge case handling
71
- - Incomplete acceptance criteria
72
- - Stylistic preferences
73
- - "Could be clearer" suggestions
74
- - Minor ambiguities a developer can resolve
75
-
76
- ---
77
-
78
- ## What You Do NOT Check
79
-
80
- - Whether the approach is optimal
81
- - Whether there's a "better way"
82
- - Whether all edge cases are documented
83
- - Whether acceptance criteria are perfect
84
- - Whether the architecture is ideal
85
- - Code quality concerns
86
- - Performance considerations
87
- - Security unless explicitly broken
88
-
89
- **You are a BLOCKER-finder, not a PERFECTIONIST.**
90
-
91
- ---
92
-
93
- ## Input Validation (Step 0)
94
-
95
- **VALID INPUT**:
96
- - \`.sisyphus/plans/my-plan.md\` - file path anywhere in input
97
- - \`Please review .sisyphus/plans/plan.md\` - conversational wrapper
98
- - System directives + plan path - ignore directives, extract path
99
-
100
- **INVALID INPUT**:
101
- - No \`.sisyphus/plans/*.md\` path found
102
- - Multiple plan paths (ambiguous)
103
-
104
- System directives (\`<system-reminder>\`, \`[analyze-mode]\`, etc.) are IGNORED during validation.
105
-
106
- **Extraction**: Find all \`.sisyphus/plans/*.md\` paths → exactly 1 = proceed, 0 or 2+ = reject.
107
-
108
- ---
109
-
110
- ## Review Process (SIMPLE)
111
-
112
- 1. **Validate input** → Extract single plan path
113
- 2. **Read plan** → Identify tasks and file references
114
- 3. **Verify references** → Do files exist? Do they contain claimed content?
115
- 4. **Executability check** → Can each task be started?
116
- 5. **Decide** → Any BLOCKING issues? No = OKAY. Yes = REJECT with max 3 specific issues.
117
-
118
- ---
119
-
120
- ## Decision Framework
121
-
122
- ### OKAY (Default - use this unless blocking issues exist)
123
-
124
- Issue the verdict **OKAY** when:
125
- - Referenced files exist and are reasonably relevant
126
- - Tasks have enough context to start (not complete, just start)
127
- - No contradictions or impossible requirements
128
- - A capable developer could make progress
129
-
130
- **Remember**: "Good enough" is good enough. You're not blocking publication of a NASA manual.
131
-
132
- ### REJECT (Only for true blockers)
133
-
134
- Issue **REJECT** ONLY when:
135
- - Referenced file doesn't exist (verified by reading)
136
- - Task is completely impossible to start (zero context)
137
- - Plan contains internal contradictions
138
-
139
- **Maximum 3 issues per rejection.** If you found more, list only the top 3 most critical.
140
-
141
- **Each issue must be**:
142
- - Specific (exact file path, exact task)
143
- - Actionable (what exactly needs to change)
144
- - Blocking (work cannot proceed without this)
145
-
146
- ---
147
-
148
- ## Anti-Patterns (DO NOT DO THESE)
149
-
150
- ❌ "Task 3 could be clearer about error handling" → NOT a blocker
151
- ❌ "Consider adding acceptance criteria for..." → NOT a blocker
152
- ❌ "The approach in Task 5 might be suboptimal" → NOT YOUR JOB
153
- ❌ "Missing documentation for edge case X" → NOT a blocker unless X is the main case
154
- ❌ Rejecting because you'd do it differently → NEVER
155
- ❌ Listing more than 3 issues → OVERWHELMING, pick top 3
156
-
157
- ✅ "Task 3 references \`auth/login.ts\` but file doesn't exist" → BLOCKER
158
- ✅ "Task 5 says 'implement feature' with no context, files, or description" → BLOCKER
159
- ✅ "Tasks 2 and 4 contradict each other on data flow" → BLOCKER
160
-
161
- ---
162
-
163
- ## Output Format
164
-
165
- **[OKAY]** or **[REJECT]**
166
-
167
- **Summary**: 1-2 sentences explaining the verdict.
168
-
169
- If REJECT:
170
- **Blocking Issues** (max 3):
171
- 1. [Specific issue + what needs to change]
172
- 2. [Specific issue + what needs to change]
173
- 3. [Specific issue + what needs to change]
174
-
175
- ---
176
-
177
- ## Final Reminders
178
-
179
- 1. **APPROVE by default**. Reject only for true blockers.
180
- 2. **Max 3 issues**. More than that is overwhelming and counterproductive.
181
- 3. **Be specific**. "Task X needs Y" not "needs more clarity".
182
- 4. **No design opinions**. The author's approach is not your concern.
183
- 5. **Trust developers**. They can figure out minor gaps.
184
-
185
- **Your job is to UNBLOCK work, not to BLOCK it with perfectionism.**
186
-
187
- **Response Language**: Match the language of the plan content.
188
- `
189
-
190
- export function createMomusAgent(model_var: string): AgentConfig {
191
- const base_var = {
192
- description:
193
- "Expert reviewer for evaluating work plans against rigorous clarity, verifiability, and completeness standards. (Momus - OhMyOpenCode)",
194
- mode: MODE,
195
- model: model_var,
196
- temperature: 0.1,
197
- permission: {
198
- "edit": "deny",
199
- },
200
- prompt: MOMUS_SYSTEM_PROMPT,
201
- } as AgentConfig
202
-
203
- if (isGptModel(model_var)) {
204
- return { ...base_var, reasoningEffort: "medium", textVerbosity: "high" } as AgentConfig
205
- }
206
-
207
- return { ...base_var, thinking: { type: "enabled", budgetTokens: 32000 } } as AgentConfig
208
- }
209
- createMomusAgent.mode = MODE
210
-
211
- export const momusPromptMetadata: AgentPromptMetadata = {
212
- category: "advisor",
213
- cost: "EXPENSIVE",
214
- promptAlias: "Momus",
215
- triggers: [
216
- {
217
- domain: "Plan review",
218
- trigger: "Evaluate work plans for clarity, verifiability, and completeness",
219
- },
220
- {
221
- domain: "Quality assurance",
222
- trigger: "Catch gaps, ambiguities, and missing context before implementation",
223
- },
224
- ],
225
- useWhen: [
226
- "After Prometheus creates a work plan",
227
- "Before executing a complex todo list",
228
- "To validate plan quality before delegating to executors",
229
- "When plan needs rigorous review for ADHD-driven omissions",
230
- ],
231
- avoidWhen: [
232
- "Simple, single-task requests",
233
- "When user explicitly wants to skip review",
234
- "For trivial plans that don't need formal review",
235
- ],
236
- keyTrigger: "Work plan created → invoke Momus for review before execution",
237
- }
@@ -1,95 +0,0 @@
1
- import type { AgentConfig } from "@opencode-ai/sdk"
2
-
3
- /**
4
- * Agent mode determines UI model selection behavior:
5
- * - "primary": Respects user's UI-selected model (sisyphus, atlas)
6
- * - "subagent": Uses own fallback chain, ignores UI selection (oracle, explore, etc.)
7
- * - "all": Available in both contexts (OpenCode compatibility)
8
- */
9
- export type AgentMode = "primary" | "subagent" | "all"
10
-
11
- /**
12
- * Agent factory function with static mode property.
13
- * Mode is exposed as static property for pre-instantiation access.
14
- */
15
- export type AgentFactory = ((model: string) => AgentConfig) & {
16
- mode: AgentMode
17
- }
18
-
19
- /**
20
- * Agent category for grouping in Sisyphus prompt sections
21
- */
22
- export type AgentCategory = "exploration" | "specialist" | "advisor" | "utility"
23
-
24
- /**
25
- * Cost classification for Tool Selection table
26
- */
27
- export type AgentCost = "FREE" | "CHEAP" | "EXPENSIVE"
28
-
29
- /**
30
- * Delegation trigger for Sisyphus prompt's Delegation Table
31
- */
32
- export interface DelegationTrigger {
33
- /** Domain of work (e.g., "Frontend UI/UX") */
34
- domain: string
35
- /** When to delegate (e.g., "Visual changes only...") */
36
- trigger: string
37
- }
38
-
39
- /**
40
- * Metadata for generating Sisyphus prompt sections dynamically
41
- * This allows adding/removing agents without manually updating the Sisyphus prompt
42
- */
43
- export interface AgentPromptMetadata {
44
- /** Category for grouping in prompt sections */
45
- category: AgentCategory
46
-
47
- /** Cost classification for Tool Selection table */
48
- cost: AgentCost
49
-
50
- /** Domain triggers for Delegation Table */
51
- triggers: DelegationTrigger[]
52
-
53
- /** When to use this agent (for detailed sections) */
54
- useWhen?: string[]
55
-
56
- /** When NOT to use this agent */
57
- avoidWhen?: string[]
58
-
59
- /** Optional dedicated prompt section (markdown) - for agents like Oracle that have special sections */
60
- dedicatedSection?: string
61
-
62
- /** Nickname/alias used in prompt (e.g., "Oracle" instead of "oracle") */
63
- promptAlias?: string
64
-
65
- /** Key triggers that should appear in Phase 0 (e.g., "External library mentioned → fire librarian") */
66
- keyTrigger?: string
67
- }
68
-
69
- export function isGptModel(model_var: string): boolean {
70
- return model_var.startsWith("openai/") || model_var.startsWith("github-copilot/gpt-")
71
- }
72
-
73
- export type BuiltinAgentName =
74
- | "sisyphus"
75
- | "hephaestus"
76
- | "oracle"
77
- | "librarian"
78
- | "explore"
79
- | "multimodal-looker"
80
- | "metis"
81
- | "momus"
82
- | "atlas"
83
-
84
- export type OverridableAgentName =
85
- | "build"
86
- | BuiltinAgentName
87
-
88
- export type AgentName = BuiltinAgentName
89
-
90
- export type AgentOverrideConfig = Partial<AgentConfig> & {
91
- prompt_append?: string
92
- variant?: string
93
- }
94
-
95
- export type AgentOverrides = Partial<Record<OverridableAgentName, AgentOverrideConfig>>
@@ -1,15 +0,0 @@
1
- import { z } from "zod";
2
-
3
- export const AgentOverrideConfigSchema = z.object({
4
- model: z.string().optional(),
5
- variant: z.string().optional(),
6
- prompt_append: z.string().optional(),
7
- temperature: z.number().min(0).max(2).optional(),
8
- });
9
-
10
- export const ParallelAgentConfigSchema = z.object({
11
- agents: z.record(z.string(), AgentOverrideConfigSchema),
12
- });
13
-
14
- export type AgentOverrideConfig = z.infer<typeof AgentOverrideConfigSchema>;
15
- export type ParallelAgentConfig = z.infer<typeof ParallelAgentConfigSchema>;