lazycodex-ai 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 (276) hide show
  1. package/README.ja.md +1 -1
  2. package/README.ko.md +1 -1
  3. package/README.md +18 -6
  4. package/README.ru.md +1 -1
  5. package/README.zh-cn.md +1 -1
  6. package/dist/cli/index.js +1888 -807
  7. package/dist/cli/run/on-complete-hook.d.ts +2 -0
  8. package/dist/cli-node/index.js +1888 -807
  9. package/docs/reference/web-terminal-visual-qa.md +1 -1
  10. package/package.json +9 -6
  11. package/packages/lsp-daemon/dist/cli.js +108 -40
  12. package/packages/lsp-daemon/dist/client.js +123 -55
  13. package/packages/lsp-daemon/dist/ensure-daemon.d.ts +1 -0
  14. package/packages/lsp-daemon/dist/ensure-daemon.js +18 -5
  15. package/packages/lsp-daemon/dist/index.js +111 -43
  16. package/packages/lsp-tools-mcp/dist/cli.js +77 -23
  17. package/packages/lsp-tools-mcp/dist/lsp/manager.js +1 -1
  18. package/packages/lsp-tools-mcp/dist/mcp.js +77 -23
  19. package/packages/lsp-tools-mcp/dist/tools.js +77 -23
  20. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  21. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +268 -92
  22. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  23. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  24. package/packages/omo-codex/plugin/components/bootstrap/src/setup.ts +7 -7
  25. package/packages/omo-codex/plugin/components/bootstrap/src/worker.ts +3 -0
  26. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +220 -10
  27. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +220 -10
  28. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  29. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  30. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  31. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  32. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  33. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  34. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  35. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +3 -17
  36. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  37. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +135 -67
  38. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  39. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  40. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  41. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  42. package/packages/omo-codex/plugin/components/rules/test/bundled-rules-priority.test.ts +11 -16
  43. package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +16 -23
  44. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-budget.test.ts +9 -7
  45. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-context.test.ts +0 -6
  46. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-dedup.test.ts +6 -4
  47. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-directive.test.ts +12 -9
  48. package/packages/omo-codex/plugin/components/rules/test/codex-hook.test.ts +28 -37
  49. package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +37 -69
  50. package/packages/omo-codex/plugin/components/rules/test/hook-output.test.ts +2 -3
  51. package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +1 -15
  52. package/packages/omo-codex/plugin/components/start-work-continuation/AGENTS.md +4 -2
  53. package/packages/omo-codex/plugin/components/start-work-continuation/README.md +5 -1
  54. package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +2 -1
  55. package/packages/omo-codex/plugin/components/start-work-continuation/dist/cli.js +18 -0
  56. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  57. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  58. package/packages/omo-codex/plugin/components/start-work-continuation/src/codex-hook.ts +21 -0
  59. package/packages/omo-codex/plugin/components/start-work-continuation/test/cli.test.ts +0 -3
  60. package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +107 -16
  61. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  62. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  63. package/packages/omo-codex/plugin/components/teammode/test/thread-title-hook.test.ts +3 -9
  64. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +24 -12
  65. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +24 -12
  66. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  67. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  68. package/packages/omo-codex/plugin/components/ultrawork/CHANGELOG.md +2 -0
  69. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-code-reviewer.toml +1 -1
  70. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +1 -1
  71. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-qa-executor.toml +1 -1
  72. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-high.toml +1 -1
  73. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-low.toml +1 -1
  74. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-medium.toml +1 -1
  75. package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +2 -2
  76. package/packages/omo-codex/plugin/components/ultrawork/directive.md +9 -2
  77. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  78. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  79. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +9 -2
  80. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +3 -3
  81. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +30 -6
  82. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +2 -1
  83. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +3 -3
  84. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/scripts/scaffold-plan.mjs +1 -1
  85. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +0 -136
  86. package/packages/omo-codex/plugin/components/ultrawork/test/skill-pointer.test.ts +0 -2
  87. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +1 -1
  88. package/packages/omo-codex/plugin/components/ulw-loop/CHANGELOG.md +2 -0
  89. package/packages/omo-codex/plugin/components/ulw-loop/README.md +11 -11
  90. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +9 -2
  91. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.js +1 -1
  92. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +1 -1
  93. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +9 -9
  94. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-steering.js +1 -1
  95. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +66 -66
  96. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +4 -4
  97. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-hook.js +1 -1
  98. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.js +1 -1
  99. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.js +1 -1
  100. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering.js +1 -1
  101. package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +2 -2
  102. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  103. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  104. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +5 -4
  105. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +108 -0
  106. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +23 -25
  107. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-reconciliation.ts +1 -1
  108. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +9 -9
  109. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-steering.ts +1 -1
  110. package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +1 -1
  111. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +4 -4
  112. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +1 -1
  113. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-crud.ts +1 -1
  114. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-io.ts +1 -1
  115. package/packages/omo-codex/plugin/components/ulw-loop/src/steering.ts +1 -1
  116. package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +2 -2
  117. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-continuation.test.ts +0 -1
  118. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-commands.test.ts +2 -2
  119. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +1 -1
  120. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-helpers.test.ts +2 -2
  121. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-steering-kind-guidance.test.ts +1 -1
  122. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +2 -2
  123. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-hook.test.ts +2 -5
  124. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/quality-gate-builder.ts +1 -1
  125. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +7 -40
  126. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-io.test.ts +1 -1
  127. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-roles.test.ts +1 -1
  128. package/packages/omo-codex/plugin/components/ulw-loop/test/steering.test.ts +1 -1
  129. package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +1 -1
  130. package/packages/omo-codex/plugin/components/ulw-loop/test/ultrawork-directive.test.ts +4 -5
  131. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  132. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  133. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  134. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  135. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  136. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  137. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  138. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  139. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  140. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  141. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  142. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  143. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  144. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  145. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  146. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  147. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  148. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  149. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  150. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  151. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  152. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  153. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  154. package/packages/omo-codex/plugin/package-lock.json +20 -20
  155. package/packages/omo-codex/plugin/package.json +1 -1
  156. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +4 -4
  157. package/packages/omo-codex/plugin/skills/ast-grep/SOURCE +1 -1
  158. package/packages/omo-codex/plugin/skills/ast-grep/install.ps1 +2 -2
  159. package/packages/omo-codex/plugin/skills/ast-grep/install.sh +1 -1
  160. package/packages/omo-codex/plugin/skills/ast-grep/references/install.md +2 -2
  161. package/packages/omo-codex/plugin/skills/ast-grep/tests/smoke.sh +1 -1
  162. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +3 -2
  163. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  164. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +4 -4
  165. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  166. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +10 -7
  167. package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +1 -0
  168. package/packages/omo-codex/plugin/skills/frontend/references/design/stylegallery.md +80 -0
  169. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +54 -9
  170. package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
  171. package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +2 -2
  172. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +179 -0
  173. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/__main__.py +8 -1
  174. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/bias_check.py +11 -0
  175. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/fetch_chain.py +90 -52
  176. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/result_schema.py +10 -1
  177. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/surrogate.py +214 -0
  178. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/surrogates.yaml +60 -0
  179. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/package.json +1 -1
  180. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/amp_redirect_stub.html +7 -0
  181. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/search_interstitial.html +19 -0
  182. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/wayback_available.json +1 -0
  183. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/wayback_snapshot.html +1128 -0
  184. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_surrogate.py +252 -0
  185. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_surrogate_validators.py +78 -0
  186. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/validators.py +46 -0
  187. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/waf_detector.py +1 -1
  188. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/waf_profiles.yaml +10 -5
  189. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/agent-reach/social.md +1 -1
  190. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
  191. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/README.md +4 -4
  192. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/cache-archive.md +51 -50
  193. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/fallback.md +1 -1
  194. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/jina.md +8 -2
  195. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/naver.md +1 -1
  196. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/twitter.md +3 -3
  197. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +9 -2
  198. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +5 -4
  199. package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +108 -0
  200. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +23 -25
  201. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +3 -3
  202. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +30 -6
  203. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +2 -1
  204. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +3 -3
  205. package/packages/omo-codex/plugin/skills/ulw-plan/scripts/scaffold-plan.mjs +1 -1
  206. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +15 -10
  207. package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +19 -173
  208. package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +4 -24
  209. package/packages/omo-codex/plugin/test/aggregate-plugin-fixture.mjs +175 -13
  210. package/packages/omo-codex/plugin/test/aggregate.test.mjs +78 -2
  211. package/packages/omo-codex/plugin/test/auto-update-release-notes.test.mjs +19 -33
  212. package/packages/omo-codex/plugin/test/bootstrap-binlinks.test.mjs +12 -12
  213. package/packages/omo-codex/plugin/test/bootstrap-orchestration.test.mjs +36 -4
  214. package/packages/omo-codex/plugin/test/lcx-contribute-bug-fix-template.test.mjs +21 -27
  215. package/packages/omo-codex/plugin/test/scaffold-plan.test.mjs +0 -36
  216. package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +101 -0
  217. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +4 -4
  218. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +1 -119
  219. package/packages/omo-codex/plugin/test/teammode-archive-ambiguity.test.mjs +0 -40
  220. package/packages/omo-codex/plugin/test/teammode-communication.test.mjs +6 -62
  221. package/packages/omo-codex/plugin/test/teammode-thread-links.test.mjs +3 -36
  222. package/packages/omo-codex/plugin/test/teammode-transport.test.mjs +0 -44
  223. package/packages/omo-codex/plugin/test/teammode-worktree.test.mjs +2 -6
  224. package/packages/omo-codex/plugin/test/ultrawork-skill-pointer.test.mjs +0 -3
  225. package/packages/omo-codex/plugin/test/ulw-plan-review-state-contract.test.mjs +0 -3
  226. package/packages/omo-codex/scripts/install-dist/install-local.mjs +170 -78
  227. package/packages/shared-skills/index.mjs +19 -1
  228. package/packages/shared-skills/skills/ast-grep/SOURCE +1 -1
  229. package/packages/shared-skills/skills/ast-grep/install.ps1 +2 -2
  230. package/packages/shared-skills/skills/ast-grep/install.sh +1 -1
  231. package/packages/shared-skills/skills/ast-grep/references/install.md +2 -2
  232. package/packages/shared-skills/skills/ast-grep/tests/smoke.sh +1 -1
  233. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +3 -2
  234. package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  235. package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +4 -4
  236. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  237. package/packages/shared-skills/skills/frontend/SKILL.md +10 -7
  238. package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +1 -0
  239. package/packages/shared-skills/skills/frontend/references/design/stylegallery.md +80 -0
  240. package/packages/shared-skills/skills/start-work/SKILL.md +54 -9
  241. package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
  242. package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +2 -2
  243. package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +179 -0
  244. package/packages/shared-skills/skills/ultimate-browsing/engine/__main__.py +8 -1
  245. package/packages/shared-skills/skills/ultimate-browsing/engine/bias_check.py +11 -0
  246. package/packages/shared-skills/skills/ultimate-browsing/engine/fetch_chain.py +90 -52
  247. package/packages/shared-skills/skills/ultimate-browsing/engine/result_schema.py +10 -1
  248. package/packages/shared-skills/skills/ultimate-browsing/engine/surrogate.py +214 -0
  249. package/packages/shared-skills/skills/ultimate-browsing/engine/surrogates.yaml +60 -0
  250. package/packages/shared-skills/skills/ultimate-browsing/engine/templates/package.json +1 -1
  251. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/fixtures/amp_redirect_stub.html +7 -0
  252. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/fixtures/search_interstitial.html +19 -0
  253. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/fixtures/wayback_available.json +1 -0
  254. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/fixtures/wayback_snapshot.html +1128 -0
  255. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/test_surrogate.py +252 -0
  256. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/test_surrogate_validators.py +78 -0
  257. package/packages/shared-skills/skills/ultimate-browsing/engine/validators.py +46 -0
  258. package/packages/shared-skills/skills/ultimate-browsing/engine/waf_detector.py +1 -1
  259. package/packages/shared-skills/skills/ultimate-browsing/engine/waf_profiles.yaml +10 -5
  260. package/packages/shared-skills/skills/ultimate-browsing/references/agent-reach/social.md +1 -1
  261. package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
  262. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/README.md +4 -4
  263. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/cache-archive.md +51 -50
  264. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/fallback.md +1 -1
  265. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/jina.md +8 -2
  266. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/naver.md +1 -1
  267. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/twitter.md +3 -3
  268. package/packages/shared-skills/skills/ulw-plan/SKILL.md +3 -3
  269. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +30 -6
  270. package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +2 -1
  271. package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +3 -3
  272. package/packages/shared-skills/skills/ulw-plan/scripts/scaffold-plan.mjs +1 -1
  273. package/packages/shared-skills/skills/ulw-research/SKILL.md +15 -10
  274. package/packages/omo-codex/plugin/test/aggregate-skills.test.mjs +0 -92
  275. package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +0 -314
  276. 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);