oh-my-opencode 5.0.0-beta.3 → 5.0.0-beta.31

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 (639) hide show
  1. package/.agents/command/publish.md +44 -16
  2. package/.agents/skills/publish/SKILL.md +44 -16
  3. package/.agents/skills/senpi-qa/SKILL.md +80 -0
  4. package/.agents/skills/senpi-qa/scripts/resolve-evidence-dir.mjs +65 -0
  5. package/.agents/skills/senpi-qa/scripts/resolve-evidence-dir.test.mjs +171 -0
  6. package/.agents/skills/work-with-pr/SKILL.md +37 -23
  7. package/.opencode/command/publish.md +44 -16
  8. package/.opencode/skills/work-with-pr/SKILL.md +37 -23
  9. package/README.ja.md +25 -21
  10. package/README.ko.md +25 -21
  11. package/README.md +38 -23
  12. package/README.ru.md +24 -20
  13. package/README.zh-cn.md +25 -21
  14. package/dist/agents/atlas/agent.d.ts +0 -1
  15. package/dist/agents/sisyphus/grok-4.d.ts +20 -0
  16. package/dist/agents/sisyphus/index.d.ts +2 -0
  17. package/dist/agents/sisyphus-agent-config.d.ts +6 -0
  18. package/dist/agents/sisyphus-agent-factory.d.ts +1 -1
  19. package/dist/agents/sisyphus-runtime-prompt-reconciler.d.ts +15 -4
  20. package/dist/agents/types.d.ts +2 -2
  21. package/dist/cli/config-manager/parse-opencode-config-file.d.ts +2 -1
  22. package/dist/cli/doctor/checks/system-plugin.d.ts +4 -3
  23. package/dist/cli/fallback-lane-policy.d.ts +1 -0
  24. package/dist/cli/index.js +22601 -20302
  25. package/dist/cli/install-codex/install-codex-test-fixtures.d.ts +1 -1
  26. package/dist/cli/run/on-complete-hook.d.ts +2 -0
  27. package/dist/cli/runtime-commands.d.ts +1 -1
  28. package/dist/cli/worktree-sweep/classify.d.ts +16 -0
  29. package/dist/cli/worktree-sweep/format.d.ts +8 -0
  30. package/dist/cli/worktree-sweep/git.d.ts +19 -0
  31. package/dist/cli/worktree-sweep/index.d.ts +7 -0
  32. package/dist/cli/worktree-sweep/options.d.ts +2 -0
  33. package/dist/cli/worktree-sweep/parse-worktree-list.d.ts +8 -0
  34. package/dist/cli/worktree-sweep/sweep.d.ts +2 -0
  35. package/dist/cli/worktree-sweep/types.d.ts +65 -0
  36. package/dist/cli/worktree-sweep/worktree-sweep.d.ts +2 -0
  37. package/dist/cli-node/index.js +22219 -19897
  38. package/dist/config/schema/background-task.d.ts +1 -0
  39. package/dist/config/schema/commands.d.ts +1 -1
  40. package/dist/config/schema/hooks.d.ts +1 -1
  41. package/dist/config/schema/oh-my-opencode-config.d.ts +5 -1
  42. package/dist/config/schema/ulw-execute.d.ts +5 -0
  43. package/dist/config/validate.d.ts +2 -0
  44. package/dist/create-hooks.d.ts +3 -1
  45. package/dist/features/background-agent/constants.d.ts +0 -7
  46. package/dist/features/background-agent/manager.d.ts +2 -1
  47. package/dist/features/background-agent/parent-wake-dispatched-tracker.d.ts +0 -1
  48. package/dist/features/background-agent/subagent-spawn-limits.d.ts +8 -0
  49. package/dist/features/btw-side/btw-command-draft.d.ts +7 -0
  50. package/dist/features/btw-side/context-injector.d.ts +15 -0
  51. package/dist/features/btw-side/index.d.ts +8 -0
  52. package/dist/features/btw-side/metadata.d.ts +15 -0
  53. package/dist/features/btw-side/parent-context-budget.d.ts +9 -0
  54. package/dist/features/btw-side/server-session-registry.d.ts +8 -0
  55. package/dist/features/btw-side/tui-adoption-cache.d.ts +13 -0
  56. package/dist/features/btw-side/tui-adoption-guard.d.ts +5 -0
  57. package/dist/features/btw-side/tui-controller-types.d.ts +68 -0
  58. package/dist/features/btw-side/tui-controller.d.ts +19 -0
  59. package/dist/features/btw-side/tui-escape-return.d.ts +12 -0
  60. package/dist/features/btw-side/tui-keymap.d.ts +17 -0
  61. package/dist/features/btw-side/tui-parent-validator.d.ts +6 -0
  62. package/dist/features/btw-side/tui-picker-options.d.ts +20 -0
  63. package/dist/features/btw-side/tui-picker.d.ts +9 -0
  64. package/dist/features/btw-side/tui-prompt-queue.d.ts +8 -0
  65. package/dist/features/btw-side/tui-session-bridge.d.ts +11 -0
  66. package/dist/features/btw-side/tui-session-catalog.d.ts +35 -0
  67. package/dist/features/btw-side/tui-side-removal.d.ts +11 -0
  68. package/dist/features/btw-side/tui-side-start.d.ts +9 -0
  69. package/dist/features/btw-side/tui-wiring.d.ts +8 -0
  70. package/dist/features/builtin-commands/templates/ulw-execute.d.ts +1 -0
  71. package/dist/features/builtin-commands/types.d.ts +1 -1
  72. package/dist/features/opengateway-provider/index.d.ts +13 -0
  73. package/dist/features/task-toast-manager/manager.d.ts +0 -24
  74. package/dist/features/team-mode/tools/messaging-fallback-wake.d.ts +15 -0
  75. package/dist/hooks/anthropic-context-window-limit-recovery/message-storage-directory.d.ts +0 -3
  76. package/dist/hooks/anthropic-context-window-limit-recovery/state.d.ts +1 -0
  77. package/dist/hooks/anthropic-context-window-limit-recovery/storage/empty-messages.d.ts +0 -1
  78. package/dist/hooks/atlas/atlas-hook.d.ts +1 -0
  79. package/dist/hooks/atlas/atlas-lifecycle-store.d.ts +50 -0
  80. package/dist/hooks/atlas/event-handler.d.ts +1 -0
  81. package/dist/hooks/atlas/final-wave-approval-gate.test-support.d.ts +50 -0
  82. package/dist/hooks/atlas/system-reminder-templates.d.ts +0 -1
  83. package/dist/hooks/atlas/tool-execute-before.d.ts +3 -0
  84. package/dist/hooks/atlas/types.d.ts +1 -0
  85. package/dist/hooks/claude-code-hooks/session-hook-state.d.ts +1 -0
  86. package/dist/hooks/claude-code-hooks/stop.d.ts +2 -0
  87. package/dist/hooks/claude-code-hooks/todo.d.ts +0 -1
  88. package/dist/hooks/claude-code-hooks/transcript.d.ts +2 -0
  89. package/dist/hooks/fsync-skip-warning/index.d.ts +4 -0
  90. package/dist/hooks/hashline-edit-diff-enhancer/hook.d.ts +1 -0
  91. package/dist/hooks/hashline-edit-diff-enhancer/pending-captures.d.ts +13 -0
  92. package/dist/hooks/index.d.ts +1 -1
  93. package/dist/hooks/keyword-detector/hook.d.ts +7 -0
  94. package/dist/hooks/keyword-detector/ultrawork/source-detector.d.ts +0 -1
  95. package/dist/hooks/model-fallback/hook.d.ts +1 -1
  96. package/dist/hooks/prometheus-md-only/agent-resolution.d.ts +2 -2
  97. package/dist/hooks/runtime-fallback/chat-message-handler.d.ts +2 -0
  98. package/dist/hooks/runtime-fallback/retry-model-payload.d.ts +1 -0
  99. package/dist/hooks/runtime-fallback/runtime-model-settings.d.ts +6 -0
  100. package/dist/hooks/runtime-fallback/session-status-handler.d.ts +1 -1
  101. package/dist/hooks/runtime-fallback/types.d.ts +3 -1
  102. package/dist/hooks/sisyphus-junior-notepad/constants.d.ts +1 -1
  103. package/dist/hooks/todo-continuation-enforcer/types.d.ts +1 -0
  104. package/dist/hooks/{start-work → ulw-execute}/context-info-builder.d.ts +1 -1
  105. package/dist/hooks/{start-work → ulw-execute}/index.d.ts +1 -1
  106. package/dist/hooks/ulw-execute/ulw-execute-hook.d.ts +23 -0
  107. package/dist/index.js +12989 -7152
  108. package/dist/oh-my-opencode.schema.json +20 -2
  109. package/dist/plugin/chat-message/types.d.ts +3 -3
  110. package/dist/plugin/chat-message/ulw-execute-message.d.ts +5 -0
  111. package/dist/plugin/event-session-lifecycle.d.ts +1 -0
  112. package/dist/plugin/hooks/create-core-hooks.d.ts +2 -1
  113. package/dist/plugin/hooks/create-session-hooks.d.ts +2 -2
  114. package/dist/plugin/hooks/create-transform-hooks.d.ts +2 -0
  115. package/dist/plugin/messages-transform.d.ts +1 -0
  116. package/dist/plugin-dispose.d.ts +3 -0
  117. package/dist/shared/agent-tool-restrictions.d.ts +0 -1
  118. package/dist/shared/index.d.ts +2 -0
  119. package/dist/shared/legacy-plugin-warning.d.ts +2 -1
  120. package/dist/shared/normalize-sdk-response.d.ts +1 -0
  121. package/dist/shared/plugin-entry-migrator.d.ts +4 -3
  122. package/dist/shared/plugin-entry-shape.d.ts +6 -0
  123. package/dist/shared/runtime-fallback-retry-marker.d.ts +16 -0
  124. package/dist/shared/shell-env.d.ts +1 -1
  125. package/dist/skills/ast-grep/AGENTS.md +51 -0
  126. package/dist/skills/coding-agent-sessions/AGENTS.md +62 -0
  127. package/dist/skills/coding-agent-sessions/SKILL.md +3 -2
  128. package/dist/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  129. package/dist/skills/coding-agent-sessions/references/senpi.md +4 -4
  130. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  131. package/dist/skills/data-scientist/SKILL.md +99 -239
  132. package/dist/skills/data-scientist/references/execution-surfaces.md +91 -0
  133. package/dist/skills/data-scientist/references/placement.md +74 -0
  134. package/dist/skills/data-scientist/references/polars-lane.md +95 -0
  135. package/dist/skills/data-scientist/references/uv-setup.md +1 -1
  136. package/dist/skills/data-scientist/references/visualization.md +64 -0
  137. package/dist/skills/data-scientist/scripts/ensure-js-deps.sh +28 -0
  138. package/dist/skills/data-scientist/scripts/ensure-py-deps.sh +37 -0
  139. package/dist/skills/debugging/SKILL.md +2 -0
  140. package/dist/skills/debugging/references/methodology/00-setup.md +12 -0
  141. package/dist/skills/debugging/references/methodology/02-investigate.md +21 -0
  142. package/dist/skills/debugging/references/runtimes/go.md +15 -1
  143. package/dist/skills/debugging/references/runtimes/native-binary.md +38 -0
  144. package/dist/skills/debugging/references/runtimes/node.md +25 -0
  145. package/dist/skills/debugging/references/runtimes/python.md +13 -0
  146. package/dist/skills/debugging/references/runtimes/rust.md +41 -0
  147. package/dist/skills/debugging/references/scripts/dap.mjs +267 -0
  148. package/dist/skills/debugging/references/scripts/dap.test.ts +86 -0
  149. package/dist/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
  150. package/dist/skills/debugging/references/tools/dap.md +103 -0
  151. package/dist/skills/debugging/references/tools/frida.md +193 -0
  152. package/dist/skills/frontend/SKILL.md +11 -7
  153. package/dist/skills/frontend/references/design/_INDEX.md +1 -0
  154. package/dist/skills/frontend/references/design/print-paged-media.md +76 -0
  155. package/dist/skills/frontend/references/design/stylegallery.md +80 -0
  156. package/dist/skills/frontend/references/designpowers/README.md +1 -1
  157. package/dist/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  158. package/dist/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  159. package/dist/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  160. package/dist/skills/frontend/references/designpowers/orchestration.md +1 -1
  161. package/dist/skills/frontend/references/designpowers/routing.md +5 -5
  162. package/dist/skills/review-work/SKILL.md +3 -3
  163. package/dist/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
  164. package/dist/skills/ultimate-browsing/SKILL.md +2 -0
  165. package/dist/skills/ultimate-browsing/engine/AGENTS.md +179 -0
  166. package/dist/skills/ultimate-browsing/engine/templates/package.json +1 -1
  167. package/dist/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
  168. package/dist/skills/{start-work → ulw-execute}/SKILL.md +9 -8
  169. package/dist/skills/ulw-plan/SKILL.md +6 -6
  170. package/dist/skills/ulw-plan/references/full-workflow.md +31 -7
  171. package/dist/skills/ulw-plan/references/intent-clear.md +2 -1
  172. package/dist/skills/ulw-plan/references/intent-unclear.md +5 -5
  173. package/dist/skills/ulw-research/SKILL.md +4 -2
  174. package/dist/skills/visual-qa/AGENTS.md +58 -0
  175. package/dist/skills/visual-qa/SKILL.md +3 -2
  176. package/dist/tools/delegate-task/builtin-categories.d.ts +1 -0
  177. package/dist/tools/delegate-task/builtin-category-definition.d.ts +1 -0
  178. package/dist/tools/delegate-task/sync-session-cleanup.d.ts +3 -0
  179. package/dist/tools/delegate-task/sync-session-poller.d.ts +1 -0
  180. package/dist/tools/delegate-task/tool-description.d.ts +3 -1
  181. package/dist/tools/delegate-task/types.d.ts +4 -0
  182. package/dist/tui.d.ts +12 -0
  183. package/dist/tui.js +11522 -11501
  184. package/package.json +42 -36
  185. package/packages/git-bash-mcp/dist/cli.js +6 -1
  186. package/packages/git-bash-mcp/package.json +1 -1
  187. package/packages/lsp-core/src/index.ts +1 -0
  188. package/packages/lsp-core/src/lsp/client-diagnostics-concurrency.integration.test.ts +44 -0
  189. package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +0 -28
  190. package/packages/lsp-core/src/lsp/client-wrapper-outside-cwd.test.ts +78 -0
  191. package/packages/lsp-core/src/lsp/client-wrapper.test.ts +163 -13
  192. package/packages/lsp-core/src/lsp/client-wrapper.ts +110 -23
  193. package/packages/lsp-core/src/lsp/client.ts +26 -0
  194. package/packages/lsp-core/src/lsp/connection.ts +16 -0
  195. package/packages/lsp-core/src/lsp/constants.ts +6 -0
  196. package/packages/lsp-core/src/lsp/errors.ts +15 -0
  197. package/packages/lsp-core/src/lsp/format-document.test.ts +143 -0
  198. package/packages/lsp-core/src/lsp/format-document.ts +90 -0
  199. package/packages/lsp-core/src/lsp/manager-lifecycle.test.ts +262 -0
  200. package/packages/lsp-core/src/lsp/manager-max-clients.test.ts +151 -0
  201. package/packages/lsp-core/src/lsp/manager.ts +138 -12
  202. package/packages/lsp-core/src/lsp/outside-context-workspace.ts +33 -0
  203. package/packages/lsp-core/src/lsp/server-definitions.ts +29 -0
  204. package/packages/lsp-core/src/lsp/server-installation.test.ts +376 -0
  205. package/packages/lsp-core/src/lsp/server-installation.ts +200 -27
  206. package/packages/lsp-core/src/lsp/server-resolution-local-binary.test.ts +170 -0
  207. package/packages/lsp-core/src/lsp/server-resolution.ts +18 -5
  208. package/packages/lsp-core/src/lsp/transport.ts +9 -0
  209. package/packages/lsp-core/src/lsp/types.ts +8 -0
  210. package/packages/lsp-core/src/lsp/workspace-edit-adversarial.test.ts +20 -1
  211. package/packages/lsp-core/src/lsp/workspace-markers.ts +18 -0
  212. package/packages/lsp-core/src/mcp.ts +3 -0
  213. package/packages/lsp-core/src/request-context.test.ts +29 -0
  214. package/packages/lsp-core/src/request-context.ts +1 -1
  215. package/packages/lsp-core/src/tool-surface.test.ts +13 -1
  216. package/packages/lsp-core/src/tools/definitions.ts +14 -0
  217. package/packages/lsp-core/src/tools/diagnostics.ts +3 -3
  218. package/packages/lsp-core/src/tools/format.test.ts +56 -0
  219. package/packages/lsp-core/src/tools/format.ts +56 -0
  220. package/packages/lsp-core/src/tools/index.ts +1 -0
  221. package/packages/lsp-core/src/tools/navigation.ts +4 -2
  222. package/packages/lsp-core/src/tools/rename.ts +4 -2
  223. package/packages/lsp-core/src/tools/symbols.ts +1 -1
  224. package/packages/lsp-core/src/tools/types.ts +10 -0
  225. package/packages/lsp-daemon/dist/cli.js +752 -307
  226. package/packages/lsp-daemon/dist/client.d.ts +10 -0
  227. package/packages/lsp-daemon/dist/client.js +712 -264
  228. package/packages/lsp-daemon/dist/daemon-client.d.ts +1 -0
  229. package/packages/lsp-daemon/dist/daemon-client.js +3 -0
  230. package/packages/lsp-daemon/dist/ensure-daemon.js +1 -0
  231. package/packages/lsp-daemon/dist/index.js +716 -273
  232. package/packages/lsp-daemon/dist/proxy.js +3 -0
  233. package/packages/lsp-daemon/dist/version-reap.js +1 -1
  234. package/packages/lsp-daemon/package.json +1 -1
  235. package/packages/lsp-tools-mcp/dist/cli.js +671 -228
  236. package/packages/lsp-tools-mcp/dist/lsp/manager.js +207 -103
  237. package/packages/lsp-tools-mcp/dist/mcp.js +673 -230
  238. package/packages/lsp-tools-mcp/dist/request-context.js +12 -13
  239. package/packages/lsp-tools-mcp/dist/tools.js +677 -238
  240. package/packages/omo-codex/THIRD-PARTY-NOTICES.md +4 -4
  241. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +4 -4
  242. package/packages/omo-codex/plugin/AGENTS.md +47 -0
  243. package/packages/omo-codex/plugin/README.md +1 -1
  244. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +34 -33
  245. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  246. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  247. package/packages/omo-codex/plugin/components/bootstrap/src/hook.ts +1 -0
  248. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +323 -117
  249. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +275 -85
  250. package/packages/omo-codex/plugin/components/codegraph/package.json +4 -4
  251. package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +1 -0
  252. package/packages/omo-codex/plugin/components/codegraph/src/mcp-unavailable.ts +12 -0
  253. package/packages/omo-codex/plugin/components/codegraph/src/session-start-hook-runtime.ts +1 -0
  254. package/packages/omo-codex/plugin/components/codegraph/test/serve-unavailable-idle.test.ts +47 -0
  255. package/packages/omo-codex/plugin/components/comment-checker/AGENTS.md +9 -0
  256. package/packages/omo-codex/plugin/components/comment-checker/biome.json +2 -2
  257. package/packages/omo-codex/plugin/components/comment-checker/dist/cli.js +2 -1
  258. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  259. package/packages/omo-codex/plugin/components/comment-checker/package.json +5 -5
  260. package/packages/omo-codex/plugin/components/comment-checker/src/apply-patch.ts +2 -8
  261. package/packages/omo-codex/plugin/components/comment-checker/src/core.ts +1 -2
  262. package/packages/omo-codex/plugin/components/comment-checker/src/request-extractor.ts +1 -1
  263. package/packages/omo-codex/plugin/components/comment-checker/src/runner.ts +1 -0
  264. package/packages/omo-codex/plugin/components/git-bash/AGENTS.md +1 -1
  265. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  266. package/packages/omo-codex/plugin/components/git-bash/package.json +3 -4
  267. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/biome.json +2 -2
  268. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js +1 -5
  269. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.js +1 -5
  270. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  271. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +5 -5
  272. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/codex-hook.ts +1 -5
  273. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +4 -21
  274. package/packages/omo-codex/plugin/components/lsp/AGENTS.md +30 -15
  275. package/packages/omo-codex/plugin/components/lsp/biome.json +2 -2
  276. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +4 -4
  277. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +702 -278
  278. package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.js +1 -1
  279. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  280. package/packages/omo-codex/plugin/components/lsp/package.json +5 -5
  281. package/packages/omo-codex/plugin/components/lsp/src/cli.ts +1 -1
  282. package/packages/omo-codex/plugin/components/lsp/src/codex-hook.ts +1 -1
  283. package/packages/omo-codex/plugin/components/lsp/src/daemon-cli-path.ts +1 -5
  284. package/packages/omo-codex/plugin/components/lsp/test/codex-hook-unavailable.test.ts +6 -7
  285. package/packages/omo-codex/plugin/components/lsp/test/codex-hook.test.ts +1 -2
  286. package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +11 -1
  287. package/packages/omo-codex/plugin/components/rules/AGENTS.md +12 -0
  288. package/packages/omo-codex/plugin/components/rules/biome.json +2 -2
  289. package/packages/omo-codex/plugin/components/rules/dist/cli.js +60 -45
  290. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  291. package/packages/omo-codex/plugin/components/rules/package.json +7 -7
  292. package/packages/omo-codex/plugin/components/rules/src/config.ts +1 -2
  293. package/packages/omo-codex/plugin/components/rules/src/persistent-cache.ts +1 -2
  294. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +9 -5
  295. package/packages/omo-codex/plugin/components/rules/src/rules-engine-factory.ts +1 -4
  296. package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +4 -9
  297. package/packages/omo-codex/plugin/components/rules/test/bundled-rules-priority.test.ts +11 -16
  298. package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +17 -25
  299. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-budget.test.ts +9 -7
  300. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-context.test.ts +0 -6
  301. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-dedup.test.ts +6 -4
  302. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-directive.test.ts +12 -9
  303. package/packages/omo-codex/plugin/components/rules/test/codex-hook.test.ts +28 -37
  304. package/packages/omo-codex/plugin/components/rules/test/dynamic-target-fingerprints.test.ts +1 -2
  305. package/packages/omo-codex/plugin/components/rules/test/engine.test.ts +7 -4
  306. package/packages/omo-codex/plugin/components/rules/test/finder.test.ts +2 -3
  307. package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +39 -72
  308. package/packages/omo-codex/plugin/components/rules/test/hephaestus-model-variant.test.ts +1 -2
  309. package/packages/omo-codex/plugin/components/rules/test/hook-output.test.ts +2 -3
  310. package/packages/omo-codex/plugin/components/rules/test/matcher.test.ts +2 -3
  311. package/packages/omo-codex/plugin/components/rules/test/package-smoke.test.ts +1 -1
  312. package/packages/omo-codex/plugin/components/rules/test/parser.test.ts +1 -2
  313. package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +5 -6
  314. package/packages/omo-codex/plugin/components/rules/test/rules-engine-consumption.test.ts +3 -6
  315. package/packages/omo-codex/plugin/components/rules/test/scanner.test.ts +1 -2
  316. package/packages/omo-codex/plugin/components/rules/test/sources.test.ts +2 -5
  317. package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +2 -17
  318. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  319. package/packages/omo-codex/plugin/components/teammode/package.json +5 -5
  320. package/packages/omo-codex/plugin/components/teammode/test/thread-title-hook.test.ts +3 -9
  321. package/packages/omo-codex/plugin/components/telemetry/AGENTS.md +8 -0
  322. package/packages/omo-codex/plugin/components/telemetry/biome.json +2 -2
  323. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +2463 -437
  324. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +2467 -441
  325. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  326. package/packages/omo-codex/plugin/components/telemetry/package.json +5 -5
  327. package/packages/omo-codex/plugin/components/telemetry/src/codex-hook.ts +1 -4
  328. package/packages/omo-codex/plugin/components/telemetry/src/posthog.ts +4 -14
  329. package/packages/omo-codex/plugin/components/telemetry/src/product-identity.ts +1 -1
  330. package/packages/omo-codex/plugin/components/telemetry/test/diagnostics.test.ts +2 -5
  331. package/packages/omo-codex/plugin/components/ultrawork/AGENTS.md +5 -0
  332. package/packages/omo-codex/plugin/components/ultrawork/biome.json +2 -2
  333. package/packages/omo-codex/plugin/components/ultrawork/directive.md +13 -1
  334. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  335. package/packages/omo-codex/plugin/components/ultrawork/package.json +5 -5
  336. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +13 -1
  337. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +6 -6
  338. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +31 -7
  339. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +2 -1
  340. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +5 -5
  341. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-trigger-policy.test.ts +9 -1
  342. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +0 -136
  343. package/packages/omo-codex/plugin/components/ultrawork/test/skill-pointer.test.ts +0 -2
  344. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/AGENTS.md +5 -4
  345. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/NOTICE +1 -1
  346. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/README.md +5 -5
  347. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/biome.json +2 -2
  348. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/directive.md +6 -6
  349. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/dist/cli.js +12 -12
  350. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +28 -0
  351. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/package.json +12 -12
  352. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/boulder-reader.ts +1 -1
  353. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/cli.ts +1 -1
  354. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/codex-hook.ts +3 -3
  355. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/directive.ts +1 -1
  356. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/index.ts +1 -1
  357. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/boulder-reader.test.ts +3 -3
  358. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/cli.test.ts +1 -4
  359. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/codex-hook.test.ts +8 -22
  360. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +17 -0
  361. package/packages/omo-codex/plugin/components/ulw-loop/CHANGELOG.md +1 -1
  362. package/packages/omo-codex/plugin/components/ulw-loop/biome.json +2 -2
  363. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +13 -1
  364. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +2 -0
  365. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-commands.js +5 -1
  366. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +2 -1
  367. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +11 -1
  368. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +124 -68
  369. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.d.ts +2 -0
  370. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +9 -6
  371. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.js +1 -1
  372. package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.js +1 -1
  373. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.d.ts +4 -2
  374. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.js +7 -10
  375. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.js +3 -2
  376. package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +3 -3
  377. package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.d.ts +15 -0
  378. package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.js +50 -0
  379. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  380. package/packages/omo-codex/plugin/components/ulw-loop/package.json +5 -5
  381. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +3 -2
  382. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +108 -0
  383. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +1 -0
  384. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +2 -0
  385. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +5 -1
  386. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +13 -1
  387. package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +3 -5
  388. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +16 -5
  389. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-snapshot.ts +3 -1
  390. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +3 -1
  391. package/packages/omo-codex/plugin/components/ulw-loop/src/paths.ts +1 -1
  392. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate.ts +11 -14
  393. package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-guard.ts +3 -2
  394. package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +3 -3
  395. package/packages/omo-codex/plugin/components/ulw-loop/src/surface.ts +73 -0
  396. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-continuation.test.ts +0 -1
  397. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-final.test.ts +44 -1
  398. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-create-goals.test.ts +25 -0
  399. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +26 -2
  400. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +27 -2
  401. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-snapshot.test.ts +18 -0
  402. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-hook.test.ts +0 -3
  403. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/quality-gate-builder.ts +7 -3
  404. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +5 -37
  405. package/packages/omo-codex/plugin/components/ulw-loop/test/paths.test.ts +9 -0
  406. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-roles.test.ts +45 -2
  407. package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard.test.ts +20 -0
  408. package/packages/omo-codex/plugin/components/ulw-loop/test/steering.test.ts +8 -5
  409. package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +1 -1
  410. package/packages/omo-codex/plugin/components/ulw-loop/test/surface.test.ts +74 -0
  411. package/packages/omo-codex/plugin/components/ulw-loop/test/ultrawork-directive.test.ts +4 -5
  412. package/packages/omo-codex/plugin/components/ulw-loop/vitest.config.ts +1 -0
  413. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  414. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  415. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  416. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  417. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  418. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  419. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  420. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  421. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  422. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  423. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  424. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  425. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  426. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  427. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  428. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  429. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +17 -0
  430. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  431. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-ulw-execute-continuation.json +17 -0
  432. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  433. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  434. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  435. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  436. package/packages/omo-codex/plugin/model-catalog.json +3 -3
  437. package/packages/omo-codex/plugin/package-lock.json +681 -395
  438. package/packages/omo-codex/plugin/package.json +2 -2
  439. package/packages/omo-codex/plugin/scripts/AGENTS.md +40 -0
  440. package/packages/omo-codex/plugin/scripts/auto-update-plan.mjs +1 -1
  441. package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +3 -3
  442. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +11 -11
  443. package/packages/omo-codex/plugin/shared/package.json +3 -4
  444. package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +51 -0
  445. package/packages/omo-codex/plugin/skills/coding-agent-sessions/AGENTS.md +62 -0
  446. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +3 -2
  447. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  448. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +4 -4
  449. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  450. package/packages/omo-codex/plugin/skills/data-scientist/SKILL.md +99 -239
  451. package/packages/omo-codex/plugin/skills/data-scientist/references/execution-surfaces.md +91 -0
  452. package/packages/omo-codex/plugin/skills/data-scientist/references/placement.md +74 -0
  453. package/packages/omo-codex/plugin/skills/data-scientist/references/polars-lane.md +95 -0
  454. package/packages/omo-codex/plugin/skills/data-scientist/references/uv-setup.md +1 -1
  455. package/packages/omo-codex/plugin/skills/data-scientist/references/visualization.md +64 -0
  456. package/packages/omo-codex/plugin/skills/data-scientist/scripts/ensure-js-deps.sh +28 -0
  457. package/packages/omo-codex/plugin/skills/data-scientist/scripts/ensure-py-deps.sh +37 -0
  458. package/packages/omo-codex/plugin/skills/debugging/SKILL.md +2 -0
  459. package/packages/omo-codex/plugin/skills/debugging/references/methodology/00-setup.md +12 -0
  460. package/packages/omo-codex/plugin/skills/debugging/references/methodology/02-investigate.md +21 -0
  461. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/go.md +15 -1
  462. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/native-binary.md +38 -0
  463. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/node.md +25 -0
  464. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/python.md +13 -0
  465. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/rust.md +41 -0
  466. package/packages/omo-codex/plugin/skills/debugging/references/scripts/dap.mjs +267 -0
  467. package/packages/omo-codex/plugin/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
  468. package/packages/omo-codex/plugin/skills/debugging/references/tools/dap.md +103 -0
  469. package/packages/omo-codex/plugin/skills/debugging/references/tools/frida.md +193 -0
  470. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +11 -7
  471. package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +1 -0
  472. package/packages/omo-codex/plugin/skills/frontend/references/design/print-paged-media.md +76 -0
  473. package/packages/omo-codex/plugin/skills/frontend/references/design/stylegallery.md +80 -0
  474. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/README.md +1 -1
  475. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  476. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  477. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  478. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/orchestration.md +1 -1
  479. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/routing.md +5 -5
  480. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +4 -4
  481. package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
  482. package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +2 -0
  483. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +179 -0
  484. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/package.json +1 -1
  485. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
  486. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +13 -1
  487. package/packages/omo-codex/plugin/skills/{start-work → ulw-execute}/SKILL.md +12 -11
  488. package/packages/omo-codex/plugin/skills/ulw-execute/agents/openai.yaml +2 -0
  489. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +3 -2
  490. package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +108 -0
  491. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +1 -0
  492. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +6 -6
  493. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +31 -7
  494. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +2 -1
  495. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +5 -5
  496. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +4 -2
  497. package/packages/omo-codex/plugin/skills/visual-qa/AGENTS.md +58 -0
  498. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +3 -2
  499. package/packages/omo-codex/plugin/test/AGENTS.md +47 -0
  500. package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +19 -173
  501. package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +8 -28
  502. package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +1 -1
  503. package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +1 -1
  504. package/packages/omo-codex/plugin/test/aggregate-plugin-fixture.mjs +175 -13
  505. package/packages/omo-codex/plugin/test/aggregate.test.mjs +78 -2
  506. package/packages/omo-codex/plugin/test/auto-update-release-notes.test.mjs +19 -33
  507. package/packages/omo-codex/plugin/test/auto-update.test.mjs +2 -2
  508. package/packages/omo-codex/plugin/test/component-bin-names.test.mjs +2 -2
  509. package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +1 -1
  510. package/packages/omo-codex/plugin/test/component-hook-contract-cases.mjs +2 -2
  511. package/packages/omo-codex/plugin/test/hook-status-message.test.mjs +4 -4
  512. package/packages/omo-codex/plugin/test/lcx-contribute-bug-fix-template.test.mjs +21 -27
  513. package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +8 -8
  514. package/packages/omo-codex/plugin/test/scaffold-plan.test.mjs +0 -36
  515. package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +101 -0
  516. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +12 -12
  517. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +1 -119
  518. package/packages/omo-codex/plugin/test/teammode-archive-ambiguity.test.mjs +0 -40
  519. package/packages/omo-codex/plugin/test/teammode-communication.test.mjs +6 -62
  520. package/packages/omo-codex/plugin/test/teammode-thread-links.test.mjs +3 -36
  521. package/packages/omo-codex/plugin/test/teammode-transport.test.mjs +0 -44
  522. package/packages/omo-codex/plugin/test/teammode-worktree.test.mjs +2 -6
  523. package/packages/omo-codex/plugin/test/ultrawork-skill-pointer.test.mjs +0 -3
  524. package/packages/omo-codex/plugin/test/ulw-plan-review-state-contract.test.mjs +0 -3
  525. package/packages/omo-codex/scripts/AGENTS.md +36 -0
  526. package/packages/omo-codex/scripts/install-config-reasoning.test.mjs +2 -2
  527. package/packages/omo-codex/scripts/install-dist/install-local.mjs +2637 -549
  528. package/packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs +7 -2
  529. package/packages/shared-skills/skills/ast-grep/AGENTS.md +51 -0
  530. package/packages/shared-skills/skills/coding-agent-sessions/AGENTS.md +62 -0
  531. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +3 -2
  532. package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  533. package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +4 -4
  534. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  535. package/packages/shared-skills/skills/data-scientist/SKILL.md +99 -239
  536. package/packages/shared-skills/skills/data-scientist/references/execution-surfaces.md +91 -0
  537. package/packages/shared-skills/skills/data-scientist/references/placement.md +74 -0
  538. package/packages/shared-skills/skills/data-scientist/references/polars-lane.md +95 -0
  539. package/packages/shared-skills/skills/data-scientist/references/uv-setup.md +1 -1
  540. package/packages/shared-skills/skills/data-scientist/references/visualization.md +64 -0
  541. package/packages/shared-skills/skills/data-scientist/scripts/ensure-js-deps.sh +28 -0
  542. package/packages/shared-skills/skills/data-scientist/scripts/ensure-py-deps.sh +37 -0
  543. package/packages/shared-skills/skills/debugging/SKILL.md +2 -0
  544. package/packages/shared-skills/skills/debugging/references/methodology/00-setup.md +12 -0
  545. package/packages/shared-skills/skills/debugging/references/methodology/02-investigate.md +21 -0
  546. package/packages/shared-skills/skills/debugging/references/runtimes/go.md +15 -1
  547. package/packages/shared-skills/skills/debugging/references/runtimes/native-binary.md +38 -0
  548. package/packages/shared-skills/skills/debugging/references/runtimes/node.md +25 -0
  549. package/packages/shared-skills/skills/debugging/references/runtimes/python.md +13 -0
  550. package/packages/shared-skills/skills/debugging/references/runtimes/rust.md +41 -0
  551. package/packages/shared-skills/skills/debugging/references/scripts/dap.mjs +267 -0
  552. package/packages/shared-skills/skills/debugging/references/scripts/dap.test.ts +86 -0
  553. package/packages/shared-skills/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
  554. package/packages/shared-skills/skills/debugging/references/tools/dap.md +103 -0
  555. package/packages/shared-skills/skills/debugging/references/tools/frida.md +193 -0
  556. package/packages/shared-skills/skills/frontend/SKILL.md +11 -7
  557. package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +1 -0
  558. package/packages/shared-skills/skills/frontend/references/design/print-paged-media.md +76 -0
  559. package/packages/shared-skills/skills/frontend/references/design/stylegallery.md +80 -0
  560. package/packages/shared-skills/skills/frontend/references/designpowers/README.md +1 -1
  561. package/packages/shared-skills/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  562. package/packages/shared-skills/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  563. package/packages/shared-skills/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  564. package/packages/shared-skills/skills/frontend/references/designpowers/orchestration.md +1 -1
  565. package/packages/shared-skills/skills/frontend/references/designpowers/routing.md +5 -5
  566. package/packages/shared-skills/skills/review-work/SKILL.md +3 -3
  567. package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
  568. package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +2 -0
  569. package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +179 -0
  570. package/packages/shared-skills/skills/ultimate-browsing/engine/templates/package.json +1 -1
  571. package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
  572. package/packages/shared-skills/skills/{start-work → ulw-execute}/SKILL.md +9 -8
  573. package/packages/shared-skills/skills/ulw-plan/SKILL.md +6 -6
  574. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +31 -7
  575. package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +2 -1
  576. package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +5 -5
  577. package/packages/shared-skills/skills/ulw-research/SKILL.md +4 -2
  578. package/packages/shared-skills/skills/visual-qa/AGENTS.md +58 -0
  579. package/packages/shared-skills/skills/visual-qa/SKILL.md +3 -2
  580. package/script/qa/web-terminal-visual-qa.mjs +2 -0
  581. package/script/qa/xterm-live-terminal.mjs +18 -2
  582. package/dist/config/schema/start-work.d.ts +0 -5
  583. package/dist/features/builtin-commands/templates/start-work.d.ts +0 -1
  584. package/dist/hooks/ralph-loop/completion-promise-detector-test-input.d.ts +0 -11
  585. package/dist/hooks/ralph-loop/loop-session-recovery.d.ts +0 -7
  586. package/dist/hooks/start-work/start-work-hook.d.ts +0 -23
  587. package/dist/plugin/chat-message/start-work-message.d.ts +0 -5
  588. package/dist/skills/data-scientist/references/common-scenarios.md +0 -176
  589. package/dist/skills/data-scientist/references/execution-templates.md +0 -197
  590. package/dist/skills/data-scientist/references/integration-patterns.md +0 -153
  591. package/dist/skills/data-scientist/references/performance-benchmarks.md +0 -37
  592. package/dist/tools/call-omo-agent/background-agent-executor.d.ts +0 -5
  593. package/dist/tools/call-omo-agent/message-storage-directory.d.ts +0 -1
  594. package/dist/tools/delegate-task/model-string-parser.d.ts +0 -1
  595. package/packages/lsp-tools-mcp/dist/lsp/cleanup-errors.d.ts +0 -1
  596. package/packages/lsp-tools-mcp/dist/lsp/constants.d.ts +0 -1
  597. package/packages/lsp-tools-mcp/dist/lsp/language-mappings.d.ts +0 -1
  598. package/packages/lsp-tools-mcp/dist/lsp/process-signal-cleanup.d.ts +0 -1
  599. package/packages/lsp-tools-mcp/dist/missing-dependency-result.d.ts +0 -1
  600. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +0 -28
  601. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +0 -17
  602. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +0 -17
  603. package/packages/omo-codex/plugin/skills/data-scientist/references/common-scenarios.md +0 -176
  604. package/packages/omo-codex/plugin/skills/data-scientist/references/execution-templates.md +0 -197
  605. package/packages/omo-codex/plugin/skills/data-scientist/references/integration-patterns.md +0 -153
  606. package/packages/omo-codex/plugin/skills/data-scientist/references/performance-benchmarks.md +0 -37
  607. package/packages/omo-codex/plugin/skills/start-work/agents/openai.yaml +0 -2
  608. package/packages/omo-codex/plugin/test/aggregate-skills.test.mjs +0 -92
  609. package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +0 -314
  610. package/packages/omo-codex/plugin/test/ulw-plan-scope-contract.test.mjs +0 -24
  611. package/packages/shared-skills/skills/data-scientist/references/common-scenarios.md +0 -176
  612. package/packages/shared-skills/skills/data-scientist/references/execution-templates.md +0 -197
  613. package/packages/shared-skills/skills/data-scientist/references/integration-patterns.md +0 -153
  614. package/packages/shared-skills/skills/data-scientist/references/performance-benchmarks.md +0 -37
  615. /package/dist/hooks/{start-work → ulw-execute}/context-info-formatters.d.ts +0 -0
  616. /package/dist/hooks/{start-work → ulw-execute}/explicit-plan-context.d.ts +0 -0
  617. /package/dist/hooks/{start-work → ulw-execute}/notepad-scaffold.d.ts +0 -0
  618. /package/dist/hooks/{start-work → ulw-execute}/parse-user-request.d.ts +0 -0
  619. /package/dist/hooks/{start-work → ulw-execute}/plan-discovery-context.d.ts +0 -0
  620. /package/dist/hooks/{start-work → ulw-execute}/plan-selection.d.ts +0 -0
  621. /package/dist/hooks/{start-work → ulw-execute}/session-plan-affinity.d.ts +0 -0
  622. /package/dist/hooks/{start-work → ulw-execute}/work-initializer.d.ts +0 -0
  623. /package/dist/hooks/{start-work → ulw-execute}/worktree-block.d.ts +0 -0
  624. /package/dist/hooks/{start-work → ulw-execute}/worktree-detector.d.ts +0 -0
  625. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/.gitattributes +0 -0
  626. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/CHANGELOG.md +0 -0
  627. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/LICENSE +0 -0
  628. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/plan-checklist.ts +0 -0
  629. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/types.ts +0 -0
  630. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-completed.json +0 -0
  631. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-mixed-platforms.json +0 -0
  632. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-single-codex-work.json +0 -0
  633. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-all-done.md +0 -0
  634. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-scaffold.md +0 -0
  635. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-with-nested-checkboxes.md +0 -0
  636. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-with-unchecked.md +0 -0
  637. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/tsconfig.build.json +0 -0
  638. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/tsconfig.json +0 -0
  639. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/vitest.config.ts +0 -0
@@ -483,69 +483,69 @@ function config(newConfig) {
483
483
  // ../../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/util.js
484
484
  var exports_util = {};
485
485
  __export(exports_util, {
486
- unwrapMessage: () => unwrapMessage,
487
- uint8ArrayToHex: () => uint8ArrayToHex,
488
- uint8ArrayToBase64url: () => uint8ArrayToBase64url,
489
- uint8ArrayToBase64: () => uint8ArrayToBase64,
490
- stringifyPrimitive: () => stringifyPrimitive,
491
- slugify: () => slugify,
492
- shallowClone: () => shallowClone,
493
- safeExtend: () => safeExtend,
494
- required: () => required,
495
- randomString: () => randomString,
496
- propertyKeyTypes: () => propertyKeyTypes,
497
- promiseAllObject: () => promiseAllObject,
498
- primitiveTypes: () => primitiveTypes,
499
- prefixIssues: () => prefixIssues,
500
- pick: () => pick,
501
- partial: () => partial,
502
- parsedType: () => parsedType,
503
- optionalKeys: () => optionalKeys,
504
- omit: () => omit,
505
- objectClone: () => objectClone,
506
- numKeys: () => numKeys,
507
- nullish: () => nullish,
508
- normalizeParams: () => normalizeParams,
509
- mergeDefs: () => mergeDefs,
510
- merge: () => merge,
511
- jsonStringifyReplacer: () => jsonStringifyReplacer,
512
- joinValues: () => joinValues,
513
- issue: () => issue,
514
- isPlainObject: () => isPlainObject,
515
- isObject: () => isObject,
516
- hexToUint8Array: () => hexToUint8Array,
517
- getSizableOrigin: () => getSizableOrigin,
518
- getParsedType: () => getParsedType,
519
- getLengthableOrigin: () => getLengthableOrigin,
520
- getEnumValues: () => getEnumValues,
521
- getElementAtPath: () => getElementAtPath,
522
- floatSafeRemainder: () => floatSafeRemainder,
523
- finalizeIssue: () => finalizeIssue,
524
- extend: () => extend,
525
- explicitlyAborted: () => explicitlyAborted,
526
- escapeRegex: () => escapeRegex,
527
- esc: () => esc,
528
- defineLazy: () => defineLazy,
529
- createTransparentProxy: () => createTransparentProxy,
530
- cloneDef: () => cloneDef,
531
- clone: () => clone,
532
- cleanRegex: () => cleanRegex,
533
- cleanEnum: () => cleanEnum,
534
- captureStackTrace: () => captureStackTrace,
535
- cached: () => cached,
536
- base64urlToUint8Array: () => base64urlToUint8Array,
537
- base64ToUint8Array: () => base64ToUint8Array,
538
- assignProp: () => assignProp,
539
- assertNotEqual: () => assertNotEqual,
540
- assertNever: () => assertNever,
541
- assertIs: () => assertIs,
542
- assertEqual: () => assertEqual,
543
- assert: () => assert,
544
- allowsEval: () => allowsEval,
545
- aborted: () => aborted,
546
- NUMBER_FORMAT_RANGES: () => NUMBER_FORMAT_RANGES,
486
+ BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES,
547
487
  Class: () => Class,
548
- BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES
488
+ NUMBER_FORMAT_RANGES: () => NUMBER_FORMAT_RANGES,
489
+ aborted: () => aborted,
490
+ allowsEval: () => allowsEval,
491
+ assert: () => assert,
492
+ assertEqual: () => assertEqual,
493
+ assertIs: () => assertIs,
494
+ assertNever: () => assertNever,
495
+ assertNotEqual: () => assertNotEqual,
496
+ assignProp: () => assignProp,
497
+ base64ToUint8Array: () => base64ToUint8Array,
498
+ base64urlToUint8Array: () => base64urlToUint8Array,
499
+ cached: () => cached,
500
+ captureStackTrace: () => captureStackTrace,
501
+ cleanEnum: () => cleanEnum,
502
+ cleanRegex: () => cleanRegex,
503
+ clone: () => clone,
504
+ cloneDef: () => cloneDef,
505
+ createTransparentProxy: () => createTransparentProxy,
506
+ defineLazy: () => defineLazy,
507
+ esc: () => esc,
508
+ escapeRegex: () => escapeRegex,
509
+ explicitlyAborted: () => explicitlyAborted,
510
+ extend: () => extend,
511
+ finalizeIssue: () => finalizeIssue,
512
+ floatSafeRemainder: () => floatSafeRemainder,
513
+ getElementAtPath: () => getElementAtPath,
514
+ getEnumValues: () => getEnumValues,
515
+ getLengthableOrigin: () => getLengthableOrigin,
516
+ getParsedType: () => getParsedType,
517
+ getSizableOrigin: () => getSizableOrigin,
518
+ hexToUint8Array: () => hexToUint8Array,
519
+ isObject: () => isObject,
520
+ isPlainObject: () => isPlainObject,
521
+ issue: () => issue,
522
+ joinValues: () => joinValues,
523
+ jsonStringifyReplacer: () => jsonStringifyReplacer,
524
+ merge: () => merge,
525
+ mergeDefs: () => mergeDefs,
526
+ normalizeParams: () => normalizeParams,
527
+ nullish: () => nullish,
528
+ numKeys: () => numKeys,
529
+ objectClone: () => objectClone,
530
+ omit: () => omit,
531
+ optionalKeys: () => optionalKeys,
532
+ parsedType: () => parsedType,
533
+ partial: () => partial,
534
+ pick: () => pick,
535
+ prefixIssues: () => prefixIssues,
536
+ primitiveTypes: () => primitiveTypes,
537
+ promiseAllObject: () => promiseAllObject,
538
+ propertyKeyTypes: () => propertyKeyTypes,
539
+ randomString: () => randomString,
540
+ required: () => required,
541
+ safeExtend: () => safeExtend,
542
+ shallowClone: () => shallowClone,
543
+ slugify: () => slugify,
544
+ stringifyPrimitive: () => stringifyPrimitive,
545
+ uint8ArrayToBase64: () => uint8ArrayToBase64,
546
+ uint8ArrayToBase64url: () => uint8ArrayToBase64url,
547
+ uint8ArrayToHex: () => uint8ArrayToHex,
548
+ unwrapMessage: () => unwrapMessage
549
549
  });
550
550
  function assertEqual(val) {
551
551
  return val;
@@ -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,13 +5549,25 @@ var OmoCodegraphSettingsSchema = OmoCodegraphSettingsLayerSchema.extend({
5549
5549
  telemetry: boolean2().default(false)
5550
5550
  }).strict();
5551
5551
 
5552
+ // ../../omo-config-core/src/schema/git-master.ts
5553
+ var OmoGitMasterSettingsShape = {
5554
+ commit_footer: union([boolean2(), string2()]),
5555
+ include_co_authored_by: boolean2()
5556
+ };
5557
+ var OmoGitMasterSettingsLayerSchema = object(OmoGitMasterSettingsShape).partial().strict();
5558
+ var OmoGitMasterSettingsSchema = OmoGitMasterSettingsLayerSchema.extend({
5559
+ commit_footer: union([boolean2(), string2()]).default(true),
5560
+ include_co_authored_by: boolean2().default(true)
5561
+ }).strict();
5562
+
5552
5563
  // ../../omo-config-core/src/schema/memory.ts
5553
5564
  var OmoMemoryReflectionTriggerSchema = object({
5554
- step_count: number2().int().nonnegative().default(0),
5565
+ step_count: number2().int().nonnegative().default(25),
5555
5566
  on_compaction: boolean2().default(true)
5556
5567
  }).strict();
5557
5568
  var OmoMemoryReflectionSchema = object({
5558
- trigger: OmoMemoryReflectionTriggerSchema.default({ step_count: 0, on_compaction: true }),
5569
+ enabled: boolean2().default(true),
5570
+ trigger: OmoMemoryReflectionTriggerSchema.default({ step_count: 25, on_compaction: true }),
5559
5571
  merge: _enum(["auto", "integration"]).default("auto"),
5560
5572
  category: string2().min(1).default("quick"),
5561
5573
  timeout_minutes: number2().int().positive().default(15),
@@ -5568,11 +5580,47 @@ var OmoMemorySyncSchema = object({
5568
5580
  var OmoMemorySearchSchema = object({
5569
5581
  enabled: boolean2().default(true)
5570
5582
  }).strict();
5583
+ var OmoMemoryRecallSchema = object({
5584
+ enabled: boolean2().default(true),
5585
+ max_items: number2().int().min(1).max(5).default(2),
5586
+ budget_tokens: number2().int().positive().default(600),
5587
+ excerpt_chars: number2().int().positive().default(200),
5588
+ min_score: number2().optional(),
5589
+ exclude: array(string2()).default([])
5590
+ }).strict();
5591
+ var OmoMemoryNudgeSchema = object({
5592
+ enabled: boolean2().default(true),
5593
+ every_user_turns: number2().int().min(1).default(10)
5594
+ }).strict();
5595
+ var OmoMemoryFactsSchema = object({
5596
+ enabled: boolean2().default(true),
5597
+ debounce_settles: number2().int().min(1).default(4)
5598
+ }).strict();
5599
+ var OmoMemoryDreamSchema = object({
5600
+ enabled: boolean2().default(true),
5601
+ idle_minutes: number2().int().min(0).default(30),
5602
+ min_hours_between: number2().int().min(1).default(24),
5603
+ shutdown_launch: boolean2().default(true),
5604
+ auto_select_max: number2().int().min(1).max(10).default(5),
5605
+ auto_select_max_chars: number2().int().min(1e4).default(150000)
5606
+ }).strict();
5607
+ var OmoMemoryPeopleSchema = object({
5608
+ enabled: boolean2().default(true),
5609
+ max_entries: number2().int().min(1).max(100).default(40),
5610
+ max_entry_chars: number2().int().min(50).max(500).default(200)
5611
+ }).strict();
5612
+ var OmoMemorySoulSchema = object({
5613
+ edit_notice: boolean2().default(true)
5614
+ }).strict();
5615
+ var OmoMemoryWriteNoticeSchema = object({
5616
+ enabled: boolean2().default(true)
5617
+ }).strict();
5571
5618
  var OmoMemoryReflectionTriggerLayerSchema = object({
5572
5619
  step_count: number2().int().nonnegative().optional(),
5573
5620
  on_compaction: boolean2().optional()
5574
5621
  }).strict();
5575
5622
  var OmoMemoryReflectionLayerSchema = object({
5623
+ enabled: boolean2().optional(),
5576
5624
  trigger: OmoMemoryReflectionTriggerLayerSchema.optional(),
5577
5625
  merge: _enum(["auto", "integration"]).optional(),
5578
5626
  category: string2().min(1).optional(),
@@ -5586,35 +5634,107 @@ var OmoMemorySyncLayerSchema = object({
5586
5634
  var OmoMemorySearchLayerSchema = object({
5587
5635
  enabled: boolean2().optional()
5588
5636
  }).strict();
5637
+ var OmoMemoryRecallLayerSchema = object({
5638
+ enabled: boolean2().optional(),
5639
+ max_items: number2().int().min(1).max(5).optional(),
5640
+ budget_tokens: number2().int().positive().optional(),
5641
+ excerpt_chars: number2().int().positive().optional(),
5642
+ min_score: number2().optional(),
5643
+ exclude: array(string2()).optional()
5644
+ }).strict();
5645
+ var OmoMemoryNudgeLayerSchema = object({
5646
+ enabled: boolean2().optional(),
5647
+ every_user_turns: number2().int().min(1).optional()
5648
+ }).strict();
5649
+ var OmoMemoryFactsLayerSchema = object({
5650
+ enabled: boolean2().optional(),
5651
+ debounce_settles: number2().int().min(1).optional()
5652
+ }).strict();
5653
+ var OmoMemoryDreamLayerSchema = object({
5654
+ enabled: boolean2().optional(),
5655
+ idle_minutes: number2().int().min(0).optional(),
5656
+ min_hours_between: number2().int().min(1).optional(),
5657
+ shutdown_launch: boolean2().optional(),
5658
+ auto_select_max: number2().int().min(1).max(10).optional(),
5659
+ auto_select_max_chars: number2().int().min(1e4).optional()
5660
+ }).strict();
5661
+ var OmoMemoryPeopleLayerSchema = object({
5662
+ enabled: boolean2().optional(),
5663
+ max_entries: number2().int().min(1).max(100).optional(),
5664
+ max_entry_chars: number2().int().min(50).max(500).optional()
5665
+ }).strict();
5666
+ var OmoMemorySoulLayerSchema = object({
5667
+ edit_notice: boolean2().optional()
5668
+ }).strict();
5669
+ var OmoMemoryWriteNoticeLayerSchema = object({
5670
+ enabled: boolean2().optional()
5671
+ }).strict();
5589
5672
  var OmoMemoryAgentOverridesSchema = object({
5590
5673
  enabled: boolean2().optional(),
5591
5674
  agent: string2().min(1).optional(),
5592
5675
  reflection: OmoMemoryReflectionLayerSchema.optional(),
5676
+ nudge: OmoMemoryNudgeLayerSchema.optional(),
5677
+ facts: OmoMemoryFactsLayerSchema.optional(),
5678
+ dream: OmoMemoryDreamLayerSchema.optional(),
5679
+ people: OmoMemoryPeopleLayerSchema.optional(),
5680
+ soul: OmoMemorySoulLayerSchema.optional(),
5681
+ write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
5593
5682
  sync: OmoMemorySyncLayerSchema.optional(),
5594
5683
  search: OmoMemorySearchLayerSchema.optional(),
5684
+ recall: OmoMemoryRecallLayerSchema.optional(),
5595
5685
  compile_warn_tokens: number2().int().positive().optional()
5596
5686
  }).strict();
5597
5687
  var OmoMemorySettingsSchema = object({
5598
5688
  enabled: boolean2().default(true),
5599
5689
  agent: string2().min(1).default("auto"),
5690
+ tool_exposure: _enum(["direct", "search"]).default("direct"),
5600
5691
  reflection: OmoMemoryReflectionSchema.default({
5601
- trigger: { step_count: 0, on_compaction: true },
5692
+ enabled: true,
5693
+ trigger: { step_count: 25, on_compaction: true },
5602
5694
  merge: "auto",
5603
5695
  category: "quick",
5604
5696
  timeout_minutes: 15,
5605
5697
  sandbox: "auto"
5606
5698
  }),
5699
+ nudge: OmoMemoryNudgeSchema.default({ enabled: true, every_user_turns: 10 }),
5700
+ facts: OmoMemoryFactsSchema.default({ enabled: true, debounce_settles: 4 }),
5701
+ dream: OmoMemoryDreamSchema.default({
5702
+ enabled: true,
5703
+ idle_minutes: 30,
5704
+ min_hours_between: 24,
5705
+ shutdown_launch: true,
5706
+ auto_select_max: 5,
5707
+ auto_select_max_chars: 150000
5708
+ }),
5709
+ people: OmoMemoryPeopleSchema.default({ enabled: true, max_entries: 40, max_entry_chars: 200 }),
5710
+ soul: OmoMemorySoulSchema.default({ edit_notice: true }),
5711
+ write_notice: OmoMemoryWriteNoticeSchema.default({ enabled: true }),
5607
5712
  sync: OmoMemorySyncSchema.default({ enabled: true }),
5608
5713
  search: OmoMemorySearchSchema.default({ enabled: true }),
5714
+ recall: OmoMemoryRecallSchema.default({
5715
+ enabled: true,
5716
+ max_items: 2,
5717
+ budget_tokens: 600,
5718
+ excerpt_chars: 200,
5719
+ exclude: []
5720
+ }),
5609
5721
  compile_warn_tokens: number2().int().positive().default(30000),
5610
5722
  agents: record(string2(), OmoMemoryAgentOverridesSchema).default({})
5611
5723
  }).strict();
5612
5724
  var OmoMemorySettingsLayerSchema = object({
5613
5725
  enabled: boolean2().optional(),
5614
5726
  agent: string2().min(1).optional(),
5727
+ tool_exposure: _enum(["direct", "search"]).optional(),
5615
5728
  reflection: OmoMemoryReflectionLayerSchema.optional(),
5729
+ nudge: OmoMemoryNudgeLayerSchema.optional(),
5730
+ facts: OmoMemoryFactsLayerSchema.optional(),
5731
+ dream: OmoMemoryDreamLayerSchema.optional(),
5732
+ people: OmoMemoryPeopleLayerSchema.optional(),
5733
+ soul: OmoMemorySoulLayerSchema.optional(),
5734
+ write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
5616
5735
  sync: OmoMemorySyncLayerSchema.optional(),
5617
5736
  search: OmoMemorySearchLayerSchema.optional(),
5737
+ recall: OmoMemoryRecallLayerSchema.optional(),
5618
5738
  compile_warn_tokens: number2().int().positive().optional(),
5619
5739
  agents: record(string2(), OmoMemoryAgentOverridesSchema).optional()
5620
5740
  }).strict();
@@ -5637,7 +5757,8 @@ var OmoModelCatalogLayerSchema = record(string2(), OmoModelCatalogEntryLayerSche
5637
5757
 
5638
5758
  // ../../omo-config-core/src/schema/task.ts
5639
5759
  import { availableParallelism } from "node:os";
5640
- var ResidencyMaxChildrenInputSchema = union([number2().int().positive(), literal("unlimited")]);
5760
+ var DEFAULT_RESIDENCY_MAX_CHILDREN = 16;
5761
+ var ResidencyMaxChildrenInputSchema = union([number2().int().nonnegative(), literal("unlimited")]);
5641
5762
  var OmoTaskWaitSchema = object({
5642
5763
  min_ms: number2().int().positive().default(5000),
5643
5764
  default_ms: number2().int().positive().default(60000),
@@ -5651,11 +5772,22 @@ var OmoTaskTeamSettingsSchema = object({
5651
5772
  var OmoTaskWarningsSchema = object({
5652
5773
  unavailable_categories: boolean2().default(true)
5653
5774
  }).strict();
5775
+ var OmoTaskDagSettingsSchema = object({
5776
+ max_nodes_per_run: number2().int().positive().default(64),
5777
+ max_runs_per_session: number2().int().positive().default(16),
5778
+ subscriber_ring: number2().int().positive().default(1000),
5779
+ heartbeat_ms: number2().int().positive().default(15000),
5780
+ history_default_limit: number2().int().positive().default(256),
5781
+ history_max_limit: number2().int().positive().default(1000),
5782
+ retention_days: number2().int().positive().default(7),
5783
+ max_prompt_bytes: number2().int().positive().default(262144)
5784
+ }).strict();
5654
5785
  var OmoTaskSettingsSchema = object({
5655
5786
  default_execution_mode: _enum(["in-process", "process"]).default("in-process"),
5656
- default_concurrency: number2().int().positive().default(5),
5657
- provider_concurrency: record(string2(), number2().int().positive()).optional(),
5658
- model_concurrency: record(string2(), number2().int().positive()).optional(),
5787
+ default_concurrency: number2().int().nonnegative().default(5),
5788
+ global_concurrency: number2().int().nonnegative().default(8),
5789
+ provider_concurrency: record(string2(), number2().int().nonnegative()).optional(),
5790
+ model_concurrency: record(string2(), number2().int().nonnegative()).optional(),
5659
5791
  max_depth: number2().int().nonnegative().default(1),
5660
5792
  residency_max_children: ResidencyMaxChildrenInputSchema.default(8),
5661
5793
  ttl_ms: number2().int().positive().default(86400000),
@@ -5668,7 +5800,18 @@ var OmoTaskSettingsSchema = object({
5668
5800
  max_members: 8,
5669
5801
  max_parallel_members: 4,
5670
5802
  max_wall_clock_minutes: 120
5671
- })
5803
+ }),
5804
+ dag: OmoTaskDagSettingsSchema.optional()
5805
+ }).strict();
5806
+ var OmoTaskDagSettingsLayerSchema = object({
5807
+ max_nodes_per_run: number2().int().positive().optional(),
5808
+ max_runs_per_session: number2().int().positive().optional(),
5809
+ subscriber_ring: number2().int().positive().optional(),
5810
+ heartbeat_ms: number2().int().positive().optional(),
5811
+ history_default_limit: number2().int().positive().optional(),
5812
+ history_max_limit: number2().int().positive().optional(),
5813
+ retention_days: number2().int().positive().optional(),
5814
+ max_prompt_bytes: number2().int().positive().optional()
5672
5815
  }).strict();
5673
5816
  var OmoTaskWaitLayerSchema = object({
5674
5817
  min_ms: number2().int().positive().optional(),
@@ -5685,9 +5828,10 @@ var OmoTaskWarningsLayerSchema = object({
5685
5828
  }).strict();
5686
5829
  var OmoTaskSettingsLayerSchema = object({
5687
5830
  default_execution_mode: _enum(["in-process", "process"]).optional(),
5688
- default_concurrency: number2().int().positive().optional(),
5689
- provider_concurrency: record(string2(), number2().int().positive()).optional(),
5690
- model_concurrency: record(string2(), number2().int().positive()).optional(),
5831
+ default_concurrency: number2().int().nonnegative().optional(),
5832
+ global_concurrency: number2().int().nonnegative().optional(),
5833
+ provider_concurrency: record(string2(), number2().int().nonnegative()).optional(),
5834
+ model_concurrency: record(string2(), number2().int().nonnegative()).optional(),
5691
5835
  max_depth: number2().int().nonnegative().optional(),
5692
5836
  residency_max_children: ResidencyMaxChildrenInputSchema.optional(),
5693
5837
  ttl_ms: number2().int().positive().optional(),
@@ -5696,13 +5840,15 @@ var OmoTaskSettingsLayerSchema = object({
5696
5840
  resume_children: boolean2().optional(),
5697
5841
  warnings: OmoTaskWarningsLayerSchema.optional(),
5698
5842
  wait: OmoTaskWaitLayerSchema.optional(),
5699
- team: OmoTaskTeamSettingsLayerSchema.optional()
5843
+ team: OmoTaskTeamSettingsLayerSchema.optional(),
5844
+ dag: OmoTaskDagSettingsLayerSchema.optional()
5700
5845
  }).strict();
5701
5846
  function resolveOmoTaskSettings(input, resolveParallelism = availableParallelism) {
5702
5847
  const record2 = record(string2(), unknown()).parse(input);
5703
5848
  return OmoTaskSettingsSchema.parse({
5704
5849
  ...record2,
5705
- residency_max_children: record2["residency_max_children"] ?? Math.max(8, resolveParallelism() * 3)
5850
+ residency_max_children: record2["residency_max_children"] ?? Math.min(DEFAULT_RESIDENCY_MAX_CHILDREN, Math.max(8, resolveParallelism() * 2)),
5851
+ global_concurrency: record2["global_concurrency"] ?? Math.max(8, resolveParallelism() * 2)
5706
5852
  });
5707
5853
  }
5708
5854
 
@@ -5753,38 +5899,71 @@ var OmoTeamSpecLayerSchema = OmoTeamSpecBaseSchema.partial();
5753
5899
  var OmoTeamsConfigSchema = record(string2(), OmoTeamSpecSchema);
5754
5900
  var OmoTeamsConfigLayerSchema = record(string2(), OmoTeamSpecLayerSchema);
5755
5901
 
5902
+ // ../../omo-config-core/src/schema/telemetry.ts
5903
+ var OmoTelemetrySettingsShape = {
5904
+ enabled: boolean2()
5905
+ };
5906
+ var OmoTelemetrySettingsLayerSchema = object(OmoTelemetrySettingsShape).partial().strict();
5907
+ var OmoTelemetrySettingsSchema = OmoTelemetrySettingsLayerSchema.extend({
5908
+ enabled: boolean2().default(true)
5909
+ }).strict();
5910
+
5911
+ // ../../omo-config-core/src/schema/format-on-mutation.ts
5912
+ var mode = _enum(["off", "best-effort", "required"]);
5913
+ var languages = record(string2(), boolean2()).optional();
5914
+ var OmoFormatOnMutationLayerSchema = object({
5915
+ mode: mode.optional(),
5916
+ languages,
5917
+ maxFileBytes: number2().int().positive().optional(),
5918
+ timeoutMs: number2().int().positive().optional()
5919
+ }).strict();
5920
+ var OmoFormatOnMutationSchema = OmoFormatOnMutationLayerSchema.extend({
5921
+ mode: mode.default("best-effort"),
5922
+ maxFileBytes: number2().int().positive().default(1048576),
5923
+ timeoutMs: number2().int().positive().default(3000)
5924
+ }).strict();
5925
+
5756
5926
  // ../../omo-config-core/src/schema/config.ts
5757
5927
  var OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
5758
5928
  var OmoTypedHarnessConfigSchema = object({
5929
+ formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
5759
5930
  categories: OmoCategoriesConfigSchema.optional(),
5760
5931
  agents: OmoAgentsConfigSchema.optional(),
5761
5932
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
5933
+ git_master: OmoGitMasterSettingsLayerSchema.optional(),
5762
5934
  task: OmoTaskSettingsLayerSchema.optional(),
5763
5935
  teams: OmoTeamsConfigLayerSchema.optional(),
5764
5936
  models: OmoModelCatalogLayerSchema.optional(),
5765
- memory: OmoMemorySettingsLayerSchema.optional()
5937
+ memory: OmoMemorySettingsLayerSchema.optional(),
5938
+ telemetry: OmoTelemetrySettingsLayerSchema.optional()
5766
5939
  }).strict();
5767
5940
  var OmoConfigProfileSchema = object({
5941
+ formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
5768
5942
  categories: OmoCategoriesConfigSchema.optional(),
5769
5943
  agents: OmoAgentsConfigSchema.optional(),
5770
5944
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
5945
+ git_master: OmoGitMasterSettingsLayerSchema.optional(),
5771
5946
  task: OmoTaskSettingsLayerSchema.optional(),
5772
5947
  teams: OmoTeamsConfigLayerSchema.optional(),
5773
5948
  models: OmoModelCatalogLayerSchema.optional(),
5774
5949
  memory: OmoMemorySettingsLayerSchema.optional(),
5950
+ telemetry: OmoTelemetrySettingsLayerSchema.optional(),
5775
5951
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
5776
5952
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
5777
5953
  "[codex]": OmoTypedHarnessConfigSchema.optional()
5778
5954
  }).strict();
5779
5955
  var OmoConfigSchema = object({
5956
+ formatOnMutation: OmoFormatOnMutationSchema.optional(),
5780
5957
  $schema: string2().optional(),
5781
5958
  categories: OmoCategoriesConfigSchema.optional(),
5782
5959
  agents: OmoAgentsConfigSchema.optional(),
5783
5960
  codegraph: OmoCodegraphSettingsSchema.optional(),
5961
+ git_master: OmoGitMasterSettingsSchema.optional(),
5784
5962
  task: OmoTaskSettingsSchema.optional(),
5785
5963
  teams: OmoTeamsConfigSchema.optional(),
5786
5964
  models: OmoModelCatalogSchema.optional(),
5787
5965
  memory: OmoMemorySettingsSchema.optional(),
5966
+ telemetry: OmoTelemetrySettingsSchema.optional(),
5788
5967
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
5789
5968
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
5790
5969
  "[codex]": OmoTypedHarnessConfigSchema.optional(),
@@ -5793,14 +5972,17 @@ var OmoConfigSchema = object({
5793
5972
  legacy_migrations: record(string2(), unknown()).optional()
5794
5973
  }).strict();
5795
5974
  var OmoConfigLayerSchema = object({
5975
+ formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
5796
5976
  $schema: string2().optional(),
5797
5977
  categories: OmoCategoriesConfigSchema.optional(),
5798
5978
  agents: OmoAgentsConfigSchema.optional(),
5799
5979
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
5980
+ git_master: OmoGitMasterSettingsLayerSchema.optional(),
5800
5981
  task: OmoTaskSettingsLayerSchema.optional(),
5801
5982
  teams: OmoTeamsConfigLayerSchema.optional(),
5802
5983
  models: OmoModelCatalogLayerSchema.optional(),
5803
5984
  memory: OmoMemorySettingsLayerSchema.optional(),
5985
+ telemetry: OmoTelemetrySettingsLayerSchema.optional(),
5804
5986
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
5805
5987
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
5806
5988
  "[codex]": OmoTypedHarnessConfigSchema.optional(),
@@ -9451,7 +9633,7 @@ function defaultPluginRoot() {
9451
9633
  }
9452
9634
 
9453
9635
  // components/codegraph/src/session-start-cooldown.ts
9454
- import { mkdirSync as mkdirSync4, readFileSync as readFileSync6, rmSync as rmSync2 } from "node:fs";
9636
+ import { mkdirSync as mkdirSync4, readFileSync as readFileSync6, rmSync as rmSync3 } from "node:fs";
9455
9637
 
9456
9638
  // ../../utils/src/atomic-write.ts
9457
9639
  import {
@@ -9459,9 +9641,12 @@ import {
9459
9641
  fsyncSync,
9460
9642
  openSync,
9461
9643
  renameSync as renameSync2,
9644
+ rmSync as rmSync2,
9462
9645
  unlinkSync as unlinkSync2,
9463
9646
  writeFileSync as writeFileSync4
9464
9647
  } from "node:fs";
9648
+ import { randomUUID as randomUUID2 } from "node:crypto";
9649
+ import { dirname as dirname8 } from "node:path";
9465
9650
  var TOLERATED_FSYNC_CODES = new Set([
9466
9651
  "EPERM",
9467
9652
  "EACCES",
@@ -9483,29 +9668,41 @@ function tolerantFsyncSync(fileDescriptor, fsyncImpl) {
9483
9668
  }
9484
9669
  }
9485
9670
  function writeFileAtomically(filePath, content, options = {}) {
9486
- const tempPath = `${filePath}.tmp`;
9487
- writeFileSync4(tempPath, content, "utf-8");
9488
- const tempFileDescriptor = openSync(tempPath, "r+");
9489
- try {
9490
- tolerantFsyncSync(tempFileDescriptor, options.fsyncSync ?? fsyncSync);
9491
- } finally {
9492
- closeSync(tempFileDescriptor);
9493
- }
9671
+ const platform = options.platform ?? process.platform;
9672
+ const fsyncImpl = options.fsyncSync ?? fsyncSync;
9673
+ const tempPath = `${filePath}.${process.pid}.${randomUUID2()}.tmp`;
9494
9674
  try {
9495
- renameSync2(tempPath, filePath);
9496
- } catch (error) {
9497
- const isPermissionError = error instanceof Error && (error.message.includes("EPERM") || error.message.includes("EACCES"));
9498
- if ((options.platform ?? process.platform) === "win32" && isPermissionError) {
9675
+ writeFileSync4(tempPath, content, "utf-8");
9676
+ const tempFileDescriptor = openSync(tempPath, "r+");
9677
+ try {
9678
+ tolerantFsyncSync(tempFileDescriptor, fsyncImpl);
9679
+ } finally {
9680
+ closeSync(tempFileDescriptor);
9681
+ }
9682
+ try {
9683
+ renameSync2(tempPath, filePath);
9684
+ } catch (error) {
9685
+ const isPermissionError = error instanceof Error && (error.message.includes("EPERM") || error.message.includes("EACCES"));
9686
+ if (platform !== "win32" || !isPermissionError)
9687
+ throw error;
9499
9688
  unlinkSync2(filePath);
9500
9689
  renameSync2(tempPath, filePath);
9690
+ }
9691
+ if (platform === "win32")
9501
9692
  return;
9693
+ const directoryFileDescriptor = openSync(dirname8(filePath), "r");
9694
+ try {
9695
+ tolerantFsyncSync(directoryFileDescriptor, fsyncImpl);
9696
+ } finally {
9697
+ closeSync(directoryFileDescriptor);
9502
9698
  }
9503
- throw error;
9699
+ } finally {
9700
+ rmSync2(tempPath, { force: true });
9504
9701
  }
9505
9702
  }
9506
9703
 
9507
9704
  // components/codegraph/src/session-start-paths.ts
9508
- import { basename as basename3, dirname as dirname8, join as join14 } from "node:path";
9705
+ import { basename as basename3, dirname as dirname9, join as join14 } from "node:path";
9509
9706
  function resolveSessionStartStatePaths(homeDir, projectRoot) {
9510
9707
  const canonicalProjectRoot = canonicalizeCodegraphPath(projectRoot);
9511
9708
  const workspacePaths = resolveCodegraphWorkspacePaths(canonicalProjectRoot, { homeDir });
@@ -9520,7 +9717,7 @@ function resolveSessionStartStatePaths(homeDir, projectRoot) {
9520
9717
  };
9521
9718
  }
9522
9719
  function stateParent(path) {
9523
- return dirname8(path);
9720
+ return dirname9(path);
9524
9721
  }
9525
9722
 
9526
9723
  // components/codegraph/src/session-start-cooldown.ts
@@ -9556,7 +9753,7 @@ function recordSessionStartFailure(options) {
9556
9753
  }
9557
9754
  function clearSessionStartCooldown(options) {
9558
9755
  const path = resolveSessionStartStatePaths(options.homeDir, options.projectRoot).cooldownPath;
9559
- rmSync2(path, { force: true });
9756
+ rmSync3(path, { force: true });
9560
9757
  }
9561
9758
  function cooldownDuration(baseCooldownMs, failureCount, maxCooldownMs) {
9562
9759
  let duration3 = Math.min(baseCooldownMs, maxCooldownMs);
@@ -9624,7 +9821,8 @@ function spawnDetachedSessionStartWorker(invocation) {
9624
9821
  const child = spawn(invocation.command, [...invocation.args], {
9625
9822
  detached: true,
9626
9823
  env: invocation.env,
9627
- stdio: "ignore"
9824
+ stdio: "ignore",
9825
+ windowsHide: true
9628
9826
  });
9629
9827
  child.unref();
9630
9828
  }
@@ -9639,8 +9837,8 @@ function writeSessionStartNotice(stdout, notice) {
9639
9837
  }
9640
9838
 
9641
9839
  // components/codegraph/src/session-start-lock.ts
9642
- import { randomUUID as randomUUID2 } from "node:crypto";
9643
- import { mkdirSync as mkdirSync5, readFileSync as readFileSync7, rmSync as rmSync3, statSync as statSync3, writeFileSync as writeFileSync5 } from "node:fs";
9840
+ import { randomUUID as randomUUID3 } from "node:crypto";
9841
+ import { mkdirSync as mkdirSync5, readFileSync as readFileSync7, rmSync as rmSync4, statSync as statSync3, writeFileSync as writeFileSync5 } from "node:fs";
9644
9842
  function acquireSessionStartLock(options) {
9645
9843
  const paths = resolveSessionStartStatePaths(options.homeDir, options.projectRoot);
9646
9844
  const lockPath = paths.lockPath;
@@ -9669,7 +9867,7 @@ function releaseSessionStartLock(lock) {
9669
9867
  if (snapshot.kind !== "present" || snapshot.token !== lock.token)
9670
9868
  return false;
9671
9869
  try {
9672
- rmSync3(lock.path, { force: true });
9870
+ rmSync4(lock.path, { force: true });
9673
9871
  return true;
9674
9872
  } catch (error) {
9675
9873
  if (error instanceof Error)
@@ -9694,7 +9892,7 @@ function reclaimStaleLock(lockPath, staleSnapshot, options) {
9694
9892
  const changed = current.raw !== staleSnapshot.raw || current.mtimeMs !== staleSnapshot.mtimeMs;
9695
9893
  if (changed || options.nowMs - current.mtimeMs < options.staleMs)
9696
9894
  return { kind: "locked" };
9697
- rmSync3(lockPath, { force: true });
9895
+ rmSync4(lockPath, { force: true });
9698
9896
  }
9699
9897
  const acquired = tryCreateLock(lockPath, options.projectRoot);
9700
9898
  return acquired.kind === "acquired" ? { ...acquired, recoveredStale: true } : acquired;
@@ -9703,11 +9901,11 @@ function reclaimStaleLock(lockPath, staleSnapshot, options) {
9703
9901
  return { kind: "inconclusive", reason: error.message };
9704
9902
  throw error;
9705
9903
  } finally {
9706
- rmSync3(reclaimPath, { force: true });
9904
+ rmSync4(reclaimPath, { force: true });
9707
9905
  }
9708
9906
  }
9709
9907
  function tryCreateLock(lockPath, projectRoot) {
9710
- const token = randomUUID2();
9908
+ const token = randomUUID3();
9711
9909
  try {
9712
9910
  writeFileSync5(lockPath, `${JSON.stringify({ projectRoot, token })}
9713
9911
  `, {
@@ -9726,7 +9924,7 @@ function tryCreateLock(lockPath, projectRoot) {
9726
9924
  }
9727
9925
  function tryCreateMarker(path) {
9728
9926
  try {
9729
- writeFileSync5(path, `${randomUUID2()}
9927
+ writeFileSync5(path, `${randomUUID3()}
9730
9928
  `, { encoding: "utf8", flag: "wx", mode: 384 });
9731
9929
  return { kind: "acquired" };
9732
9930
  } catch (error) {
@@ -9764,17 +9962,17 @@ function errorCode2(error) {
9764
9962
 
9765
9963
  // components/codegraph/src/session-start-outcome.ts
9766
9964
  import { appendFileSync as appendFileSync2, mkdirSync as mkdirSync6 } from "node:fs";
9767
- import { dirname as dirname9, join as join15 } from "node:path";
9965
+ import { dirname as dirname10, join as join15 } from "node:path";
9768
9966
  function appendSessionStartOutcome(homeDir, outcome, nowMs = Date.now()) {
9769
9967
  const path = join15(codegraphDataRoot(homeDir), "session-start.jsonl");
9770
- mkdirSync6(dirname9(path), { recursive: true });
9968
+ mkdirSync6(dirname10(path), { recursive: true });
9771
9969
  appendFileSync2(path, `${JSON.stringify({ ...outcome, timestamp: new Date(nowMs).toISOString() })}
9772
9970
  `);
9773
9971
  }
9774
9972
 
9775
9973
  // components/codegraph/src/session-start-project.ts
9776
9974
  import { realpathSync as realpathSync7, statSync as statSync4 } from "node:fs";
9777
- import { dirname as dirname10, join as join16 } from "node:path";
9975
+ import { dirname as dirname11, join as join16 } from "node:path";
9778
9976
  function probeCodegraphProject(projectRoot, options = {}) {
9779
9977
  const resolved = resolveProjectRoot(projectRoot);
9780
9978
  if (resolved.kind === "inconclusive")
@@ -9806,14 +10004,14 @@ function probeResolvedExactProject(projectRoot, probeDatabase) {
9806
10004
  return { kind: "uninitialized" };
9807
10005
  }
9808
10006
  function probeResolvedAncestors(projectRoot, probeDatabase) {
9809
- let ancestorRoot = dirname10(projectRoot);
10007
+ let ancestorRoot = dirname11(projectRoot);
9810
10008
  while (ancestorRoot !== projectRoot) {
9811
10009
  const database = probeDatabase(ancestorRoot);
9812
10010
  if (database.kind === "present")
9813
10011
  return { ancestorRoot, kind: "nested-root" };
9814
10012
  if (database.kind === "inconclusive")
9815
10013
  return database;
9816
- const parent = dirname10(ancestorRoot);
10014
+ const parent = dirname11(ancestorRoot);
9817
10015
  if (parent === ancestorRoot)
9818
10016
  break;
9819
10017
  ancestorRoot = parent;
@@ -9975,7 +10173,7 @@ function parseNodeMajor(version2) {
9975
10173
  }
9976
10174
 
9977
10175
  // ../../utils/src/codegraph/provision.ts
9978
- import { createHash as createHash2, randomUUID as randomUUID3 } from "node:crypto";
10176
+ import { createHash as createHash2, randomUUID as randomUUID4 } from "node:crypto";
9979
10177
  import { execFile as execFile2 } from "node:child_process";
9980
10178
  import { chmod, mkdir, readdir, readFile, rename, rm, rmdir, stat, writeFile } from "node:fs/promises";
9981
10179
  import { existsSync as existsSync9 } from "node:fs";
@@ -10095,7 +10293,7 @@ async function installExtractedBundle(extractDir, installDir, executableName) {
10095
10293
  }
10096
10294
  async function installAsset(layout) {
10097
10295
  const { asset, downloader, installDir, version: version2 } = layout;
10098
- const stagingDir = join18(installDir, ".staging", randomUUID3());
10296
+ const stagingDir = join18(installDir, ".staging", randomUUID4());
10099
10297
  const archivePath = join18(stagingDir, basename4(asset.url));
10100
10298
  const extractDir = join18(stagingDir, "extract");
10101
10299
  try {
@@ -10158,7 +10356,7 @@ async function ensureCodegraphProvisioned(options) {
10158
10356
  import { existsSync as existsSync10 } from "node:fs";
10159
10357
  import { homedir as homedir10 } from "node:os";
10160
10358
  import { spawnSync } from "node:child_process";
10161
- import { basename as basename5, dirname as dirname11, join as join20 } from "node:path";
10359
+ import { basename as basename5, dirname as dirname12, join as join20 } from "node:path";
10162
10360
  import { createRequire } from "node:module";
10163
10361
 
10164
10362
  // ../../utils/src/runtime/which.ts
@@ -10311,7 +10509,7 @@ function defaultProvisionedBin(homeDir, fileExists) {
10311
10509
  function resolveBundledShim(requireResolve, fileExists) {
10312
10510
  try {
10313
10511
  const packageJson = requireResolve(`${CODEGRAPH_PACKAGE}/package.json`);
10314
- const packageRoot = dirname11(packageJson);
10512
+ const packageRoot = dirname12(packageJson);
10315
10513
  const candidates = [join20(packageRoot, "bin", "codegraph.js"), join20(packageRoot, "npm-shim.js")];
10316
10514
  return candidates.find((candidate) => fileExists(candidate)) ?? null;
10317
10515
  } catch (error) {
@@ -11436,6 +11634,7 @@ async function runJsonRpcStdioServer(config2) {
11436
11634
  const idleTimer = createIdleTimer(idleTimeoutMs, log, () => {
11437
11635
  isClosed = true;
11438
11636
  config2.onIdleTimeout?.();
11637
+ config2.input.destroy();
11439
11638
  });
11440
11639
  const watchdog = createParentWatchdog(config2.parentWatchdog, (parentPid, pollIntervalMs) => {
11441
11640
  isClosed = true;
@@ -11532,7 +11731,11 @@ function createParentWatchdog(config2, onDeadParent) {
11532
11731
  const probeAlive = config2.probeAlive ?? isProcessAlive2;
11533
11732
  let fired = false;
11534
11733
  const timer = setInterval(() => {
11535
- if (fired || probeAlive(parentPid))
11734
+ if (fired)
11735
+ return;
11736
+ const alive = probeAlive(parentPid);
11737
+ config2.onPoll?.(alive);
11738
+ if (alive)
11536
11739
  return;
11537
11740
  fired = true;
11538
11741
  onDeadParent(parentPid, pollIntervalMs);
@@ -11584,7 +11787,8 @@ async function runBridgedCodegraphProcess(command, args, options) {
11584
11787
  const child = spawn3(invocation.command, invocation.args, {
11585
11788
  cwd: options.cwd,
11586
11789
  env: options.env,
11587
- stdio: ["pipe", "pipe", "inherit"]
11790
+ stdio: ["pipe", "pipe", "inherit"],
11791
+ windowsHide: true
11588
11792
  });
11589
11793
  const childInput = child.stdin;
11590
11794
  const childOutput = child.stdout;
@@ -11616,8 +11820,8 @@ async function runBridgedCodegraphProcess(command, args, options) {
11616
11820
  destroyChildPipes();
11617
11821
  terminateCodegraphChild(child);
11618
11822
  });
11619
- const clientForwardingDone = forwardClientToCodegraph(options.input, childInput, pendingResponses, (mode) => {
11620
- defaultResponseMode = mode;
11823
+ const clientForwardingDone = forwardClientToCodegraph(options.input, childInput, pendingResponses, (mode2) => {
11824
+ defaultResponseMode = mode2;
11621
11825
  }, () => parentWatchdogFired);
11622
11826
  const responseForwardingDone = forwardCodegraphToClient(childOutput, options.output, pendingResponses, () => defaultResponseMode, () => parentWatchdogFired);
11623
11827
  const bridgeDone = Promise.all([clientForwardingDone, responseForwardingDone]);
@@ -11824,7 +12028,9 @@ async function runUnavailableCodegraphMcpServer(options) {
11824
12028
  },
11825
12029
  input: options.input,
11826
12030
  output: options.output,
11827
- parentWatchdog: options.parentWatchdog ?? {}
12031
+ idleTimeoutMs: 0,
12032
+ parentWatchdog: options.parentWatchdog ?? {},
12033
+ ...options.lifecycleLog === undefined ? {} : { log: options.lifecycleLog }
11828
12034
  });
11829
12035
  }
11830
12036
  async function handleUnavailableCodegraphMcpRequest(input, options) {