@bohuyeshan/openagent-labforge-core 3.11.4 → 3.13.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 (272) hide show
  1. package/README.ja.md +130 -343
  2. package/README.ko.md +128 -337
  3. package/README.md +229 -584
  4. package/README.ru.md +131 -364
  5. package/README.zh-cn.md +231 -547
  6. package/bin/openagent-labforge.js +95 -9
  7. package/bin/platform.test.ts +20 -21
  8. package/dist/agents/article-writer.d.ts +7 -0
  9. package/dist/agents/atlas/default.d.ts +1 -1
  10. package/dist/agents/atlas/gemini.d.ts +1 -1
  11. package/dist/agents/atlas/gpt.d.ts +1 -1
  12. package/dist/agents/bio-methodologist.d.ts +1 -1
  13. package/dist/agents/bio-orchestrator.d.ts +7 -0
  14. package/dist/agents/bio-skill-guidance.d.ts +1 -0
  15. package/dist/agents/builtin-agents/general-agents.d.ts +0 -1
  16. package/dist/agents/builtin-agents/sisyphus-agent.d.ts +16 -0
  17. package/dist/agents/dynamic-agent-prompt-builder.d.ts +0 -2
  18. package/dist/agents/engineering-capability.d.ts +7 -0
  19. package/dist/agents/env-context.d.ts +1 -1
  20. package/dist/agents/github-scout.d.ts +7 -0
  21. package/dist/agents/index.d.ts +0 -1
  22. package/dist/agents/metis.d.ts +1 -1
  23. package/dist/agents/momus.d.ts +1 -1
  24. package/dist/agents/prometheus/behavioral-summary.d.ts +1 -1
  25. package/dist/agents/prometheus/gemini.d.ts +1 -1
  26. package/dist/agents/prometheus/gpt.d.ts +1 -1
  27. package/dist/agents/prometheus/interview-mode.d.ts +1 -1
  28. package/dist/agents/prometheus/plan-generation.d.ts +1 -1
  29. package/dist/agents/prometheus/plan-template.d.ts +1 -1
  30. package/dist/agents/prometheus/system-prompt.d.ts +1 -1
  31. package/dist/agents/scientific-writer.d.ts +7 -0
  32. package/dist/agents/sisyphus-junior/gpt-5-3-codex.d.ts +1 -1
  33. package/dist/agents/sisyphus-junior/gpt-5-4.d.ts +1 -1
  34. package/dist/agents/sisyphus-junior/gpt.d.ts +1 -1
  35. package/dist/agents/tech-scout.d.ts +7 -0
  36. package/dist/agents/types.d.ts +1 -1
  37. package/dist/agents/wase.d.ts +8 -0
  38. package/dist/agents/wet-lab-designer.d.ts +7 -0
  39. package/dist/agents/writing-style-rules.d.ts +1 -0
  40. package/dist/cli/config-manager/bun-install.d.ts +1 -6
  41. package/dist/cli/config-manager/cleanup-managed-mcp-from-opencode-config.d.ts +2 -0
  42. package/dist/cli/config-manager/cleanup-stale-managed-agents.d.ts +2 -0
  43. package/dist/cli/config-manager/parse-opencode-config-file.d.ts +2 -0
  44. package/dist/cli/config-manager/plugin-name-with-version.d.ts +1 -1
  45. package/dist/cli/config-manager/sync-static-agent-to-opencode-config.d.ts +2 -0
  46. package/dist/cli/config-manager/sync-static-mcp-to-opencode-config.d.ts +2 -0
  47. package/dist/cli/config-manager/write-bootstrap-skill.d.ts +15 -0
  48. package/dist/cli/config-manager.d.ts +5 -0
  49. package/dist/cli/index.js +24986 -15362
  50. package/dist/cli/install-validators.d.ts +0 -1
  51. package/dist/cli/model-fallback-types.d.ts +0 -1
  52. package/dist/cli/run/index.d.ts +0 -1
  53. package/dist/cli/run/types.d.ts +0 -1
  54. package/dist/cli/types.d.ts +0 -3
  55. package/dist/config/schema/agent-names.d.ts +36 -3
  56. package/dist/config/schema/agent-overrides.d.ts +504 -0
  57. package/dist/config/schema/background-task.d.ts +0 -2
  58. package/dist/config/schema/experimental.d.ts +5 -0
  59. package/dist/config/schema/git-master.d.ts +0 -1
  60. package/dist/config/schema/hooks.d.ts +0 -2
  61. package/dist/config/schema/mcp-policy.d.ts +1 -0
  62. package/dist/config/schema/oh-my-opencode-config.d.ts +526 -54
  63. package/dist/config/schema.d.ts +0 -1
  64. package/dist/create-hooks.d.ts +0 -13
  65. package/dist/features/background-agent/compaction-aware-message-resolver.d.ts +1 -16
  66. package/dist/features/background-agent/constants.d.ts +2 -1
  67. package/dist/features/background-agent/manager.d.ts +5 -20
  68. package/dist/features/background-agent/process-cleanup.d.ts +1 -1
  69. package/dist/features/background-agent/task-history.d.ts +0 -1
  70. package/dist/features/background-agent/task-poller.d.ts +0 -1
  71. package/dist/features/background-agent/types.d.ts +0 -4
  72. package/dist/features/builtin-commands/commands.d.ts +4 -1
  73. package/dist/features/builtin-skills/skills/bio-methods.d.ts +2 -0
  74. package/dist/features/builtin-skills/skills/bio-pipeline.d.ts +2 -0
  75. package/dist/features/builtin-skills/skills/bio-tools.d.ts +2 -0
  76. package/dist/features/builtin-skills/skills/bio-visualization.d.ts +2 -0
  77. package/dist/features/builtin-skills/skills/cell-annotation.d.ts +2 -0
  78. package/dist/features/builtin-skills/skills/differential-expression.d.ts +2 -0
  79. package/dist/features/builtin-skills/skills/geo-query.d.ts +2 -0
  80. package/dist/features/builtin-skills/skills/index.d.ts +14 -0
  81. package/dist/features/builtin-skills/skills/paper-evidence.d.ts +2 -0
  82. package/dist/features/builtin-skills/skills/pubmed-search.d.ts +2 -0
  83. package/dist/features/builtin-skills/skills/scrna-preprocessing.d.ts +2 -0
  84. package/dist/features/builtin-skills/skills/sequence-analysis.d.ts +2 -0
  85. package/dist/features/builtin-skills/skills/structural-biology.d.ts +2 -0
  86. package/dist/features/builtin-skills/skills/vector-design.d.ts +2 -0
  87. package/dist/features/builtin-skills/skills/wet-lab-design.d.ts +2 -0
  88. package/dist/features/claude-code-agent-loader/loader.d.ts +3 -3
  89. package/dist/features/claude-code-agent-loader/types.d.ts +1 -8
  90. package/dist/features/claude-code-mcp-loader/configure-allowed-env-vars.d.ts +5 -0
  91. package/dist/features/claude-code-mcp-loader/index.d.ts +1 -0
  92. package/dist/features/claude-code-mcp-loader/types.d.ts +3 -0
  93. package/dist/features/claude-code-plugin-loader/agent-loader.d.ts +2 -2
  94. package/dist/features/claude-code-plugin-loader/loader.d.ts +2 -2
  95. package/dist/features/claude-code-plugin-loader/types.d.ts +1 -1
  96. package/dist/features/claude-code-session-state/state.d.ts +5 -0
  97. package/dist/features/opencode-skill-loader/git-master-template-injection.d.ts +1 -1
  98. package/dist/features/opencode-skill-loader/project-skill-directory-discovery.d.ts +1 -0
  99. package/dist/features/opencode-skill-loader/skill-metadata-validator.d.ts +8 -0
  100. package/dist/features/skill-mcp-manager/types.d.ts +0 -4
  101. package/dist/features/tmux-subagent/index.d.ts +0 -1
  102. package/dist/features/tmux-subagent/manager.d.ts +0 -5
  103. package/dist/features/tmux-subagent/types.d.ts +0 -2
  104. package/dist/hooks/atlas/tool-execute-after.d.ts +0 -2
  105. package/dist/hooks/atlas/types.d.ts +0 -2
  106. package/dist/hooks/atlas/verification-reminders.d.ts +0 -4
  107. package/dist/hooks/auto-slash-command/hook.d.ts +0 -7
  108. package/dist/hooks/auto-update-checker/checker.d.ts +1 -3
  109. package/dist/hooks/auto-update-checker/constants.d.ts +2 -2
  110. package/dist/hooks/comment-checker/downloader.d.ts +1 -1
  111. package/dist/hooks/compaction-context-injector/hook.d.ts +1 -5
  112. package/dist/hooks/context-window-monitor.d.ts +5 -2
  113. package/dist/hooks/index.d.ts +0 -2
  114. package/dist/hooks/keyword-detector/detector.d.ts +1 -1
  115. package/dist/hooks/keyword-detector/hook.d.ts +2 -2
  116. package/dist/hooks/keyword-detector/index.d.ts +1 -0
  117. package/dist/hooks/keyword-detector/semantic-hint.d.ts +4 -0
  118. package/dist/hooks/keyword-detector/ultrawork/autonomous.d.ts +8 -0
  119. package/dist/hooks/preemptive-compaction.d.ts +5 -2
  120. package/dist/hooks/runtime-fallback/hook.d.ts +3 -2
  121. package/dist/hooks/runtime-fallback/message-update-handler.d.ts +2 -1
  122. package/dist/hooks/runtime-fallback/types.d.ts +3 -56
  123. package/dist/hooks/session-notification-scheduler.d.ts +3 -5
  124. package/dist/hooks/session-notification.d.ts +0 -2
  125. package/dist/hooks/session-recovery/tool-pairing.d.ts +16 -0
  126. package/dist/hooks/start-work/index.d.ts +1 -1
  127. package/dist/hooks/start-work/worktree-detector.d.ts +0 -7
  128. package/dist/hooks/todo-continuation-enforcer/compaction-guard.d.ts +4 -0
  129. package/dist/hooks/todo-continuation-enforcer/constants.d.ts +6 -5
  130. package/dist/hooks/todo-continuation-enforcer/handler.d.ts +0 -1
  131. package/dist/hooks/todo-continuation-enforcer/idle-event.d.ts +0 -1
  132. package/dist/hooks/todo-continuation-enforcer/resolve-message-info.d.ts +3 -0
  133. package/dist/hooks/todo-continuation-enforcer/session-state.d.ts +1 -1
  134. package/dist/hooks/todo-continuation-enforcer/types.d.ts +8 -3
  135. package/dist/hooks/tool-output-truncator.d.ts +0 -1
  136. package/dist/index.js +56608 -56859
  137. package/dist/mcp/extended.d.ts +4 -2
  138. package/dist/mcp/index.d.ts +2 -1
  139. package/dist/mcp/types.d.ts +2 -3
  140. package/dist/openagent-labforge.schema.json +1362 -83
  141. package/dist/plugin/hooks/create-continuation-hooks.d.ts +1 -2
  142. package/dist/plugin/hooks/create-core-hooks.d.ts +0 -1
  143. package/dist/plugin/hooks/create-session-hooks.d.ts +1 -2
  144. package/dist/plugin/ultrawork-model-override.d.ts +11 -1
  145. package/dist/plugin-dispose.d.ts +12 -10
  146. package/dist/plugin-handlers/agent-config-handler.d.ts +0 -1
  147. package/dist/plugin-handlers/prometheus-agent-config-builder.d.ts +1 -1
  148. package/dist/plugin-state.d.ts +0 -5
  149. package/dist/shared/agent-display-names.d.ts +1 -0
  150. package/dist/shared/data-path.d.ts +1 -1
  151. package/dist/shared/dynamic-truncator.d.ts +7 -4
  152. package/dist/shared/external-plugin-detector.d.ts +7 -0
  153. package/dist/shared/index.d.ts +5 -3
  154. package/dist/shared/jsonc-parser.d.ts +4 -0
  155. package/dist/shared/mcp-local-command-normalizer.d.ts +1 -0
  156. package/dist/shared/migrate-legacy-config-file.d.ts +1 -0
  157. package/dist/shared/model-error-classifier.d.ts +1 -2
  158. package/dist/shared/opencode-command-dirs.d.ts +0 -1
  159. package/dist/shared/plugin-identity.d.ts +2 -3
  160. package/dist/shared/project-discovery-dirs.d.ts +4 -0
  161. package/dist/shared/session-model-state.d.ts +1 -2
  162. package/dist/shared/system-directive.d.ts +5 -6
  163. package/dist/tools/call-omo-agent/background-executor.d.ts +1 -2
  164. package/dist/tools/call-omo-agent/constants.d.ts +2 -2
  165. package/dist/tools/call-omo-agent/sync-executor.d.ts +3 -11
  166. package/dist/tools/call-omo-agent/tools.d.ts +2 -2
  167. package/dist/tools/call-omo-agent/types.d.ts +13 -0
  168. package/dist/tools/delegate-task/constants.d.ts +1 -1
  169. package/dist/tools/delegate-task/model-selection.d.ts +0 -1
  170. package/dist/tools/delegate-task/model-string-parser.d.ts +3 -1
  171. package/dist/tools/delegate-task/parent-context-resolver.d.ts +22 -0
  172. package/dist/tools/lsp/constants.d.ts +0 -1
  173. package/dist/tools/lsp/lsp-client-transport.d.ts +2 -4
  174. package/dist/tools/lsp/lsp-client-wrapper.d.ts +1 -2
  175. package/generated/skills-bundles/catalog.json +1 -1
  176. package/generated/skills-bundles/full/skills/data-analysis/experiment-monitoring/auto-claude__monitor-experiment/SKILL.md +56 -55
  177. package/generated/skills-bundles/full/skills/data-analysis/experiment-ops/auto-claude__run-experiment/SKILL.md +105 -104
  178. package/generated/skills-bundles/full/skills/data-analysis/optimization/auto-claude__dse-loop/SKILL.md +272 -271
  179. package/generated/skills-bundles/full/skills/data-analysis/statistics/auto-claude__analyze-results/SKILL.md +40 -39
  180. package/generated/skills-bundles/full/skills/data-analysis/visualization/auto-claude__paper-figure/SKILL.md +274 -273
  181. package/generated/skills-bundles/full/skills/productivity/visual-design/auto-claude__pixel-art/SKILL.md +131 -130
  182. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-compile/SKILL.md +245 -244
  183. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-plan/SKILL.md +247 -246
  184. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-write/SKILL.md +303 -302
  185. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-write/templates/iclr2026.tex +84 -84
  186. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-write/templates/icml2025.tex +87 -87
  187. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-write/templates/math_commands.tex +48 -48
  188. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-write/templates/neurips2025.tex +80 -80
  189. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-writing/SKILL.md +31 -31
  190. package/generated/skills-bundles/full/skills/research/literature-and-web-search/auto-claude__arxiv/SKILL.md +126 -125
  191. package/generated/skills-bundles/full/skills/research/literature-and-web-search/auto-claude__novelty-check/SKILL.md +80 -79
  192. package/generated/skills-bundles/full/skills/research/literature-and-web-search/auto-claude__research-lit/SKILL.md +187 -186
  193. package/generated/skills-bundles/full/skills/research/research-ideation/auto-claude__idea-creator/SKILL.md +11 -11
  194. package/generated/skills-bundles/full/skills/research/research-ideation/auto-claude__idea-discovery/SKILL.md +18 -18
  195. package/generated/skills-bundles/full/skills/research/research-ideation/auto-claude__idea-discovery-robot/SKILL.md +20 -20
  196. package/generated/skills-bundles/full/skills/research/research-ideation/auto-claude__research-pipeline/SKILL.md +15 -15
  197. package/generated/skills-bundles/full/skills/research/theory-writing/auto-claude__proof-writer/SKILL.md +217 -216
  198. package/generated/skills-bundles/paper/skills/data-analysis/experiment-monitoring/auto-claude__monitor-experiment/SKILL.md +56 -55
  199. package/generated/skills-bundles/paper/skills/data-analysis/experiment-ops/auto-claude__run-experiment/SKILL.md +105 -104
  200. package/generated/skills-bundles/paper/skills/data-analysis/optimization/auto-claude__dse-loop/SKILL.md +272 -271
  201. package/generated/skills-bundles/paper/skills/data-analysis/statistics/auto-claude__analyze-results/SKILL.md +40 -39
  202. package/generated/skills-bundles/paper/skills/data-analysis/visualization/auto-claude__paper-figure/SKILL.md +274 -273
  203. package/generated/skills-bundles/paper/skills/productivity/visual-design/auto-claude__pixel-art/SKILL.md +131 -130
  204. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-compile/SKILL.md +245 -244
  205. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-plan/SKILL.md +247 -246
  206. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-write/SKILL.md +303 -302
  207. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-write/templates/iclr2026.tex +84 -84
  208. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-write/templates/icml2025.tex +87 -87
  209. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-write/templates/math_commands.tex +48 -48
  210. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-write/templates/neurips2025.tex +80 -80
  211. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-writing/SKILL.md +31 -31
  212. package/generated/skills-bundles/paper/skills/research/literature-and-web-search/auto-claude__arxiv/SKILL.md +126 -125
  213. package/generated/skills-bundles/paper/skills/research/literature-and-web-search/auto-claude__novelty-check/SKILL.md +80 -79
  214. package/generated/skills-bundles/paper/skills/research/literature-and-web-search/auto-claude__research-lit/SKILL.md +187 -186
  215. package/generated/skills-bundles/paper/skills/research/research-ideation/auto-claude__idea-creator/SKILL.md +11 -11
  216. package/generated/skills-bundles/paper/skills/research/research-ideation/auto-claude__idea-discovery/SKILL.md +18 -18
  217. package/generated/skills-bundles/paper/skills/research/research-ideation/auto-claude__idea-discovery-robot/SKILL.md +20 -20
  218. package/generated/skills-bundles/paper/skills/research/research-ideation/auto-claude__research-pipeline/SKILL.md +15 -15
  219. package/generated/skills-bundles/paper/skills/research/theory-writing/auto-claude__proof-writer/SKILL.md +217 -216
  220. package/package.json +36 -32
  221. package/dist/cli/openai-only-model-catalog.d.ts +0 -3
  222. package/dist/cli/run/model-resolver.d.ts +0 -4
  223. package/dist/config/schema/git-env-prefix.d.ts +0 -5
  224. package/dist/features/background-agent/remove-task-toast-tracking.d.ts +0 -1
  225. package/dist/features/background-agent/subagent-spawn-limits.d.ts +0 -23
  226. package/dist/features/claude-code-agent-loader/claude-model-mapper.d.ts +0 -4
  227. package/dist/features/tmux-subagent/pane-state-parser.d.ts +0 -8
  228. package/dist/features/tmux-subagent/tracked-session-state.d.ts +0 -8
  229. package/dist/hooks/atlas/boulder-session-lineage.d.ts +0 -6
  230. package/dist/hooks/atlas/final-wave-approval-gate.d.ts +0 -4
  231. package/dist/hooks/atlas/idle-event.d.ts +0 -8
  232. package/dist/hooks/atlas/resolve-active-boulder-session.d.ts +0 -11
  233. package/dist/hooks/auto-slash-command/processed-command-store.d.ts +0 -7
  234. package/dist/hooks/auto-update-checker/checker/sync-package-json.d.ts +0 -7
  235. package/dist/hooks/compaction-context-injector/compaction-context-prompt.d.ts +0 -1
  236. package/dist/hooks/compaction-context-injector/constants.d.ts +0 -5
  237. package/dist/hooks/compaction-context-injector/recovery-prompt-config.d.ts +0 -6
  238. package/dist/hooks/compaction-context-injector/recovery.d.ts +0 -6
  239. package/dist/hooks/compaction-context-injector/session-id.d.ts +0 -2
  240. package/dist/hooks/compaction-context-injector/session-prompt-config-resolver.d.ts +0 -16
  241. package/dist/hooks/compaction-context-injector/tail-monitor.d.ts +0 -13
  242. package/dist/hooks/compaction-context-injector/types.d.ts +0 -43
  243. package/dist/hooks/compaction-context-injector/validated-model.d.ts +0 -13
  244. package/dist/hooks/delegate-task-english-directive/hook.d.ts +0 -14
  245. package/dist/hooks/delegate-task-english-directive/index.d.ts +0 -1
  246. package/dist/hooks/gpt-permission-continuation/assistant-message.d.ts +0 -23
  247. package/dist/hooks/gpt-permission-continuation/constants.d.ts +0 -4
  248. package/dist/hooks/gpt-permission-continuation/detector.d.ts +0 -1
  249. package/dist/hooks/gpt-permission-continuation/handler.d.ts +0 -12
  250. package/dist/hooks/gpt-permission-continuation/index.d.ts +0 -13
  251. package/dist/hooks/gpt-permission-continuation/session-state.d.ts +0 -15
  252. package/dist/hooks/ralph-loop/pending-verification-handler.d.ts +0 -16
  253. package/dist/hooks/runtime-fallback/fallback-bootstrap-model.d.ts +0 -10
  254. package/dist/hooks/runtime-fallback/fallback-retry-dispatcher.d.ts +0 -11
  255. package/dist/hooks/runtime-fallback/last-user-retry-parts.d.ts +0 -4
  256. package/dist/hooks/runtime-fallback/retry-model-payload.d.ts +0 -7
  257. package/dist/hooks/runtime-fallback/session-messages.d.ts +0 -9
  258. package/dist/hooks/runtime-fallback/session-status-handler.d.ts +0 -3
  259. package/dist/hooks/runtime-fallback/visible-assistant-response.d.ts +0 -3
  260. package/dist/hooks/session-notification-content.d.ts +0 -30
  261. package/dist/plugin/normalize-tool-arg-schemas.d.ts +0 -2
  262. package/dist/plugin/ultrawork-variant-availability.d.ts +0 -6
  263. package/dist/shared/compaction-agent-config-checkpoint.d.ts +0 -11
  264. package/dist/shared/context-limit-resolver.d.ts +0 -5
  265. package/dist/shared/fallback-chain-from-models.d.ts +0 -3
  266. package/dist/shared/question-denied-session-permission.d.ts +0 -6
  267. package/dist/shared/retry-status-utils.d.ts +0 -2
  268. package/dist/shared/vision-capable-models-cache.d.ts +0 -4
  269. package/dist/tools/delegate-task/cancel-unstable-agent-task.d.ts +0 -2
  270. package/dist/tools/look-at/multimodal-fallback-chain.d.ts +0 -4
  271. package/dist/tools/lsp/directory-diagnostics.d.ts +0 -1
  272. package/dist/tools/lsp/server-path-bases.d.ts +0 -1
@@ -1,10 +1,9 @@
1
1
  import type { HookName, OhMyOpenCodeConfig } from "../../config";
2
2
  import type { BackgroundManager } from "../../features/background-agent";
3
3
  import type { PluginContext } from "../types";
4
- import { createGptPermissionContinuationHook, createTodoContinuationEnforcer, createBackgroundNotificationHook, createStopContinuationGuardHook, createCompactionContextInjector, createCompactionTodoPreserverHook, createAtlasHook } from "../../hooks";
4
+ import { createTodoContinuationEnforcer, createBackgroundNotificationHook, createStopContinuationGuardHook, createCompactionContextInjector, createCompactionTodoPreserverHook, createAtlasHook } from "../../hooks";
5
5
  import { createUnstableAgentBabysitter } from "../unstable-agent-babysitter";
6
6
  export type ContinuationHooks = {
7
- gptPermissionContinuation: ReturnType<typeof createGptPermissionContinuationHook> | null;
8
7
  stopContinuationGuard: ReturnType<typeof createStopContinuationGuardHook> | null;
9
8
  compactionContextInjector: ReturnType<typeof createCompactionContextInjector> | null;
10
9
  compactionTodoPreserver: ReturnType<typeof createCompactionTodoPreserverHook> | null;
@@ -46,5 +46,4 @@ export declare function createCoreHooks(args: {
46
46
  taskResumeInfo: ReturnType<typeof import("../../hooks").createTaskResumeInfoHook> | null;
47
47
  anthropicEffort: ReturnType<typeof import("../../hooks/anthropic-effort").createAnthropicEffortHook> | null;
48
48
  runtimeFallback: ReturnType<typeof import("../../hooks").createRuntimeFallbackHook> | null;
49
- delegateTaskEnglishDirective: ReturnType<typeof import("../../hooks").createDelegateTaskEnglishDirectiveHook> | null;
50
49
  };
@@ -1,7 +1,7 @@
1
1
  import type { OhMyOpenCodeConfig, HookName } from "../../config";
2
2
  import type { ModelCacheState } from "../../plugin-state";
3
3
  import type { PluginContext } from "../types";
4
- import { createContextWindowMonitorHook, createSessionRecoveryHook, createSessionNotification, createThinkModeHook, createModelFallbackHook, createAnthropicContextWindowLimitRecoveryHook, createAutoUpdateCheckerHook, createAgentUsageReminderHook, createNonInteractiveEnvHook, createInteractiveBashSessionHook, createRalphLoopHook, createEditErrorRecoveryHook, createDelegateTaskRetryHook, createDelegateTaskEnglishDirectiveHook, createTaskResumeInfoHook, createStartWorkHook, createPrometheusMdOnlyHook, createSisyphusJuniorNotepadHook, createNoSisyphusGptHook, createNoHephaestusNonGptHook, createQuestionLabelTruncatorHook, createPreemptiveCompactionHook, createRuntimeFallbackHook } from "../../hooks";
4
+ import { createContextWindowMonitorHook, createSessionRecoveryHook, createSessionNotification, createThinkModeHook, createModelFallbackHook, createAnthropicContextWindowLimitRecoveryHook, createAutoUpdateCheckerHook, createAgentUsageReminderHook, createNonInteractiveEnvHook, createInteractiveBashSessionHook, createRalphLoopHook, createEditErrorRecoveryHook, createDelegateTaskRetryHook, createTaskResumeInfoHook, createStartWorkHook, createPrometheusMdOnlyHook, createSisyphusJuniorNotepadHook, createNoSisyphusGptHook, createNoHephaestusNonGptHook, createQuestionLabelTruncatorHook, createPreemptiveCompactionHook, createRuntimeFallbackHook } from "../../hooks";
5
5
  import { createAnthropicEffortHook } from "../../hooks/anthropic-effort";
6
6
  export type SessionHooks = {
7
7
  contextWindowMonitor: ReturnType<typeof createContextWindowMonitorHook> | null;
@@ -27,7 +27,6 @@ export type SessionHooks = {
27
27
  taskResumeInfo: ReturnType<typeof createTaskResumeInfoHook> | null;
28
28
  anthropicEffort: ReturnType<typeof createAnthropicEffortHook> | null;
29
29
  runtimeFallback: ReturnType<typeof createRuntimeFallbackHook> | null;
30
- delegateTaskEnglishDirective: ReturnType<typeof createDelegateTaskEnglishDirectiveHook> | null;
31
30
  };
32
31
  export declare function createSessionHooks(args: {
33
32
  ctx: PluginContext;
@@ -5,6 +5,10 @@ export type UltraworkOverrideResult = {
5
5
  modelID?: string;
6
6
  variant?: string;
7
7
  };
8
+ /**
9
+ * Resolves the ultrawork model override config for the given agent and prompt text.
10
+ * Returns null if no override should be applied.
11
+ */
8
12
  export declare function resolveUltraworkOverride(pluginConfig: OhMyOpenCodeConfig, inputAgentName: string | undefined, output: {
9
13
  message: Record<string, unknown>;
10
14
  parts: Array<{
@@ -13,6 +17,12 @@ export declare function resolveUltraworkOverride(pluginConfig: OhMyOpenCodeConfi
13
17
  [key: string]: unknown;
14
18
  }>;
15
19
  }, sessionID?: string): UltraworkOverrideResult | null;
20
+ /**
21
+ * Applies ultrawork model override directly on the outgoing message.
22
+ *
23
+ * This keeps the UI model label and the actual request model consistent,
24
+ * avoiding deferred DB writes that can create cross-window state drift.
25
+ */
16
26
  export declare function applyUltraworkModelOverrideOnMessage(pluginConfig: OhMyOpenCodeConfig, inputAgentName: string | undefined, output: {
17
27
  message: Record<string, unknown>;
18
28
  parts: Array<{
@@ -20,4 +30,4 @@ export declare function applyUltraworkModelOverrideOnMessage(pluginConfig: OhMyO
20
30
  text?: string;
21
31
  [key: string]: unknown;
22
32
  }>;
23
- }, tui: unknown, sessionID?: string, manualModelChangeDetectedOrClient?: unknown, client?: unknown, allowAutomaticModelOverride?: boolean): void | Promise<void>;
33
+ }, tui: unknown, sessionID?: string, manualModelChangeDetected?: boolean, internalInitiatedPromptDetected?: boolean, sessionModelLocked?: boolean): void;
@@ -1,10 +1,12 @@
1
- export type PluginDispose = () => Promise<void>;
2
- export declare function createPluginDispose(args: {
3
- backgroundManager: {
4
- shutdown: () => void | Promise<void>;
5
- };
6
- skillMcpManager: {
7
- disconnectAll: () => Promise<void>;
8
- };
9
- disposeHooks: () => void;
10
- }): PluginDispose;
1
+ import type { BackgroundManager } from "./features/background-agent";
2
+ import type { SkillMcpManager } from "./features/skill-mcp-manager";
3
+ import { lspManager } from "./tools";
4
+ type DisposeHook = () => void | Promise<void>;
5
+ type CreatePluginDisposeArgs = {
6
+ backgroundManager: BackgroundManager;
7
+ skillMcpManager: SkillMcpManager;
8
+ lspManager: Pick<typeof lspManager, "stopAll">;
9
+ disposeHooks?: DisposeHook[];
10
+ };
11
+ export declare function createPluginDispose(args: CreatePluginDisposeArgs): () => Promise<void>;
12
+ export {};
@@ -1,6 +1,5 @@
1
1
  import type { OhMyOpenCodeConfig } from "../config";
2
2
  import type { PluginComponents } from "./plugin-components-loader";
3
- export declare function enforceStrictUserModelPriorityOnAgents(agents: Record<string, unknown>): Record<string, unknown>;
4
3
  export declare function applyAgentConfig(params: {
5
4
  config: Record<string, unknown>;
6
5
  pluginConfig: OhMyOpenCodeConfig;
@@ -18,6 +18,6 @@ export declare function buildPrometheusAgentConfig(params: {
18
18
  configAgentPlan: Record<string, unknown> | undefined;
19
19
  pluginPrometheusOverride: PrometheusOverride | undefined;
20
20
  userCategories: Record<string, CategoryConfig> | undefined;
21
- currentModel: string | undefined;
21
+ configuredSystemModel: string | undefined;
22
22
  }): Promise<Record<string, unknown>>;
23
23
  export {};
@@ -1,10 +1,5 @@
1
- export type VisionCapableModel = {
2
- providerID: string;
3
- modelID: string;
4
- };
5
1
  export interface ModelCacheState {
6
2
  modelContextLimitsCache: Map<string, number>;
7
- visionCapableModelsCache?: Map<string, VisionCapableModel>;
8
3
  anthropicContext1MEnabled: boolean;
9
4
  }
10
5
  export declare function createModelCacheState(): ModelCacheState;
@@ -13,6 +13,7 @@ export declare const AGENT_DISPLAY_NAMES: Record<string, string>;
13
13
  * Returns original key if not found.
14
14
  */
15
15
  export declare function getAgentDisplayName(configKey: string): string;
16
+ export declare function getAgentListDisplayName(configKey: string): string;
16
17
  /**
17
18
  * Resolve an agent name (display name or config key) to its lowercase config key.
18
19
  * "Atlas (Plan Executor)" → "atlas", "atlas" → "atlas", "unknown" → "unknown"
@@ -19,7 +19,7 @@ export declare function getOpenCodeStorageDir(): string;
19
19
  */
20
20
  export declare function getCacheDir(): string;
21
21
  /**
22
- * Returns the openagent-labforge cache directory.
22
+ * Returns the plugin cache directory.
23
23
  * All platforms: ~/.cache/openagent-labforge
24
24
  */
25
25
  export declare function getOmoOpenCodeCacheDir(): string;
@@ -1,5 +1,7 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
- import { type ContextLimitModelCacheState } from "./context-limit-resolver";
2
+ type ModelCacheStateLike = {
3
+ anthropicContext1MEnabled: boolean;
4
+ };
3
5
  export interface TruncationResult {
4
6
  result: string;
5
7
  truncated: boolean;
@@ -11,13 +13,13 @@ export interface TruncationOptions {
11
13
  contextWindowLimit?: number;
12
14
  }
13
15
  export declare function truncateToTokenLimit(output: string, maxTokens: number, preserveHeaderLines?: number): TruncationResult;
14
- export declare function getContextWindowUsage(ctx: PluginInput, sessionID: string, modelCacheState?: ContextLimitModelCacheState): Promise<{
16
+ export declare function getContextWindowUsage(ctx: PluginInput, sessionID: string, modelCacheState?: ModelCacheStateLike): Promise<{
15
17
  usedTokens: number;
16
18
  remainingTokens: number;
17
19
  usagePercentage: number;
18
20
  } | null>;
19
- export declare function dynamicTruncate(ctx: PluginInput, sessionID: string, output: string, options?: TruncationOptions, modelCacheState?: ContextLimitModelCacheState): Promise<TruncationResult>;
20
- export declare function createDynamicTruncator(ctx: PluginInput, modelCacheState?: ContextLimitModelCacheState): {
21
+ export declare function dynamicTruncate(ctx: PluginInput, sessionID: string, output: string, options?: TruncationOptions, modelCacheState?: ModelCacheStateLike): Promise<TruncationResult>;
22
+ export declare function createDynamicTruncator(ctx: PluginInput, modelCacheState?: ModelCacheStateLike): {
21
23
  truncate: (sessionID: string, output: string, options?: TruncationOptions) => Promise<TruncationResult>;
22
24
  getUsage: (sessionID: string) => Promise<{
23
25
  usedTokens: number;
@@ -26,3 +28,4 @@ export declare function createDynamicTruncator(ctx: PluginInput, modelCacheState
26
28
  } | null>;
27
29
  truncateSync: (output: string, maxTokens: number, preserveHeaderLines?: number) => TruncationResult;
28
30
  };
31
+ export {};
@@ -7,12 +7,19 @@ export interface ExternalNotifierResult {
7
7
  pluginName: string | null;
8
8
  allPlugins: string[];
9
9
  }
10
+ export interface ExternalSkillPluginResult {
11
+ detected: boolean;
12
+ pluginName: string | null;
13
+ allPlugins: string[];
14
+ }
10
15
  /**
11
16
  * Detect if any external notification plugin is configured.
12
17
  * Returns information about detected plugins for logging/warning.
13
18
  */
14
19
  export declare function detectExternalNotificationPlugin(directory: string): ExternalNotifierResult;
20
+ export declare function detectExternalSkillPlugin(directory: string): ExternalSkillPluginResult;
15
21
  /**
16
22
  * Generate a warning message for users with conflicting notification plugins.
17
23
  */
18
24
  export declare function getNotificationConflictWarning(pluginName: string): string;
25
+ export declare function getSkillPluginConflictWarning(pluginName: string): string;
@@ -7,6 +7,7 @@ export * from "./snake-case";
7
7
  export * from "./tool-name";
8
8
  export * from "./pattern-matcher";
9
9
  export * from "./hook-disabled";
10
+ export * from "./mcp-local-command-normalizer";
10
11
  export * from "./deep-merge";
11
12
  export * from "./file-utils";
12
13
  export * from "./dynamic-truncator";
@@ -37,7 +38,6 @@ export type { ModelResolutionRequest, ModelResolutionProvenance, ModelResolution
37
38
  export * from "./model-availability";
38
39
  export * from "./fallback-model-availability";
39
40
  export * from "./connected-providers-cache";
40
- export * from "./context-limit-resolver";
41
41
  export * from "./session-utils";
42
42
  export * from "./tmux";
43
43
  export * from "./model-suggestion-retry";
@@ -49,11 +49,13 @@ export * from "./safe-create-hook";
49
49
  export * from "./truncate-description";
50
50
  export * from "./opencode-storage-paths";
51
51
  export * from "./opencode-message-dir";
52
- export * from "./opencode-command-dirs";
53
52
  export * from "./normalize-sdk-response";
54
53
  export * from "./session-directory-resolver";
55
54
  export * from "./prompt-tools";
56
55
  export * from "./internal-initiator-marker";
57
56
  export * from "./plugin-command-discovery";
58
- export { SessionCategoryRegistry } from "./session-category-registry";
57
+ export * from "./opencode-command-dirs";
58
+ export * from "./project-discovery-dirs";
59
59
  export * from "./plugin-identity";
60
+ export * from "./migrate-legacy-config-file";
61
+ export { SessionCategoryRegistry } from "./session-category-registry";
@@ -13,3 +13,7 @@ export declare function detectConfigFile(basePath: string): {
13
13
  format: "json" | "jsonc" | "none";
14
14
  path: string;
15
15
  };
16
+ export declare function detectPluginConfigFile(dir: string): {
17
+ format: "json" | "jsonc" | "none";
18
+ path: string;
19
+ };
@@ -0,0 +1 @@
1
+ export declare function normalizeLocalMcpCommand(command: string[], platform?: NodeJS.Platform): string[];
@@ -0,0 +1 @@
1
+ export declare function migrateLegacyConfigFile(legacyPath: string): boolean;
@@ -26,7 +26,6 @@ export declare function hasMoreFallbacks(fallbackChain: FallbackEntry[], attempt
26
26
  * Selects the best provider for a fallback entry.
27
27
  * Priority:
28
28
  * 1) First connected provider in the entry's provider preference order
29
- * 2) Preferred provider when connected (and entry providers are unavailable)
30
- * 3) First provider listed in the fallback entry
29
+ * 2) First provider listed in the fallback entry (when cache is missing)
31
30
  */
32
31
  export declare function selectFallbackProvider(providers: string[], preferredProviderID?: string): string;
@@ -1,3 +1,2 @@
1
1
  import type { OpenCodeConfigDirOptions } from "./opencode-config-dir-types";
2
2
  export declare function getOpenCodeCommandDirs(options: OpenCodeConfigDirOptions): string[];
3
- export declare function getOpenCodeSkillDirs(options: OpenCodeConfigDirOptions): string[];
@@ -1,7 +1,6 @@
1
1
  export declare const PLUGIN_NAME = "openagent-labforge";
2
- export declare const LEGACY_PLUGIN_NAME = "openagent-labforge";
2
+ export declare const LEGACY_PLUGIN_NAME = "oh-my-opencode";
3
3
  export declare const CONFIG_BASENAME = "openagent-labforge";
4
- export declare const LEGACY_CONFIG_BASENAME = "openagent-labforge";
4
+ export declare const LEGACY_CONFIG_BASENAME = "oh-my-opencode";
5
5
  export declare const LOG_FILENAME = "openagent-labforge.log";
6
6
  export declare const CACHE_DIR_NAME = "openagent-labforge";
7
- export declare const LEGACY_CACHE_DIR_NAME = "openagent-labforge";
@@ -0,0 +1,4 @@
1
+ export declare function findProjectClaudeSkillDirs(startDirectory: string, stopDirectory?: string): string[];
2
+ export declare function findProjectAgentsSkillDirs(startDirectory: string, stopDirectory?: string): string[];
3
+ export declare function findProjectOpencodeSkillDirs(startDirectory: string, stopDirectory?: string): string[];
4
+ export declare function findProjectOpencodeCommandDirs(startDirectory: string, stopDirectory?: string): string[];
@@ -12,6 +12,5 @@ export declare function setSessionForcedModel(sessionID: string, model: SessionM
12
12
  export declare function getSessionForcedModel(sessionID: string): SessionModel | undefined;
13
13
  export declare function clearSessionForcedModel(sessionID: string): void;
14
14
  export declare function setSessionAutoModelRouting(sessionID: string, enabled: boolean): void;
15
- export declare function getSessionAutoModelRouting(sessionID: string): boolean | undefined;
16
- export declare function isSessionAutoModelRoutingEnabled(sessionID: string): boolean;
17
15
  export declare function clearSessionAutoModelRouting(sessionID: string): void;
16
+ export declare function isSessionAutoModelRoutingEnabled(sessionID: string): boolean;
@@ -1,18 +1,18 @@
1
1
  /**
2
- * Unified system directive prefix for openagent-labforge internal messages.
2
+ * Unified system directive prefix for oh-my-opencode internal messages.
3
3
  * All system-generated messages should use this prefix for consistent filtering.
4
4
  *
5
- * Format: [SYSTEM DIRECTIVE: openagent-labforge - {TYPE}]
5
+ * Format: [SYSTEM DIRECTIVE: OH-MY-OPENCODE - {TYPE}]
6
6
  */
7
- export declare const SYSTEM_DIRECTIVE_PREFIX = "[SYSTEM DIRECTIVE: openagent-labforge";
7
+ export declare const SYSTEM_DIRECTIVE_PREFIX = "[SYSTEM DIRECTIVE: OH-MY-OPENCODE";
8
8
  /**
9
9
  * Creates a system directive header with the given type.
10
10
  * @param type - The directive type (e.g., "TODO CONTINUATION", "RALPH LOOP")
11
- * @returns Formatted directive string like "[SYSTEM DIRECTIVE: openagent-labforge - TODO CONTINUATION]"
11
+ * @returns Formatted directive string like "[SYSTEM DIRECTIVE: OH-MY-OPENCODE - TODO CONTINUATION]"
12
12
  */
13
13
  export declare function createSystemDirective(type: string): string;
14
14
  /**
15
- * Checks if a message starts with the openagent-labforge system directive prefix.
15
+ * Checks if a message starts with the oh-my-opencode system directive prefix.
16
16
  * Used by keyword-detector and other hooks to skip system-generated messages.
17
17
  * @param text - The message text to check
18
18
  * @returns true if the message is a system directive
@@ -34,7 +34,6 @@ export declare function hasSystemReminder(text: string): boolean;
34
34
  export declare function removeSystemReminders(text: string): string;
35
35
  export declare const SystemDirectiveTypes: {
36
36
  readonly TODO_CONTINUATION: "TODO CONTINUATION";
37
- readonly TOOL_INTENT_RECOVERY: "TOOL INTENT RECOVERY";
38
37
  readonly RALPH_LOOP: "RALPH LOOP";
39
38
  readonly BOULDER_CONTINUATION: "BOULDER CONTINUATION";
40
39
  readonly DELEGATION_REQUIRED: "DELEGATION REQUIRED";
@@ -1,7 +1,6 @@
1
1
  import type { CallOmoAgentArgs } from "./types";
2
2
  import type { BackgroundManager } from "../../features/background-agent";
3
3
  import type { PluginInput } from "@opencode-ai/plugin";
4
- import type { FallbackEntry } from "../../shared/model-requirements";
5
4
  export declare function executeBackground(args: CallOmoAgentArgs, toolContext: {
6
5
  sessionID: string;
7
6
  messageID: string;
@@ -11,4 +10,4 @@ export declare function executeBackground(args: CallOmoAgentArgs, toolContext: {
11
10
  title?: string;
12
11
  metadata?: Record<string, unknown>;
13
12
  }) => void;
14
- }, manager: BackgroundManager, client: PluginInput["client"], fallbackChain?: FallbackEntry[]): Promise<string>;
13
+ }, manager: BackgroundManager, client: PluginInput["client"]): Promise<string>;
@@ -1,2 +1,2 @@
1
- export declare const ALLOWED_AGENTS: readonly ["explore", "librarian", "oracle", "hephaestus", "metis", "momus", "multimodal-looker"];
2
- export declare const CALL_OMO_AGENT_DESCRIPTION = "Spawn explore/librarian agent. run_in_background REQUIRED (true=async with task_id, false=sync).\n\nAvailable: {agents}\n\nPass `session_id=<id>` to continue previous agent with full context. Nested subagent depth is tracked automatically and blocked past the configured limit. Prompts MUST be in English. Use `background_output` for async results.";
1
+ export declare const ALLOWED_AGENTS: readonly ["explore", "librarian", "oracle", "hephaestus", "article-writer", "scientific-writer", "bio-orchestrator", "github-scout", "tech-scout", "metis", "momus", "multimodal-looker", "bio-methodologist", "wet-lab-designer", "bio-pipeline-operator", "paper-evidence-synthesizer"];
2
+ export declare const CALL_OMO_AGENT_DESCRIPTION = "Compatibility wrapper for specialized agents. run_in_background REQUIRED (true=async with task_id, false=sync).\n\nAvailable: {agents}\n\nPrefer `task(subagent_type=...)` for first-class child-session UI, inspectable task cards, and normal subagent delegation.\n\nPass `session_id=<id>` to continue previous agent with full context. Prompts MUST be in English. Use `background_output` for async results.";
@@ -1,20 +1,12 @@
1
1
  import type { CallOmoAgentArgs } from "./types";
2
2
  import type { PluginInput } from "@opencode-ai/plugin";
3
- import { clearSessionFallbackChain, setSessionFallbackChain } from "../../hooks/model-fallback/hook";
4
- import type { FallbackEntry } from "../../shared/model-requirements";
3
+ import { createOrGetSession } from "./session-creator";
5
4
  import { waitForCompletion } from "./completion-poller";
6
5
  import { processMessages } from "./message-processor";
7
- import { createOrGetSession } from "./session-creator";
8
6
  type ExecuteSyncDeps = {
9
7
  createOrGetSession: typeof createOrGetSession;
10
8
  waitForCompletion: typeof waitForCompletion;
11
9
  processMessages: typeof processMessages;
12
- setSessionFallbackChain: typeof setSessionFallbackChain;
13
- clearSessionFallbackChain: typeof clearSessionFallbackChain;
14
- };
15
- type SpawnReservation = {
16
- commit: () => number;
17
- rollback: () => void;
18
10
  };
19
11
  export declare function executeSync(args: CallOmoAgentArgs, toolContext: {
20
12
  sessionID: string;
@@ -24,6 +16,6 @@ export declare function executeSync(args: CallOmoAgentArgs, toolContext: {
24
16
  metadata?: (input: {
25
17
  title?: string;
26
18
  metadata?: Record<string, unknown>;
27
- }) => void | Promise<void>;
28
- }, ctx: PluginInput, deps?: ExecuteSyncDeps, fallbackChain?: FallbackEntry[], spawnReservation?: SpawnReservation): Promise<string>;
19
+ }) => void;
20
+ }, ctx: PluginInput, deps?: ExecuteSyncDeps): Promise<string>;
29
21
  export {};
@@ -1,4 +1,4 @@
1
1
  import { type PluginInput, type ToolDefinition } from "@opencode-ai/plugin";
2
+ import type { CallOmoAgentToolOptions } from "./types";
2
3
  import type { BackgroundManager } from "../../features/background-agent";
3
- import type { CategoriesConfig, AgentOverrides } from "../../config/schema";
4
- export declare function createCallOmoAgent(ctx: PluginInput, backgroundManager: BackgroundManager, disabledAgents?: string[], agentOverrides?: AgentOverrides, userCategories?: CategoriesConfig): ToolDefinition;
4
+ export declare function createCallOmoAgent(ctx: PluginInput, backgroundManager: BackgroundManager, disabledAgents: string[] | undefined, options: CallOmoAgentToolOptions): ToolDefinition;
@@ -1,5 +1,15 @@
1
1
  import type { ALLOWED_AGENTS } from "./constants";
2
2
  export type AllowedAgentType = (typeof ALLOWED_AGENTS)[number];
3
+ export interface CallOmoAgentToolOptions {
4
+ directory: string;
5
+ agentOverrides?: import("../../config/schema").AgentOverrides;
6
+ onSyncSessionCreated?: (event: {
7
+ sessionID: string;
8
+ parentID: string;
9
+ title: string;
10
+ }) => Promise<void>;
11
+ syncPollTimeoutMs?: number;
12
+ }
3
13
  export interface CallOmoAgentArgs {
4
14
  description: string;
5
15
  prompt: string;
@@ -31,4 +41,7 @@ export type ToolContextWithMetadata = {
31
41
  title?: string;
32
42
  metadata?: Record<string, unknown>;
33
43
  }) => void;
44
+ callID?: string;
45
+ callId?: string;
46
+ call_id?: string;
34
47
  };
@@ -17,7 +17,7 @@ export declare const CATEGORY_DESCRIPTIONS: Record<string, string>;
17
17
  * then summarize user requirements and clarify uncertainties before proceeding.
18
18
  * Also MANDATES dependency graphs, parallel execution analysis, and category+skill recommendations.
19
19
  */
20
- export declare const PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS = "<system>\nBEFORE you begin planning, you MUST first understand the user's request deeply.\n\nMANDATORY CONTEXT GATHERING PROTOCOL:\n1. Launch background agents to gather context:\n - call_omo_agent(description=\"Explore codebase patterns\", subagent_type=\"explore\", run_in_background=true, prompt=\"<search for relevant patterns, files, and implementations in the codebase related to user's request>\")\n - call_omo_agent(description=\"Research documentation\", subagent_type=\"librarian\", run_in_background=true, prompt=\"<search for external documentation, examples, and best practices related to user's request>\")\n\n2. After gathering context, ALWAYS present:\n - **User Request Summary**: Concise restatement of what the user is asking for\n - **Uncertainties**: List of unclear points, ambiguities, or assumptions you're making\n - **Clarifying Questions**: Specific questions to resolve the uncertainties\n\n3. ITERATE until ALL requirements are crystal clear:\n - Do NOT proceed to planning until you have 100% clarity\n - Ask the user to confirm your understanding\n - Resolve every ambiguity before generating the work plan\n\nREMEMBER: Vague requirements lead to failed implementations. Take the time to understand thoroughly.\n</system>\n\n<CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>\n#####################################################################\n# #\n# \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 #\n# \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 #\n# \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 #\n# \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551\u2584\u2584 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 #\n# \u2588\u2588\uFFFD\uFFFD \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D #\n# \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2580\u2580\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D #\n# #\n#####################################################################\n\nYOU MUST INCLUDE THE FOLLOWING SECTIONS IN YOUR PLAN OUTPUT.\nTHIS IS NON-NEGOTIABLE. FAILURE TO INCLUDE THESE SECTIONS = INCOMPLETE PLAN.\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 1: TASK DEPENDENCY GRAPH (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOU MUST ANALYZE AND DOCUMENT TASK DEPENDENCIES.\n\nFor EVERY task in your plan, you MUST specify:\n- Which tasks it DEPENDS ON (blockers)\n- Which tasks DEPEND ON IT (dependents)\n- The REASON for each dependency\n\nExample format:\n```\n## Task Dependency Graph\n\n| Task | Depends On | Reason |\n|------|------------|--------|\n| Task 1 | None | Starting point, no prerequisites |\n| Task 2 | Task 1 | Requires output/artifact from Task 1 |\n| Task 3 | Task 1 | Uses same foundation established in Task 1 |\n| Task 4 | Task 2, Task 3 | Integrates results from both tasks |\n```\n\nWHY THIS MATTERS:\n- Executors need to know execution ORDER\n- Prevents blocked work from starting prematurely\n- Identifies critical path for project timeline\n\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 2: PARALLEL EXECUTION GRAPH (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOU MUST IDENTIFY WHICH TASKS CAN RUN IN PARALLEL.\n\nAnalyze your dependency graph and group tasks into PARALLEL EXECUTION WAVES:\n\nExample format:\n```\n## Parallel Execution Graph\n\nWave 1 (Start immediately):\n\u251C\u2500\u2500 Task 1: [description] (no dependencies)\n\u2514\u2500\u2500 Task 5: [description] (no dependencies)\n\nWave 2 (After Wave 1 completes):\n\u251C\u2500\u2500 Task 2: [description] (depends: Task 1)\n\u251C\u2500\u2500 Task 3: [description] (depends: Task 1)\n\u2514\u2500\u2500 Task 6: [description] (depends: Task 5)\n\nWave 3 (After Wave 2 completes):\n\u2514\u2500\u2500 Task 4: [description] (depends: Task 2, Task 3)\n\nCritical Path: Task 1 \u2192 Task 2 \u2192 Task 4\nEstimated Parallel Speedup: 40% faster than sequential\n```\n\nWHY THIS MATTERS:\n- MASSIVE time savings through parallelization\n- Executors can dispatch multiple agents simultaneously\n- Identifies bottlenecks in the execution plan\n\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 3: CATEGORY + SKILLS RECOMMENDATIONS (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nFOR EVERY TASK, YOU MUST RECOMMEND:\n1. Which CATEGORY to use for delegation\n2. Which SKILLS to load for the delegated agent\n";
20
+ export declare const PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS = "<system>\nBEFORE you begin planning, you MUST first understand the user's request deeply.\n\nMANDATORY CONTEXT GATHERING PROTOCOL:\n1. Launch background agents to gather context:\n - task(description=\"Explore codebase patterns\", subagent_type=\"explore\", load_skills=[], run_in_background=true, prompt=\"<search for relevant patterns, files, and implementations in the codebase related to user's request>\")\n - task(description=\"Research documentation\", subagent_type=\"librarian\", load_skills=[], run_in_background=true, prompt=\"<search for external documentation, examples, and best practices related to user's request>\")\n\n2. After gathering context, ALWAYS present:\n - **User Request Summary**: Concise restatement of what the user is asking for\n - **Uncertainties**: List of unclear points, ambiguities, or assumptions you're making\n - **Clarifying Questions**: Specific questions to resolve the uncertainties\n\n3. ITERATE until ALL requirements are crystal clear:\n - Do NOT proceed to planning until you have 100% clarity\n - Ask the user to confirm your understanding\n - Resolve every ambiguity before generating the work plan\n\nREMEMBER: Vague requirements lead to failed implementations. Take the time to understand thoroughly.\n</system>\n\n<CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>\n#####################################################################\n# #\n# \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 #\n# \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 #\n# \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 #\n# \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551\u2584\u2584 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 #\n# \u2588\u2588\uFFFD\uFFFD \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D #\n# \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2580\u2580\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D #\n# #\n#####################################################################\n\nYOU MUST INCLUDE THE FOLLOWING SECTIONS IN YOUR PLAN OUTPUT.\nTHIS IS NON-NEGOTIABLE. FAILURE TO INCLUDE THESE SECTIONS = INCOMPLETE PLAN.\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 1: TASK DEPENDENCY GRAPH (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOU MUST ANALYZE AND DOCUMENT TASK DEPENDENCIES.\n\nFor EVERY task in your plan, you MUST specify:\n- Which tasks it DEPENDS ON (blockers)\n- Which tasks DEPEND ON IT (dependents)\n- The REASON for each dependency\n\nExample format:\n```\n## Task Dependency Graph\n\n| Task | Depends On | Reason |\n|------|------------|--------|\n| Task 1 | None | Starting point, no prerequisites |\n| Task 2 | Task 1 | Requires output/artifact from Task 1 |\n| Task 3 | Task 1 | Uses same foundation established in Task 1 |\n| Task 4 | Task 2, Task 3 | Integrates results from both tasks |\n```\n\nWHY THIS MATTERS:\n- Executors need to know execution ORDER\n- Prevents blocked work from starting prematurely\n- Identifies critical path for project timeline\n\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 2: PARALLEL EXECUTION GRAPH (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOU MUST IDENTIFY WHICH TASKS CAN RUN IN PARALLEL.\n\nAnalyze your dependency graph and group tasks into PARALLEL EXECUTION WAVES:\n\nExample format:\n```\n## Parallel Execution Graph\n\nWave 1 (Start immediately):\n\u251C\u2500\u2500 Task 1: [description] (no dependencies)\n\u2514\u2500\u2500 Task 5: [description] (no dependencies)\n\nWave 2 (After Wave 1 completes):\n\u251C\u2500\u2500 Task 2: [description] (depends: Task 1)\n\u251C\u2500\u2500 Task 3: [description] (depends: Task 1)\n\u2514\u2500\u2500 Task 6: [description] (depends: Task 5)\n\nWave 3 (After Wave 2 completes):\n\u2514\u2500\u2500 Task 4: [description] (depends: Task 2, Task 3)\n\nCritical Path: Task 1 \u2192 Task 2 \u2192 Task 4\nEstimated Parallel Speedup: 40% faster than sequential\n```\n\nWHY THIS MATTERS:\n- MASSIVE time savings through parallelization\n- Executors can dispatch multiple agents simultaneously\n- Identifies bottlenecks in the execution plan\n\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 3: CATEGORY + SKILLS RECOMMENDATIONS (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nFOR EVERY TASK, YOU MUST RECOMMEND:\n1. Which CATEGORY to use for delegation\n2. Which SKILLS to load for the delegated agent\n";
21
21
  export declare const PLAN_AGENT_SYSTEM_PREPEND_STATIC_AFTER_SKILLS = "### REQUIRED OUTPUT FORMAT\n\nFor EACH task, include a recommendation block:\n\n```\n### Task N: [Task Title]\n\n**Delegation Recommendation:**\n- Category: `[category-name]` - [reason for choice]\n- Skills: [`skill-1`, `skill-2`] - [reason each skill is needed]\n\n**Skills Evaluation:**\n- INCLUDED `skill-name`: [reason]\n- OMITTED `other-skill`: [reason domain doesn't overlap]\n```\n\nWHY THIS MATTERS:\n- Category determines the MODEL used for execution\n- Skills inject SPECIALIZED KNOWLEDGE into the executor\n- Missing a relevant skill = suboptimal execution\n- Wrong category = wrong model = poor results\n\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 RESPONSE FORMAT SPECIFICATION (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOUR PLAN OUTPUT MUST FOLLOW THIS EXACT STRUCTURE:\n\n```markdown\n# [Plan Title]\n\n## Context\n[User request summary, interview findings, research results]\n\n## Task Dependency Graph\n[Dependency table - see Section 1]\n\n## Parallel Execution Graph \n[Wave structure - see Section 2]\n\n## Tasks\n\n### Task 1: [Title]\n**Description**: [What to do]\n**Delegation Recommendation**:\n- Category: `[category]` - [reason]\n- Skills: [`skill-1`] - [reason]\n**Skills Evaluation**: [\u2705 included / \u274C omitted with reasons]\n**Depends On**: [Task IDs or \"None\"]\n**Acceptance Criteria**: [Verifiable conditions]\n\n### Task 2: [Title]\n[Same structure...]\n\n## Commit Strategy\n[How to commit changes atomically]\n\n## Success Criteria\n[Final verification steps]\n```\n\n#####################################################################\n# #\n# FAILURE TO INCLUDE THESE SECTIONS = PLAN WILL BE REJECTED #\n# BY MOMUS REVIEW. DO NOT SKIP. DO NOT ABBREVIATE. #\n# #\n#####################################################################\n</CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>\n\n<FINAL_OUTPUT_FOR_CALLER>\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 4: ACTIONABLE TODO LIST FOR CALLER (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOU MUST END YOUR RESPONSE WITH THIS SECTION.\n\n```markdown\n## TODO List (ADD THESE)\n\n> CALLER: Add these TODOs using TodoWrite/TaskCreate and execute by wave.\n\n### Wave 1 (Start Immediately - No Dependencies)\n\n- [ ] **1. [Task Title]**\n - What: [Clear implementation steps]\n - Depends: None\n - Blocks: [Tasks that depend on this]\n - Category: `category-name`\n - Skills: [`skill-1`, `skill-2`]\n - QA: [How to verify completion - specific command or check]\n\n- [ ] **N. [Task Title]**\n - What: [Steps]\n - Depends: None\n - Blocks: [...]\n - Category: `category-name`\n - Skills: [`skill-1`]\n - QA: [Verification]\n\n### Wave 2 (After Wave 1 Completes)\n\n- [ ] **2. [Task Title]**\n - What: [Steps]\n - Depends: 1\n - Blocks: [4]\n - Category: `category-name`\n - Skills: [`skill-1`]\n - QA: [Verification]\n\n[Continue for all waves...]\n\n## Execution Instructions\n\n1. **Wave 1**: Fire these tasks IN PARALLEL (no dependencies)\n ```\n task(category=\"...\", load_skills=[...], run_in_background=false, prompt=\"Task 1: ...\")\n task(category=\"...\", load_skills=[...], run_in_background=false, prompt=\"Task N: ...\")\n ```\n\n2. **Wave 2**: After Wave 1 completes, fire next wave IN PARALLEL\n ```\n task(category=\"...\", load_skills=[...], run_in_background=false, prompt=\"Task 2: ...\")\n ```\n\n3. Continue until all waves complete\n\n4. Final QA: Verify all tasks pass their QA criteria\n```\n\nWHY THIS FORMAT IS MANDATORY:\n- Caller can directly copy TODO items\n- Wave grouping enables parallel execution\n- Each task has clear task parameters\n- QA criteria ensure verifiable completion\n</FINAL_OUTPUT_FOR_CALLER>\n\n";
22
22
  export declare function buildPlanAgentSkillsSection(categories?: AvailableCategory[], skills?: AvailableSkill[]): string;
23
23
  export declare function buildPlanAgentSystemPrepend(categories?: AvailableCategory[], skills?: AvailableSkill[]): string;
@@ -1,7 +1,6 @@
1
1
  import type { FallbackEntry } from "../../shared/model-requirements";
2
2
  export declare function resolveModelForDelegateTask(input: {
3
3
  userModel?: string;
4
- userFallbackModels?: string[];
5
4
  categoryDefaultModel?: string;
6
5
  fallbackChain?: FallbackEntry[];
7
6
  availableModels: Set<string>;
@@ -1,5 +1,7 @@
1
+ /**
2
+ * Parse a model string in "provider/model" format.
3
+ */
1
4
  export declare function parseModelString(model: string): {
2
5
  providerID: string;
3
6
  modelID: string;
4
- variant?: string;
5
7
  } | undefined;
@@ -1,4 +1,26 @@
1
1
  import type { ToolContextWithMetadata } from "./types";
2
2
  import type { OpencodeClient } from "./types";
3
3
  import type { ParentContext } from "./executor-types";
4
+ export declare function resolveInheritedParentModel(options: {
5
+ lockedSessionModel?: {
6
+ providerID?: string;
7
+ modelID?: string;
8
+ variant?: string;
9
+ };
10
+ currentSessionModel?: {
11
+ providerID?: string;
12
+ modelID?: string;
13
+ variant?: string;
14
+ };
15
+ prevMessageModel?: {
16
+ providerID?: string;
17
+ modelID?: string;
18
+ variant?: string;
19
+ };
20
+ autoModelRoutingEnabled: boolean;
21
+ }): {
22
+ providerID: string;
23
+ modelID: string;
24
+ variant?: string;
25
+ } | undefined;
4
26
  export declare function resolveParentContext(ctx: ToolContextWithMetadata, client: OpencodeClient): Promise<ParentContext>;
@@ -1,6 +1,5 @@
1
1
  export declare const DEFAULT_MAX_REFERENCES = 200;
2
2
  export declare const DEFAULT_MAX_SYMBOLS = 200;
3
3
  export declare const DEFAULT_MAX_DIAGNOSTICS = 200;
4
- export declare const DEFAULT_MAX_DIRECTORY_FILES = 50;
5
4
  export { SYMBOL_KIND_MAP, SEVERITY_MAP, EXT_TO_LANG } from "./language-mappings";
6
5
  export { BUILTIN_SERVERS, LSP_INSTALL_HINTS } from "./server-definitions";
@@ -13,10 +13,8 @@ export declare class LSPClientTransport {
13
13
  constructor(root: string, server: ResolvedServer);
14
14
  start(): Promise<void>;
15
15
  protected startStderrReading(): void;
16
- protected sendRequest<T>(method: string): Promise<T>;
17
- protected sendRequest<T>(method: string, params: unknown): Promise<T>;
18
- protected sendNotification(method: string): void;
19
- protected sendNotification(method: string, params: unknown): void;
16
+ protected sendRequest<T>(method: string, params?: unknown): Promise<T>;
17
+ protected sendNotification(method: string, params?: unknown): void;
20
18
  isAlive(): boolean;
21
19
  stop(): Promise<void>;
22
20
  }
@@ -1,8 +1,7 @@
1
1
  import { LSPClient } from "./client";
2
2
  import type { ServerLookupResult } from "./types";
3
- export declare function isDirectoryPath(filePath: string): boolean;
4
- export declare function uriToPath(uri: string): string;
5
3
  export declare function findWorkspaceRoot(filePath: string): string;
4
+ export declare function uriToPath(uri: string): string;
6
5
  export declare function formatServerLookupError(result: Exclude<ServerLookupResult, {
7
6
  status: "found";
8
7
  }>): string;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "labforge-skills-catalog/v1",
3
- "generatedAt": "2026-03-15T16:01:52.088Z",
3
+ "generatedAt": "2026-03-21T18:22:37.599Z",
4
4
  "bundles": {
5
5
  "full": {
6
6
  "skillCount": 65,