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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (529) hide show
  1. package/LICENSE.md +82 -0
  2. package/README.md +105 -42
  3. package/bin/oh-my-parallel-agent-opencode.js +80 -0
  4. package/bin/platform.js +38 -0
  5. package/bin/platform.test.ts +148 -0
  6. package/dist/agents/atlas.d.ts +22 -0
  7. package/dist/agents/dynamic-agent-prompt-builder.d.ts +30 -0
  8. package/dist/agents/explore.d.ts +7 -0
  9. package/dist/agents/hephaestus.d.ts +6 -0
  10. package/dist/agents/index.d.ts +12 -0
  11. package/dist/agents/librarian.d.ts +7 -0
  12. package/dist/agents/metis.d.ts +21 -0
  13. package/dist/agents/momus.d.ts +21 -0
  14. package/dist/agents/momus.test.d.ts +1 -0
  15. package/dist/agents/multimodal-looker.d.ts +7 -0
  16. package/dist/agents/oracle.d.ts +7 -0
  17. package/dist/agents/prometheus/behavioral-summary.d.ts +6 -0
  18. package/dist/agents/prometheus/high-accuracy-mode.d.ts +6 -0
  19. package/dist/agents/prometheus/identity-constraints.d.ts +7 -0
  20. package/dist/agents/prometheus/index.d.ts +39 -0
  21. package/dist/agents/prometheus/interview-mode.d.ts +7 -0
  22. package/dist/agents/prometheus/plan-generation.d.ts +7 -0
  23. package/dist/agents/prometheus/plan-template.d.ts +7 -0
  24. package/dist/agents/prometheus-prompt.test.d.ts +1 -0
  25. package/dist/agents/sisyphus-junior.d.ts +10 -0
  26. package/dist/agents/sisyphus-junior.test.d.ts +1 -0
  27. package/dist/agents/sisyphus.d.ts +8 -0
  28. package/dist/agents/types.d.ts +63 -0
  29. package/dist/agents/utils.d.ts +16 -0
  30. package/dist/agents/utils.test.d.ts +1 -0
  31. package/dist/cli/config-manager.d.ts +162 -0
  32. package/dist/cli/config-manager.test.d.ts +1 -0
  33. package/dist/cli/doctor/checks/auth.d.ts +7 -0
  34. package/dist/cli/doctor/checks/auth.test.d.ts +1 -0
  35. package/dist/cli/doctor/checks/config.d.ts +8 -0
  36. package/dist/cli/doctor/checks/config.test.d.ts +1 -0
  37. package/dist/cli/doctor/checks/dependencies.d.ts +8 -0
  38. package/dist/cli/doctor/checks/dependencies.test.d.ts +1 -0
  39. package/dist/cli/doctor/checks/gh.d.ts +13 -0
  40. package/dist/cli/doctor/checks/gh.test.d.ts +1 -0
  41. package/dist/cli/doctor/checks/index.d.ts +13 -0
  42. package/dist/cli/doctor/checks/lsp.d.ts +8 -0
  43. package/dist/cli/doctor/checks/lsp.test.d.ts +1 -0
  44. package/dist/cli/doctor/checks/mcp-oauth.d.ts +15 -0
  45. package/dist/cli/doctor/checks/mcp-oauth.test.d.ts +1 -0
  46. package/dist/cli/doctor/checks/mcp.d.ts +6 -0
  47. package/dist/cli/doctor/checks/mcp.test.d.ts +1 -0
  48. package/dist/cli/doctor/checks/model-resolution.d.ts +33 -0
  49. package/dist/cli/doctor/checks/model-resolution.test.d.ts +1 -0
  50. package/dist/cli/doctor/checks/opencode.d.ts +19 -0
  51. package/dist/cli/doctor/checks/opencode.test.d.ts +1 -0
  52. package/dist/cli/doctor/checks/plugin.d.ts +4 -0
  53. package/dist/cli/doctor/checks/plugin.test.d.ts +1 -0
  54. package/dist/cli/doctor/checks/version.d.ts +4 -0
  55. package/dist/cli/doctor/checks/version.test.d.ts +1 -0
  56. package/dist/cli/doctor/constants.d.ts +42 -0
  57. package/dist/cli/doctor/formatter.d.ts +12 -0
  58. package/dist/cli/doctor/formatter.test.d.ts +1 -0
  59. package/dist/cli/doctor/index.d.ts +5 -0
  60. package/dist/cli/doctor/runner.d.ts +7 -0
  61. package/dist/cli/doctor/runner.test.d.ts +1 -0
  62. package/dist/cli/doctor/types.d.ts +91 -0
  63. package/dist/cli/get-local-version/formatter.d.ts +3 -0
  64. package/dist/cli/get-local-version/index.d.ts +3 -0
  65. package/dist/cli/get-local-version/types.d.ts +13 -0
  66. package/dist/cli/index.d.ts +2 -0
  67. package/dist/cli/index.js +26903 -0
  68. package/dist/cli/index.test.d.ts +1 -0
  69. package/dist/cli/install.d.ts +2 -0
  70. package/dist/cli/install.test.d.ts +1 -0
  71. package/dist/cli/mcp-oauth/index.d.ts +6 -0
  72. package/dist/cli/mcp-oauth/index.test.d.ts +1 -0
  73. package/dist/cli/mcp-oauth/login.d.ts +6 -0
  74. package/dist/cli/mcp-oauth/login.test.d.ts +1 -0
  75. package/dist/cli/mcp-oauth/logout.d.ts +4 -0
  76. package/dist/cli/mcp-oauth/logout.test.d.ts +1 -0
  77. package/dist/cli/mcp-oauth/status.d.ts +1 -0
  78. package/dist/cli/mcp-oauth/status.test.d.ts +1 -0
  79. package/dist/cli/model-fallback.d.ts +18 -0
  80. package/dist/cli/model-fallback.test.d.ts +1 -0
  81. package/dist/cli/run/completion.d.ts +2 -0
  82. package/dist/cli/run/completion.test.d.ts +1 -0
  83. package/dist/cli/run/events.d.ts +14 -0
  84. package/dist/cli/run/events.test.d.ts +1 -0
  85. package/dist/cli/run/index.d.ts +2 -0
  86. package/dist/cli/run/runner.d.ts +2 -0
  87. package/dist/cli/run/types.d.ts +73 -0
  88. package/dist/cli/types.d.ts +39 -0
  89. package/dist/config/index.d.ts +2 -0
  90. package/dist/config/schema.d.ts +2651 -0
  91. package/dist/config/schema.test.d.ts +1 -0
  92. package/dist/features/background-agent/concurrency.d.ts +27 -0
  93. package/dist/features/background-agent/concurrency.test.d.ts +1 -0
  94. package/dist/features/background-agent/constants.d.ts +44 -0
  95. package/dist/features/background-agent/index.d.ts +4 -0
  96. package/dist/features/background-agent/manager.d.ts +118 -0
  97. package/dist/features/background-agent/manager.test.d.ts +1 -0
  98. package/dist/features/background-agent/result-handler.d.ts +15 -0
  99. package/dist/features/background-agent/spawner.d.ts +14 -0
  100. package/dist/features/background-agent/state.d.ts +35 -0
  101. package/dist/features/background-agent/types.d.ts +79 -0
  102. package/dist/features/boulder-state/constants.d.ts +10 -0
  103. package/dist/features/boulder-state/index.d.ts +3 -0
  104. package/dist/features/boulder-state/storage.d.ts +28 -0
  105. package/dist/features/boulder-state/storage.test.d.ts +1 -0
  106. package/dist/features/boulder-state/types.d.ts +24 -0
  107. package/dist/features/builtin-commands/commands.d.ts +2 -0
  108. package/dist/features/builtin-commands/index.d.ts +2 -0
  109. package/dist/features/builtin-commands/templates/init-deep.d.ts +1 -0
  110. package/dist/features/builtin-commands/templates/ralph-loop.d.ts +2 -0
  111. package/dist/features/builtin-commands/templates/refactor.d.ts +1 -0
  112. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -0
  113. package/dist/features/builtin-commands/templates/stop-continuation.d.ts +1 -0
  114. package/dist/features/builtin-commands/templates/stop-continuation.test.d.ts +1 -0
  115. package/dist/features/builtin-commands/types.d.ts +6 -0
  116. package/dist/features/builtin-skills/index.d.ts +2 -0
  117. package/dist/features/builtin-skills/skills/dev-browser.d.ts +2 -0
  118. package/dist/features/builtin-skills/skills/frontend-ui-ux.d.ts +2 -0
  119. package/dist/features/builtin-skills/skills/git-master.d.ts +2 -0
  120. package/dist/features/builtin-skills/skills/index.d.ts +4 -0
  121. package/dist/features/builtin-skills/skills/playwright.d.ts +3 -0
  122. package/dist/features/builtin-skills/skills.d.ts +6 -0
  123. package/dist/features/builtin-skills/skills.test.d.ts +1 -0
  124. package/dist/features/builtin-skills/types.d.ts +15 -0
  125. package/dist/features/claude-code-agent-loader/index.d.ts +2 -0
  126. package/dist/features/claude-code-agent-loader/loader.d.ts +3 -0
  127. package/dist/features/claude-code-agent-loader/types.d.ts +14 -0
  128. package/dist/features/claude-code-command-loader/index.d.ts +2 -0
  129. package/dist/features/claude-code-command-loader/loader.d.ts +6 -0
  130. package/dist/features/claude-code-command-loader/types.d.ts +42 -0
  131. package/dist/features/claude-code-mcp-loader/env-expander.d.ts +2 -0
  132. package/dist/features/claude-code-mcp-loader/index.d.ts +10 -0
  133. package/dist/features/claude-code-mcp-loader/loader.d.ts +4 -0
  134. package/dist/features/claude-code-mcp-loader/loader.test.d.ts +1 -0
  135. package/dist/features/claude-code-mcp-loader/transformer.d.ts +2 -0
  136. package/dist/features/claude-code-mcp-loader/types.d.ts +39 -0
  137. package/dist/features/claude-code-plugin-loader/index.d.ts +3 -0
  138. package/dist/features/claude-code-plugin-loader/loader.d.ts +20 -0
  139. package/dist/features/claude-code-plugin-loader/types.d.ts +186 -0
  140. package/dist/features/claude-code-session-state/index.d.ts +1 -0
  141. package/dist/features/claude-code-session-state/state.d.ts +9 -0
  142. package/dist/features/claude-code-session-state/state.test.d.ts +1 -0
  143. package/dist/features/context-injector/collector.d.ts +11 -0
  144. package/dist/features/context-injector/collector.test.d.ts +1 -0
  145. package/dist/features/context-injector/index.d.ts +3 -0
  146. package/dist/features/context-injector/injector.d.ts +39 -0
  147. package/dist/features/context-injector/injector.test.d.ts +1 -0
  148. package/dist/features/context-injector/types.d.ts +83 -0
  149. package/dist/features/hook-message-injector/constants.d.ts +3 -0
  150. package/dist/features/hook-message-injector/index.d.ts +4 -0
  151. package/dist/features/hook-message-injector/injector.d.ts +19 -0
  152. package/dist/features/hook-message-injector/types.d.ts +46 -0
  153. package/dist/features/mcp-oauth/callback-server.d.ts +11 -0
  154. package/dist/features/mcp-oauth/callback-server.test.d.ts +1 -0
  155. package/dist/features/mcp-oauth/dcr.d.ts +34 -0
  156. package/dist/features/mcp-oauth/dcr.test.d.ts +1 -0
  157. package/dist/features/mcp-oauth/discovery.d.ts +8 -0
  158. package/dist/features/mcp-oauth/discovery.test.d.ts +1 -0
  159. package/dist/features/mcp-oauth/index.d.ts +1 -0
  160. package/dist/features/mcp-oauth/provider.d.ts +41 -0
  161. package/dist/features/mcp-oauth/provider.test.d.ts +1 -0
  162. package/dist/features/mcp-oauth/resource-indicator.d.ts +2 -0
  163. package/dist/features/mcp-oauth/resource-indicator.test.d.ts +1 -0
  164. package/dist/features/mcp-oauth/schema.d.ts +6 -0
  165. package/dist/features/mcp-oauth/schema.test.d.ts +1 -0
  166. package/dist/features/mcp-oauth/step-up.d.ts +8 -0
  167. package/dist/features/mcp-oauth/step-up.test.d.ts +1 -0
  168. package/dist/features/mcp-oauth/storage.d.ts +17 -0
  169. package/dist/features/mcp-oauth/storage.test.d.ts +1 -0
  170. package/dist/features/opencode-skill-loader/async-loader.d.ts +6 -0
  171. package/dist/features/opencode-skill-loader/async-loader.test.d.ts +1 -0
  172. package/dist/features/opencode-skill-loader/blocking.d.ts +2 -0
  173. package/dist/features/opencode-skill-loader/blocking.test.d.ts +1 -0
  174. package/dist/features/opencode-skill-loader/discover-worker.d.ts +1 -0
  175. package/dist/features/opencode-skill-loader/index.d.ts +4 -0
  176. package/dist/features/opencode-skill-loader/loader.d.ts +16 -0
  177. package/dist/features/opencode-skill-loader/loader.test.d.ts +1 -0
  178. package/dist/features/opencode-skill-loader/merger.d.ts +7 -0
  179. package/dist/features/opencode-skill-loader/skill-content.d.ts +21 -0
  180. package/dist/features/opencode-skill-loader/skill-content.test.d.ts +1 -0
  181. package/dist/features/opencode-skill-loader/types.d.ts +34 -0
  182. package/dist/features/sisyphus-swarm/mailbox/types.d.ts +191 -0
  183. package/dist/features/sisyphus-swarm/mailbox/types.test.d.ts +1 -0
  184. package/dist/features/sisyphus-tasks/storage.d.ts +9 -0
  185. package/dist/features/sisyphus-tasks/storage.test.d.ts +1 -0
  186. package/dist/features/sisyphus-tasks/types.d.ts +47 -0
  187. package/dist/features/sisyphus-tasks/types.test.d.ts +1 -0
  188. package/dist/features/skill-mcp-manager/env-cleaner.d.ts +2 -0
  189. package/dist/features/skill-mcp-manager/env-cleaner.test.d.ts +1 -0
  190. package/dist/features/skill-mcp-manager/index.d.ts +2 -0
  191. package/dist/features/skill-mcp-manager/manager.d.ts +50 -0
  192. package/dist/features/skill-mcp-manager/manager.test.d.ts +1 -0
  193. package/dist/features/skill-mcp-manager/types.d.ts +11 -0
  194. package/dist/features/task-toast-manager/index.d.ts +2 -0
  195. package/dist/features/task-toast-manager/manager.d.ts +58 -0
  196. package/dist/features/task-toast-manager/manager.test.d.ts +1 -0
  197. package/dist/features/task-toast-manager/types.d.ts +24 -0
  198. package/dist/features/tmux-subagent/action-executor.d.ts +22 -0
  199. package/dist/features/tmux-subagent/decision-engine.d.ts +38 -0
  200. package/dist/features/tmux-subagent/decision-engine.test.d.ts +1 -0
  201. package/dist/features/tmux-subagent/index.d.ts +5 -0
  202. package/dist/features/tmux-subagent/manager.d.ts +59 -0
  203. package/dist/features/tmux-subagent/manager.test.d.ts +1 -0
  204. package/dist/features/tmux-subagent/pane-state-querier.d.ts +2 -0
  205. package/dist/features/tmux-subagent/types.d.ts +53 -0
  206. package/dist/hooks/agent-usage-reminder/constants.d.ts +5 -0
  207. package/dist/hooks/agent-usage-reminder/index.d.ts +22 -0
  208. package/dist/hooks/agent-usage-reminder/storage.d.ts +4 -0
  209. package/dist/hooks/agent-usage-reminder/types.d.ts +6 -0
  210. package/dist/hooks/anthropic-context-window-limit-recovery/executor.d.ts +4 -0
  211. package/dist/hooks/anthropic-context-window-limit-recovery/executor.test.d.ts +1 -0
  212. package/dist/hooks/anthropic-context-window-limit-recovery/index.d.ts +16 -0
  213. package/dist/hooks/anthropic-context-window-limit-recovery/parser.d.ts +2 -0
  214. package/dist/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.d.ts +7 -0
  215. package/dist/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.test.d.ts +1 -0
  216. package/dist/hooks/anthropic-context-window-limit-recovery/pruning-types.d.ts +36 -0
  217. package/dist/hooks/anthropic-context-window-limit-recovery/storage.d.ts +28 -0
  218. package/dist/hooks/anthropic-context-window-limit-recovery/storage.test.d.ts +1 -0
  219. package/dist/hooks/anthropic-context-window-limit-recovery/types.d.ts +37 -0
  220. package/dist/hooks/atlas/index.d.ts +35 -0
  221. package/dist/hooks/atlas/index.test.d.ts +1 -0
  222. package/dist/hooks/auto-slash-command/constants.d.ts +5 -0
  223. package/dist/hooks/auto-slash-command/detector.d.ts +9 -0
  224. package/dist/hooks/auto-slash-command/detector.test.d.ts +1 -0
  225. package/dist/hooks/auto-slash-command/executor.d.ts +11 -0
  226. package/dist/hooks/auto-slash-command/index.d.ts +12 -0
  227. package/dist/hooks/auto-slash-command/index.test.d.ts +1 -0
  228. package/dist/hooks/auto-slash-command/types.d.ts +27 -0
  229. package/dist/hooks/auto-update-checker/cache.d.ts +3 -0
  230. package/dist/hooks/auto-update-checker/checker.d.ts +20 -0
  231. package/dist/hooks/auto-update-checker/checker.test.d.ts +1 -0
  232. package/dist/hooks/auto-update-checker/constants.d.ts +10 -0
  233. package/dist/hooks/auto-update-checker/index.d.ts +17 -0
  234. package/dist/hooks/auto-update-checker/index.test.d.ts +1 -0
  235. package/dist/hooks/auto-update-checker/types.d.ts +25 -0
  236. package/dist/hooks/background-notification/index.d.ts +18 -0
  237. package/dist/hooks/background-notification/types.d.ts +4 -0
  238. package/dist/hooks/category-skill-reminder/index.d.ts +22 -0
  239. package/dist/hooks/category-skill-reminder/index.test.d.ts +1 -0
  240. package/dist/hooks/claude-code-hooks/config-loader.d.ts +13 -0
  241. package/dist/hooks/claude-code-hooks/config.d.ts +3 -0
  242. package/dist/hooks/claude-code-hooks/index.d.ts +48 -0
  243. package/dist/hooks/claude-code-hooks/plugin-config.d.ts +8 -0
  244. package/dist/hooks/claude-code-hooks/post-tool-use.d.ts +40 -0
  245. package/dist/hooks/claude-code-hooks/pre-compact.d.ts +16 -0
  246. package/dist/hooks/claude-code-hooks/pre-tool-use.d.ts +25 -0
  247. package/dist/hooks/claude-code-hooks/stop.d.ts +20 -0
  248. package/dist/hooks/claude-code-hooks/todo.d.ts +12 -0
  249. package/dist/hooks/claude-code-hooks/tool-input-cache.d.ts +5 -0
  250. package/dist/hooks/claude-code-hooks/transcript.d.ts +34 -0
  251. package/dist/hooks/claude-code-hooks/types.d.ts +183 -0
  252. package/dist/hooks/claude-code-hooks/user-prompt-submit.d.ts +22 -0
  253. package/dist/hooks/comment-checker/cli.d.ts +52 -0
  254. package/dist/hooks/comment-checker/cli.test.d.ts +1 -0
  255. package/dist/hooks/comment-checker/downloader.d.ts +25 -0
  256. package/dist/hooks/comment-checker/index.d.ts +19 -0
  257. package/dist/hooks/comment-checker/types.d.ts +31 -0
  258. package/dist/hooks/compaction-context-injector/index.d.ts +8 -0
  259. package/dist/hooks/compaction-context-injector/index.test.d.ts +1 -0
  260. package/dist/hooks/context-window-monitor.d.ts +18 -0
  261. package/dist/hooks/delegate-task-retry/index.d.ts +24 -0
  262. package/dist/hooks/delegate-task-retry/index.test.d.ts +1 -0
  263. package/dist/hooks/directory-agents-injector/constants.d.ts +3 -0
  264. package/dist/hooks/directory-agents-injector/index.d.ts +26 -0
  265. package/dist/hooks/directory-agents-injector/storage.d.ts +1 -0
  266. package/dist/hooks/directory-readme-injector/constants.d.ts +3 -0
  267. package/dist/hooks/directory-readme-injector/index.d.ts +26 -0
  268. package/dist/hooks/directory-readme-injector/storage.d.ts +1 -0
  269. package/dist/hooks/edit-error-recovery/index.d.ts +31 -0
  270. package/dist/hooks/edit-error-recovery/index.test.d.ts +1 -0
  271. package/dist/hooks/empty-task-response-detector.d.ts +12 -0
  272. package/dist/hooks/index.d.ts +35 -0
  273. package/dist/hooks/interactive-bash-session/constants.d.ts +4 -0
  274. package/dist/hooks/interactive-bash-session/index.d.ts +23 -0
  275. package/dist/hooks/interactive-bash-session/storage.d.ts +4 -0
  276. package/dist/hooks/interactive-bash-session/types.d.ts +10 -0
  277. package/dist/hooks/keyword-detector/analyze/default.d.ts +12 -0
  278. package/dist/hooks/keyword-detector/analyze/index.d.ts +1 -0
  279. package/dist/hooks/keyword-detector/constants.d.ts +10 -0
  280. package/dist/hooks/keyword-detector/detector.d.ts +11 -0
  281. package/dist/hooks/keyword-detector/index.d.ts +23 -0
  282. package/dist/hooks/keyword-detector/index.test.d.ts +1 -0
  283. package/dist/hooks/keyword-detector/search/default.d.ts +12 -0
  284. package/dist/hooks/keyword-detector/search/index.d.ts +1 -0
  285. package/dist/hooks/keyword-detector/types.d.ts +4 -0
  286. package/dist/hooks/keyword-detector/ultrawork/default.d.ts +10 -0
  287. package/dist/hooks/keyword-detector/ultrawork/gpt5.2.d.ts +16 -0
  288. package/dist/hooks/keyword-detector/ultrawork/index.d.ts +17 -0
  289. package/dist/hooks/keyword-detector/ultrawork/planner.d.ts +6 -0
  290. package/dist/hooks/keyword-detector/ultrawork/utils.d.ts +24 -0
  291. package/dist/hooks/non-interactive-env/constants.d.ts +34 -0
  292. package/dist/hooks/non-interactive-env/detector.d.ts +1 -0
  293. package/dist/hooks/non-interactive-env/index.d.ts +14 -0
  294. package/dist/hooks/non-interactive-env/index.test.d.ts +1 -0
  295. package/dist/hooks/non-interactive-env/types.d.ts +3 -0
  296. package/dist/hooks/prometheus-md-only/constants.d.ts +7 -0
  297. package/dist/hooks/prometheus-md-only/index.d.ts +12 -0
  298. package/dist/hooks/prometheus-md-only/index.test.d.ts +1 -0
  299. package/dist/hooks/question-label-truncator/index.d.ts +7 -0
  300. package/dist/hooks/question-label-truncator/index.test.d.ts +1 -0
  301. package/dist/hooks/ralph-loop/constants.d.ts +5 -0
  302. package/dist/hooks/ralph-loop/index.d.ts +21 -0
  303. package/dist/hooks/ralph-loop/index.test.d.ts +1 -0
  304. package/dist/hooks/ralph-loop/storage.d.ts +6 -0
  305. package/dist/hooks/ralph-loop/types.d.ts +17 -0
  306. package/dist/hooks/rules-injector/constants.d.ts +8 -0
  307. package/dist/hooks/rules-injector/finder.d.ts +33 -0
  308. package/dist/hooks/rules-injector/finder.test.d.ts +1 -0
  309. package/dist/hooks/rules-injector/index.d.ts +26 -0
  310. package/dist/hooks/rules-injector/matcher.d.ts +21 -0
  311. package/dist/hooks/rules-injector/output-path.d.ts +5 -0
  312. package/dist/hooks/rules-injector/output-path.test.d.ts +1 -0
  313. package/dist/hooks/rules-injector/parser.d.ts +18 -0
  314. package/dist/hooks/rules-injector/parser.test.d.ts +1 -0
  315. package/dist/hooks/rules-injector/storage.d.ts +9 -0
  316. package/dist/hooks/rules-injector/types.d.ts +54 -0
  317. package/dist/hooks/session-notification-utils.d.ts +9 -0
  318. package/dist/hooks/session-notification.d.ts +20 -0
  319. package/dist/hooks/session-notification.test.d.ts +1 -0
  320. package/dist/hooks/session-recovery/constants.d.ts +6 -0
  321. package/dist/hooks/session-recovery/index.d.ts +22 -0
  322. package/dist/hooks/session-recovery/index.test.d.ts +1 -0
  323. package/dist/hooks/session-recovery/storage.d.ts +19 -0
  324. package/dist/hooks/session-recovery/types.d.ts +90 -0
  325. package/dist/hooks/sisyphus-junior-notepad/constants.d.ts +2 -0
  326. package/dist/hooks/sisyphus-junior-notepad/index.d.ts +12 -0
  327. package/dist/hooks/start-work/index.d.ts +16 -0
  328. package/dist/hooks/start-work/index.test.d.ts +1 -0
  329. package/dist/hooks/stop-continuation-guard/index.d.ts +16 -0
  330. package/dist/hooks/stop-continuation-guard/index.test.d.ts +1 -0
  331. package/dist/hooks/subagent-question-blocker/index.d.ts +2 -0
  332. package/dist/hooks/subagent-question-blocker/index.test.d.ts +1 -0
  333. package/dist/hooks/task-resume-info/index.d.ts +11 -0
  334. package/dist/hooks/think-mode/detector.d.ts +5 -0
  335. package/dist/hooks/think-mode/index.d.ts +14 -0
  336. package/dist/hooks/think-mode/index.test.d.ts +1 -0
  337. package/dist/hooks/think-mode/switcher.d.ts +69 -0
  338. package/dist/hooks/think-mode/switcher.test.d.ts +1 -0
  339. package/dist/hooks/think-mode/types.d.ts +21 -0
  340. package/dist/hooks/thinking-block-validator/index.d.ts +30 -0
  341. package/dist/hooks/todo-continuation-enforcer.d.ts +19 -0
  342. package/dist/hooks/todo-continuation-enforcer.test.d.ts +1 -0
  343. package/dist/hooks/tool-output-truncator.d.ts +17 -0
  344. package/dist/hooks/tool-output-truncator.test.d.ts +1 -0
  345. package/dist/hooks/unstable-agent-babysitter/index.d.ts +50 -0
  346. package/dist/hooks/unstable-agent-babysitter/index.test.d.ts +1 -0
  347. package/dist/index.d.ts +5 -0
  348. package/dist/index.js +76117 -0
  349. package/dist/index.test.d.ts +1 -0
  350. package/dist/mcp/context7.d.ts +9 -0
  351. package/dist/mcp/grep-app.d.ts +6 -0
  352. package/dist/mcp/index.d.ts +9 -0
  353. package/dist/mcp/index.test.d.ts +1 -0
  354. package/dist/mcp/types.d.ts +9 -0
  355. package/dist/mcp/websearch.d.ts +9 -0
  356. package/dist/oh-my-parallel-agent-opencode.schema.json +2182 -0
  357. package/dist/plugin-config.d.ts +4 -0
  358. package/dist/plugin-config.test.d.ts +1 -0
  359. package/dist/plugin-handlers/config-handler.d.ts +13 -0
  360. package/dist/plugin-handlers/config-handler.test.d.ts +1 -0
  361. package/dist/plugin-handlers/index.d.ts +1 -0
  362. package/dist/plugin-state.d.ts +6 -0
  363. package/dist/shared/agent-config-integration.test.d.ts +1 -0
  364. package/dist/shared/agent-display-names.d.ts +12 -0
  365. package/dist/shared/agent-display-names.test.d.ts +1 -0
  366. package/dist/shared/agent-tool-restrictions.d.ts +7 -0
  367. package/dist/shared/agent-variant.d.ts +9 -0
  368. package/dist/shared/agent-variant.test.d.ts +1 -0
  369. package/dist/shared/binary-downloader.d.ts +10 -0
  370. package/dist/shared/claude-config-dir.d.ts +1 -0
  371. package/dist/shared/claude-config-dir.test.d.ts +1 -0
  372. package/dist/shared/command-executor.d.ts +21 -0
  373. package/dist/shared/config-errors.d.ts +7 -0
  374. package/dist/shared/connected-providers-cache.d.ts +52 -0
  375. package/dist/shared/data-path.d.ts +30 -0
  376. package/dist/shared/deep-merge.d.ts +13 -0
  377. package/dist/shared/deep-merge.test.d.ts +1 -0
  378. package/dist/shared/dynamic-truncator.d.ts +27 -0
  379. package/dist/shared/external-plugin-detector.d.ts +18 -0
  380. package/dist/shared/external-plugin-detector.test.d.ts +1 -0
  381. package/dist/shared/file-reference-resolver.d.ts +1 -0
  382. package/dist/shared/file-utils.d.ts +7 -0
  383. package/dist/shared/first-message-variant.d.ts +11 -0
  384. package/dist/shared/first-message-variant.test.d.ts +1 -0
  385. package/dist/shared/frontmatter.d.ts +7 -0
  386. package/dist/shared/frontmatter.test.d.ts +1 -0
  387. package/dist/shared/hook-disabled.d.ts +2 -0
  388. package/dist/shared/index.d.ts +36 -0
  389. package/dist/shared/jsonc-parser.d.ts +15 -0
  390. package/dist/shared/jsonc-parser.test.d.ts +1 -0
  391. package/dist/shared/logger.d.ts +2 -0
  392. package/dist/shared/migration.d.ts +32 -0
  393. package/dist/shared/migration.test.d.ts +1 -0
  394. package/dist/shared/model-availability.d.ts +19 -0
  395. package/dist/shared/model-availability.test.d.ts +1 -0
  396. package/dist/shared/model-requirements.d.ts +13 -0
  397. package/dist/shared/model-requirements.test.d.ts +1 -0
  398. package/dist/shared/model-resolution-pipeline.d.ts +24 -0
  399. package/dist/shared/model-resolver.d.ts +22 -0
  400. package/dist/shared/model-resolver.test.d.ts +1 -0
  401. package/dist/shared/model-sanitizer.d.ts +3 -0
  402. package/dist/shared/model-suggestion-retry.d.ts +24 -0
  403. package/dist/shared/model-suggestion-retry.test.d.ts +1 -0
  404. package/dist/shared/ollama-ndjson-parser.d.ts +108 -0
  405. package/dist/shared/opencode-config-dir.d.ts +19 -0
  406. package/dist/shared/opencode-config-dir.test.d.ts +1 -0
  407. package/dist/shared/opencode-version.d.ts +19 -0
  408. package/dist/shared/opencode-version.test.d.ts +1 -0
  409. package/dist/shared/pattern-matcher.d.ts +3 -0
  410. package/dist/shared/permission-compat.d.ts +27 -0
  411. package/dist/shared/permission-compat.test.d.ts +1 -0
  412. package/dist/shared/session-cursor.d.ts +13 -0
  413. package/dist/shared/session-cursor.test.d.ts +1 -0
  414. package/dist/shared/session-injected-paths.d.ts +10 -0
  415. package/dist/shared/session-utils.d.ts +2 -0
  416. package/dist/shared/shell-env.d.ts +41 -0
  417. package/dist/shared/shell-env.test.d.ts +1 -0
  418. package/dist/shared/snake-case.d.ts +5 -0
  419. package/dist/shared/system-directive.d.ts +45 -0
  420. package/dist/shared/system-directive.test.d.ts +1 -0
  421. package/dist/shared/tmux/constants.d.ts +5 -0
  422. package/dist/shared/tmux/index.d.ts +3 -0
  423. package/dist/shared/tmux/tmux-utils.d.ts +17 -0
  424. package/dist/shared/tmux/tmux-utils.test.d.ts +1 -0
  425. package/dist/shared/tmux/types.d.ts +4 -0
  426. package/dist/shared/tool-name.d.ts +1 -0
  427. package/dist/shared/zip-extractor.d.ts +1 -0
  428. package/dist/tools/ast-grep/cli.d.ts +15 -0
  429. package/dist/tools/ast-grep/constants.d.ts +29 -0
  430. package/dist/tools/ast-grep/downloader.d.ts +5 -0
  431. package/dist/tools/ast-grep/index.d.ts +8 -0
  432. package/dist/tools/ast-grep/tools.d.ts +3 -0
  433. package/dist/tools/ast-grep/types.d.ts +58 -0
  434. package/dist/tools/ast-grep/utils.d.ts +5 -0
  435. package/dist/tools/background-task/constants.d.ts +3 -0
  436. package/dist/tools/background-task/index.d.ts +4 -0
  437. package/dist/tools/background-task/tools.d.ts +47 -0
  438. package/dist/tools/background-task/tools.test.d.ts +1 -0
  439. package/dist/tools/background-task/types.d.ts +20 -0
  440. package/dist/tools/call-omo-agent/constants.d.ts +2 -0
  441. package/dist/tools/call-omo-agent/index.d.ts +3 -0
  442. package/dist/tools/call-omo-agent/tools.d.ts +3 -0
  443. package/dist/tools/call-omo-agent/types.d.ts +24 -0
  444. package/dist/tools/delegate-task/categories.d.ts +17 -0
  445. package/dist/tools/delegate-task/constants.d.ts +30 -0
  446. package/dist/tools/delegate-task/executor.d.ts +75 -0
  447. package/dist/tools/delegate-task/helpers.d.ts +30 -0
  448. package/dist/tools/delegate-task/index.d.ts +4 -0
  449. package/dist/tools/delegate-task/prompt-builder.d.ts +6 -0
  450. package/dist/tools/delegate-task/timing.d.ts +11 -0
  451. package/dist/tools/delegate-task/tools.d.ts +6 -0
  452. package/dist/tools/delegate-task/tools.test.d.ts +1 -0
  453. package/dist/tools/delegate-task/types.d.ts +44 -0
  454. package/dist/tools/glob/cli.d.ts +11 -0
  455. package/dist/tools/glob/cli.test.d.ts +1 -0
  456. package/dist/tools/glob/constants.d.ts +6 -0
  457. package/dist/tools/glob/index.d.ts +2 -0
  458. package/dist/tools/glob/tools.d.ts +2 -0
  459. package/dist/tools/glob/types.d.ts +20 -0
  460. package/dist/tools/glob/utils.d.ts +2 -0
  461. package/dist/tools/grep/cli.d.ts +3 -0
  462. package/dist/tools/grep/constants.d.ts +17 -0
  463. package/dist/tools/grep/downloader.d.ts +3 -0
  464. package/dist/tools/grep/downloader.test.d.ts +1 -0
  465. package/dist/tools/grep/index.d.ts +2 -0
  466. package/dist/tools/grep/tools.d.ts +2 -0
  467. package/dist/tools/grep/types.d.ts +36 -0
  468. package/dist/tools/grep/utils.d.ts +3 -0
  469. package/dist/tools/index.d.ts +15 -0
  470. package/dist/tools/interactive-bash/constants.d.ts +3 -0
  471. package/dist/tools/interactive-bash/index.d.ts +3 -0
  472. package/dist/tools/interactive-bash/tools.d.ts +7 -0
  473. package/dist/tools/interactive-bash/utils.d.ts +3 -0
  474. package/dist/tools/look-at/constants.d.ts +2 -0
  475. package/dist/tools/look-at/index.d.ts +3 -0
  476. package/dist/tools/look-at/tools.d.ts +9 -0
  477. package/dist/tools/look-at/tools.test.d.ts +1 -0
  478. package/dist/tools/look-at/types.d.ts +4 -0
  479. package/dist/tools/lsp/client.d.ts +50 -0
  480. package/dist/tools/lsp/config.d.ts +17 -0
  481. package/dist/tools/lsp/config.test.d.ts +1 -0
  482. package/dist/tools/lsp/constants.d.ts +9 -0
  483. package/dist/tools/lsp/index.d.ts +6 -0
  484. package/dist/tools/lsp/tools.d.ts +7 -0
  485. package/dist/tools/lsp/types.d.ts +123 -0
  486. package/dist/tools/lsp/utils.d.ts +26 -0
  487. package/dist/tools/session-manager/constants.d.ts +12 -0
  488. package/dist/tools/session-manager/index.d.ts +3 -0
  489. package/dist/tools/session-manager/storage.d.ts +12 -0
  490. package/dist/tools/session-manager/storage.test.d.ts +1 -0
  491. package/dist/tools/session-manager/tools.d.ts +5 -0
  492. package/dist/tools/session-manager/tools.test.d.ts +1 -0
  493. package/dist/tools/session-manager/types.d.ts +89 -0
  494. package/dist/tools/session-manager/utils.d.ts +11 -0
  495. package/dist/tools/session-manager/utils.test.d.ts +1 -0
  496. package/dist/tools/skill/constants.d.ts +3 -0
  497. package/dist/tools/skill/index.d.ts +3 -0
  498. package/dist/tools/skill/tools.d.ts +4 -0
  499. package/dist/tools/skill/tools.test.d.ts +1 -0
  500. package/dist/tools/skill/types.d.ts +28 -0
  501. package/dist/tools/skill-mcp/constants.d.ts +2 -0
  502. package/dist/tools/skill-mcp/index.d.ts +3 -0
  503. package/dist/tools/skill-mcp/tools.d.ts +11 -0
  504. package/dist/tools/skill-mcp/tools.test.d.ts +1 -0
  505. package/dist/tools/skill-mcp/types.d.ts +8 -0
  506. package/dist/tools/slashcommand/index.d.ts +2 -0
  507. package/dist/tools/slashcommand/tools.d.ts +5 -0
  508. package/dist/tools/slashcommand/tools.test.d.ts +1 -0
  509. package/dist/tools/slashcommand/types.d.ts +24 -0
  510. package/package.json +77 -6
  511. package/postinstall.mjs +43 -0
  512. package/__tests__/agents.test.ts +0 -107
  513. package/__tests__/config-handler.test.ts +0 -198
  514. package/__tests__/dynamic-agent.test.ts +0 -68
  515. package/__tests__/schema.test.ts +0 -149
  516. package/__tests__/setup.test.ts +0 -16
  517. package/bun.lock +0 -29
  518. package/oh-my-parallel-agent-opencode.example.json +0 -7
  519. package/src/agents/explore.ts +0 -117
  520. package/src/agents/index.ts +0 -69
  521. package/src/agents/librarian.ts +0 -302
  522. package/src/agents/metis.ts +0 -341
  523. package/src/agents/momus.ts +0 -237
  524. package/src/agents/types.ts +0 -95
  525. package/src/config/schema.ts +0 -15
  526. package/src/index.ts +0 -116
  527. package/src/plugin-handlers/config-handler.ts +0 -129
  528. package/src/utils/dynamic-agent.ts +0 -37
  529. package/tsconfig.json +0 -19
package/LICENSE.md ADDED
@@ -0,0 +1,82 @@
1
+ # License
2
+
3
+ Portions of this software are licensed as follows:
4
+
5
+ - All third party components incorporated into the oh-my-parallel-agent-opencode Software are licensed under the original license
6
+ provided by the owner of the applicable component.
7
+ - Content outside of the above mentioned files or restrictions is available under the "Sustainable Use
8
+ License" as defined below.
9
+
10
+ ## Sustainable Use License
11
+
12
+ Version 1.0
13
+
14
+ ### Acceptance
15
+
16
+ By using the software, you agree to all of the terms and conditions below.
17
+
18
+ ### Copyright License
19
+
20
+ The licensor grants you a non-exclusive, royalty-free, worldwide, non-sublicensable, non-transferable license
21
+ to use, copy, distribute, make available, and prepare derivative works of the software, in each case subject
22
+ to the limitations below.
23
+
24
+ ### Limitations
25
+
26
+ You may use or modify the software only for your own internal business purposes or for non-commercial or
27
+ personal use. You may distribute the software or provide it to others only if you do so free of charge for
28
+ non-commercial purposes. You may not alter, remove, or obscure any licensing, copyright, or other notices of
29
+ the licensor in the software. Any use of the licensor's trademarks is subject to applicable law.
30
+
31
+ ### Patents
32
+
33
+ The licensor grants you a license, under any patent claims the licensor can license, or becomes able to
34
+ license, to make, have made, use, sell, offer for sale, import and have imported the software, in each case
35
+ subject to the limitations and conditions in this license. This license does not cover any patent claims that
36
+ you cause to be infringed by modifications or additions to the software. If you or your company make any
37
+ written claim that the software infringes or contributes to infringement of any patent, your patent license
38
+ for the software granted under these terms ends immediately. If your company makes such a claim, your patent
39
+ license ends immediately for work on behalf of your company.
40
+
41
+ ### Notices
42
+
43
+ You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these
44
+ terms. If you modify the software, you must include in any modified copies of the software a prominent notice
45
+ stating that you have modified the software.
46
+
47
+ ### No Other Rights
48
+
49
+ These terms do not imply any licenses other than those expressly granted in these terms.
50
+
51
+ ### Termination
52
+
53
+ If you use the software in violation of these terms, such use is not licensed, and your license will
54
+ automatically terminate. If the licensor provides you with a notice of your violation, and you cease all
55
+ violation of this license no later than 30 days after you receive that notice, your license will be reinstated
56
+ retroactively. However, if you violate these terms after such reinstatement, any additional violation of these
57
+ terms will cause your license to terminate automatically and permanently.
58
+
59
+ ### No Liability
60
+
61
+ As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will
62
+ not be liable to you for any damages arising out of these terms or the use or nature of the software, under
63
+ any kind of legal claim.
64
+
65
+ ### Definitions
66
+
67
+ The "licensor" is the entity offering these terms.
68
+
69
+ The "software" is the software the licensor makes available under these terms, including any portion of it.
70
+
71
+ "You" refers to the individual or entity agreeing to these terms.
72
+
73
+ "Your company" is any legal entity, sole proprietorship, or other kind of organization that you work for, plus
74
+ all organizations that have control over, are under the control of, or are under common control with that
75
+ organization. Control means ownership of substantially all the assets of an entity, or the power to direct its
76
+ management and policies by vote, contract, or otherwise. Control can be direct or indirect.
77
+
78
+ "Your license" is the license granted to you for the software under these terms.
79
+
80
+ "Use" means anything you do with the software requiring your license.
81
+
82
+ "Trademark" means trademarks, service marks, and similar rights.
package/README.md CHANGED
@@ -1,77 +1,140 @@
1
1
  # oh-my-parallel-agent-opencode
2
2
 
3
- OpenCode 환경에서 여러 에이전트를 병렬로 관리하고 실행할 수 있게 해주는 플러그인입니다. `librarian`, `explore`, `metis`, `momus`와 같은 기본 에이전트들을 바탕으로, 사용자가 원하는 모델과 설정을 가진 커스텀 에이전트들을 동적으로 생성하여 병렬 작업을 수행할 수 있습니다.
3
+ [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode)에서 포크된 병렬 에이전트 플러그인입니다.
4
4
 
5
- ## 주요 기능
5
+ **momus-1, momus-2, metis-1, librarian-1, explore-1** 등 변형 에이전트를 지원합니다.
6
6
 
7
- - **동적 에이전트 생성**: 설정 파일을 통해 `momus-1`, `momus-2` 등 이름이 지정된 커스텀 에이전트를 무제한으로 생성할 수 있습니다.
8
- - **병렬 실행 지원**: 생성된 에이전트들은 `delegate_task` (또는 `call_omo_agent`)를 통해 백그라운드에서 병렬로 실행될 수 있습니다.
9
- - **모델 자유 선택**: 각 에이전트마다 서로 다른 LLM 모델(OpenAI, Anthropic, Google 등)을 할당할 수 있습니다.
7
+ ## 핵심 기능
10
8
 
11
- ## 설치 방법
9
+ - **4개 에이전트의 변형 지원**: `momus`, `metis`, `librarian`, `explore`
10
+ - **변형 패턴**: `{agent}-{n}` (예: `momus-1`, `metis-2`, `librarian-3`)
11
+ - **동일 프롬프트, 다른 설정**: 변형 에이전트는 base 에이전트와 동일한 프롬프트를 사용하지만 model/variant를 다르게 설정 가능
12
12
 
13
- 프로젝트 루트 디렉토리의 `package.json`에 의존성을 추가하거나, 개발 환경에서 `npm link`를 사용하여 설치할 수 있습니다.
13
+ ## 설치
14
14
 
15
15
  ```bash
16
- # 개발 환경에서 링크하여 사용 시
17
- npm link oh-my-parallel-agent-opencode
16
+ npm install oh-my-parallel-agent-opencode
18
17
  ```
19
18
 
20
- ## 설정 방법
19
+ ## 설정
21
20
 
22
- 프로젝트 루트 디렉토리에 `oh-my-parallel-agent.json` 파일을 생성하여 에이전트들을 정의합니다.
23
-
24
- ### 설정 파일 형식 (`oh-my-parallel-agent.json`)
21
+ ### 1. OpenCode에 플러그인 등록
25
22
 
23
+ `~/.config/opencode/opencode.json`:
26
24
  ```json
27
25
  {
26
+ "plugin": ["oh-my-parallel-agent-opencode"]
27
+ }
28
+ ```
29
+
30
+ ### 2. 플러그인 설정 파일 생성
31
+
32
+ `~/.config/opencode/oh-my-parallel-agent-opencode.jsonc`:
33
+ ```jsonc
34
+ {
35
+ "$schema": "https://raw.githubusercontent.com/noseung-gyeong/oh-my-parallel-agent-opencode/master/assets/oh-my-parallel-agent-opencode.schema.json",
36
+
37
+ // 변형 에이전트 정의
28
38
  "agents": {
39
+ // momus-1: Claude Sonnet 사용
29
40
  "momus-1": {
30
- "model": "openai/gpt-5.2",
31
- "temperature": 0.7
41
+ "model": "claude-sonnet-4-20250514"
32
42
  },
43
+
44
+ // momus-2: GPT-4o 사용
33
45
  "momus-2": {
34
- "model": "anthropic/claude-opus-4",
35
- "prompt_append": "항상 비판적인 시각으로 검토해주세요."
46
+ "model": "gpt-4o"
36
47
  },
37
- "librarian-research": {
38
- "model": "google/gemini-3-pro"
48
+
49
+ // metis-1: 다른 모델로
50
+ "metis-1": {
51
+ "model": "gemini-2.5-pro"
52
+ },
53
+
54
+ // librarian-1, explore-1 등도 동일하게 정의
55
+ "librarian-1": {
56
+ "model": "claude-haiku-4-20250514"
57
+ },
58
+
59
+ "explore-1": {
60
+ "model": "claude-haiku-4-20250514"
39
61
  }
40
62
  }
41
63
  }
42
64
  ```
43
65
 
44
- - **에이전트 이름 규칙**: `{기본에이전트명}-{식별자}` 형식을 사용합니다.
45
- - 예: `momus-1`, `explore-web`, `librarian-docs`
46
- - **지원하는 기본 에이전트**: `librarian`, `explore`, `metis`, `momus`
66
+ ## 사용법
47
67
 
48
- ## 사용 방법
68
+ ### delegate_task에서 변형 에이전트 호출
49
69
 
50
- 플러그인이 로드되면 설정한 에이전트들이 OpenCode에 등록됩니다. 다음과 같이 `delegate_task` 도구를 사용하여 병렬로 호출할 수 있습니다.
70
+ ```typescript
71
+ // momus-1 호출 (momus 프롬프트 + momus-1 설정 사용)
72
+ delegate_task(
73
+ subagent_type="momus-1",
74
+ prompt="계획을 검토해주세요"
75
+ )
76
+
77
+ // momus-2 호출 (momus 프롬프트 + momus-2 설정 사용)
78
+ delegate_task(
79
+ subagent_type="momus-2",
80
+ prompt="다른 관점에서 검토해주세요"
81
+ )
82
+ ```
51
83
 
52
- ### 예시: 여러 모델에게 동시에 검증 요청하기
84
+ ### 병렬로 여러 변형 에이전트 실행
53
85
 
54
86
  ```typescript
55
- // momus-1과 momus-2에게 병렬로 검토 요청
56
- await ctx.callTool("delegate_task", {
57
- subagent_type: "momus-1",
58
- prompt: "현재 작성된 계획서의 논리적 허점을 찾아줘.",
59
- run_in_background: true
60
- });
61
-
62
- await ctx.callTool("delegate_task", {
63
- subagent_type: "momus-2",
64
- prompt: "현재 작성된 계획서의 논리적 허점을 찾아줘.",
65
- run_in_background: true
66
- });
87
+ // 같은 작업을 다른 모델로 병렬 실행
88
+ delegate_task(subagent_type="momus-1", run_in_background=true, prompt="...")
89
+ delegate_task(subagent_type="momus-2", run_in_background=true, prompt="...")
67
90
  ```
68
91
 
69
- `run_in_background: true` 옵션을 사용하면 여러 에이전트가 동시에 작업을 시작하며, `background_output` 도구를 통해 각 에이전트의 진행 상태와 결과를 확인할 수 있습니다.
92
+ ## 지원 에이전트
70
93
 
71
- ## 테스트 실행
94
+ | Base 에이전트 | 변형 패턴 | 설명 |
95
+ |--------------|----------|------|
96
+ | `momus` | `momus-1`, `momus-2`, ... | 계획 검토 에이전트 |
97
+ | `metis` | `metis-1`, `metis-2`, ... | 사전 계획 컨설턴트 |
98
+ | `librarian` | `librarian-1`, `librarian-2`, ... | 문서/코드 검색 에이전트 |
99
+ | `explore` | `explore-1`, `explore-2`, ... | 코드베이스 탐색 에이전트 |
72
100
 
73
- ```bash
74
- bun test
101
+ ## 동작 원리
102
+
103
+ 1. `delegate_task(subagent_type="momus-1", ...)`로 호출
104
+ 2. 플러그인이 `momus-1`에서 base 에이전트 `momus` 파싱
105
+ 3. `momus`의 프롬프트/팩토리 사용
106
+ 4. 설정 파일에서 `momus-1`의 model/variant 적용
107
+ 5. 에이전트 실행
108
+
109
+ ```
110
+ 사용자 → delegate_task("momus-1")
111
+
112
+ 플러그인 → resolveBaseAgent("momus-1") → "momus"
113
+
114
+ → momus 프롬프트 로드
115
+ → momus-1 설정 (model 등) 적용
116
+
117
+ 실행 ←───┘
75
118
  ```
76
119
 
77
- 현재 46개의 단위 테스트 및 통합 테스트가 포함되어 있으며, 에이전트 생성 로직과 설정 파일 파싱 로직의 안정성을 보장합니다.
120
+ ## oh-my-opencode와의 차이점
121
+
122
+ | 항목 | oh-my-opencode | oh-my-parallel-agent-opencode |
123
+ |------|----------------|-------------------------------|
124
+ | 에이전트 | 전체 (sisyphus, oracle 등) | 4개만 (momus, metis, librarian, explore) |
125
+ | 변형 지원 | ❌ | ✅ `{agent}-{n}` 패턴 |
126
+ | 용도 | 전체 에이전트 시스템 | 병렬 검토/탐색에 특화 |
127
+
128
+ ## 설정 파일 위치
129
+
130
+ - **플러그인 설정**: `~/.config/opencode/oh-my-parallel-agent-opencode.jsonc`
131
+ - **OpenCode 설정**: `~/.config/opencode/opencode.json`
132
+
133
+ ## 라이선스
134
+
135
+ [SUL-1.0](LICENSE.md)
136
+
137
+ ## 관련 프로젝트
138
+
139
+ - [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode) - 원본 프로젝트
140
+ - [OpenCode](https://github.com/sst/opencode) - 기반 CLI
@@ -0,0 +1,80 @@
1
+ #!/usr/bin/env node
2
+ // bin/oh-my-parallel-agent-opencode.js
3
+ // Wrapper script that detects platform and spawns the correct binary
4
+
5
+ import { spawnSync } from "node:child_process";
6
+ import { createRequire } from "node:module";
7
+ import { getPlatformPackage, getBinaryPath } from "./platform.js";
8
+
9
+ const require = createRequire(import.meta.url);
10
+
11
+ /**
12
+ * Detect libc family on Linux
13
+ * @returns {string | null} 'glibc', 'musl', or null if detection fails
14
+ */
15
+ function getLibcFamily() {
16
+ if (process.platform !== "linux") {
17
+ return undefined; // Not needed on non-Linux
18
+ }
19
+
20
+ try {
21
+ const detectLibc = require("detect-libc");
22
+ return detectLibc.familySync();
23
+ } catch {
24
+ // detect-libc not available
25
+ return null;
26
+ }
27
+ }
28
+
29
+ function main() {
30
+ const { platform, arch } = process;
31
+ const libcFamily = getLibcFamily();
32
+
33
+ // Get platform package name
34
+ let pkg;
35
+ try {
36
+ pkg = getPlatformPackage({ platform, arch, libcFamily });
37
+ } catch (error) {
38
+ console.error(`\noh-my-parallel-agent-opencode: ${error.message}\n`);
39
+ process.exit(1);
40
+ }
41
+
42
+ // Resolve binary path
43
+ const binRelPath = getBinaryPath(pkg, platform);
44
+
45
+ let binPath;
46
+ try {
47
+ binPath = require.resolve(binRelPath);
48
+ } catch {
49
+ console.error(`\noh-my-parallel-agent-opencode: Platform binary not installed.`);
50
+ console.error(`\nYour platform: ${platform}-${arch}${libcFamily === "musl" ? "-musl" : ""}`);
51
+ console.error(`Expected package: ${pkg}`);
52
+ console.error(`\nTo fix, run:`);
53
+ console.error(` npm install ${pkg}\n`);
54
+ process.exit(1);
55
+ }
56
+
57
+ // Spawn the binary
58
+ const result = spawnSync(binPath, process.argv.slice(2), {
59
+ stdio: "inherit",
60
+ });
61
+
62
+ // Handle spawn errors
63
+ if (result.error) {
64
+ console.error(`\noh-my-parallel-agent-opencode: Failed to execute binary.`);
65
+ console.error(`Error: ${result.error.message}\n`);
66
+ process.exit(2);
67
+ }
68
+
69
+ // Handle signals
70
+ if (result.signal) {
71
+ const signalNum = result.signal === "SIGTERM" ? 15 :
72
+ result.signal === "SIGKILL" ? 9 :
73
+ result.signal === "SIGINT" ? 2 : 1;
74
+ process.exit(128 + signalNum);
75
+ }
76
+
77
+ process.exit(result.status ?? 1);
78
+ }
79
+
80
+ main();
@@ -0,0 +1,38 @@
1
+ // bin/platform.js
2
+ // Shared platform detection module - used by wrapper and postinstall
3
+
4
+ /**
5
+ * Get the platform-specific package name
6
+ * @param {{ platform: string, arch: string, libcFamily?: string | null }} options
7
+ * @returns {string} Package name like "oh-my-parallel-agent-opencode-darwin-arm64"
8
+ * @throws {Error} If libc cannot be detected on Linux
9
+ */
10
+ export function getPlatformPackage({ platform, arch, libcFamily }) {
11
+ let suffix = "";
12
+ if (platform === "linux") {
13
+ if (libcFamily === null || libcFamily === undefined) {
14
+ throw new Error(
15
+ "Could not detect libc on Linux. " +
16
+ "Please ensure detect-libc is installed or report this issue."
17
+ );
18
+ }
19
+ if (libcFamily === "musl") {
20
+ suffix = "-musl";
21
+ }
22
+ }
23
+
24
+ // Map platform names: win32 -> windows (for package name)
25
+ const os = platform === "win32" ? "windows" : platform;
26
+ return `oh-my-parallel-agent-opencode-${os}-${arch}${suffix}`;
27
+ }
28
+
29
+ /**
30
+ * Get the path to the binary within a platform package
31
+ * @param {string} pkg Package name
32
+ * @param {string} platform Process platform
33
+ * @returns {string} Relative path like "oh-my-parallel-agent-opencode-darwin-arm64/bin/oh-my-parallel-agent-opencode"
34
+ */
35
+ export function getBinaryPath(pkg, platform) {
36
+ const ext = platform === "win32" ? ".exe" : "";
37
+ return `${pkg}/bin/oh-my-parallel-agent-opencode${ext}`;
38
+ }
@@ -0,0 +1,148 @@
1
+ // bin/platform.test.ts
2
+ import { describe, expect, test } from "bun:test";
3
+ import { getPlatformPackage, getBinaryPath } from "./platform.js";
4
+
5
+ describe("getPlatformPackage", () => {
6
+ // #region Darwin platforms
7
+ test("returns darwin-arm64 for macOS ARM64", () => {
8
+ // #given macOS ARM64 platform
9
+ const input = { platform: "darwin", arch: "arm64" };
10
+
11
+ // #when getting platform package
12
+ const result = getPlatformPackage(input);
13
+
14
+ // #then returns correct package name
15
+ expect(result).toBe("oh-my-parallel-agent-opencode-darwin-arm64");
16
+ });
17
+
18
+ test("returns darwin-x64 for macOS Intel", () => {
19
+ // #given macOS x64 platform
20
+ const input = { platform: "darwin", arch: "x64" };
21
+
22
+ // #when getting platform package
23
+ const result = getPlatformPackage(input);
24
+
25
+ // #then returns correct package name
26
+ expect(result).toBe("oh-my-parallel-agent-opencode-darwin-x64");
27
+ });
28
+ // #endregion
29
+
30
+ // #region Linux glibc platforms
31
+ test("returns linux-x64 for Linux x64 with glibc", () => {
32
+ // #given Linux x64 with glibc
33
+ const input = { platform: "linux", arch: "x64", libcFamily: "glibc" };
34
+
35
+ // #when getting platform package
36
+ const result = getPlatformPackage(input);
37
+
38
+ // #then returns correct package name
39
+ expect(result).toBe("oh-my-parallel-agent-opencode-linux-x64");
40
+ });
41
+
42
+ test("returns linux-arm64 for Linux ARM64 with glibc", () => {
43
+ // #given Linux ARM64 with glibc
44
+ const input = { platform: "linux", arch: "arm64", libcFamily: "glibc" };
45
+
46
+ // #when getting platform package
47
+ const result = getPlatformPackage(input);
48
+
49
+ // #then returns correct package name
50
+ expect(result).toBe("oh-my-parallel-agent-opencode-linux-arm64");
51
+ });
52
+ // #endregion
53
+
54
+ // #region Linux musl platforms
55
+ test("returns linux-x64-musl for Alpine x64", () => {
56
+ // #given Linux x64 with musl (Alpine)
57
+ const input = { platform: "linux", arch: "x64", libcFamily: "musl" };
58
+
59
+ // #when getting platform package
60
+ const result = getPlatformPackage(input);
61
+
62
+ // #then returns correct package name with musl suffix
63
+ expect(result).toBe("oh-my-parallel-agent-opencode-linux-x64-musl");
64
+ });
65
+
66
+ test("returns linux-arm64-musl for Alpine ARM64", () => {
67
+ // #given Linux ARM64 with musl (Alpine)
68
+ const input = { platform: "linux", arch: "arm64", libcFamily: "musl" };
69
+
70
+ // #when getting platform package
71
+ const result = getPlatformPackage(input);
72
+
73
+ // #then returns correct package name with musl suffix
74
+ expect(result).toBe("oh-my-parallel-agent-opencode-linux-arm64-musl");
75
+ });
76
+ // #endregion
77
+
78
+ // #region Windows platform
79
+ test("returns windows-x64 for Windows", () => {
80
+ // #given Windows x64 platform (win32 is Node's platform name)
81
+ const input = { platform: "win32", arch: "x64" };
82
+
83
+ // #when getting platform package
84
+ const result = getPlatformPackage(input);
85
+
86
+ // #then returns correct package name with 'windows' not 'win32'
87
+ expect(result).toBe("oh-my-parallel-agent-opencode-windows-x64");
88
+ });
89
+ // #endregion
90
+
91
+ // #region Error cases
92
+ test("throws error for Linux with null libcFamily", () => {
93
+ // #given Linux platform with null libc detection
94
+ const input = { platform: "linux", arch: "x64", libcFamily: null };
95
+
96
+ // #when getting platform package
97
+ // #then throws descriptive error
98
+ expect(() => getPlatformPackage(input)).toThrow("Could not detect libc");
99
+ });
100
+
101
+ test("throws error for Linux with undefined libcFamily", () => {
102
+ // #given Linux platform with undefined libc
103
+ const input = { platform: "linux", arch: "x64", libcFamily: undefined };
104
+
105
+ // #when getting platform package
106
+ // #then throws descriptive error
107
+ expect(() => getPlatformPackage(input)).toThrow("Could not detect libc");
108
+ });
109
+ // #endregion
110
+ });
111
+
112
+ describe("getBinaryPath", () => {
113
+ test("returns path without .exe for Unix platforms", () => {
114
+ // #given Unix platform package
115
+ const pkg = "oh-my-parallel-agent-opencode-darwin-arm64";
116
+ const platform = "darwin";
117
+
118
+ // #when getting binary path
119
+ const result = getBinaryPath(pkg, platform);
120
+
121
+ // #then returns path without extension
122
+ expect(result).toBe("oh-my-parallel-agent-opencode-darwin-arm64/bin/oh-my-parallel-agent-opencode");
123
+ });
124
+
125
+ test("returns path with .exe for Windows", () => {
126
+ // #given Windows platform package
127
+ const pkg = "oh-my-parallel-agent-opencode-windows-x64";
128
+ const platform = "win32";
129
+
130
+ // #when getting binary path
131
+ const result = getBinaryPath(pkg, platform);
132
+
133
+ // #then returns path with .exe extension
134
+ expect(result).toBe("oh-my-parallel-agent-opencode-windows-x64/bin/oh-my-parallel-agent-opencode.exe");
135
+ });
136
+
137
+ test("returns path without .exe for Linux", () => {
138
+ // #given Linux platform package
139
+ const pkg = "oh-my-parallel-agent-opencode-linux-x64";
140
+ const platform = "linux";
141
+
142
+ // #when getting binary path
143
+ const result = getBinaryPath(pkg, platform);
144
+
145
+ // #then returns path without extension
146
+ expect(result).toBe("oh-my-parallel-agent-opencode-linux-x64/bin/oh-my-parallel-agent-opencode");
147
+ });
148
+ });
@@ -0,0 +1,22 @@
1
+ import type { AgentConfig } from "@opencode-ai/sdk";
2
+ import type { AgentPromptMetadata } from "./types";
3
+ import type { AvailableAgent, AvailableSkill } from "./dynamic-agent-prompt-builder";
4
+ import type { CategoryConfig } from "../config/schema";
5
+ /**
6
+ * Atlas - Master Orchestrator Agent
7
+ *
8
+ * Orchestrates work via delegate_task() to complete ALL tasks in a todo list until fully done.
9
+ * You are the conductor of a symphony of specialized agents.
10
+ */
11
+ export interface OrchestratorContext {
12
+ model?: string;
13
+ availableAgents?: AvailableAgent[];
14
+ availableSkills?: AvailableSkill[];
15
+ userCategories?: Record<string, CategoryConfig>;
16
+ }
17
+ export declare const ATLAS_SYSTEM_PROMPT = "\n<identity>\nYou are Atlas - the Master Orchestrator from OhMyOpenCode.\n\nIn Greek mythology, Atlas holds up the celestial heavens. You hold up the entire workflow - coordinating every agent, every task, every verification until completion.\n\nYou are a conductor, not a musician. A general, not a soldier. You DELEGATE, COORDINATE, and VERIFY.\nYou never write code yourself. You orchestrate specialists who do.\n</identity>\n\n<mission>\nComplete ALL tasks in a work plan via `delegate_task()` until fully done.\nOne task per delegation. Parallel when independent. Verify everything.\n</mission>\n\n<delegation_system>\n## How to Delegate\n\nUse `delegate_task()` with EITHER category OR agent (mutually exclusive):\n\n```typescript\n// Option A: Category + Skills (spawns Sisyphus-Junior with domain config)\ndelegate_task(\n category=\"[category-name]\",\n load_skills=[\"skill-1\", \"skill-2\"],\n run_in_background=false,\n prompt=\"...\"\n)\n\n// Option B: Specialized Agent (for specific expert tasks)\ndelegate_task(\n subagent_type=\"[agent-name]\",\n load_skills=[],\n run_in_background=false,\n prompt=\"...\"\n)\n```\n\n{CATEGORY_SECTION}\n\n{AGENT_SECTION}\n\n{DECISION_MATRIX}\n\n{SKILLS_SECTION}\n\n{{CATEGORY_SKILLS_DELEGATION_GUIDE}}\n\n## 6-Section Prompt Structure (MANDATORY)\n\nEvery `delegate_task()` prompt MUST include ALL 6 sections:\n\n```markdown\n## 1. TASK\n[Quote EXACT checkbox item. Be obsessively specific.]\n\n## 2. EXPECTED OUTCOME\n- [ ] Files created/modified: [exact paths]\n- [ ] Functionality: [exact behavior]\n- [ ] Verification: `[command]` passes\n\n## 3. REQUIRED TOOLS\n- [tool]: [what to search/check]\n- context7: Look up [library] docs\n- ast-grep: `sg --pattern '[pattern]' --lang [lang]`\n\n## 4. MUST DO\n- Follow pattern in [reference file:lines]\n- Write tests for [specific cases]\n- Append findings to notepad (never overwrite)\n\n## 5. MUST NOT DO\n- Do NOT modify files outside [scope]\n- Do NOT add dependencies\n- Do NOT skip verification\n\n## 6. CONTEXT\n### Notepad Paths\n- READ: .sisyphus/notepads/{plan-name}/*.md\n- WRITE: Append to appropriate category\n\n### Inherited Wisdom\n[From notepad - conventions, gotchas, decisions]\n\n### Dependencies\n[What previous tasks built]\n```\n\n**If your prompt is under 30 lines, it's TOO SHORT.**\n</delegation_system>\n\n<workflow>\n## Step 0: Register Tracking\n\n```\nTodoWrite([{\n id: \"orchestrate-plan\",\n content: \"Complete ALL tasks in work plan\",\n status: \"in_progress\",\n priority: \"high\"\n}])\n```\n\n## Step 1: Analyze Plan\n\n1. Read the todo list file\n2. Parse incomplete checkboxes `- [ ]`\n3. Extract parallelizability info from each task\n4. Build parallelization map:\n - Which tasks can run simultaneously?\n - Which have dependencies?\n - Which have file conflicts?\n\nOutput:\n```\nTASK ANALYSIS:\n- Total: [N], Remaining: [M]\n- Parallelizable Groups: [list]\n- Sequential Dependencies: [list]\n```\n\n## Step 2: Initialize Notepad\n\n```bash\nmkdir -p .sisyphus/notepads/{plan-name}\n```\n\nStructure:\n```\n.sisyphus/notepads/{plan-name}/\n learnings.md # Conventions, patterns\n decisions.md # Architectural choices\n issues.md # Problems, gotchas\n problems.md # Unresolved blockers\n```\n\n## Step 3: Execute Tasks\n\n### 3.1 Check Parallelization\nIf tasks can run in parallel:\n- Prepare prompts for ALL parallelizable tasks\n- Invoke multiple `delegate_task()` in ONE message\n- Wait for all to complete\n- Verify all, then continue\n\nIf sequential:\n- Process one at a time\n\n### 3.2 Before Each Delegation\n\n**MANDATORY: Read notepad first**\n```\nglob(\".sisyphus/notepads/{plan-name}/*.md\")\nRead(\".sisyphus/notepads/{plan-name}/learnings.md\")\nRead(\".sisyphus/notepads/{plan-name}/issues.md\")\n```\n\nExtract wisdom and include in prompt.\n\n### 3.3 Invoke delegate_task()\n\n```typescript\ndelegate_task(\n category=\"[category]\",\n load_skills=[\"[relevant-skills]\"],\n run_in_background=false,\n prompt=`[FULL 6-SECTION PROMPT]`\n)\n```\n\n### 3.4 Verify (PROJECT-LEVEL QA)\n\n**After EVERY delegation, YOU must verify:**\n\n1. **Project-level diagnostics**:\n `lsp_diagnostics(filePath=\"src/\")` or `lsp_diagnostics(filePath=\".\")`\n MUST return ZERO errors\n\n2. **Build verification**:\n `bun run build` or `bun run typecheck`\n Exit code MUST be 0\n\n3. **Test verification**:\n `bun test`\n ALL tests MUST pass\n\n4. **Manual inspection**:\n - Read changed files\n - Confirm changes match requirements\n - Check for regressions\n\n**Checklist:**\n```\n[ ] lsp_diagnostics at project level - ZERO errors\n[ ] Build command - exit 0\n[ ] Test suite - all pass\n[ ] Files exist and match requirements\n[ ] No regressions\n```\n\n**If verification fails**: Resume the SAME session with the ACTUAL error output:\n```typescript\ndelegate_task(\n session_id=\"ses_xyz789\", // ALWAYS use the session from the failed task\n load_skills=[...],\n prompt=\"Verification failed: {actual error}. Fix.\"\n)\n```\n\n### 3.5 Handle Failures (USE RESUME)\n\n**CRITICAL: When re-delegating, ALWAYS use `session_id` parameter.**\n\nEvery `delegate_task()` output includes a session_id. STORE IT.\n\nIf task fails:\n1. Identify what went wrong\n2. **Resume the SAME session** - subagent has full context already:\n ```typescript\n delegate_task(\n session_id=\"ses_xyz789\", // Session from failed task\n load_skills=[...],\n prompt=\"FAILED: {error}. Fix by: {specific instruction}\"\n )\n ```\n3. Maximum 3 retry attempts with the SAME session\n4. If blocked after 3 attempts: Document and continue to independent tasks\n\n**Why session_id is MANDATORY for failures:**\n- Subagent already read all files, knows the context\n- No repeated exploration = 70%+ token savings\n- Subagent knows what approaches already failed\n- Preserves accumulated knowledge from the attempt\n\n**NEVER start fresh on failures** - that's like asking someone to redo work while wiping their memory.\n\n### 3.6 Loop Until Done\n\nRepeat Step 3 until all tasks complete.\n\n## Step 4: Final Report\n\n```\nORCHESTRATION COMPLETE\n\nTODO LIST: [path]\nCOMPLETED: [N/N]\nFAILED: [count]\n\nEXECUTION SUMMARY:\n- Task 1: SUCCESS (category)\n- Task 2: SUCCESS (agent)\n\nFILES MODIFIED:\n[list]\n\nACCUMULATED WISDOM:\n[from notepad]\n```\n</workflow>\n\n<parallel_execution>\n## Parallel Execution Rules\n\n**For exploration (explore/librarian)**: ALWAYS background\n```typescript\ndelegate_task(subagent_type=\"explore\", run_in_background=true, ...)\ndelegate_task(subagent_type=\"librarian\", run_in_background=true, ...)\n```\n\n**For task execution**: NEVER background\n```typescript\ndelegate_task(category=\"...\", run_in_background=false, ...)\n```\n\n**Parallel task groups**: Invoke multiple in ONE message\n```typescript\n// Tasks 2, 3, 4 are independent - invoke together\ndelegate_task(category=\"quick\", prompt=\"Task 2...\")\ndelegate_task(category=\"quick\", prompt=\"Task 3...\")\ndelegate_task(category=\"quick\", prompt=\"Task 4...\")\n```\n\n**Background management**:\n- Collect results: `background_output(task_id=\"...\")`\n- Before final answer: `background_cancel(all=true)`\n</parallel_execution>\n\n<notepad_protocol>\n## Notepad System\n\n**Purpose**: Subagents are STATELESS. Notepad is your cumulative intelligence.\n\n**Before EVERY delegation**:\n1. Read notepad files\n2. Extract relevant wisdom\n3. Include as \"Inherited Wisdom\" in prompt\n\n**After EVERY completion**:\n- Instruct subagent to append findings (never overwrite, never use Edit tool)\n\n**Format**:\n```markdown\n## [TIMESTAMP] Task: {task-id}\n{content}\n```\n\n**Path convention**:\n- Plan: `.sisyphus/plans/{name}.md` (READ ONLY)\n- Notepad: `.sisyphus/notepads/{name}/` (READ/APPEND)\n</notepad_protocol>\n\n<verification_rules>\n## QA Protocol\n\nYou are the QA gate. Subagents lie. Verify EVERYTHING.\n\n**After each delegation**:\n1. `lsp_diagnostics` at PROJECT level (not file level)\n2. Run build command\n3. Run test suite\n4. Read changed files manually\n5. Confirm requirements met\n\n**Evidence required**:\n| Action | Evidence |\n|--------|----------|\n| Code change | lsp_diagnostics clean at project level |\n| Build | Exit code 0 |\n| Tests | All pass |\n| Delegation | Verified independently |\n\n**No evidence = not complete.**\n</verification_rules>\n\n<boundaries>\n## What You Do vs Delegate\n\n**YOU DO**:\n- Read files (for context, verification)\n- Run commands (for verification)\n- Use lsp_diagnostics, grep, glob\n- Manage todos\n- Coordinate and verify\n\n**YOU DELEGATE**:\n- All code writing/editing\n- All bug fixes\n- All test creation\n- All documentation\n- All git operations\n</boundaries>\n\n<critical_overrides>\n## Critical Rules\n\n**NEVER**:\n- Write/edit code yourself - always delegate\n- Trust subagent claims without verification\n- Use run_in_background=true for task execution\n- Send prompts under 30 lines\n- Skip project-level lsp_diagnostics after delegation\n- Batch multiple tasks in one delegation\n- Start fresh session for failures/follow-ups - use `resume` instead\n\n**ALWAYS**:\n- Include ALL 6 sections in delegation prompts\n- Read notepad before every delegation\n- Run project-level QA after every delegation\n- Pass inherited wisdom to every subagent\n- Parallelize independent tasks\n- Verify with your own tools\n- **Store session_id from every delegation output**\n- **Use `session_id=\"{session_id}\"` for retries, fixes, and follow-ups**\n</critical_overrides>\n";
18
+ export declare function createAtlasAgent(ctx: OrchestratorContext): AgentConfig;
19
+ export declare namespace createAtlasAgent {
20
+ var mode: "primary";
21
+ }
22
+ export declare const atlasPromptMetadata: AgentPromptMetadata;
@@ -0,0 +1,30 @@
1
+ import type { AgentPromptMetadata, BuiltinAgentName } from "./types";
2
+ export interface AvailableAgent {
3
+ name: BuiltinAgentName;
4
+ description: string;
5
+ metadata: AgentPromptMetadata;
6
+ }
7
+ export interface AvailableTool {
8
+ name: string;
9
+ category: "lsp" | "ast" | "search" | "session" | "command" | "other";
10
+ }
11
+ export interface AvailableSkill {
12
+ name: string;
13
+ description: string;
14
+ location: "user" | "project" | "plugin";
15
+ }
16
+ export interface AvailableCategory {
17
+ name: string;
18
+ description: string;
19
+ }
20
+ export declare function categorizeTools(toolNames: string[]): AvailableTool[];
21
+ export declare function buildKeyTriggersSection(agents: AvailableAgent[], _skills?: AvailableSkill[]): string;
22
+ export declare function buildToolSelectionTable(agents: AvailableAgent[], tools?: AvailableTool[], _skills?: AvailableSkill[]): string;
23
+ export declare function buildExploreSection(agents: AvailableAgent[]): string;
24
+ export declare function buildLibrarianSection(agents: AvailableAgent[]): string;
25
+ export declare function buildDelegationTable(agents: AvailableAgent[]): string;
26
+ export declare function buildCategorySkillsDelegationGuide(categories: AvailableCategory[], skills: AvailableSkill[]): string;
27
+ export declare function buildOracleSection(agents: AvailableAgent[]): string;
28
+ export declare function buildHardBlocksSection(): string;
29
+ export declare function buildAntiPatternsSection(): string;
30
+ export declare function buildUltraworkSection(agents: AvailableAgent[], categories: AvailableCategory[], skills: AvailableSkill[]): string;
@@ -0,0 +1,7 @@
1
+ import type { AgentConfig } from "@opencode-ai/sdk";
2
+ import type { AgentPromptMetadata } from "./types";
3
+ export declare const EXPLORE_PROMPT_METADATA: AgentPromptMetadata;
4
+ export declare function createExploreAgent(model: string): AgentConfig;
5
+ export declare namespace createExploreAgent {
6
+ var mode: "subagent";
7
+ }
@@ -0,0 +1,6 @@
1
+ import type { AgentConfig } from "@opencode-ai/sdk";
2
+ import type { AvailableAgent, AvailableSkill, AvailableCategory } from "./dynamic-agent-prompt-builder";
3
+ export declare function createHephaestusAgent(model: string, availableAgents?: AvailableAgent[], availableToolNames?: string[], availableSkills?: AvailableSkill[], availableCategories?: AvailableCategory[]): AgentConfig;
4
+ export declare namespace createHephaestusAgent {
5
+ var mode: "primary";
6
+ }
@@ -0,0 +1,12 @@
1
+ export * from "./types";
2
+ export { createBuiltinAgents } from "./utils";
3
+ export type { AvailableAgent, AvailableCategory, AvailableSkill } from "./dynamic-agent-prompt-builder";
4
+ export { createSisyphusAgent } from "./sisyphus";
5
+ export { createOracleAgent, ORACLE_PROMPT_METADATA } from "./oracle";
6
+ export { createLibrarianAgent, LIBRARIAN_PROMPT_METADATA } from "./librarian";
7
+ export { createExploreAgent, EXPLORE_PROMPT_METADATA } from "./explore";
8
+ export { createMultimodalLookerAgent, MULTIMODAL_LOOKER_PROMPT_METADATA } from "./multimodal-looker";
9
+ export { createMetisAgent, METIS_SYSTEM_PROMPT, metisPromptMetadata } from "./metis";
10
+ export { createMomusAgent, MOMUS_SYSTEM_PROMPT, momusPromptMetadata } from "./momus";
11
+ export { createAtlasAgent, atlasPromptMetadata } from "./atlas";
12
+ export { PROMETHEUS_SYSTEM_PROMPT, PROMETHEUS_PERMISSION, PROMETHEUS_IDENTITY_CONSTRAINTS, PROMETHEUS_INTERVIEW_MODE, PROMETHEUS_PLAN_GENERATION, PROMETHEUS_HIGH_ACCURACY_MODE, PROMETHEUS_PLAN_TEMPLATE, PROMETHEUS_BEHAVIORAL_SUMMARY, } from "./prometheus";
@@ -0,0 +1,7 @@
1
+ import type { AgentConfig } from "@opencode-ai/sdk";
2
+ import type { AgentPromptMetadata } from "./types";
3
+ export declare const LIBRARIAN_PROMPT_METADATA: AgentPromptMetadata;
4
+ export declare function createLibrarianAgent(model: string): AgentConfig;
5
+ export declare namespace createLibrarianAgent {
6
+ var mode: "subagent";
7
+ }