oh-my-opencode 4.19.4 → 5.0.0-beta.10

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 (374) hide show
  1. package/.agents/command/publish.md +44 -16
  2. package/.agents/skills/publish/SKILL.md +44 -16
  3. package/.agents/skills/work-with-pr/SKILL.md +37 -23
  4. package/.opencode/command/publish.md +44 -16
  5. package/.opencode/skills/work-with-pr/SKILL.md +37 -23
  6. package/README.ja.md +1 -1
  7. package/README.ko.md +1 -1
  8. package/README.md +18 -6
  9. package/README.ru.md +1 -1
  10. package/README.zh-cn.md +1 -1
  11. package/bin/oh-my-opencode.js +14 -1
  12. package/bin/oh-my-opencode.test.ts +21 -0
  13. package/dist/agents/atlas/agent.d.ts +0 -1
  14. package/dist/agents/sisyphus/grok-4.d.ts +20 -0
  15. package/dist/agents/sisyphus/index.d.ts +2 -0
  16. package/dist/agents/sisyphus-agent-config.d.ts +6 -0
  17. package/dist/agents/sisyphus-agent-factory.d.ts +1 -1
  18. package/dist/agents/sisyphus-runtime-prompt-reconciler.d.ts +15 -4
  19. package/dist/agents/types.d.ts +2 -2
  20. package/dist/cli/index.js +1888 -807
  21. package/dist/cli/run/on-complete-hook.d.ts +2 -0
  22. package/dist/cli-node/index.js +1888 -807
  23. package/dist/config/schema/agent-overrides.d.ts +528 -0
  24. package/dist/config/schema/oh-my-opencode-config.d.ts +495 -0
  25. package/dist/features/monitor/batcher.d.ts +3 -1
  26. package/dist/features/monitor/manager-internals.d.ts +1 -0
  27. package/dist/features/monitor/output-injector-types.d.ts +2 -0
  28. package/dist/features/monitor/output-injector.d.ts +6 -0
  29. package/dist/hooks/atlas/final-wave-approval-gate.test-support.d.ts +50 -0
  30. package/dist/hooks/atlas/system-reminder-templates.d.ts +0 -1
  31. package/dist/hooks/todo-continuation-enforcer/types.d.ts +1 -0
  32. package/dist/hooks/todo-continuation-enforcer/unrecoverable-request-error.d.ts +9 -0
  33. package/dist/hooks/tool-pair-validator/hook.test-support.d.ts +29 -0
  34. package/dist/hooks/tool-pair-validator/tool-part-ids.d.ts +14 -5
  35. package/dist/hooks/tool-pair-validator/tool-result-repair.d.ts +4 -3
  36. package/dist/hooks/tool-pair-validator/types.d.ts +5 -22
  37. package/dist/index.js +3139 -2232
  38. package/dist/mcp/lsp.d.ts +1 -0
  39. package/dist/oh-my-opencode.schema.json +1466 -131
  40. package/dist/shared/normalize-sdk-response.d.ts +1 -0
  41. package/dist/shared/shell-env.d.ts +1 -1
  42. package/dist/shared/tmux/constants.d.ts +1 -1
  43. package/dist/skills/ast-grep/SOURCE +1 -1
  44. package/dist/skills/ast-grep/install.ps1 +2 -2
  45. package/dist/skills/ast-grep/install.sh +1 -1
  46. package/dist/skills/ast-grep/references/install.md +2 -2
  47. package/dist/skills/ast-grep/tests/smoke.sh +1 -1
  48. package/dist/skills/coding-agent-sessions/SKILL.md +3 -2
  49. package/dist/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  50. package/dist/skills/coding-agent-sessions/references/senpi.md +4 -4
  51. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  52. package/dist/skills/frontend/SKILL.md +10 -7
  53. package/dist/skills/frontend/references/design/_INDEX.md +1 -0
  54. package/dist/skills/frontend/references/design/stylegallery.md +80 -0
  55. package/dist/skills/start-work/SKILL.md +54 -9
  56. package/dist/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
  57. package/dist/skills/ultimate-browsing/SKILL.md +2 -2
  58. package/dist/skills/ultimate-browsing/engine/AGENTS.md +179 -0
  59. package/dist/skills/ultimate-browsing/engine/__main__.py +8 -1
  60. package/dist/skills/ultimate-browsing/engine/bias_check.py +11 -0
  61. package/dist/skills/ultimate-browsing/engine/fetch_chain.py +90 -52
  62. package/dist/skills/ultimate-browsing/engine/result_schema.py +10 -1
  63. package/dist/skills/ultimate-browsing/engine/surrogate.py +214 -0
  64. package/dist/skills/ultimate-browsing/engine/surrogates.yaml +60 -0
  65. package/dist/skills/ultimate-browsing/engine/templates/package.json +1 -1
  66. package/dist/skills/ultimate-browsing/engine/tests/fixtures/amp_redirect_stub.html +7 -0
  67. package/dist/skills/ultimate-browsing/engine/tests/fixtures/search_interstitial.html +19 -0
  68. package/dist/skills/ultimate-browsing/engine/tests/fixtures/wayback_available.json +1 -0
  69. package/dist/skills/ultimate-browsing/engine/tests/fixtures/wayback_snapshot.html +1128 -0
  70. package/dist/skills/ultimate-browsing/engine/tests/test_surrogate.py +252 -0
  71. package/dist/skills/ultimate-browsing/engine/tests/test_surrogate_validators.py +78 -0
  72. package/dist/skills/ultimate-browsing/engine/validators.py +46 -0
  73. package/dist/skills/ultimate-browsing/engine/waf_detector.py +1 -1
  74. package/dist/skills/ultimate-browsing/engine/waf_profiles.yaml +10 -5
  75. package/dist/skills/ultimate-browsing/references/agent-reach/social.md +1 -1
  76. package/dist/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
  77. package/dist/skills/ultimate-browsing/references/insane-search/README.md +4 -4
  78. package/dist/skills/ultimate-browsing/references/insane-search/cache-archive.md +51 -50
  79. package/dist/skills/ultimate-browsing/references/insane-search/fallback.md +1 -1
  80. package/dist/skills/ultimate-browsing/references/insane-search/jina.md +8 -2
  81. package/dist/skills/ultimate-browsing/references/insane-search/naver.md +1 -1
  82. package/dist/skills/ultimate-browsing/references/insane-search/twitter.md +3 -3
  83. package/dist/skills/ulw-plan/SKILL.md +3 -3
  84. package/dist/skills/ulw-plan/references/full-workflow.md +30 -6
  85. package/dist/skills/ulw-plan/references/intent-clear.md +2 -1
  86. package/dist/skills/ulw-plan/references/intent-unclear.md +3 -3
  87. package/dist/skills/ulw-plan/scripts/scaffold-plan.mjs +1 -1
  88. package/dist/skills/ulw-research/SKILL.md +15 -10
  89. package/dist/tui.js +477 -36
  90. package/docs/reference/web-terminal-visual-qa.md +1 -1
  91. package/package.json +34 -24
  92. package/packages/lsp-core/src/lsp/client-diagnostics-concurrency.integration.test.ts +44 -0
  93. package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +0 -28
  94. package/packages/lsp-core/src/lsp/client-wrapper.test.ts +60 -7
  95. package/packages/lsp-core/src/lsp/client-wrapper.ts +69 -16
  96. package/packages/lsp-core/src/lsp/connection.ts +1 -1
  97. package/packages/lsp-core/src/lsp/workspace-edit-adversarial.test.ts +20 -1
  98. package/packages/lsp-core/src/tools/diagnostics.ts +3 -3
  99. package/packages/lsp-core/src/tools/navigation.ts +4 -2
  100. package/packages/lsp-core/src/tools/rename.ts +4 -2
  101. package/packages/lsp-core/src/tools/symbols.ts +1 -1
  102. package/packages/lsp-daemon/dist/cli.js +108 -40
  103. package/packages/lsp-daemon/dist/client.js +123 -55
  104. package/packages/lsp-daemon/dist/ensure-daemon.d.ts +1 -0
  105. package/packages/lsp-daemon/dist/ensure-daemon.js +18 -5
  106. package/packages/lsp-daemon/dist/index.js +111 -43
  107. package/packages/lsp-tools-mcp/dist/cli.js +77 -23
  108. package/packages/lsp-tools-mcp/dist/lsp/manager.js +1 -1
  109. package/packages/lsp-tools-mcp/dist/mcp.js +77 -23
  110. package/packages/lsp-tools-mcp/dist/tools.js +77 -23
  111. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  112. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +268 -92
  113. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  114. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  115. package/packages/omo-codex/plugin/components/bootstrap/src/setup.ts +7 -7
  116. package/packages/omo-codex/plugin/components/bootstrap/src/worker.ts +3 -0
  117. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +220 -10
  118. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +220 -10
  119. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  120. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  121. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  122. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  123. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  124. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  125. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  126. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +3 -17
  127. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  128. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +135 -67
  129. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  130. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  131. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  132. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  133. package/packages/omo-codex/plugin/components/rules/test/bundled-rules-priority.test.ts +11 -16
  134. package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +16 -23
  135. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-budget.test.ts +9 -7
  136. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-context.test.ts +0 -6
  137. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-dedup.test.ts +6 -4
  138. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-directive.test.ts +12 -9
  139. package/packages/omo-codex/plugin/components/rules/test/codex-hook.test.ts +28 -37
  140. package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +37 -69
  141. package/packages/omo-codex/plugin/components/rules/test/hook-output.test.ts +2 -3
  142. package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +1 -15
  143. package/packages/omo-codex/plugin/components/start-work-continuation/AGENTS.md +4 -2
  144. package/packages/omo-codex/plugin/components/start-work-continuation/README.md +5 -1
  145. package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +2 -1
  146. package/packages/omo-codex/plugin/components/start-work-continuation/dist/cli.js +18 -0
  147. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  148. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  149. package/packages/omo-codex/plugin/components/start-work-continuation/src/codex-hook.ts +21 -0
  150. package/packages/omo-codex/plugin/components/start-work-continuation/test/cli.test.ts +0 -3
  151. package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +107 -16
  152. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  153. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  154. package/packages/omo-codex/plugin/components/teammode/test/thread-title-hook.test.ts +3 -9
  155. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +24 -12
  156. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +24 -12
  157. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  158. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  159. package/packages/omo-codex/plugin/components/ultrawork/CHANGELOG.md +2 -0
  160. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-code-reviewer.toml +1 -1
  161. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +1 -1
  162. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-qa-executor.toml +1 -1
  163. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-high.toml +1 -1
  164. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-low.toml +1 -1
  165. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-medium.toml +1 -1
  166. package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +2 -2
  167. package/packages/omo-codex/plugin/components/ultrawork/directive.md +9 -2
  168. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  169. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  170. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +9 -2
  171. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +3 -3
  172. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +30 -6
  173. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +2 -1
  174. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +3 -3
  175. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/scripts/scaffold-plan.mjs +1 -1
  176. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +0 -136
  177. package/packages/omo-codex/plugin/components/ultrawork/test/skill-pointer.test.ts +0 -2
  178. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +1 -1
  179. package/packages/omo-codex/plugin/components/ulw-loop/CHANGELOG.md +2 -0
  180. package/packages/omo-codex/plugin/components/ulw-loop/README.md +11 -11
  181. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +9 -2
  182. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.js +1 -1
  183. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +1 -1
  184. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +9 -9
  185. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-steering.js +1 -1
  186. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +66 -66
  187. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +4 -4
  188. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-hook.js +1 -1
  189. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.js +1 -1
  190. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.js +1 -1
  191. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering.js +1 -1
  192. package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +2 -2
  193. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  194. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  195. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +5 -4
  196. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +108 -0
  197. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +23 -25
  198. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-reconciliation.ts +1 -1
  199. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +9 -9
  200. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-steering.ts +1 -1
  201. package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +1 -1
  202. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +4 -4
  203. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +1 -1
  204. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-crud.ts +1 -1
  205. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-io.ts +1 -1
  206. package/packages/omo-codex/plugin/components/ulw-loop/src/steering.ts +1 -1
  207. package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +2 -2
  208. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-continuation.test.ts +0 -1
  209. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-commands.test.ts +2 -2
  210. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +1 -1
  211. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-helpers.test.ts +2 -2
  212. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-steering-kind-guidance.test.ts +1 -1
  213. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +2 -2
  214. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-hook.test.ts +2 -5
  215. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/quality-gate-builder.ts +1 -1
  216. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +7 -40
  217. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-io.test.ts +1 -1
  218. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-roles.test.ts +1 -1
  219. package/packages/omo-codex/plugin/components/ulw-loop/test/steering.test.ts +1 -1
  220. package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +1 -1
  221. package/packages/omo-codex/plugin/components/ulw-loop/test/ultrawork-directive.test.ts +4 -5
  222. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  223. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  224. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  225. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  226. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  227. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  228. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  229. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  230. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  231. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  232. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  233. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  234. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  235. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  236. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  237. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  238. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  239. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  240. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  241. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  242. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  243. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  244. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  245. package/packages/omo-codex/plugin/package-lock.json +20 -20
  246. package/packages/omo-codex/plugin/package.json +1 -1
  247. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +4 -4
  248. package/packages/omo-codex/plugin/skills/ast-grep/SOURCE +1 -1
  249. package/packages/omo-codex/plugin/skills/ast-grep/install.ps1 +2 -2
  250. package/packages/omo-codex/plugin/skills/ast-grep/install.sh +1 -1
  251. package/packages/omo-codex/plugin/skills/ast-grep/references/install.md +2 -2
  252. package/packages/omo-codex/plugin/skills/ast-grep/tests/smoke.sh +1 -1
  253. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +3 -2
  254. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  255. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +4 -4
  256. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  257. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +10 -7
  258. package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +1 -0
  259. package/packages/omo-codex/plugin/skills/frontend/references/design/stylegallery.md +80 -0
  260. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +54 -9
  261. package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
  262. package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +2 -2
  263. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +179 -0
  264. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/__main__.py +8 -1
  265. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/bias_check.py +11 -0
  266. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/fetch_chain.py +90 -52
  267. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/result_schema.py +10 -1
  268. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/surrogate.py +214 -0
  269. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/surrogates.yaml +60 -0
  270. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/package.json +1 -1
  271. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/amp_redirect_stub.html +7 -0
  272. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/search_interstitial.html +19 -0
  273. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/wayback_available.json +1 -0
  274. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/wayback_snapshot.html +1128 -0
  275. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_surrogate.py +252 -0
  276. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_surrogate_validators.py +78 -0
  277. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/validators.py +46 -0
  278. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/waf_detector.py +1 -1
  279. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/waf_profiles.yaml +10 -5
  280. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/agent-reach/social.md +1 -1
  281. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
  282. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/README.md +4 -4
  283. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/cache-archive.md +51 -50
  284. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/fallback.md +1 -1
  285. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/jina.md +8 -2
  286. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/naver.md +1 -1
  287. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/twitter.md +3 -3
  288. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +9 -2
  289. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +5 -4
  290. package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +108 -0
  291. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +23 -25
  292. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +3 -3
  293. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +30 -6
  294. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +2 -1
  295. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +3 -3
  296. package/packages/omo-codex/plugin/skills/ulw-plan/scripts/scaffold-plan.mjs +1 -1
  297. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +15 -10
  298. package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +19 -173
  299. package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +4 -24
  300. package/packages/omo-codex/plugin/test/aggregate-plugin-fixture.mjs +175 -13
  301. package/packages/omo-codex/plugin/test/aggregate.test.mjs +78 -2
  302. package/packages/omo-codex/plugin/test/auto-update-release-notes.test.mjs +19 -33
  303. package/packages/omo-codex/plugin/test/bootstrap-binlinks.test.mjs +12 -12
  304. package/packages/omo-codex/plugin/test/bootstrap-orchestration.test.mjs +36 -4
  305. package/packages/omo-codex/plugin/test/lcx-contribute-bug-fix-template.test.mjs +21 -27
  306. package/packages/omo-codex/plugin/test/scaffold-plan.test.mjs +0 -36
  307. package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +101 -0
  308. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +4 -4
  309. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +1 -119
  310. package/packages/omo-codex/plugin/test/teammode-archive-ambiguity.test.mjs +0 -40
  311. package/packages/omo-codex/plugin/test/teammode-communication.test.mjs +6 -62
  312. package/packages/omo-codex/plugin/test/teammode-thread-links.test.mjs +3 -36
  313. package/packages/omo-codex/plugin/test/teammode-transport.test.mjs +0 -44
  314. package/packages/omo-codex/plugin/test/teammode-worktree.test.mjs +2 -6
  315. package/packages/omo-codex/plugin/test/ultrawork-skill-pointer.test.mjs +0 -3
  316. package/packages/omo-codex/plugin/test/ulw-plan-review-state-contract.test.mjs +0 -3
  317. package/packages/omo-codex/scripts/install-bin-links.test.mjs +56 -2
  318. package/packages/omo-codex/scripts/install-delegated-command.test.mjs +6 -6
  319. package/packages/omo-codex/scripts/install-dist/install-local.mjs +170 -78
  320. package/packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs +7 -2
  321. package/packages/omo-codex/scripts/install-local-entrypoint.test.mjs +4 -4
  322. package/packages/omo-codex/scripts/install-local.test.mjs +5 -2
  323. package/packages/shared-skills/index.mjs +19 -1
  324. package/packages/shared-skills/skills/ast-grep/SOURCE +1 -1
  325. package/packages/shared-skills/skills/ast-grep/install.ps1 +2 -2
  326. package/packages/shared-skills/skills/ast-grep/install.sh +1 -1
  327. package/packages/shared-skills/skills/ast-grep/references/install.md +2 -2
  328. package/packages/shared-skills/skills/ast-grep/tests/smoke.sh +1 -1
  329. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +3 -2
  330. package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  331. package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +4 -4
  332. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  333. package/packages/shared-skills/skills/frontend/SKILL.md +10 -7
  334. package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +1 -0
  335. package/packages/shared-skills/skills/frontend/references/design/stylegallery.md +80 -0
  336. package/packages/shared-skills/skills/start-work/SKILL.md +54 -9
  337. package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
  338. package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +2 -2
  339. package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +179 -0
  340. package/packages/shared-skills/skills/ultimate-browsing/engine/__main__.py +8 -1
  341. package/packages/shared-skills/skills/ultimate-browsing/engine/bias_check.py +11 -0
  342. package/packages/shared-skills/skills/ultimate-browsing/engine/fetch_chain.py +90 -52
  343. package/packages/shared-skills/skills/ultimate-browsing/engine/result_schema.py +10 -1
  344. package/packages/shared-skills/skills/ultimate-browsing/engine/surrogate.py +214 -0
  345. package/packages/shared-skills/skills/ultimate-browsing/engine/surrogates.yaml +60 -0
  346. package/packages/shared-skills/skills/ultimate-browsing/engine/templates/package.json +1 -1
  347. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/fixtures/amp_redirect_stub.html +7 -0
  348. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/fixtures/search_interstitial.html +19 -0
  349. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/fixtures/wayback_available.json +1 -0
  350. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/fixtures/wayback_snapshot.html +1128 -0
  351. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/test_surrogate.py +252 -0
  352. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/test_surrogate_validators.py +78 -0
  353. package/packages/shared-skills/skills/ultimate-browsing/engine/validators.py +46 -0
  354. package/packages/shared-skills/skills/ultimate-browsing/engine/waf_detector.py +1 -1
  355. package/packages/shared-skills/skills/ultimate-browsing/engine/waf_profiles.yaml +10 -5
  356. package/packages/shared-skills/skills/ultimate-browsing/references/agent-reach/social.md +1 -1
  357. package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
  358. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/README.md +4 -4
  359. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/cache-archive.md +51 -50
  360. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/fallback.md +1 -1
  361. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/jina.md +8 -2
  362. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/naver.md +1 -1
  363. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/twitter.md +3 -3
  364. package/packages/shared-skills/skills/ulw-plan/SKILL.md +3 -3
  365. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +30 -6
  366. package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +2 -1
  367. package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +3 -3
  368. package/packages/shared-skills/skills/ulw-plan/scripts/scaffold-plan.mjs +1 -1
  369. package/packages/shared-skills/skills/ulw-research/SKILL.md +15 -10
  370. package/postinstall.mjs +6 -0
  371. package/dist/tools/call-omo-agent/background-agent-executor.d.ts +0 -5
  372. package/packages/omo-codex/plugin/test/aggregate-skills.test.mjs +0 -92
  373. package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +0 -314
  374. package/packages/omo-codex/plugin/test/ulw-plan-scope-contract.test.mjs +0 -24
@@ -4003,7 +4003,7 @@ function finalize(ctx, schema) {
4003
4003
  result.$schema = "http://json-schema.org/draft-07/schema#";
4004
4004
  } else if (ctx.target === "draft-04") {
4005
4005
  result.$schema = "http://json-schema.org/draft-04/schema#";
4006
- } else if (ctx.target === "openapi-3.0") {} else {}
4006
+ } else if (ctx.target === "openapi-3.0") {}
4007
4007
  if (ctx.external?.uri) {
4008
4008
  const id = ctx.external.registry.get(schema)?.id;
4009
4009
  if (!id)
@@ -4212,7 +4212,7 @@ var literalProcessor = (schema, ctx, json, _params) => {
4212
4212
  if (val === undefined) {
4213
4213
  if (ctx.unrepresentable === "throw") {
4214
4214
  throw new Error("Literal `undefined` cannot be represented in JSON Schema");
4215
- } else {}
4215
+ }
4216
4216
  } else if (typeof val === "bigint") {
4217
4217
  if (ctx.unrepresentable === "throw") {
4218
4218
  throw new Error("BigInt literals cannot be represented in JSON Schema");
@@ -5549,6 +5549,151 @@ var OmoCodegraphSettingsSchema = OmoCodegraphSettingsLayerSchema.extend({
5549
5549
  telemetry: boolean2().default(false)
5550
5550
  }).strict();
5551
5551
 
5552
+ // ../../omo-config-core/src/schema/memory.ts
5553
+ var OmoMemoryReflectionTriggerSchema = object({
5554
+ step_count: number2().int().nonnegative().default(25),
5555
+ on_compaction: boolean2().default(true)
5556
+ }).strict();
5557
+ var OmoMemoryReflectionSchema = object({
5558
+ enabled: boolean2().default(true),
5559
+ trigger: OmoMemoryReflectionTriggerSchema.default({ step_count: 25, on_compaction: true }),
5560
+ merge: _enum(["auto", "integration"]).default("auto"),
5561
+ category: string2().min(1).default("quick"),
5562
+ timeout_minutes: number2().int().positive().default(15),
5563
+ sandbox: _enum(["auto", "required", "off"]).default("auto")
5564
+ }).strict();
5565
+ var OmoMemorySyncSchema = object({
5566
+ remote: string2().min(1).optional(),
5567
+ enabled: boolean2().default(true)
5568
+ }).strict();
5569
+ var OmoMemorySearchSchema = object({
5570
+ enabled: boolean2().default(true)
5571
+ }).strict();
5572
+ var OmoMemoryNudgeSchema = object({
5573
+ enabled: boolean2().default(true),
5574
+ every_user_turns: number2().int().min(1).default(10)
5575
+ }).strict();
5576
+ var OmoMemoryFactsSchema = object({
5577
+ enabled: boolean2().default(true),
5578
+ debounce_settles: number2().int().min(1).default(4)
5579
+ }).strict();
5580
+ var OmoMemoryDreamSchema = object({
5581
+ enabled: boolean2().default(true),
5582
+ idle_minutes: number2().int().min(0).default(30),
5583
+ min_hours_between: number2().int().min(1).default(24),
5584
+ shutdown_launch: boolean2().default(true),
5585
+ auto_select_max: number2().int().min(1).max(10).default(5),
5586
+ auto_select_max_chars: number2().int().min(1e4).default(150000)
5587
+ }).strict();
5588
+ var OmoMemoryPeopleSchema = object({
5589
+ enabled: boolean2().default(true),
5590
+ max_entries: number2().int().min(1).max(100).default(40),
5591
+ max_entry_chars: number2().int().min(50).max(500).default(200)
5592
+ }).strict();
5593
+ var OmoMemorySoulSchema = object({
5594
+ edit_notice: boolean2().default(true)
5595
+ }).strict();
5596
+ var OmoMemoryReflectionTriggerLayerSchema = object({
5597
+ step_count: number2().int().nonnegative().optional(),
5598
+ on_compaction: boolean2().optional()
5599
+ }).strict();
5600
+ var OmoMemoryReflectionLayerSchema = object({
5601
+ enabled: boolean2().optional(),
5602
+ trigger: OmoMemoryReflectionTriggerLayerSchema.optional(),
5603
+ merge: _enum(["auto", "integration"]).optional(),
5604
+ category: string2().min(1).optional(),
5605
+ timeout_minutes: number2().int().positive().optional(),
5606
+ sandbox: _enum(["auto", "required", "off"]).optional()
5607
+ }).strict();
5608
+ var OmoMemorySyncLayerSchema = object({
5609
+ remote: string2().min(1).optional(),
5610
+ enabled: boolean2().optional()
5611
+ }).strict();
5612
+ var OmoMemorySearchLayerSchema = object({
5613
+ enabled: boolean2().optional()
5614
+ }).strict();
5615
+ var OmoMemoryNudgeLayerSchema = object({
5616
+ enabled: boolean2().optional(),
5617
+ every_user_turns: number2().int().min(1).optional()
5618
+ }).strict();
5619
+ var OmoMemoryFactsLayerSchema = object({
5620
+ enabled: boolean2().optional(),
5621
+ debounce_settles: number2().int().min(1).optional()
5622
+ }).strict();
5623
+ var OmoMemoryDreamLayerSchema = object({
5624
+ enabled: boolean2().optional(),
5625
+ idle_minutes: number2().int().min(0).optional(),
5626
+ min_hours_between: number2().int().min(1).optional(),
5627
+ shutdown_launch: boolean2().optional(),
5628
+ auto_select_max: number2().int().min(1).max(10).optional(),
5629
+ auto_select_max_chars: number2().int().min(1e4).optional()
5630
+ }).strict();
5631
+ var OmoMemoryPeopleLayerSchema = object({
5632
+ enabled: boolean2().optional(),
5633
+ max_entries: number2().int().min(1).max(100).optional(),
5634
+ max_entry_chars: number2().int().min(50).max(500).optional()
5635
+ }).strict();
5636
+ var OmoMemorySoulLayerSchema = object({
5637
+ edit_notice: boolean2().optional()
5638
+ }).strict();
5639
+ var OmoMemoryAgentOverridesSchema = object({
5640
+ enabled: boolean2().optional(),
5641
+ agent: string2().min(1).optional(),
5642
+ reflection: OmoMemoryReflectionLayerSchema.optional(),
5643
+ nudge: OmoMemoryNudgeLayerSchema.optional(),
5644
+ facts: OmoMemoryFactsLayerSchema.optional(),
5645
+ dream: OmoMemoryDreamLayerSchema.optional(),
5646
+ people: OmoMemoryPeopleLayerSchema.optional(),
5647
+ soul: OmoMemorySoulLayerSchema.optional(),
5648
+ sync: OmoMemorySyncLayerSchema.optional(),
5649
+ search: OmoMemorySearchLayerSchema.optional(),
5650
+ compile_warn_tokens: number2().int().positive().optional()
5651
+ }).strict();
5652
+ var OmoMemorySettingsSchema = object({
5653
+ enabled: boolean2().default(true),
5654
+ agent: string2().min(1).default("auto"),
5655
+ tool_exposure: _enum(["direct", "search"]).default("direct"),
5656
+ reflection: OmoMemoryReflectionSchema.default({
5657
+ enabled: true,
5658
+ trigger: { step_count: 25, on_compaction: true },
5659
+ merge: "auto",
5660
+ category: "quick",
5661
+ timeout_minutes: 15,
5662
+ sandbox: "auto"
5663
+ }),
5664
+ nudge: OmoMemoryNudgeSchema.default({ enabled: true, every_user_turns: 10 }),
5665
+ facts: OmoMemoryFactsSchema.default({ enabled: true, debounce_settles: 4 }),
5666
+ dream: OmoMemoryDreamSchema.default({
5667
+ enabled: true,
5668
+ idle_minutes: 30,
5669
+ min_hours_between: 24,
5670
+ shutdown_launch: true,
5671
+ auto_select_max: 5,
5672
+ auto_select_max_chars: 150000
5673
+ }),
5674
+ people: OmoMemoryPeopleSchema.default({ enabled: true, max_entries: 40, max_entry_chars: 200 }),
5675
+ soul: OmoMemorySoulSchema.default({ edit_notice: true }),
5676
+ sync: OmoMemorySyncSchema.default({ enabled: true }),
5677
+ search: OmoMemorySearchSchema.default({ enabled: true }),
5678
+ compile_warn_tokens: number2().int().positive().default(30000),
5679
+ agents: record(string2(), OmoMemoryAgentOverridesSchema).default({})
5680
+ }).strict();
5681
+ var OmoMemorySettingsLayerSchema = object({
5682
+ enabled: boolean2().optional(),
5683
+ agent: string2().min(1).optional(),
5684
+ tool_exposure: _enum(["direct", "search"]).optional(),
5685
+ reflection: OmoMemoryReflectionLayerSchema.optional(),
5686
+ nudge: OmoMemoryNudgeLayerSchema.optional(),
5687
+ facts: OmoMemoryFactsLayerSchema.optional(),
5688
+ dream: OmoMemoryDreamLayerSchema.optional(),
5689
+ people: OmoMemoryPeopleLayerSchema.optional(),
5690
+ soul: OmoMemorySoulLayerSchema.optional(),
5691
+ sync: OmoMemorySyncLayerSchema.optional(),
5692
+ search: OmoMemorySearchLayerSchema.optional(),
5693
+ compile_warn_tokens: number2().int().positive().optional(),
5694
+ agents: record(string2(), OmoMemoryAgentOverridesSchema).optional()
5695
+ }).strict();
5696
+
5552
5697
  // ../../omo-config-core/src/schema/model-catalog.ts
5553
5698
  function isRecord4(value) {
5554
5699
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -5566,6 +5711,8 @@ var OmoModelCatalogEntryLayerSchema = preprocess((value) => isRecord4(value) ? n
5566
5711
  var OmoModelCatalogLayerSchema = record(string2(), OmoModelCatalogEntryLayerSchema);
5567
5712
 
5568
5713
  // ../../omo-config-core/src/schema/task.ts
5714
+ import { availableParallelism } from "node:os";
5715
+ var ResidencyMaxChildrenInputSchema = union([number2().int().positive(), literal("unlimited")]);
5569
5716
  var OmoTaskWaitSchema = object({
5570
5717
  min_ms: number2().int().positive().default(5000),
5571
5718
  default_ms: number2().int().positive().default(60000),
@@ -5579,23 +5726,45 @@ var OmoTaskTeamSettingsSchema = object({
5579
5726
  var OmoTaskWarningsSchema = object({
5580
5727
  unavailable_categories: boolean2().default(true)
5581
5728
  }).strict();
5729
+ var OmoTaskDagSettingsSchema = object({
5730
+ max_nodes_per_run: number2().int().positive().default(64),
5731
+ max_runs_per_session: number2().int().positive().default(16),
5732
+ subscriber_ring: number2().int().positive().default(1000),
5733
+ heartbeat_ms: number2().int().positive().default(15000),
5734
+ history_default_limit: number2().int().positive().default(256),
5735
+ history_max_limit: number2().int().positive().default(1000),
5736
+ retention_days: number2().int().positive().default(7),
5737
+ max_prompt_bytes: number2().int().positive().default(262144)
5738
+ }).strict();
5582
5739
  var OmoTaskSettingsSchema = object({
5583
5740
  default_execution_mode: _enum(["in-process", "process"]).default("in-process"),
5584
5741
  default_concurrency: number2().int().positive().default(5),
5585
5742
  provider_concurrency: record(string2(), number2().int().positive()).optional(),
5586
5743
  model_concurrency: record(string2(), number2().int().positive()).optional(),
5587
5744
  max_depth: number2().int().nonnegative().default(1),
5588
- residency_max_children: number2().int().positive().default(8),
5745
+ residency_max_children: ResidencyMaxChildrenInputSchema.default(8),
5589
5746
  ttl_ms: number2().int().positive().default(86400000),
5590
5747
  state_dir: string2().optional(),
5591
5748
  reattach_on_reconcile: boolean2().optional(),
5749
+ resume_children: boolean2().default(true),
5592
5750
  warnings: OmoTaskWarningsSchema.default({ unavailable_categories: true }),
5593
5751
  wait: OmoTaskWaitSchema.default({ min_ms: 5000, default_ms: 60000, max_ms: 600000 }),
5594
5752
  team: OmoTaskTeamSettingsSchema.default({
5595
5753
  max_members: 8,
5596
5754
  max_parallel_members: 4,
5597
5755
  max_wall_clock_minutes: 120
5598
- })
5756
+ }),
5757
+ dag: OmoTaskDagSettingsSchema.optional()
5758
+ }).strict();
5759
+ var OmoTaskDagSettingsLayerSchema = object({
5760
+ max_nodes_per_run: number2().int().positive().optional(),
5761
+ max_runs_per_session: number2().int().positive().optional(),
5762
+ subscriber_ring: number2().int().positive().optional(),
5763
+ heartbeat_ms: number2().int().positive().optional(),
5764
+ history_default_limit: number2().int().positive().optional(),
5765
+ history_max_limit: number2().int().positive().optional(),
5766
+ retention_days: number2().int().positive().optional(),
5767
+ max_prompt_bytes: number2().int().positive().optional()
5599
5768
  }).strict();
5600
5769
  var OmoTaskWaitLayerSchema = object({
5601
5770
  min_ms: number2().int().positive().optional(),
@@ -5616,14 +5785,23 @@ var OmoTaskSettingsLayerSchema = object({
5616
5785
  provider_concurrency: record(string2(), number2().int().positive()).optional(),
5617
5786
  model_concurrency: record(string2(), number2().int().positive()).optional(),
5618
5787
  max_depth: number2().int().nonnegative().optional(),
5619
- residency_max_children: number2().int().positive().optional(),
5788
+ residency_max_children: ResidencyMaxChildrenInputSchema.optional(),
5620
5789
  ttl_ms: number2().int().positive().optional(),
5621
5790
  state_dir: string2().optional(),
5622
5791
  reattach_on_reconcile: boolean2().optional(),
5792
+ resume_children: boolean2().optional(),
5623
5793
  warnings: OmoTaskWarningsLayerSchema.optional(),
5624
5794
  wait: OmoTaskWaitLayerSchema.optional(),
5625
- team: OmoTaskTeamSettingsLayerSchema.optional()
5795
+ team: OmoTaskTeamSettingsLayerSchema.optional(),
5796
+ dag: OmoTaskDagSettingsLayerSchema.optional()
5626
5797
  }).strict();
5798
+ function resolveOmoTaskSettings(input, resolveParallelism = availableParallelism) {
5799
+ const record2 = record(string2(), unknown()).parse(input);
5800
+ return OmoTaskSettingsSchema.parse({
5801
+ ...record2,
5802
+ residency_max_children: record2["residency_max_children"] ?? Math.max(8, resolveParallelism() * 3)
5803
+ });
5804
+ }
5627
5805
 
5628
5806
  // ../../omo-config-core/src/schema/team.ts
5629
5807
  var OmoTeamMemberBaseSchema = object({
@@ -5672,6 +5850,15 @@ var OmoTeamSpecLayerSchema = OmoTeamSpecBaseSchema.partial();
5672
5850
  var OmoTeamsConfigSchema = record(string2(), OmoTeamSpecSchema);
5673
5851
  var OmoTeamsConfigLayerSchema = record(string2(), OmoTeamSpecLayerSchema);
5674
5852
 
5853
+ // ../../omo-config-core/src/schema/telemetry.ts
5854
+ var OmoTelemetrySettingsShape = {
5855
+ enabled: boolean2()
5856
+ };
5857
+ var OmoTelemetrySettingsLayerSchema = object(OmoTelemetrySettingsShape).partial().strict();
5858
+ var OmoTelemetrySettingsSchema = OmoTelemetrySettingsLayerSchema.extend({
5859
+ enabled: boolean2().default(true)
5860
+ }).strict();
5861
+
5675
5862
  // ../../omo-config-core/src/schema/config.ts
5676
5863
  var OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
5677
5864
  var OmoTypedHarnessConfigSchema = object({
@@ -5680,7 +5867,9 @@ var OmoTypedHarnessConfigSchema = object({
5680
5867
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
5681
5868
  task: OmoTaskSettingsLayerSchema.optional(),
5682
5869
  teams: OmoTeamsConfigLayerSchema.optional(),
5683
- models: OmoModelCatalogLayerSchema.optional()
5870
+ models: OmoModelCatalogLayerSchema.optional(),
5871
+ memory: OmoMemorySettingsLayerSchema.optional(),
5872
+ telemetry: OmoTelemetrySettingsLayerSchema.optional()
5684
5873
  }).strict();
5685
5874
  var OmoConfigProfileSchema = object({
5686
5875
  categories: OmoCategoriesConfigSchema.optional(),
@@ -5689,6 +5878,8 @@ var OmoConfigProfileSchema = object({
5689
5878
  task: OmoTaskSettingsLayerSchema.optional(),
5690
5879
  teams: OmoTeamsConfigLayerSchema.optional(),
5691
5880
  models: OmoModelCatalogLayerSchema.optional(),
5881
+ memory: OmoMemorySettingsLayerSchema.optional(),
5882
+ telemetry: OmoTelemetrySettingsLayerSchema.optional(),
5692
5883
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
5693
5884
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
5694
5885
  "[codex]": OmoTypedHarnessConfigSchema.optional()
@@ -5701,6 +5892,8 @@ var OmoConfigSchema = object({
5701
5892
  task: OmoTaskSettingsSchema.optional(),
5702
5893
  teams: OmoTeamsConfigSchema.optional(),
5703
5894
  models: OmoModelCatalogSchema.optional(),
5895
+ memory: OmoMemorySettingsSchema.optional(),
5896
+ telemetry: OmoTelemetrySettingsSchema.optional(),
5704
5897
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
5705
5898
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
5706
5899
  "[codex]": OmoTypedHarnessConfigSchema.optional(),
@@ -5716,6 +5909,8 @@ var OmoConfigLayerSchema = object({
5716
5909
  task: OmoTaskSettingsLayerSchema.optional(),
5717
5910
  teams: OmoTeamsConfigLayerSchema.optional(),
5718
5911
  models: OmoModelCatalogLayerSchema.optional(),
5912
+ memory: OmoMemorySettingsLayerSchema.optional(),
5913
+ telemetry: OmoTelemetrySettingsLayerSchema.optional(),
5719
5914
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
5720
5915
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
5721
5916
  "[codex]": OmoTypedHarnessConfigSchema.optional(),
@@ -7299,7 +7494,7 @@ var DEFAULT_RAW_CONFIG = {
7299
7494
  agents: {},
7300
7495
  categories: {},
7301
7496
  codegraph: OmoCodegraphSettingsSchema.parse({}),
7302
- task: OmoTaskSettingsSchema.parse({}),
7497
+ task: resolveOmoTaskSettings({}),
7303
7498
  teams: {}
7304
7499
  };
7305
7500
  function stripResolutionControlKeys(config2) {
@@ -7640,6 +7835,21 @@ function isPlainObject3(value) {
7640
7835
  return typeof value === "object" && value !== null && !Array.isArray(value) && Object.prototype.toString.call(value) === "[object Object]";
7641
7836
  }
7642
7837
 
7838
+ // ../../omo-config-core/src/migration/backup-move.ts
7839
+ function isCrossDeviceError(error) {
7840
+ return error instanceof Error && Reflect.get(error, "code") === "EXDEV";
7841
+ }
7842
+ function moveMigrationBackup(fileSystem, sourcePath, backupPath) {
7843
+ try {
7844
+ fileSystem.renameSync(sourcePath, backupPath);
7845
+ } catch (error) {
7846
+ if (!isCrossDeviceError(error))
7847
+ throw error;
7848
+ fileSystem.copyFileSync(sourcePath, backupPath);
7849
+ fileSystem.unlinkSync(sourcePath);
7850
+ }
7851
+ }
7852
+
7643
7853
  // ../../omo-config-core/src/migration/commit.ts
7644
7854
  import { basename as basename2, dirname as dirname4, join as join8, resolve as resolve5 } from "node:path";
7645
7855
 
@@ -8152,7 +8362,7 @@ function resumeMigrationJournal(input) {
8152
8362
  if (input.fileSystem.existsSync(move.to)) {
8153
8363
  throw new MigrationTransactionError(`Migration backup path already exists: ${move.to}`);
8154
8364
  }
8155
- input.fileSystem.renameSync(move.from, move.to);
8365
+ moveMigrationBackup(input.fileSystem, move.from, move.to);
8156
8366
  } else if (!input.fileSystem.existsSync(move.to)) {
8157
8367
  throw new MigrationTransactionError(`Migration source and backup are both missing: ${move.from}`);
8158
8368
  }
@@ -8274,7 +8484,7 @@ function executePlan(input) {
8274
8484
  input.renewLock();
8275
8485
  if (fileSystem.existsSync(move.to))
8276
8486
  throw new MigrationTransactionError(`Migration backup path already exists: ${move.to}`);
8277
- fileSystem.renameSync(move.from, move.to);
8487
+ moveMigrationBackup(fileSystem, move.from, move.to);
8278
8488
  input.onBoundary?.("source-moved");
8279
8489
  Object.assign(targetRecorded, { completedMoves: [...targetRecorded.completedMoves, move.from] });
8280
8490
  writeMigrationJournal(targetRecorded, fileSystem, env, input.process, input.clock);