oh-my-opencode 5.0.0-beta.30 → 5.0.0-beta.32

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 (278) hide show
  1. package/dist/cli/index.js +178 -37
  2. package/dist/cli-node/index.js +178 -37
  3. package/dist/config/schema/background-task.d.ts +1 -0
  4. package/dist/config/schema/oh-my-opencode-config.d.ts +1 -0
  5. package/dist/features/background-agent/constants.d.ts +0 -7
  6. package/dist/features/background-agent/manager.d.ts +2 -1
  7. package/dist/features/background-agent/parent-wake-dispatched-tracker.d.ts +0 -1
  8. package/dist/features/background-agent/parent-wake-notifier-types.d.ts +1 -1
  9. package/dist/features/background-agent/parent-wake-prompt-dispatch.d.ts +1 -1
  10. package/dist/features/background-agent/parent-wake-session-inspector.d.ts +1 -1
  11. package/dist/features/background-agent/subagent-spawn-limits.d.ts +8 -0
  12. package/dist/features/monitor/manager-internals.d.ts +1 -1
  13. package/dist/features/monitor/output-injector-types.d.ts +1 -1
  14. package/dist/features/task-toast-manager/manager.d.ts +0 -24
  15. package/dist/features/team-mode/tools/messaging-live-delivery-recipient.d.ts +1 -0
  16. package/dist/features/team-mode/tools/messaging-runtime.d.ts +1 -0
  17. package/dist/hooks/anthropic-context-window-limit-recovery/message-storage-directory.d.ts +0 -3
  18. package/dist/hooks/anthropic-context-window-limit-recovery/state.d.ts +1 -0
  19. package/dist/hooks/anthropic-context-window-limit-recovery/storage/empty-messages.d.ts +0 -1
  20. package/dist/hooks/anthropic-context-window-limit-recovery/tool-result-storage.d.ts +11 -0
  21. package/dist/hooks/claude-code-hooks/session-hook-state.d.ts +1 -0
  22. package/dist/hooks/claude-code-hooks/stop.d.ts +2 -0
  23. package/dist/hooks/claude-code-hooks/todo.d.ts +0 -1
  24. package/dist/hooks/claude-code-hooks/transcript.d.ts +2 -0
  25. package/dist/hooks/fsync-skip-warning/index.d.ts +4 -0
  26. package/dist/hooks/hashline-edit-diff-enhancer/hook.d.ts +1 -0
  27. package/dist/hooks/hashline-edit-diff-enhancer/pending-captures.d.ts +13 -0
  28. package/dist/hooks/keyword-detector/hook.d.ts +7 -0
  29. package/dist/hooks/keyword-detector/ultrawork/source-detector.d.ts +0 -1
  30. package/dist/hooks/model-fallback/hook.d.ts +1 -1
  31. package/dist/index.js +681 -273
  32. package/dist/oh-my-opencode.schema.json +5 -0
  33. package/dist/plugin-dispose.d.ts +3 -0
  34. package/dist/shared/agent-tool-restrictions.d.ts +0 -1
  35. package/dist/skills/ultimate-browsing/references/insane-search/README.md +9 -2
  36. package/dist/tools/delegate-task/sync-session-cleanup.d.ts +3 -0
  37. package/dist/tools/delegate-task/sync-session-poller.d.ts +1 -0
  38. package/dist/tools/delegate-task/types.d.ts +1 -0
  39. package/dist/tools/session-manager/directory-filter.d.ts +2 -0
  40. package/dist/tui.js +148 -9
  41. package/package.json +16 -15
  42. package/packages/git-bash-mcp/dist/cli.js +1 -0
  43. package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +47 -19
  44. package/packages/lsp-core/src/lsp/client-diagnostics-pull-timeout.test.ts +64 -0
  45. package/packages/lsp-core/src/lsp/client-wrapper.test.ts +97 -0
  46. package/packages/lsp-core/src/lsp/client-wrapper.ts +21 -6
  47. package/packages/lsp-core/src/lsp/client.ts +6 -3
  48. package/packages/lsp-core/src/lsp/constants.ts +5 -0
  49. package/packages/lsp-core/src/lsp/controlled-clock-test-support.ts +61 -0
  50. package/packages/lsp-core/src/lsp/errors.ts +15 -0
  51. package/packages/lsp-core/src/lsp/fixtures/workspace-edit-server.mjs +10 -3
  52. package/packages/lsp-core/src/lsp/manager-lifecycle.test.ts +262 -0
  53. package/packages/lsp-core/src/lsp/manager.ts +106 -13
  54. package/packages/lsp-core/src/lsp/timer-provider.ts +13 -0
  55. package/packages/lsp-core/src/lsp/transport-request-timeout.test.ts +73 -0
  56. package/packages/lsp-core/src/lsp/transport.ts +7 -2
  57. package/packages/lsp-core/src/lsp/workspace-document-state.test.ts +84 -1
  58. package/packages/lsp-core/src/lsp/workspace-document-state.ts +30 -11
  59. package/packages/lsp-core/src/lsp/workspace-markers.ts +18 -1
  60. package/packages/lsp-core/src/mcp.ts +3 -0
  61. package/packages/lsp-core/src/tools/parameters.test.ts +51 -0
  62. package/packages/lsp-daemon/dist/cli.js +155 -34
  63. package/packages/lsp-daemon/dist/client.js +155 -34
  64. package/packages/lsp-daemon/dist/index.js +155 -34
  65. package/packages/lsp-daemon/dist/proxy.js +3 -0
  66. package/packages/lsp-tools-mcp/dist/cli.js +155 -34
  67. package/packages/lsp-tools-mcp/dist/lsp/manager.js +134 -28
  68. package/packages/lsp-tools-mcp/dist/mcp.js +155 -34
  69. package/packages/lsp-tools-mcp/dist/tools.js +154 -34
  70. package/packages/lsp-tools-mcp/package.json +1 -1
  71. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  72. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  73. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  74. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +17 -2
  75. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +17 -2
  76. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  77. package/packages/omo-codex/plugin/components/codegraph/src/mcp-unavailable.ts +12 -0
  78. package/packages/omo-codex/plugin/components/codegraph/test/serve-unavailable-idle.test.ts +47 -0
  79. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  80. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  81. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  82. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  83. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  84. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  85. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  86. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +152 -34
  87. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  88. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  89. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  90. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  91. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  92. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  93. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  94. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  95. package/packages/omo-codex/plugin/components/ultrawork/AGENTS.md +5 -4
  96. package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +489 -4
  97. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  98. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -2
  99. package/packages/omo-codex/plugin/components/ultrawork/scripts/sync-directive.mjs +30 -14
  100. package/packages/omo-codex/plugin/components/ultrawork/src/directive-content.ts +4 -0
  101. package/packages/omo-codex/plugin/components/ultrawork/src/directive.ts +5 -2
  102. package/packages/omo-codex/plugin/components/ultrawork/test/directive-source.test.ts +14 -8
  103. package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +12 -1
  104. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +2 -2
  105. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  106. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +5 -2
  107. package/packages/omo-codex/plugin/components/ulw-loop/README.md +1 -0
  108. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-continuation.js +9 -0
  109. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.d.ts +14 -0
  110. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.js +10 -1
  111. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-template.d.ts +8 -0
  112. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-template.js +113 -0
  113. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +9 -5
  114. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-commands.js +2 -1
  115. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +1 -1
  116. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +1 -0
  117. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.js +2 -0
  118. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +856 -347
  119. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.d.ts +2 -0
  120. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +27 -6
  121. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.d.ts +13 -0
  122. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.js +14 -0
  123. package/packages/omo-codex/plugin/components/ulw-loop/dist/domain-types.d.ts +17 -9
  124. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.js +17 -2
  125. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-missing-recovery.d.ts +13 -0
  126. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-missing-recovery.js +19 -0
  127. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-aggregate.d.ts +2 -0
  128. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-aggregate.js +53 -0
  129. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-artifacts.d.ts +9 -0
  130. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-artifacts.js +85 -0
  131. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-fields.js +1 -1
  132. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.d.ts +4 -2
  133. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.js +41 -102
  134. package/packages/omo-codex/plugin/components/ulw-loop/dist/review-blockers.js +4 -2
  135. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.js +185 -14
  136. package/packages/omo-codex/plugin/components/ulw-loop/dist/status-next-actions.d.ts +6 -0
  137. package/packages/omo-codex/plugin/components/ulw-loop/dist/status-next-actions.js +33 -0
  138. package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.d.ts +18 -0
  139. package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.js +65 -0
  140. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  141. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  142. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +17 -0
  143. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-continuation.ts +7 -0
  144. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-reconciliation.ts +25 -1
  145. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-template.ts +127 -0
  146. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +10 -12
  147. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +2 -1
  148. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +1 -0
  149. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-subcommands.ts +2 -0
  150. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +34 -5
  151. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-snapshot.ts +23 -0
  152. package/packages/omo-codex/plugin/components/ulw-loop/src/domain-types.ts +19 -9
  153. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-io.ts +18 -3
  154. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-missing-recovery.ts +27 -0
  155. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-aggregate.ts +57 -0
  156. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-artifacts.ts +103 -0
  157. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-fields.ts +1 -1
  158. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate.ts +54 -123
  159. package/packages/omo-codex/plugin/components/ulw-loop/src/review-blockers.ts +4 -2
  160. package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-guard.ts +187 -12
  161. package/packages/omo-codex/plugin/components/ulw-loop/src/status-next-actions.ts +36 -0
  162. package/packages/omo-codex/plugin/components/ulw-loop/src/surface.ts +95 -0
  163. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-final.test.ts +107 -1
  164. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-template.test.ts +92 -0
  165. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-status-next-actions.test.ts +183 -0
  166. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +35 -0
  167. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/quality-gate-builder.ts +7 -3
  168. package/packages/omo-codex/plugin/components/ulw-loop/test/guided-recovery.test.ts +105 -0
  169. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-aggregate.test.ts +101 -0
  170. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-roles.test.ts +46 -2
  171. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-senpi-surface.test.ts +131 -0
  172. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate.test.ts +5 -0
  173. package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard.test.ts +318 -1
  174. package/packages/omo-codex/plugin/components/ulw-loop/test/surface.test.ts +74 -0
  175. package/packages/omo-codex/plugin/components/ulw-loop/test/ultrawork-directive.test.ts +9 -3
  176. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  177. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  178. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  179. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  180. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  181. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  182. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  183. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  184. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  185. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  186. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  187. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  188. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  189. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  190. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  191. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  192. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  193. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  194. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-ulw-execute-continuation.json +1 -1
  195. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  196. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  197. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  198. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  199. package/packages/omo-codex/plugin/package-lock.json +13 -13
  200. package/packages/omo-codex/plugin/package.json +1 -1
  201. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +31 -2
  202. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/README.md +9 -2
  203. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +17 -0
  204. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +11 -1
  205. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +13 -0
  206. package/packages/omo-codex/plugin/test/ultrawork-skill-pointer.test.mjs +5 -2
  207. package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
  208. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/README.md +9 -2
  209. package/dist/features/builtin-skills/index.d.ts +0 -1
  210. package/dist/features/builtin-skills/skill-file-loader.d.ts +0 -1
  211. package/dist/features/builtin-skills/skills/agent-browser-skill.d.ts +0 -1
  212. package/dist/features/builtin-skills/skills/agent-browser-template.d.ts +0 -1
  213. package/dist/features/builtin-skills/skills/debugging.d.ts +0 -1
  214. package/dist/features/builtin-skills/skills/dev-browser.d.ts +0 -1
  215. package/dist/features/builtin-skills/skills/frontend.d.ts +0 -1
  216. package/dist/features/builtin-skills/skills/git-master-sections/commit-atomic-planning.d.ts +0 -1
  217. package/dist/features/builtin-skills/skills/git-master-sections/commit-context-analysis.d.ts +0 -1
  218. package/dist/features/builtin-skills/skills/git-master-sections/commit-execution-verification.d.ts +0 -1
  219. package/dist/features/builtin-skills/skills/git-master-sections/commit-workflow.d.ts +0 -1
  220. package/dist/features/builtin-skills/skills/git-master-sections/history-search-workflow.d.ts +0 -1
  221. package/dist/features/builtin-skills/skills/git-master-sections/overview.d.ts +0 -1
  222. package/dist/features/builtin-skills/skills/git-master-sections/quick-reference.d.ts +0 -1
  223. package/dist/features/builtin-skills/skills/git-master-sections/rebase-workflow.d.ts +0 -1
  224. package/dist/features/builtin-skills/skills/git-master-skill-metadata.d.ts +0 -1
  225. package/dist/features/builtin-skills/skills/git-master.d.ts +0 -1
  226. package/dist/features/builtin-skills/skills/index.d.ts +0 -1
  227. package/dist/features/builtin-skills/skills/init-deep.d.ts +0 -1
  228. package/dist/features/builtin-skills/skills/playwright-cli.d.ts +0 -1
  229. package/dist/features/builtin-skills/skills/playwright-mcp-skill.d.ts +0 -1
  230. package/dist/features/builtin-skills/skills/playwright.d.ts +0 -1
  231. package/dist/features/builtin-skills/skills/remove-ai-slops.d.ts +0 -1
  232. package/dist/features/builtin-skills/skills/review-work.d.ts +0 -1
  233. package/dist/features/builtin-skills/skills/security-research.d.ts +0 -1
  234. package/dist/features/builtin-skills/skills/security-review.d.ts +0 -1
  235. package/dist/features/builtin-skills/skills/team-mode.d.ts +0 -1
  236. package/dist/features/builtin-skills/skills/visual-qa.d.ts +0 -1
  237. package/dist/features/builtin-skills/skills.d.ts +0 -1
  238. package/dist/features/builtin-skills/types.d.ts +0 -1
  239. package/dist/features/claude-code-plugin-loader/agent-loader.d.ts +0 -1
  240. package/dist/features/claude-code-plugin-loader/command-loader.d.ts +0 -1
  241. package/dist/features/claude-code-plugin-loader/discovery-core.d.ts +0 -1
  242. package/dist/features/claude-code-plugin-loader/discovery-paths.d.ts +0 -1
  243. package/dist/features/claude-code-plugin-loader/discovery.d.ts +0 -1
  244. package/dist/features/claude-code-plugin-loader/hook-loader.d.ts +0 -1
  245. package/dist/features/claude-code-plugin-loader/index.d.ts +0 -1
  246. package/dist/features/claude-code-plugin-loader/install-path-resolver.d.ts +0 -1
  247. package/dist/features/claude-code-plugin-loader/installed-plugin-database.d.ts +0 -1
  248. package/dist/features/claude-code-plugin-loader/loaded-plugin.d.ts +0 -1
  249. package/dist/features/claude-code-plugin-loader/loader.d.ts +0 -1
  250. package/dist/features/claude-code-plugin-loader/mcp-server-loader.d.ts +0 -1
  251. package/dist/features/claude-code-plugin-loader/plugin-key.d.ts +0 -1
  252. package/dist/features/claude-code-plugin-loader/plugin-manifest.d.ts +0 -1
  253. package/dist/features/claude-code-plugin-loader/plugin-path-resolver.d.ts +0 -1
  254. package/dist/features/claude-code-plugin-loader/plugin-settings.d.ts +0 -1
  255. package/dist/features/claude-code-plugin-loader/scope-filter.d.ts +0 -1
  256. package/dist/features/claude-code-plugin-loader/skill-loader.d.ts +0 -1
  257. package/dist/features/claude-code-plugin-loader/types.d.ts +0 -1
  258. package/dist/hooks/ralph-loop/completion-promise-detector-test-input.d.ts +0 -11
  259. package/dist/hooks/ralph-loop/loop-session-recovery.d.ts +0 -7
  260. package/dist/shared/prompt-async-gate/message-inspection-error.d.ts +0 -1
  261. package/dist/shared/prompt-async-gate/pending-tool-turn.d.ts +0 -1
  262. package/dist/shared/prompt-async-gate/prompt-message-state.d.ts +0 -1
  263. package/dist/shared/prompt-async-gate/queue.d.ts +0 -1
  264. package/dist/shared/prompt-async-gate/recent-dispatches.d.ts +0 -1
  265. package/dist/shared/prompt-async-gate/reservations.d.ts +0 -1
  266. package/dist/shared/prompt-async-gate/semantic-dedupe.d.ts +0 -1
  267. package/dist/shared/prompt-async-gate/session-idle-dispatch.d.ts +0 -1
  268. package/dist/shared/prompt-async-gate/timing.d.ts +0 -1
  269. package/dist/shared/prompt-async-gate/types.d.ts +0 -1
  270. package/dist/tools/call-omo-agent/message-storage-directory.d.ts +0 -1
  271. package/dist/tools/delegate-task/model-string-parser.d.ts +0 -1
  272. package/packages/lsp-tools-mcp/dist/lsp/cleanup-errors.d.ts +0 -1
  273. package/packages/lsp-tools-mcp/dist/lsp/constants.d.ts +0 -1
  274. package/packages/lsp-tools-mcp/dist/lsp/language-mappings.d.ts +0 -1
  275. package/packages/lsp-tools-mcp/dist/lsp/process-signal-cleanup.d.ts +0 -1
  276. package/packages/lsp-tools-mcp/dist/missing-dependency-result.d.ts +0 -1
  277. package/packages/omo-codex/plugin/components/ultrawork/directive.md +0 -483
  278. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +0 -490
@@ -55,7 +55,7 @@ var package_default;
55
55
  var init_package = __esm(() => {
56
56
  package_default = {
57
57
  name: "oh-my-opencode",
58
- version: "5.0.0-beta.30",
58
+ version: "5.0.0-beta.32",
59
59
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
60
60
  main: "./dist/index.js",
61
61
  types: "dist/index.d.ts",
@@ -168,6 +168,7 @@ var init_package = __esm(() => {
168
168
  "install:codex-dev": "bun run script/build-codex-install.ts && bun run script/install-codex-dev.ts",
169
169
  "build:codex-plugin": "npm --prefix packages/omo-codex/plugin ci && bun run --cwd packages/omo-codex/plugin build",
170
170
  "build:senpi-plugin": "bun run build:lsp-daemon && bun run build:ast-grep-mcp && bun run build:senpi-plugin:stage",
171
+ "build:senpi-plugin:native": "node packages/omo-senpi/plugin/scripts/stage-lsp-daemon-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-ast-grep-mcp-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-agent-toolkit.mjs && node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check && node packages/omo-senpi/plugin/scripts/build-install.mjs",
171
172
  "build:senpi-plugin:stage": "bun run build:materialize-frontend && node packages/omo-senpi/plugin/scripts/stage-lsp-daemon-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-ast-grep-mcp-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-agent-toolkit.mjs && node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check && node packages/omo-senpi/plugin/scripts/build-install.mjs",
172
173
  "build:materialize-frontend": "node packages/omo-codex/plugin/scripts/materialize-shared-upstreams.mjs --strict",
173
174
  "build:shared-skills-assets": "bun run build:materialize-frontend && rm -rf dist/skills && cp -R packages/shared-skills/skills dist/skills",
@@ -236,7 +237,7 @@ var init_package = __esm(() => {
236
237
  zod: "^4.4.3"
237
238
  },
238
239
  devDependencies: {
239
- "@code-yeongyu/senpi": "2026.8.30-3",
240
+ "@code-yeongyu/senpi": "2026.9.2",
240
241
  "@oh-my-opencode/agents-md-core": "workspace:*",
241
242
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
242
243
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -277,18 +278,18 @@ var init_package = __esm(() => {
277
278
  typescript: "^7.0.2"
278
279
  },
279
280
  optionalDependencies: {
280
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.30",
281
- "oh-my-opencode-darwin-x64": "5.0.0-beta.30",
282
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.30",
283
- "oh-my-opencode-linux-arm64": "5.0.0-beta.30",
284
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.30",
285
- "oh-my-opencode-linux-x64": "5.0.0-beta.30",
286
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.30",
287
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.30",
288
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.30",
289
- "oh-my-opencode-windows-arm64": "5.0.0-beta.30",
290
- "oh-my-opencode-windows-x64": "5.0.0-beta.30",
291
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.30"
281
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.32",
282
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.32",
283
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.32",
284
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.32",
285
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.32",
286
+ "oh-my-opencode-linux-x64": "5.0.0-beta.32",
287
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.32",
288
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.32",
289
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.32",
290
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.32",
291
+ "oh-my-opencode-windows-x64": "5.0.0-beta.32",
292
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.32"
292
293
  },
293
294
  overrides: {
294
295
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -306,7 +307,7 @@ var init_package = __esm(() => {
306
307
  "@code-yeongyu/comment-checker"
307
308
  ],
308
309
  patchedDependencies: {
309
- "@code-yeongyu/senpi@2026.8.30-3": "patches/@code-yeongyu%2Fsenpi@2026.8.30-3.patch"
310
+ "@code-yeongyu/senpi@2026.9.2": "patches/@code-yeongyu%2Fsenpi@2026.9.2.patch"
310
311
  }
311
312
  };
312
313
  });
@@ -3098,10 +3099,11 @@ var init_js_yaml = __esm(() => {
3098
3099
  function parseFrontmatter(content, options = {}) {
3099
3100
  if (options.mode === "rule")
3100
3101
  return parseRuleFrontmatter(content);
3102
+ const normalized = stripBom(content);
3101
3103
  const frontmatterRegex = /^---\r?\n([\s\S]*?)\r?\n?---\r?\n([\s\S]*)$/;
3102
- const match = content.match(frontmatterRegex);
3104
+ const match = normalized.match(frontmatterRegex);
3103
3105
  if (!match) {
3104
- return { data: {}, body: content, hadFrontmatter: false, parseError: false };
3106
+ return { data: {}, body: normalized, hadFrontmatter: false, parseError: false };
3105
3107
  }
3106
3108
  const yamlContent = match[1];
3107
3109
  const body = match[2];
@@ -20230,7 +20232,7 @@ var init_git_master = __esm(() => {
20230
20232
  });
20231
20233
 
20232
20234
  // packages/omo-config-core/src/schema/memory.ts
20233
- var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
20235
+ var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryRecallSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryRecallLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
20234
20236
  var init_memory = __esm(() => {
20235
20237
  init_zod();
20236
20238
  OmoMemoryReflectionTriggerSchema = object({
@@ -20252,6 +20254,10 @@ var init_memory = __esm(() => {
20252
20254
  OmoMemorySearchSchema = object({
20253
20255
  enabled: boolean2().default(true)
20254
20256
  }).strict();
20257
+ OmoMemoryRecallSchema = object({
20258
+ enabled: boolean2().default(true),
20259
+ max_items: number2().int().min(1).max(5).default(2)
20260
+ }).strict();
20255
20261
  OmoMemoryNudgeSchema = object({
20256
20262
  enabled: boolean2().default(true),
20257
20263
  every_user_turns: number2().int().min(1).default(10)
@@ -20298,6 +20304,10 @@ var init_memory = __esm(() => {
20298
20304
  OmoMemorySearchLayerSchema = object({
20299
20305
  enabled: boolean2().optional()
20300
20306
  }).strict();
20307
+ OmoMemoryRecallLayerSchema = object({
20308
+ enabled: boolean2().optional(),
20309
+ max_items: number2().int().min(1).max(5).optional()
20310
+ }).strict();
20301
20311
  OmoMemoryNudgeLayerSchema = object({
20302
20312
  enabled: boolean2().optional(),
20303
20313
  every_user_turns: number2().int().min(1).optional()
@@ -20337,6 +20347,7 @@ var init_memory = __esm(() => {
20337
20347
  write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
20338
20348
  sync: OmoMemorySyncLayerSchema.optional(),
20339
20349
  search: OmoMemorySearchLayerSchema.optional(),
20350
+ recall: OmoMemoryRecallLayerSchema.optional(),
20340
20351
  compile_warn_tokens: number2().int().positive().optional()
20341
20352
  }).strict();
20342
20353
  OmoMemorySettingsSchema = object({
@@ -20366,6 +20377,7 @@ var init_memory = __esm(() => {
20366
20377
  write_notice: OmoMemoryWriteNoticeSchema.default({ enabled: true }),
20367
20378
  sync: OmoMemorySyncSchema.default({ enabled: true }),
20368
20379
  search: OmoMemorySearchSchema.default({ enabled: true }),
20380
+ recall: OmoMemoryRecallSchema.default({ enabled: true, max_items: 2 }),
20369
20381
  compile_warn_tokens: number2().int().positive().default(30000),
20370
20382
  agents: record(string2(), OmoMemoryAgentOverridesSchema).default({})
20371
20383
  }).strict();
@@ -20382,6 +20394,7 @@ var init_memory = __esm(() => {
20382
20394
  write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
20383
20395
  sync: OmoMemorySyncLayerSchema.optional(),
20384
20396
  search: OmoMemorySearchLayerSchema.optional(),
20397
+ recall: OmoMemoryRecallLayerSchema.optional(),
20385
20398
  compile_warn_tokens: number2().int().positive().optional(),
20386
20399
  agents: record(string2(), OmoMemoryAgentOverridesSchema).optional()
20387
20400
  }).strict();
@@ -20415,11 +20428,11 @@ function resolveOmoTaskSettings(input, resolveParallelism = availableParallelism
20415
20428
  const record2 = record(string2(), unknown()).parse(input);
20416
20429
  return OmoTaskSettingsSchema.parse({
20417
20430
  ...record2,
20418
- residency_max_children: record2["residency_max_children"] ?? Math.max(8, resolveParallelism() * 3),
20431
+ residency_max_children: record2["residency_max_children"] ?? Math.min(DEFAULT_RESIDENCY_MAX_CHILDREN, Math.max(8, resolveParallelism() * 2)),
20419
20432
  global_concurrency: record2["global_concurrency"] ?? Math.max(8, resolveParallelism() * 2)
20420
20433
  });
20421
20434
  }
20422
- var ResidencyMaxChildrenInputSchema, OmoTaskWaitSchema, OmoTaskTeamSettingsSchema, OmoTaskWarningsSchema, OmoTaskDagSettingsSchema, OmoTaskSettingsSchema, OmoTaskDagSettingsLayerSchema, OmoTaskWaitLayerSchema, OmoTaskTeamSettingsLayerSchema, OmoTaskWarningsLayerSchema, OmoTaskSettingsLayerSchema;
20435
+ var DEFAULT_RESIDENCY_MAX_CHILDREN = 16, ResidencyMaxChildrenInputSchema, OmoTaskWaitSchema, OmoTaskTeamSettingsSchema, OmoTaskWarningsSchema, OmoTaskDagSettingsSchema, OmoTaskSettingsSchema, OmoTaskDagSettingsLayerSchema, OmoTaskWaitLayerSchema, OmoTaskTeamSettingsLayerSchema, OmoTaskWarningsLayerSchema, OmoTaskSettingsLayerSchema;
20423
20436
  var init_task = __esm(() => {
20424
20437
  init_zod();
20425
20438
  ResidencyMaxChildrenInputSchema = union([number2().int().nonnegative(), literal("unlimited")]);
@@ -22551,12 +22564,15 @@ function normalizeInputPath(absolutePath) {
22551
22564
  function isUnderPath(normalizedPath, normalizedParentPath) {
22552
22565
  return normalizedPath === normalizedParentPath || normalizedPath.startsWith(`${normalizedParentPath}/`);
22553
22566
  }
22567
+ function isOneDriveSegment(segment) {
22568
+ const lowercaseSegment = segment.toLowerCase();
22569
+ return lowercaseSegment === "onedrive" || lowercaseSegment.startsWith("onedrive - ");
22570
+ }
22554
22571
  function classifyPathEnvironment(absolutePath) {
22555
22572
  if (absolutePath.length === 0)
22556
22573
  return "unknown";
22557
22574
  const normalizedPath = normalizeInputPath(absolutePath);
22558
- const lowercasePath = normalizedPath.toLowerCase();
22559
- if (lowercasePath.includes("/onedrive") || lowercasePath.includes("/onedrive/")) {
22575
+ if (normalizedPath.split("/").some(isOneDriveSegment)) {
22560
22576
  return "onedrive";
22561
22577
  }
22562
22578
  if (normalizedPath.includes("/Library/Mobile Documents/")) {
@@ -23981,7 +23997,6 @@ function extractPromptFailureMessage(error51) {
23981
23997
  try {
23982
23998
  return JSON.stringify(error51);
23983
23999
  } catch (stringifyError) {
23984
- stringifyError instanceof Error;
23985
24000
  return "";
23986
24001
  }
23987
24002
  }
@@ -24197,6 +24212,33 @@ var init_agent_model_requirements = __esm(() => {
24197
24212
  { providers: ["opencode-go"], model: "glm-5.2" }
24198
24213
  ]
24199
24214
  },
24215
+ "omo-senpi-code-reviewer": {
24216
+ fallbackChain: [
24217
+ { providers: ["openai", "openai-codex"], model: "gpt-5.6-terra", variant: "medium" },
24218
+ { providers: ["github-copilot"], model: "gpt-5.6-terra", variant: "medium" },
24219
+ { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-4-6" },
24220
+ { providers: ["opencode-go"], model: "glm-5.2" },
24221
+ { providers: ["kimi-for-coding"], model: "kimi-k3" }
24222
+ ]
24223
+ },
24224
+ "omo-senpi-qa-executor": {
24225
+ fallbackChain: [
24226
+ { providers: ["openai", "openai-codex"], model: "gpt-5.6-luna", variant: "high" },
24227
+ { providers: ["github-copilot"], model: "gpt-5.6-luna", variant: "high" },
24228
+ { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-4-6" },
24229
+ { providers: ["opencode-go"], model: "glm-5.2" },
24230
+ { providers: ["kimi-for-coding"], model: "kimi-k3" }
24231
+ ]
24232
+ },
24233
+ "omo-senpi-gate-reviewer": {
24234
+ fallbackChain: [
24235
+ { providers: ["openai", "openai-codex"], model: "gpt-5.6-sol", variant: "low" },
24236
+ { providers: ["github-copilot"], model: "gpt-5.6-sol", variant: "low" },
24237
+ { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-5", variant: "max" },
24238
+ { providers: ["opencode-go"], model: "glm-5.2" },
24239
+ { providers: ["kimi-for-coding"], model: "kimi-k3" }
24240
+ ]
24241
+ },
24200
24242
  atlas: {
24201
24243
  fallbackChain: [
24202
24244
  { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-5" },
@@ -24703,7 +24745,7 @@ function normalizeCapabilitiesReasoningEfforts(capabilities) {
24703
24745
  }
24704
24746
  return capabilities.reasoningEfforts.map((value) => value.toLowerCase());
24705
24747
  }
24706
- function resolveField(normalized, familyCaps, ladder, familyKnown, metadataOverride, familyAliases) {
24748
+ function resolveField(normalized, familyCaps, familyKnown, metadataOverride, familyAliases) {
24707
24749
  const aliased = familyAliases?.[normalized];
24708
24750
  if (aliased && (metadataOverride?.includes(aliased) || familyCaps?.includes(aliased))) {
24709
24751
  return { value: aliased, reason: "unsupported-by-model-family" };
@@ -24738,7 +24780,7 @@ function resolveCompatibleModelSettings(input) {
24738
24780
  let variant = input.desired.variant;
24739
24781
  if (variant !== undefined) {
24740
24782
  const normalized = variant.toLowerCase();
24741
- const resolved = resolveField(normalized, family?.variants, REASONING_LEVELS2, familyKnown, metadataVariants);
24783
+ const resolved = resolveField(normalized, family?.variants, familyKnown, metadataVariants);
24742
24784
  if (resolved.value !== normalized && resolved.reason) {
24743
24785
  changes.push({ field: "variant", from: variant, to: resolved.value, reason: resolved.reason });
24744
24786
  }
@@ -24747,7 +24789,7 @@ function resolveCompatibleModelSettings(input) {
24747
24789
  let reasoningEffort = input.desired.reasoningEffort;
24748
24790
  if (reasoningEffort !== undefined) {
24749
24791
  const normalized = reasoningEffort.toLowerCase();
24750
- const resolved = resolveField(normalized, family?.reasoningEfforts, REASONING_LEVELS2, familyKnown, metadataReasoningEfforts, family?.reasoningEffortAliases);
24792
+ const resolved = resolveField(normalized, family?.reasoningEfforts, familyKnown, metadataReasoningEfforts, family?.reasoningEffortAliases);
24751
24793
  if (resolved.value !== normalized && resolved.reason) {
24752
24794
  changes.push({ field: "reasoningEffort", from: reasoningEffort, to: resolved.value, reason: resolved.reason });
24753
24795
  }
@@ -25048,6 +25090,111 @@ var init_supplemental_entries = __esm(() => {
25048
25090
  input: 272000,
25049
25091
  output: 128000
25050
25092
  }
25093
+ },
25094
+ "grok-4.5": {
25095
+ id: "grok-4.5",
25096
+ family: "grok",
25097
+ reasoning: false,
25098
+ temperature: true,
25099
+ toolCall: true,
25100
+ modalities: {
25101
+ input: ["text", "image"],
25102
+ output: ["text"]
25103
+ },
25104
+ limit: {
25105
+ context: 500000,
25106
+ output: 32768
25107
+ }
25108
+ },
25109
+ "xai/grok-4.5": {
25110
+ id: "xai/grok-4.5",
25111
+ family: "grok",
25112
+ reasoning: false,
25113
+ temperature: true,
25114
+ toolCall: true,
25115
+ modalities: {
25116
+ input: ["text", "image"],
25117
+ output: ["text"]
25118
+ },
25119
+ limit: {
25120
+ context: 500000,
25121
+ output: 32768
25122
+ }
25123
+ },
25124
+ "x-ai/grok-4.5": {
25125
+ id: "x-ai/grok-4.5",
25126
+ family: "grok",
25127
+ reasoning: false,
25128
+ temperature: true,
25129
+ toolCall: true,
25130
+ modalities: {
25131
+ input: ["text", "image"],
25132
+ output: ["text"]
25133
+ },
25134
+ limit: {
25135
+ context: 500000,
25136
+ output: 32768
25137
+ }
25138
+ },
25139
+ "grok-4.6": {
25140
+ id: "grok-4.6",
25141
+ family: "grok",
25142
+ reasoning: false,
25143
+ temperature: true,
25144
+ toolCall: true,
25145
+ modalities: {
25146
+ input: ["text", "image"],
25147
+ output: ["text"]
25148
+ },
25149
+ limit: {
25150
+ context: 500000,
25151
+ output: 32768
25152
+ }
25153
+ },
25154
+ "xai/grok-4.6": {
25155
+ id: "xai/grok-4.6",
25156
+ family: "grok",
25157
+ reasoning: false,
25158
+ temperature: true,
25159
+ toolCall: true,
25160
+ modalities: {
25161
+ input: ["text", "image"],
25162
+ output: ["text"]
25163
+ },
25164
+ limit: {
25165
+ context: 500000,
25166
+ output: 32768
25167
+ }
25168
+ },
25169
+ "xai/grok-build-0.1": {
25170
+ id: "xai/grok-build-0.1",
25171
+ family: "grok",
25172
+ reasoning: false,
25173
+ temperature: true,
25174
+ toolCall: true,
25175
+ modalities: {
25176
+ input: ["text", "image"],
25177
+ output: ["text"]
25178
+ },
25179
+ limit: {
25180
+ context: 256000,
25181
+ output: 32768
25182
+ }
25183
+ },
25184
+ "x-ai/grok-build-0.1": {
25185
+ id: "x-ai/grok-build-0.1",
25186
+ family: "grok",
25187
+ reasoning: false,
25188
+ temperature: true,
25189
+ toolCall: true,
25190
+ modalities: {
25191
+ input: ["text", "image"],
25192
+ output: ["text"]
25193
+ },
25194
+ limit: {
25195
+ context: 256000,
25196
+ output: 32768
25197
+ }
25051
25198
  }
25052
25199
  };
25053
25200
  });
@@ -84189,14 +84336,9 @@ var init_claude_code_plugin_loader = __esm(() => {
84189
84336
  init_hook_loader();
84190
84337
  });
84191
84338
 
84192
- // packages/omo-opencode/src/features/claude-code-plugin-loader/index.ts
84193
- var init_claude_code_plugin_loader2 = __esm(() => {
84194
- init_claude_code_plugin_loader();
84195
- });
84196
-
84197
84339
  // packages/omo-opencode/src/shared/plugin-command-discovery.ts
84198
84340
  var init_plugin_command_discovery = __esm(() => {
84199
- init_claude_code_plugin_loader2();
84341
+ init_claude_code_plugin_loader();
84200
84342
  });
84201
84343
 
84202
84344
  // packages/omo-opencode/src/shared/session-category-registry.ts
@@ -94479,7 +94621,7 @@ var package_default2;
94479
94621
  var init_package2 = __esm(() => {
94480
94622
  package_default2 = {
94481
94623
  name: "@oh-my-opencode/omo-codex",
94482
- version: "5.0.0-beta.30",
94624
+ version: "5.0.0-beta.32",
94483
94625
  type: "module",
94484
94626
  private: true,
94485
94627
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -94919,7 +95061,6 @@ function getLocalDevVersion(directory) {
94919
95061
  const pkg = JSON.parse(content);
94920
95062
  return pkg.version ?? null;
94921
95063
  } catch (error51) {
94922
- error51 instanceof Error;
94923
95064
  return null;
94924
95065
  }
94925
95066
  }
@@ -94951,7 +95092,6 @@ function findPluginEntry(directory) {
94951
95092
  }
94952
95093
  }
94953
95094
  } catch (error51) {
94954
- error51 instanceof Error;
94955
95095
  continue;
94956
95096
  }
94957
95097
  }
@@ -95056,7 +95196,6 @@ async function getLatestVersion(channel = "latest") {
95056
95196
  const data = await response.json();
95057
95197
  return data[channel] ?? data.latest ?? null;
95058
95198
  } catch (error51) {
95059
- error51 instanceof Error;
95060
95199
  return null;
95061
95200
  } finally {
95062
95201
  clearTimeout(timeoutId);
@@ -103643,6 +103782,7 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
103643
103782
  join62("extensions", "reflection-persona.md"),
103644
103783
  join62("extensions", "dream-persona.md"),
103645
103784
  join62("extensions", "facts-persona.md"),
103785
+ join62("extensions", "memorian-persona.md"),
103646
103786
  join62("skills", "ast-grep", "SKILL.md"),
103647
103787
  join62("skills", "coding-agent-sessions", "SKILL.md"),
103648
103788
  join62("skills", "debugging", "SKILL.md"),
@@ -107140,6 +107280,7 @@ var BackgroundTaskConfigSchema = exports_external.object({
107140
107280
  providerConcurrency: exports_external.record(exports_external.string(), exports_external.number().min(0)).optional(),
107141
107281
  modelConcurrency: exports_external.record(exports_external.string(), exports_external.number().min(0)).optional(),
107142
107282
  maxDepth: exports_external.number().int().min(1).optional(),
107283
+ maxLiveDescendantsPerRoot: exports_external.number().int().min(0).optional(),
107143
107284
  staleTimeoutMs: exports_external.number().min(60000).optional(),
107144
107285
  messageStalenessTimeoutMs: exports_external.number().min(60000).optional(),
107145
107286
  taskTtlMs: exports_external.number().min(300000).optional(),
@@ -108885,7 +109026,7 @@ async function getContinuationState(directory, sessionID, client3) {
108885
109026
  }
108886
109027
  async function hasActiveBoulderContinuation(directory, sessionID, client3) {
108887
109028
  const boulder = readBoulderState(directory);
108888
- if (!boulder)
109029
+ if (!boulder || !boulder.active_plan)
108889
109030
  return false;
108890
109031
  const progress = getPlanProgress(resolveBoulderPlanPath(directory, boulder));
108891
109032
  if (progress.isComplete)
@@ -4,6 +4,7 @@ export declare const BackgroundTaskConfigSchema: z.ZodObject<{
4
4
  providerConcurrency: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
5
5
  modelConcurrency: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
6
6
  maxDepth: z.ZodOptional<z.ZodNumber>;
7
+ maxLiveDescendantsPerRoot: z.ZodOptional<z.ZodNumber>;
7
8
  staleTimeoutMs: z.ZodOptional<z.ZodNumber>;
8
9
  messageStalenessTimeoutMs: z.ZodOptional<z.ZodNumber>;
9
10
  taskTtlMs: z.ZodOptional<z.ZodNumber>;
@@ -3557,6 +3557,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
3557
3557
  providerConcurrency: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
3558
3558
  modelConcurrency: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
3559
3559
  maxDepth: z.ZodOptional<z.ZodNumber>;
3560
+ maxLiveDescendantsPerRoot: z.ZodOptional<z.ZodNumber>;
3560
3561
  staleTimeoutMs: z.ZodOptional<z.ZodNumber>;
3561
3562
  messageStalenessTimeoutMs: z.ZodOptional<z.ZodNumber>;
3562
3563
  taskTtlMs: z.ZodOptional<z.ZodNumber>;
@@ -14,7 +14,6 @@ export declare const MIN_IDLE_TIME_MS = 5000;
14
14
  export declare const POLLING_INTERVAL_MS = 3000;
15
15
  export declare const TASK_CLEANUP_DELAY_MS: number;
16
16
  export declare const TMUX_CALLBACK_DELAY_MS = 200;
17
- export type ProcessCleanupEvent = NodeJS.Signals | "beforeExit" | "exit";
18
17
  export type OpencodeClient = PluginInput["client"];
19
18
  export interface MessagePartInfo {
20
19
  sessionID?: string;
@@ -32,12 +31,6 @@ export interface BackgroundEvent {
32
31
  type: string;
33
32
  properties?: EventProperties;
34
33
  }
35
- export interface Todo {
36
- content: string;
37
- status: string;
38
- priority: string;
39
- id?: string;
40
- }
41
34
  export interface QueueItem {
42
35
  attemptID: string;
43
36
  rawConcurrencyKey?: string;
@@ -88,6 +88,8 @@ export declare class BackgroundManager {
88
88
  commit: () => number;
89
89
  rollback: () => void;
90
90
  }>;
91
+ acquireSyncSubagentConcurrency(model: string, taskId?: string): Promise<void>;
92
+ releaseSyncSubagentConcurrency(model: string): void;
91
93
  private registerRootDescendant;
92
94
  private unregisterRootDescendant;
93
95
  private markPreStartDescendantReservation;
@@ -162,7 +164,6 @@ export declare class BackgroundManager {
162
164
  private requeueDispatchedParentWake;
163
165
  private clearSessionOutputObserved;
164
166
  private clearSessionTodoObservation;
165
- private messageUpdatedInfoHasParentWakeOutput;
166
167
  private shouldHoldDispatchedParentWakeForTextDelta;
167
168
  private parentWakeTextDeltaBufferKey;
168
169
  private clearParentWakeTextDeltaBuffers;
@@ -19,7 +19,6 @@ export declare class ParentWakeDispatchedTracker {
19
19
  releaseNotificationPreparation(sessionID: string): void;
20
20
  hasNotificationPreparation(sessionID: string): boolean;
21
21
  getWake(sessionID: string): PendingParentWake | undefined;
22
- hasWake(sessionID: string): boolean;
23
22
  clearWake(sessionID: string): void;
24
23
  trackWake(sessionID: string, wake: PendingParentWake, dispatchedAt: number): void;
25
24
  refreshWakeTimer(sessionID: string): void;
@@ -1,4 +1,4 @@
1
- import type { PromptDispatchClient, PromptMessagesQuery } from "../../shared/prompt-async-gate/types";
1
+ import type { PromptDispatchClient, PromptMessagesQuery } from "@oh-my-opencode/utils/prompt-async-gate/types";
2
2
  import type { ParentWakePromptContext } from "./parent-wake-dedupe";
3
3
  type ParentWakePromptBody = ParentWakePromptContext & {
4
4
  readonly noReply?: boolean;
@@ -1,4 +1,4 @@
1
- import type { PromptDispatchClient } from "../../shared/prompt-async-gate/types";
1
+ import type { PromptDispatchClient } from "@oh-my-opencode/utils/prompt-async-gate/types";
2
2
  import { type PendingParentWake } from "./parent-wake-dedupe";
3
3
  import type { ToolWaitDeferralDecision } from "./parent-wake-session-history";
4
4
  type ParentWakePromptDispatchInput = {
@@ -1,4 +1,4 @@
1
- import type { PromptMessagesQuery } from "../../shared/prompt-async-gate/types";
1
+ import type { PromptMessagesQuery } from "@oh-my-opencode/utils/prompt-async-gate/types";
2
2
  import type { PendingParentWake } from "./parent-wake-dedupe";
3
3
  import { type ToolWaitDeferralDecision } from "./parent-wake-session-history";
4
4
  type ParentWakeSessionInspectorClient = {
@@ -1,12 +1,14 @@
1
1
  import type { BackgroundTaskConfig } from "../../config/schema";
2
2
  import type { OpencodeClient } from "./constants";
3
3
  export declare const DEFAULT_MAX_SUBAGENT_DEPTH = 3;
4
+ export declare const DEFAULT_MAX_LIVE_DESCENDANTS_PER_ROOT = 24;
4
5
  export interface SubagentSpawnContext {
5
6
  rootSessionID: string;
6
7
  parentDepth: number;
7
8
  childDepth: number;
8
9
  }
9
10
  export declare function getMaxSubagentDepth(config?: BackgroundTaskConfig): number;
11
+ export declare function getMaxLiveDescendantsPerRoot(config?: BackgroundTaskConfig): number;
10
12
  export declare function resolveSubagentSpawnContext(client: OpencodeClient, parentSessionID: string, directory?: string): Promise<SubagentSpawnContext>;
11
13
  export declare function createSubagentDepthLimitError(input: {
12
14
  childDepth: number;
@@ -14,3 +16,9 @@ export declare function createSubagentDepthLimitError(input: {
14
16
  parentSessionID: string;
15
17
  rootSessionID: string;
16
18
  }): Error;
19
+ export declare function createSubagentDescendantLimitError(input: {
20
+ descendantCount: number;
21
+ maxDescendants: number;
22
+ parentSessionID: string;
23
+ rootSessionID: string;
24
+ }): Error;
@@ -2,7 +2,7 @@ import type { PluginInput } from "@opencode-ai/plugin";
2
2
  import type { MonitorConfig } from "../../config/schema/monitor";
3
3
  import { registerManagerForCleanup, unregisterManagerForCleanup } from "../background-agent/process-cleanup";
4
4
  import { log } from "../../shared";
5
- import type { InternalPromptDispatchArgs, PromptAsyncInput, PromptDispatchClient } from "../../shared/prompt-async-gate/types";
5
+ import type { InternalPromptDispatchArgs, PromptAsyncInput, PromptDispatchClient } from "@oh-my-opencode/utils/prompt-async-gate/types";
6
6
  import { MonitorBatcher, type SchedulerDeps } from "./batcher";
7
7
  import { createMonitorPipeline } from "./pipeline";
8
8
  import { spawnMonitoredProcess, type MonitoredProcess } from "./process";
@@ -1,4 +1,4 @@
1
- import type { InternalPromptDispatchArgs, InternalPromptDispatchResult, PromptAsyncInput, PromptDispatchClient } from "../../shared/prompt-async-gate/types";
1
+ import type { InternalPromptDispatchArgs, InternalPromptDispatchResult, PromptAsyncInput, PromptDispatchClient } from "@oh-my-opencode/utils/prompt-async-gate/types";
2
2
  import type { MonitorRecord, OutputBatch } from "./types";
3
3
  export type MonitorPromptClient = PromptDispatchClient & InternalPromptDispatchArgs<PromptAsyncInput>["client"];
4
4
  export type MonitorOutputInjectorDeps = {
@@ -19,39 +19,15 @@ export declare class TaskToastManager {
19
19
  skills?: string[];
20
20
  modelInfo?: ModelFallbackInfo;
21
21
  }): void;
22
- /**
23
- * Update task status
24
- */
25
22
  updateTask(id: string, status: TaskStatus): void;
26
- /**
27
- * Update model info for a task by session ID
28
- */
29
23
  updateTaskModelBySession(sessionID: string, modelInfo: ModelFallbackInfo): void;
30
- /**
31
- * Remove completed/error task
32
- */
33
24
  removeTask(id: string): void;
34
- /**
35
- * Get all running tasks (newest first)
36
- */
37
25
  getRunningTasks(): TrackedTask[];
38
- /**
39
- * Get all queued tasks
40
- */
41
26
  getQueuedTasks(): TrackedTask[];
42
- /**
43
- * Format duration since task started
44
- */
45
27
  private formatDuration;
46
28
  private getConcurrencyInfo;
47
29
  private buildTaskListMessage;
48
- /**
49
- * Show consolidated toast with all running/queued tasks
50
- */
51
30
  private showTaskListToast;
52
- /**
53
- * Show task completion toast
54
- */
55
31
  showCompletionToast(task: {
56
32
  id: string;
57
33
  description: string;
@@ -15,5 +15,6 @@ export declare function deliverLiveToRecipient(input: {
15
15
  reservation: DeliveryReservation;
16
16
  config: TeamModeConfig;
17
17
  directory: string;
18
+ settleMs?: number;
18
19
  }): Promise<void>;
19
20
  export {};
@@ -9,6 +9,7 @@ export type TeamRuntimeDetails = {
9
9
  };
10
10
  export type TeamSendMessageToolDeps = {
11
11
  loadRuntimeState: typeof loadRuntimeState;
12
+ liveDeliverySettleMs?: number;
12
13
  };
13
14
  export declare const defaultTeamSendMessageToolDeps: TeamSendMessageToolDeps;
14
15
  type RuntimeMember = RuntimeState["members"][number];
@@ -1,6 +1,3 @@
1
- import type { PluginInput } from "@opencode-ai/plugin";
2
1
  import { getMessageDir } from "../../shared/opencode-message-dir";
3
2
  export { getMessageDir };
4
- type OpencodeClient = PluginInput["client"];
5
- export declare function getMessageIdsFromSDK(client: OpencodeClient, sessionID: string): Promise<string[]>;
6
3
  export declare function getMessageIds(sessionID: string): string[];
@@ -2,6 +2,7 @@ import type { AutoCompactState, RetryState, TruncateState } from "./types";
2
2
  export declare function getOrCreateRetryState(autoCompactState: AutoCompactState, sessionID: string): RetryState;
3
3
  export declare function getOrCreateTruncateState(autoCompactState: AutoCompactState, sessionID: string): TruncateState;
4
4
  export declare function clearSessionState(autoCompactState: AutoCompactState, sessionID: string): void;
5
+ export declare function clearAllSessionState(autoCompactState: AutoCompactState): void;
5
6
  export declare function setRetryTimer(autoCompactState: AutoCompactState, sessionID: string, timeout: ReturnType<typeof setTimeout>): void;
6
7
  export declare function clearRetryTimer(autoCompactState: AutoCompactState, sessionID: string): void;
7
8
  export declare function getEmptyContentAttempt(autoCompactState: AutoCompactState, sessionID: string): number;
@@ -1,3 +1,2 @@
1
1
  export declare function findEmptyMessages(sessionID: string): string[];
2
2
  export declare function findEmptyMessageByIndex(sessionID: string, targetIndex: number): string | null;
3
- export declare function findFirstEmptyMessage(sessionID: string): string | null;
@@ -6,5 +6,16 @@ export declare function truncateToolResult(partPath: string): {
6
6
  toolName?: string;
7
7
  originalSize?: number;
8
8
  };
9
+ /**
10
+ * Infrastructure for the future distillation feature (issue #1734).
11
+ *
12
+ * The non-destructive truncation in `truncateToolResult()` writes the original
13
+ * tool output to `{partPath}.original`. This function reads that backup so the
14
+ * distiller can access the full output even after the live part file has been
15
+ * truncated. It is not called anywhere today because the distillation consumer
16
+ * has not been implemented yet.
17
+ */
18
+ export declare function recoverTruncatedOutput(partPath: string): string | null;
19
+ export declare function cleanupTruncationBackups(sessionID: string): number;
9
20
  export declare function getTotalToolOutputSize(sessionID: string): number;
10
21
  export declare function countTruncatedResults(sessionID: string): number;
@@ -7,4 +7,5 @@ export declare const sessionInterruptState: Map<string, {
7
7
  interrupted: boolean;
8
8
  }>;
9
9
  export declare function clearSessionHookState(sessionID: string): void;
10
+ export declare function clearSessionEndHookState(sessionID: string): void;
10
11
  export declare function clearAllSessionHookState(): void;