oh-my-opencode 5.0.0-beta.2 → 5.0.0-beta.21

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 (460) 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/fallback-lane-policy.d.ts +1 -0
  22. package/dist/cli/index.js +23057 -20893
  23. package/dist/cli/install-codex/install-codex-test-fixtures.d.ts +1 -1
  24. package/dist/cli/run/on-complete-hook.d.ts +2 -0
  25. package/dist/cli/runtime-commands.d.ts +1 -1
  26. package/dist/cli/worktree-sweep/classify.d.ts +16 -0
  27. package/dist/cli/worktree-sweep/format.d.ts +8 -0
  28. package/dist/cli/worktree-sweep/git.d.ts +19 -0
  29. package/dist/cli/worktree-sweep/index.d.ts +7 -0
  30. package/dist/cli/worktree-sweep/options.d.ts +2 -0
  31. package/dist/cli/worktree-sweep/parse-worktree-list.d.ts +8 -0
  32. package/dist/cli/worktree-sweep/sweep.d.ts +2 -0
  33. package/dist/cli/worktree-sweep/types.d.ts +65 -0
  34. package/dist/cli/worktree-sweep/worktree-sweep.d.ts +2 -0
  35. package/dist/cli-node/index.js +23093 -20929
  36. package/dist/config/schema/commands.d.ts +1 -1
  37. package/dist/config/schema/hooks.d.ts +1 -1
  38. package/dist/config/schema/oh-my-opencode-config.d.ts +4 -1
  39. package/dist/config/schema/ulw-execute.d.ts +5 -0
  40. package/dist/config/validate.d.ts +2 -0
  41. package/dist/create-hooks.d.ts +3 -1
  42. package/dist/features/btw-side/btw-command-draft.d.ts +7 -0
  43. package/dist/features/btw-side/context-injector.d.ts +15 -0
  44. package/dist/features/btw-side/index.d.ts +8 -0
  45. package/dist/features/btw-side/metadata.d.ts +15 -0
  46. package/dist/features/btw-side/parent-context-budget.d.ts +9 -0
  47. package/dist/features/btw-side/server-session-registry.d.ts +8 -0
  48. package/dist/features/btw-side/tui-adoption-cache.d.ts +13 -0
  49. package/dist/features/btw-side/tui-adoption-guard.d.ts +5 -0
  50. package/dist/features/btw-side/tui-controller-types.d.ts +68 -0
  51. package/dist/features/btw-side/tui-controller.d.ts +19 -0
  52. package/dist/features/btw-side/tui-escape-return.d.ts +12 -0
  53. package/dist/features/btw-side/tui-keymap.d.ts +17 -0
  54. package/dist/features/btw-side/tui-parent-validator.d.ts +6 -0
  55. package/dist/features/btw-side/tui-picker-options.d.ts +20 -0
  56. package/dist/features/btw-side/tui-picker.d.ts +9 -0
  57. package/dist/features/btw-side/tui-prompt-queue.d.ts +8 -0
  58. package/dist/features/btw-side/tui-session-bridge.d.ts +11 -0
  59. package/dist/features/btw-side/tui-session-catalog.d.ts +35 -0
  60. package/dist/features/btw-side/tui-side-removal.d.ts +11 -0
  61. package/dist/features/btw-side/tui-side-start.d.ts +9 -0
  62. package/dist/features/btw-side/tui-wiring.d.ts +8 -0
  63. package/dist/features/builtin-commands/templates/ulw-execute.d.ts +1 -0
  64. package/dist/features/builtin-commands/types.d.ts +1 -1
  65. package/dist/features/opengateway-provider/index.d.ts +13 -0
  66. package/dist/hooks/atlas/atlas-hook.d.ts +1 -0
  67. package/dist/hooks/atlas/atlas-lifecycle-store.d.ts +50 -0
  68. package/dist/hooks/atlas/event-handler.d.ts +1 -0
  69. package/dist/hooks/atlas/final-wave-approval-gate.test-support.d.ts +50 -0
  70. package/dist/hooks/atlas/system-reminder-templates.d.ts +0 -1
  71. package/dist/hooks/atlas/tool-execute-before.d.ts +3 -0
  72. package/dist/hooks/atlas/types.d.ts +1 -0
  73. package/dist/hooks/index.d.ts +1 -1
  74. package/dist/hooks/prometheus-md-only/agent-resolution.d.ts +2 -2
  75. package/dist/hooks/runtime-fallback/chat-message-handler.d.ts +2 -0
  76. package/dist/hooks/runtime-fallback/retry-model-payload.d.ts +1 -0
  77. package/dist/hooks/runtime-fallback/runtime-model-settings.d.ts +6 -0
  78. package/dist/hooks/runtime-fallback/session-status-handler.d.ts +1 -1
  79. package/dist/hooks/runtime-fallback/types.d.ts +3 -1
  80. package/dist/hooks/sisyphus-junior-notepad/constants.d.ts +1 -1
  81. package/dist/hooks/{start-work → ulw-execute}/context-info-builder.d.ts +1 -1
  82. package/dist/hooks/{start-work → ulw-execute}/index.d.ts +1 -1
  83. package/dist/hooks/ulw-execute/ulw-execute-hook.d.ts +23 -0
  84. package/dist/index.js +11724 -6355
  85. package/dist/oh-my-opencode.schema.json +15 -2
  86. package/dist/plugin/chat-message/types.d.ts +3 -3
  87. package/dist/plugin/chat-message/ulw-execute-message.d.ts +5 -0
  88. package/dist/plugin/event-session-lifecycle.d.ts +1 -0
  89. package/dist/plugin/hooks/create-core-hooks.d.ts +2 -1
  90. package/dist/plugin/hooks/create-session-hooks.d.ts +2 -2
  91. package/dist/plugin/hooks/create-transform-hooks.d.ts +2 -0
  92. package/dist/plugin/messages-transform.d.ts +1 -0
  93. package/dist/shared/index.d.ts +1 -0
  94. package/dist/shared/normalize-sdk-response.d.ts +1 -0
  95. package/dist/shared/runtime-fallback-retry-marker.d.ts +16 -0
  96. package/dist/shared/shell-env.d.ts +1 -1
  97. package/dist/skills/ast-grep/AGENTS.md +51 -0
  98. package/dist/skills/coding-agent-sessions/AGENTS.md +62 -0
  99. package/dist/skills/coding-agent-sessions/SKILL.md +3 -2
  100. package/dist/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  101. package/dist/skills/coding-agent-sessions/references/senpi.md +4 -4
  102. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  103. package/dist/skills/frontend/SKILL.md +11 -7
  104. package/dist/skills/frontend/references/design/_INDEX.md +1 -0
  105. package/dist/skills/frontend/references/design/print-paged-media.md +76 -0
  106. package/dist/skills/frontend/references/design/stylegallery.md +80 -0
  107. package/dist/skills/frontend/references/designpowers/README.md +1 -1
  108. package/dist/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  109. package/dist/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  110. package/dist/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  111. package/dist/skills/frontend/references/designpowers/orchestration.md +1 -1
  112. package/dist/skills/frontend/references/designpowers/routing.md +5 -5
  113. package/dist/skills/review-work/SKILL.md +3 -3
  114. package/dist/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
  115. package/dist/skills/ultimate-browsing/SKILL.md +2 -0
  116. package/dist/skills/ultimate-browsing/engine/AGENTS.md +179 -0
  117. package/dist/skills/ultimate-browsing/engine/templates/package.json +1 -1
  118. package/dist/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
  119. package/dist/skills/{start-work → ulw-execute}/SKILL.md +9 -8
  120. package/dist/skills/ulw-plan/SKILL.md +6 -6
  121. package/dist/skills/ulw-plan/references/full-workflow.md +31 -7
  122. package/dist/skills/ulw-plan/references/intent-clear.md +2 -1
  123. package/dist/skills/ulw-plan/references/intent-unclear.md +5 -5
  124. package/dist/skills/ulw-research/SKILL.md +1 -1
  125. package/dist/skills/visual-qa/AGENTS.md +58 -0
  126. package/dist/skills/visual-qa/SKILL.md +3 -2
  127. package/dist/tools/delegate-task/builtin-categories.d.ts +1 -0
  128. package/dist/tools/delegate-task/builtin-category-definition.d.ts +1 -0
  129. package/dist/tools/delegate-task/tool-description.d.ts +3 -1
  130. package/dist/tui.js +8824 -8906
  131. package/package.json +38 -35
  132. package/packages/git-bash-mcp/dist/cli.js +5 -1
  133. package/packages/git-bash-mcp/package.json +1 -1
  134. package/packages/lsp-core/src/lsp/client-diagnostics-concurrency.integration.test.ts +44 -0
  135. package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +0 -28
  136. package/packages/lsp-core/src/lsp/client-wrapper-outside-cwd.test.ts +78 -0
  137. package/packages/lsp-core/src/lsp/client-wrapper.test.ts +66 -13
  138. package/packages/lsp-core/src/lsp/client-wrapper.ts +70 -18
  139. package/packages/lsp-core/src/lsp/outside-context-workspace.ts +33 -0
  140. package/packages/lsp-core/src/lsp/workspace-edit-adversarial.test.ts +20 -1
  141. package/packages/lsp-core/src/lsp/workspace-markers.ts +1 -0
  142. package/packages/lsp-core/src/tools/diagnostics.ts +3 -3
  143. package/packages/lsp-core/src/tools/navigation.ts +4 -2
  144. package/packages/lsp-core/src/tools/rename.ts +4 -2
  145. package/packages/lsp-core/src/tools/symbols.ts +1 -1
  146. package/packages/lsp-daemon/dist/cli.js +246 -185
  147. package/packages/lsp-daemon/dist/client.js +222 -164
  148. package/packages/lsp-daemon/dist/ensure-daemon.js +1 -0
  149. package/packages/lsp-daemon/dist/index.js +236 -177
  150. package/packages/lsp-daemon/dist/version-reap.js +1 -1
  151. package/packages/lsp-tools-mcp/dist/cli.js +198 -136
  152. package/packages/lsp-tools-mcp/dist/lsp/manager.js +62 -92
  153. package/packages/lsp-tools-mcp/dist/mcp.js +200 -138
  154. package/packages/lsp-tools-mcp/dist/request-context.js +11 -12
  155. package/packages/lsp-tools-mcp/dist/tools.js +204 -146
  156. package/packages/omo-codex/THIRD-PARTY-NOTICES.md +4 -4
  157. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +4 -4
  158. package/packages/omo-codex/plugin/AGENTS.md +47 -0
  159. package/packages/omo-codex/plugin/README.md +1 -1
  160. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +32 -31
  161. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  162. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  163. package/packages/omo-codex/plugin/components/bootstrap/src/hook.ts +1 -0
  164. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +224 -81
  165. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +224 -82
  166. package/packages/omo-codex/plugin/components/codegraph/package.json +4 -4
  167. package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +1 -0
  168. package/packages/omo-codex/plugin/components/codegraph/src/session-start-hook-runtime.ts +1 -0
  169. package/packages/omo-codex/plugin/components/comment-checker/AGENTS.md +9 -0
  170. package/packages/omo-codex/plugin/components/comment-checker/biome.json +2 -2
  171. package/packages/omo-codex/plugin/components/comment-checker/dist/cli.js +2 -1
  172. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  173. package/packages/omo-codex/plugin/components/comment-checker/package.json +5 -5
  174. package/packages/omo-codex/plugin/components/comment-checker/src/apply-patch.ts +2 -8
  175. package/packages/omo-codex/plugin/components/comment-checker/src/core.ts +1 -2
  176. package/packages/omo-codex/plugin/components/comment-checker/src/request-extractor.ts +1 -1
  177. package/packages/omo-codex/plugin/components/comment-checker/src/runner.ts +1 -0
  178. package/packages/omo-codex/plugin/components/git-bash/AGENTS.md +1 -1
  179. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  180. package/packages/omo-codex/plugin/components/git-bash/package.json +3 -4
  181. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/biome.json +2 -2
  182. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js +1 -5
  183. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.js +1 -5
  184. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  185. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +5 -5
  186. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/codex-hook.ts +1 -5
  187. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +4 -21
  188. package/packages/omo-codex/plugin/components/lsp/AGENTS.md +30 -15
  189. package/packages/omo-codex/plugin/components/lsp/biome.json +2 -2
  190. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +4 -4
  191. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +217 -171
  192. package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.js +1 -1
  193. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  194. package/packages/omo-codex/plugin/components/lsp/package.json +5 -5
  195. package/packages/omo-codex/plugin/components/lsp/src/cli.ts +1 -1
  196. package/packages/omo-codex/plugin/components/lsp/src/codex-hook.ts +1 -1
  197. package/packages/omo-codex/plugin/components/lsp/src/daemon-cli-path.ts +1 -5
  198. package/packages/omo-codex/plugin/components/lsp/test/codex-hook-unavailable.test.ts +6 -7
  199. package/packages/omo-codex/plugin/components/lsp/test/codex-hook.test.ts +1 -2
  200. package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +11 -1
  201. package/packages/omo-codex/plugin/components/rules/AGENTS.md +12 -0
  202. package/packages/omo-codex/plugin/components/rules/biome.json +2 -2
  203. package/packages/omo-codex/plugin/components/rules/dist/cli.js +57 -42
  204. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  205. package/packages/omo-codex/plugin/components/rules/package.json +7 -7
  206. package/packages/omo-codex/plugin/components/rules/src/config.ts +1 -2
  207. package/packages/omo-codex/plugin/components/rules/src/persistent-cache.ts +1 -2
  208. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +6 -2
  209. package/packages/omo-codex/plugin/components/rules/src/rules-engine-factory.ts +1 -4
  210. package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +4 -9
  211. package/packages/omo-codex/plugin/components/rules/test/bundled-rules-priority.test.ts +11 -16
  212. package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +17 -25
  213. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-budget.test.ts +9 -7
  214. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-context.test.ts +0 -6
  215. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-dedup.test.ts +6 -4
  216. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-directive.test.ts +12 -9
  217. package/packages/omo-codex/plugin/components/rules/test/codex-hook.test.ts +28 -37
  218. package/packages/omo-codex/plugin/components/rules/test/dynamic-target-fingerprints.test.ts +1 -2
  219. package/packages/omo-codex/plugin/components/rules/test/engine.test.ts +7 -4
  220. package/packages/omo-codex/plugin/components/rules/test/finder.test.ts +2 -3
  221. package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +39 -72
  222. package/packages/omo-codex/plugin/components/rules/test/hephaestus-model-variant.test.ts +1 -2
  223. package/packages/omo-codex/plugin/components/rules/test/hook-output.test.ts +2 -3
  224. package/packages/omo-codex/plugin/components/rules/test/matcher.test.ts +2 -3
  225. package/packages/omo-codex/plugin/components/rules/test/package-smoke.test.ts +1 -1
  226. package/packages/omo-codex/plugin/components/rules/test/parser.test.ts +1 -2
  227. package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +1 -2
  228. package/packages/omo-codex/plugin/components/rules/test/rules-engine-consumption.test.ts +3 -6
  229. package/packages/omo-codex/plugin/components/rules/test/scanner.test.ts +1 -2
  230. package/packages/omo-codex/plugin/components/rules/test/sources.test.ts +2 -5
  231. package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +2 -17
  232. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  233. package/packages/omo-codex/plugin/components/teammode/package.json +5 -5
  234. package/packages/omo-codex/plugin/components/teammode/test/thread-title-hook.test.ts +3 -9
  235. package/packages/omo-codex/plugin/components/telemetry/AGENTS.md +8 -0
  236. package/packages/omo-codex/plugin/components/telemetry/biome.json +2 -2
  237. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +2433 -422
  238. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +2437 -426
  239. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  240. package/packages/omo-codex/plugin/components/telemetry/package.json +5 -5
  241. package/packages/omo-codex/plugin/components/telemetry/src/codex-hook.ts +1 -4
  242. package/packages/omo-codex/plugin/components/telemetry/src/posthog.ts +4 -14
  243. package/packages/omo-codex/plugin/components/telemetry/src/product-identity.ts +1 -1
  244. package/packages/omo-codex/plugin/components/telemetry/test/diagnostics.test.ts +2 -5
  245. package/packages/omo-codex/plugin/components/ultrawork/AGENTS.md +5 -0
  246. package/packages/omo-codex/plugin/components/ultrawork/biome.json +2 -2
  247. package/packages/omo-codex/plugin/components/ultrawork/directive.md +13 -1
  248. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  249. package/packages/omo-codex/plugin/components/ultrawork/package.json +5 -5
  250. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +13 -1
  251. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +6 -6
  252. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +31 -7
  253. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +2 -1
  254. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +5 -5
  255. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-trigger-policy.test.ts +9 -1
  256. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +0 -136
  257. package/packages/omo-codex/plugin/components/ultrawork/test/skill-pointer.test.ts +0 -2
  258. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/AGENTS.md +5 -4
  259. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/NOTICE +1 -1
  260. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/README.md +5 -5
  261. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/biome.json +2 -2
  262. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/directive.md +6 -6
  263. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/dist/cli.js +12 -12
  264. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +28 -0
  265. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/package.json +12 -12
  266. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/boulder-reader.ts +1 -1
  267. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/cli.ts +1 -1
  268. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/codex-hook.ts +3 -3
  269. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/directive.ts +1 -1
  270. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/index.ts +1 -1
  271. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/boulder-reader.test.ts +3 -3
  272. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/cli.test.ts +1 -4
  273. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/codex-hook.test.ts +8 -22
  274. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +16 -0
  275. package/packages/omo-codex/plugin/components/ulw-loop/CHANGELOG.md +1 -1
  276. package/packages/omo-codex/plugin/components/ulw-loop/biome.json +2 -2
  277. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +13 -1
  278. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +2 -4
  279. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.js +1 -1
  280. package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.js +1 -1
  281. package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +3 -3
  282. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  283. package/packages/omo-codex/plugin/components/ulw-loop/package.json +5 -5
  284. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +3 -2
  285. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +108 -0
  286. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +1 -0
  287. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-snapshot.ts +3 -1
  288. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +3 -1
  289. package/packages/omo-codex/plugin/components/ulw-loop/src/paths.ts +1 -1
  290. package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +3 -3
  291. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-continuation.test.ts +0 -1
  292. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-create-goals.test.ts +25 -0
  293. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +2 -2
  294. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-snapshot.test.ts +18 -0
  295. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-hook.test.ts +0 -3
  296. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +5 -37
  297. package/packages/omo-codex/plugin/components/ulw-loop/test/paths.test.ts +9 -0
  298. package/packages/omo-codex/plugin/components/ulw-loop/test/steering.test.ts +8 -5
  299. package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +1 -1
  300. package/packages/omo-codex/plugin/components/ulw-loop/test/ultrawork-directive.test.ts +4 -5
  301. package/packages/omo-codex/plugin/components/ulw-loop/vitest.config.ts +1 -0
  302. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  303. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  304. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  305. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  306. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  307. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  308. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  309. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  310. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  311. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  312. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  313. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  314. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  315. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  316. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  317. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  318. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +17 -0
  319. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  320. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-ulw-execute-continuation.json +17 -0
  321. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  322. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  323. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  324. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  325. package/packages/omo-codex/plugin/package-lock.json +681 -395
  326. package/packages/omo-codex/plugin/package.json +2 -2
  327. package/packages/omo-codex/plugin/scripts/AGENTS.md +40 -0
  328. package/packages/omo-codex/plugin/scripts/auto-update-plan.mjs +1 -1
  329. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +11 -11
  330. package/packages/omo-codex/plugin/shared/package.json +3 -4
  331. package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +51 -0
  332. package/packages/omo-codex/plugin/skills/coding-agent-sessions/AGENTS.md +62 -0
  333. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +3 -2
  334. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  335. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +4 -4
  336. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  337. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +11 -7
  338. package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +1 -0
  339. package/packages/omo-codex/plugin/skills/frontend/references/design/print-paged-media.md +76 -0
  340. package/packages/omo-codex/plugin/skills/frontend/references/design/stylegallery.md +80 -0
  341. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/README.md +1 -1
  342. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  343. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  344. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  345. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/orchestration.md +1 -1
  346. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/routing.md +5 -5
  347. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +4 -4
  348. package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
  349. package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +2 -0
  350. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +179 -0
  351. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/package.json +1 -1
  352. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
  353. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +13 -1
  354. package/packages/omo-codex/plugin/skills/{start-work → ulw-execute}/SKILL.md +12 -11
  355. package/packages/omo-codex/plugin/skills/ulw-execute/agents/openai.yaml +2 -0
  356. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +3 -2
  357. package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +108 -0
  358. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +1 -0
  359. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +6 -6
  360. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +31 -7
  361. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +2 -1
  362. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +5 -5
  363. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +1 -1
  364. package/packages/omo-codex/plugin/skills/visual-qa/AGENTS.md +58 -0
  365. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +3 -2
  366. package/packages/omo-codex/plugin/test/AGENTS.md +47 -0
  367. package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +19 -173
  368. package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +8 -28
  369. package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +1 -1
  370. package/packages/omo-codex/plugin/test/aggregate-plugin-fixture.mjs +175 -13
  371. package/packages/omo-codex/plugin/test/aggregate.test.mjs +78 -2
  372. package/packages/omo-codex/plugin/test/auto-update-release-notes.test.mjs +19 -33
  373. package/packages/omo-codex/plugin/test/component-bin-names.test.mjs +2 -2
  374. package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +1 -1
  375. package/packages/omo-codex/plugin/test/component-hook-contract-cases.mjs +2 -2
  376. package/packages/omo-codex/plugin/test/hook-status-message.test.mjs +4 -4
  377. package/packages/omo-codex/plugin/test/lcx-contribute-bug-fix-template.test.mjs +21 -27
  378. package/packages/omo-codex/plugin/test/scaffold-plan.test.mjs +0 -36
  379. package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +101 -0
  380. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +12 -12
  381. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +1 -119
  382. package/packages/omo-codex/plugin/test/teammode-archive-ambiguity.test.mjs +0 -40
  383. package/packages/omo-codex/plugin/test/teammode-communication.test.mjs +6 -62
  384. package/packages/omo-codex/plugin/test/teammode-thread-links.test.mjs +3 -36
  385. package/packages/omo-codex/plugin/test/teammode-transport.test.mjs +0 -44
  386. package/packages/omo-codex/plugin/test/teammode-worktree.test.mjs +2 -6
  387. package/packages/omo-codex/plugin/test/ultrawork-skill-pointer.test.mjs +0 -3
  388. package/packages/omo-codex/plugin/test/ulw-plan-review-state-contract.test.mjs +0 -3
  389. package/packages/omo-codex/scripts/AGENTS.md +36 -0
  390. package/packages/omo-codex/scripts/install-dist/install-local.mjs +2601 -528
  391. package/packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs +7 -2
  392. package/packages/shared-skills/skills/ast-grep/AGENTS.md +51 -0
  393. package/packages/shared-skills/skills/coding-agent-sessions/AGENTS.md +62 -0
  394. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +3 -2
  395. package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  396. package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +4 -4
  397. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  398. package/packages/shared-skills/skills/frontend/SKILL.md +11 -7
  399. package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +1 -0
  400. package/packages/shared-skills/skills/frontend/references/design/print-paged-media.md +76 -0
  401. package/packages/shared-skills/skills/frontend/references/design/stylegallery.md +80 -0
  402. package/packages/shared-skills/skills/frontend/references/designpowers/README.md +1 -1
  403. package/packages/shared-skills/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  404. package/packages/shared-skills/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  405. package/packages/shared-skills/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  406. package/packages/shared-skills/skills/frontend/references/designpowers/orchestration.md +1 -1
  407. package/packages/shared-skills/skills/frontend/references/designpowers/routing.md +5 -5
  408. package/packages/shared-skills/skills/review-work/SKILL.md +3 -3
  409. package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
  410. package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +2 -0
  411. package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +179 -0
  412. package/packages/shared-skills/skills/ultimate-browsing/engine/templates/package.json +1 -1
  413. package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
  414. package/packages/shared-skills/skills/{start-work → ulw-execute}/SKILL.md +9 -8
  415. package/packages/shared-skills/skills/ulw-plan/SKILL.md +6 -6
  416. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +31 -7
  417. package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +2 -1
  418. package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +5 -5
  419. package/packages/shared-skills/skills/ulw-research/SKILL.md +1 -1
  420. package/packages/shared-skills/skills/visual-qa/AGENTS.md +58 -0
  421. package/packages/shared-skills/skills/visual-qa/SKILL.md +3 -2
  422. package/script/qa/web-terminal-visual-qa.mjs +2 -0
  423. package/script/qa/xterm-live-terminal.mjs +18 -2
  424. package/dist/config/schema/start-work.d.ts +0 -5
  425. package/dist/features/builtin-commands/templates/start-work.d.ts +0 -1
  426. package/dist/hooks/start-work/start-work-hook.d.ts +0 -23
  427. package/dist/plugin/chat-message/start-work-message.d.ts +0 -5
  428. package/dist/tools/call-omo-agent/background-agent-executor.d.ts +0 -5
  429. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +0 -28
  430. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +0 -17
  431. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +0 -17
  432. package/packages/omo-codex/plugin/skills/start-work/agents/openai.yaml +0 -2
  433. package/packages/omo-codex/plugin/test/aggregate-skills.test.mjs +0 -92
  434. package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +0 -314
  435. package/packages/omo-codex/plugin/test/ulw-plan-scope-contract.test.mjs +0 -24
  436. /package/dist/hooks/{start-work → ulw-execute}/context-info-formatters.d.ts +0 -0
  437. /package/dist/hooks/{start-work → ulw-execute}/explicit-plan-context.d.ts +0 -0
  438. /package/dist/hooks/{start-work → ulw-execute}/notepad-scaffold.d.ts +0 -0
  439. /package/dist/hooks/{start-work → ulw-execute}/parse-user-request.d.ts +0 -0
  440. /package/dist/hooks/{start-work → ulw-execute}/plan-discovery-context.d.ts +0 -0
  441. /package/dist/hooks/{start-work → ulw-execute}/plan-selection.d.ts +0 -0
  442. /package/dist/hooks/{start-work → ulw-execute}/session-plan-affinity.d.ts +0 -0
  443. /package/dist/hooks/{start-work → ulw-execute}/work-initializer.d.ts +0 -0
  444. /package/dist/hooks/{start-work → ulw-execute}/worktree-block.d.ts +0 -0
  445. /package/dist/hooks/{start-work → ulw-execute}/worktree-detector.d.ts +0 -0
  446. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/.gitattributes +0 -0
  447. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/CHANGELOG.md +0 -0
  448. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/LICENSE +0 -0
  449. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/plan-checklist.ts +0 -0
  450. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/types.ts +0 -0
  451. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-completed.json +0 -0
  452. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-mixed-platforms.json +0 -0
  453. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-single-codex-work.json +0 -0
  454. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-all-done.md +0 -0
  455. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-scaffold.md +0 -0
  456. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-with-nested-checkboxes.md +0 -0
  457. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-with-unchecked.md +0 -0
  458. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/tsconfig.build.json +0 -0
  459. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/tsconfig.json +0 -0
  460. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/vitest.config.ts +0 -0
@@ -749,69 +749,69 @@ function config(newConfig) {
749
749
  // ../../../../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/util.js
750
750
  var exports_util = {};
751
751
  __export(exports_util, {
752
- unwrapMessage: () => unwrapMessage,
753
- uint8ArrayToHex: () => uint8ArrayToHex,
754
- uint8ArrayToBase64url: () => uint8ArrayToBase64url,
755
- uint8ArrayToBase64: () => uint8ArrayToBase64,
756
- stringifyPrimitive: () => stringifyPrimitive,
757
- slugify: () => slugify,
758
- shallowClone: () => shallowClone,
759
- safeExtend: () => safeExtend,
760
- required: () => required,
761
- randomString: () => randomString,
762
- propertyKeyTypes: () => propertyKeyTypes,
763
- promiseAllObject: () => promiseAllObject,
764
- primitiveTypes: () => primitiveTypes,
765
- prefixIssues: () => prefixIssues,
766
- pick: () => pick,
767
- partial: () => partial,
768
- parsedType: () => parsedType,
769
- optionalKeys: () => optionalKeys,
770
- omit: () => omit,
771
- objectClone: () => objectClone,
772
- numKeys: () => numKeys,
773
- nullish: () => nullish,
774
- normalizeParams: () => normalizeParams,
775
- mergeDefs: () => mergeDefs,
776
- merge: () => merge,
777
- jsonStringifyReplacer: () => jsonStringifyReplacer,
778
- joinValues: () => joinValues,
779
- issue: () => issue,
780
- isPlainObject: () => isPlainObject,
781
- isObject: () => isObject,
782
- hexToUint8Array: () => hexToUint8Array,
783
- getSizableOrigin: () => getSizableOrigin,
784
- getParsedType: () => getParsedType,
785
- getLengthableOrigin: () => getLengthableOrigin,
786
- getEnumValues: () => getEnumValues,
787
- getElementAtPath: () => getElementAtPath,
788
- floatSafeRemainder: () => floatSafeRemainder,
789
- finalizeIssue: () => finalizeIssue,
790
- extend: () => extend,
791
- explicitlyAborted: () => explicitlyAborted,
792
- escapeRegex: () => escapeRegex,
793
- esc: () => esc,
794
- defineLazy: () => defineLazy,
795
- createTransparentProxy: () => createTransparentProxy,
796
- cloneDef: () => cloneDef,
797
- clone: () => clone,
798
- cleanRegex: () => cleanRegex,
799
- cleanEnum: () => cleanEnum,
800
- captureStackTrace: () => captureStackTrace,
801
- cached: () => cached,
802
- base64urlToUint8Array: () => base64urlToUint8Array,
803
- base64ToUint8Array: () => base64ToUint8Array,
804
- assignProp: () => assignProp,
805
- assertNotEqual: () => assertNotEqual,
806
- assertNever: () => assertNever,
807
- assertIs: () => assertIs,
808
- assertEqual: () => assertEqual,
809
- assert: () => assert,
810
- allowsEval: () => allowsEval,
811
- aborted: () => aborted,
812
- NUMBER_FORMAT_RANGES: () => NUMBER_FORMAT_RANGES,
752
+ BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES,
813
753
  Class: () => Class,
814
- BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES
754
+ NUMBER_FORMAT_RANGES: () => NUMBER_FORMAT_RANGES,
755
+ aborted: () => aborted,
756
+ allowsEval: () => allowsEval,
757
+ assert: () => assert,
758
+ assertEqual: () => assertEqual,
759
+ assertIs: () => assertIs,
760
+ assertNever: () => assertNever,
761
+ assertNotEqual: () => assertNotEqual,
762
+ assignProp: () => assignProp,
763
+ base64ToUint8Array: () => base64ToUint8Array,
764
+ base64urlToUint8Array: () => base64urlToUint8Array,
765
+ cached: () => cached,
766
+ captureStackTrace: () => captureStackTrace,
767
+ cleanEnum: () => cleanEnum,
768
+ cleanRegex: () => cleanRegex,
769
+ clone: () => clone,
770
+ cloneDef: () => cloneDef,
771
+ createTransparentProxy: () => createTransparentProxy,
772
+ defineLazy: () => defineLazy,
773
+ esc: () => esc,
774
+ escapeRegex: () => escapeRegex,
775
+ explicitlyAborted: () => explicitlyAborted,
776
+ extend: () => extend,
777
+ finalizeIssue: () => finalizeIssue,
778
+ floatSafeRemainder: () => floatSafeRemainder,
779
+ getElementAtPath: () => getElementAtPath,
780
+ getEnumValues: () => getEnumValues,
781
+ getLengthableOrigin: () => getLengthableOrigin,
782
+ getParsedType: () => getParsedType,
783
+ getSizableOrigin: () => getSizableOrigin,
784
+ hexToUint8Array: () => hexToUint8Array,
785
+ isObject: () => isObject,
786
+ isPlainObject: () => isPlainObject,
787
+ issue: () => issue,
788
+ joinValues: () => joinValues,
789
+ jsonStringifyReplacer: () => jsonStringifyReplacer,
790
+ merge: () => merge,
791
+ mergeDefs: () => mergeDefs,
792
+ normalizeParams: () => normalizeParams,
793
+ nullish: () => nullish,
794
+ numKeys: () => numKeys,
795
+ objectClone: () => objectClone,
796
+ omit: () => omit,
797
+ optionalKeys: () => optionalKeys,
798
+ parsedType: () => parsedType,
799
+ partial: () => partial,
800
+ pick: () => pick,
801
+ prefixIssues: () => prefixIssues,
802
+ primitiveTypes: () => primitiveTypes,
803
+ promiseAllObject: () => promiseAllObject,
804
+ propertyKeyTypes: () => propertyKeyTypes,
805
+ randomString: () => randomString,
806
+ required: () => required,
807
+ safeExtend: () => safeExtend,
808
+ shallowClone: () => shallowClone,
809
+ slugify: () => slugify,
810
+ stringifyPrimitive: () => stringifyPrimitive,
811
+ uint8ArrayToBase64: () => uint8ArrayToBase64,
812
+ uint8ArrayToBase64url: () => uint8ArrayToBase64url,
813
+ uint8ArrayToHex: () => uint8ArrayToHex,
814
+ unwrapMessage: () => unwrapMessage
815
815
  });
816
816
  function assertEqual(val) {
817
817
  return val;
@@ -4269,7 +4269,7 @@ function finalize(ctx, schema) {
4269
4269
  result.$schema = "http://json-schema.org/draft-07/schema#";
4270
4270
  } else if (ctx.target === "draft-04") {
4271
4271
  result.$schema = "http://json-schema.org/draft-04/schema#";
4272
- } else if (ctx.target === "openapi-3.0") {} else {}
4272
+ } else if (ctx.target === "openapi-3.0") {}
4273
4273
  if (ctx.external?.uri) {
4274
4274
  const id = ctx.external.registry.get(schema)?.id;
4275
4275
  if (!id)
@@ -4478,7 +4478,7 @@ var literalProcessor = (schema, ctx, json, _params) => {
4478
4478
  if (val === undefined) {
4479
4479
  if (ctx.unrepresentable === "throw") {
4480
4480
  throw new Error("Literal `undefined` cannot be represented in JSON Schema");
4481
- } else {}
4481
+ }
4482
4482
  } else if (typeof val === "bigint") {
4483
4483
  if (ctx.unrepresentable === "throw") {
4484
4484
  throw new Error("BigInt literals cannot be represented in JSON Schema");
@@ -5815,13 +5815,25 @@ var OmoCodegraphSettingsSchema = OmoCodegraphSettingsLayerSchema.extend({
5815
5815
  telemetry: boolean2().default(false)
5816
5816
  }).strict();
5817
5817
 
5818
+ // ../../../../omo-config-core/src/schema/git-master.ts
5819
+ var OmoGitMasterSettingsShape = {
5820
+ commit_footer: union([boolean2(), string2()]),
5821
+ include_co_authored_by: boolean2()
5822
+ };
5823
+ var OmoGitMasterSettingsLayerSchema = object(OmoGitMasterSettingsShape).partial().strict();
5824
+ var OmoGitMasterSettingsSchema = OmoGitMasterSettingsLayerSchema.extend({
5825
+ commit_footer: union([boolean2(), string2()]).default(true),
5826
+ include_co_authored_by: boolean2().default(true)
5827
+ }).strict();
5828
+
5818
5829
  // ../../../../omo-config-core/src/schema/memory.ts
5819
5830
  var OmoMemoryReflectionTriggerSchema = object({
5820
- step_count: number2().int().nonnegative().default(0),
5831
+ step_count: number2().int().nonnegative().default(25),
5821
5832
  on_compaction: boolean2().default(true)
5822
5833
  }).strict();
5823
5834
  var OmoMemoryReflectionSchema = object({
5824
- trigger: OmoMemoryReflectionTriggerSchema.default({ step_count: 0, on_compaction: true }),
5835
+ enabled: boolean2().default(true),
5836
+ trigger: OmoMemoryReflectionTriggerSchema.default({ step_count: 25, on_compaction: true }),
5825
5837
  merge: _enum(["auto", "integration"]).default("auto"),
5826
5838
  category: string2().min(1).default("quick"),
5827
5839
  timeout_minutes: number2().int().positive().default(15),
@@ -5834,11 +5846,39 @@ var OmoMemorySyncSchema = object({
5834
5846
  var OmoMemorySearchSchema = object({
5835
5847
  enabled: boolean2().default(true)
5836
5848
  }).strict();
5849
+ var OmoMemoryNudgeSchema = object({
5850
+ enabled: boolean2().default(true),
5851
+ every_user_turns: number2().int().min(1).default(10)
5852
+ }).strict();
5853
+ var OmoMemoryFactsSchema = object({
5854
+ enabled: boolean2().default(true),
5855
+ debounce_settles: number2().int().min(1).default(4)
5856
+ }).strict();
5857
+ var OmoMemoryDreamSchema = object({
5858
+ enabled: boolean2().default(true),
5859
+ idle_minutes: number2().int().min(0).default(30),
5860
+ min_hours_between: number2().int().min(1).default(24),
5861
+ shutdown_launch: boolean2().default(true),
5862
+ auto_select_max: number2().int().min(1).max(10).default(5),
5863
+ auto_select_max_chars: number2().int().min(1e4).default(150000)
5864
+ }).strict();
5865
+ var OmoMemoryPeopleSchema = object({
5866
+ enabled: boolean2().default(true),
5867
+ max_entries: number2().int().min(1).max(100).default(40),
5868
+ max_entry_chars: number2().int().min(50).max(500).default(200)
5869
+ }).strict();
5870
+ var OmoMemorySoulSchema = object({
5871
+ edit_notice: boolean2().default(true)
5872
+ }).strict();
5873
+ var OmoMemoryWriteNoticeSchema = object({
5874
+ enabled: boolean2().default(true)
5875
+ }).strict();
5837
5876
  var OmoMemoryReflectionTriggerLayerSchema = object({
5838
5877
  step_count: number2().int().nonnegative().optional(),
5839
5878
  on_compaction: boolean2().optional()
5840
5879
  }).strict();
5841
5880
  var OmoMemoryReflectionLayerSchema = object({
5881
+ enabled: boolean2().optional(),
5842
5882
  trigger: OmoMemoryReflectionTriggerLayerSchema.optional(),
5843
5883
  merge: _enum(["auto", "integration"]).optional(),
5844
5884
  category: string2().min(1).optional(),
@@ -5852,10 +5892,43 @@ var OmoMemorySyncLayerSchema = object({
5852
5892
  var OmoMemorySearchLayerSchema = object({
5853
5893
  enabled: boolean2().optional()
5854
5894
  }).strict();
5895
+ var OmoMemoryNudgeLayerSchema = object({
5896
+ enabled: boolean2().optional(),
5897
+ every_user_turns: number2().int().min(1).optional()
5898
+ }).strict();
5899
+ var OmoMemoryFactsLayerSchema = object({
5900
+ enabled: boolean2().optional(),
5901
+ debounce_settles: number2().int().min(1).optional()
5902
+ }).strict();
5903
+ var OmoMemoryDreamLayerSchema = object({
5904
+ enabled: boolean2().optional(),
5905
+ idle_minutes: number2().int().min(0).optional(),
5906
+ min_hours_between: number2().int().min(1).optional(),
5907
+ shutdown_launch: boolean2().optional(),
5908
+ auto_select_max: number2().int().min(1).max(10).optional(),
5909
+ auto_select_max_chars: number2().int().min(1e4).optional()
5910
+ }).strict();
5911
+ var OmoMemoryPeopleLayerSchema = object({
5912
+ enabled: boolean2().optional(),
5913
+ max_entries: number2().int().min(1).max(100).optional(),
5914
+ max_entry_chars: number2().int().min(50).max(500).optional()
5915
+ }).strict();
5916
+ var OmoMemorySoulLayerSchema = object({
5917
+ edit_notice: boolean2().optional()
5918
+ }).strict();
5919
+ var OmoMemoryWriteNoticeLayerSchema = object({
5920
+ enabled: boolean2().optional()
5921
+ }).strict();
5855
5922
  var OmoMemoryAgentOverridesSchema = object({
5856
5923
  enabled: boolean2().optional(),
5857
5924
  agent: string2().min(1).optional(),
5858
5925
  reflection: OmoMemoryReflectionLayerSchema.optional(),
5926
+ nudge: OmoMemoryNudgeLayerSchema.optional(),
5927
+ facts: OmoMemoryFactsLayerSchema.optional(),
5928
+ dream: OmoMemoryDreamLayerSchema.optional(),
5929
+ people: OmoMemoryPeopleLayerSchema.optional(),
5930
+ soul: OmoMemorySoulLayerSchema.optional(),
5931
+ write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
5859
5932
  sync: OmoMemorySyncLayerSchema.optional(),
5860
5933
  search: OmoMemorySearchLayerSchema.optional(),
5861
5934
  compile_warn_tokens: number2().int().positive().optional()
@@ -5863,13 +5936,28 @@ var OmoMemoryAgentOverridesSchema = object({
5863
5936
  var OmoMemorySettingsSchema = object({
5864
5937
  enabled: boolean2().default(true),
5865
5938
  agent: string2().min(1).default("auto"),
5939
+ tool_exposure: _enum(["direct", "search"]).default("direct"),
5866
5940
  reflection: OmoMemoryReflectionSchema.default({
5867
- trigger: { step_count: 0, on_compaction: true },
5941
+ enabled: true,
5942
+ trigger: { step_count: 25, on_compaction: true },
5868
5943
  merge: "auto",
5869
5944
  category: "quick",
5870
5945
  timeout_minutes: 15,
5871
5946
  sandbox: "auto"
5872
5947
  }),
5948
+ nudge: OmoMemoryNudgeSchema.default({ enabled: true, every_user_turns: 10 }),
5949
+ facts: OmoMemoryFactsSchema.default({ enabled: true, debounce_settles: 4 }),
5950
+ dream: OmoMemoryDreamSchema.default({
5951
+ enabled: true,
5952
+ idle_minutes: 30,
5953
+ min_hours_between: 24,
5954
+ shutdown_launch: true,
5955
+ auto_select_max: 5,
5956
+ auto_select_max_chars: 150000
5957
+ }),
5958
+ people: OmoMemoryPeopleSchema.default({ enabled: true, max_entries: 40, max_entry_chars: 200 }),
5959
+ soul: OmoMemorySoulSchema.default({ edit_notice: true }),
5960
+ write_notice: OmoMemoryWriteNoticeSchema.default({ enabled: true }),
5873
5961
  sync: OmoMemorySyncSchema.default({ enabled: true }),
5874
5962
  search: OmoMemorySearchSchema.default({ enabled: true }),
5875
5963
  compile_warn_tokens: number2().int().positive().default(30000),
@@ -5878,7 +5966,14 @@ var OmoMemorySettingsSchema = object({
5878
5966
  var OmoMemorySettingsLayerSchema = object({
5879
5967
  enabled: boolean2().optional(),
5880
5968
  agent: string2().min(1).optional(),
5969
+ tool_exposure: _enum(["direct", "search"]).optional(),
5881
5970
  reflection: OmoMemoryReflectionLayerSchema.optional(),
5971
+ nudge: OmoMemoryNudgeLayerSchema.optional(),
5972
+ facts: OmoMemoryFactsLayerSchema.optional(),
5973
+ dream: OmoMemoryDreamLayerSchema.optional(),
5974
+ people: OmoMemoryPeopleLayerSchema.optional(),
5975
+ soul: OmoMemorySoulLayerSchema.optional(),
5976
+ write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
5882
5977
  sync: OmoMemorySyncLayerSchema.optional(),
5883
5978
  search: OmoMemorySearchLayerSchema.optional(),
5884
5979
  compile_warn_tokens: number2().int().positive().optional(),
@@ -5903,7 +5998,7 @@ var OmoModelCatalogLayerSchema = record(string2(), OmoModelCatalogEntryLayerSche
5903
5998
 
5904
5999
  // ../../../../omo-config-core/src/schema/task.ts
5905
6000
  import { availableParallelism } from "node:os";
5906
- var ResidencyMaxChildrenInputSchema = union([number2().int().positive(), literal("unlimited")]);
6001
+ var ResidencyMaxChildrenInputSchema = union([number2().int().nonnegative(), literal("unlimited")]);
5907
6002
  var OmoTaskWaitSchema = object({
5908
6003
  min_ms: number2().int().positive().default(5000),
5909
6004
  default_ms: number2().int().positive().default(60000),
@@ -5917,11 +6012,22 @@ var OmoTaskTeamSettingsSchema = object({
5917
6012
  var OmoTaskWarningsSchema = object({
5918
6013
  unavailable_categories: boolean2().default(true)
5919
6014
  }).strict();
6015
+ var OmoTaskDagSettingsSchema = object({
6016
+ max_nodes_per_run: number2().int().positive().default(64),
6017
+ max_runs_per_session: number2().int().positive().default(16),
6018
+ subscriber_ring: number2().int().positive().default(1000),
6019
+ heartbeat_ms: number2().int().positive().default(15000),
6020
+ history_default_limit: number2().int().positive().default(256),
6021
+ history_max_limit: number2().int().positive().default(1000),
6022
+ retention_days: number2().int().positive().default(7),
6023
+ max_prompt_bytes: number2().int().positive().default(262144)
6024
+ }).strict();
5920
6025
  var OmoTaskSettingsSchema = object({
5921
6026
  default_execution_mode: _enum(["in-process", "process"]).default("in-process"),
5922
- default_concurrency: number2().int().positive().default(5),
5923
- provider_concurrency: record(string2(), number2().int().positive()).optional(),
5924
- model_concurrency: record(string2(), number2().int().positive()).optional(),
6027
+ default_concurrency: number2().int().nonnegative().default(5),
6028
+ global_concurrency: number2().int().nonnegative().default(8),
6029
+ provider_concurrency: record(string2(), number2().int().nonnegative()).optional(),
6030
+ model_concurrency: record(string2(), number2().int().nonnegative()).optional(),
5925
6031
  max_depth: number2().int().nonnegative().default(1),
5926
6032
  residency_max_children: ResidencyMaxChildrenInputSchema.default(8),
5927
6033
  ttl_ms: number2().int().positive().default(86400000),
@@ -5934,7 +6040,18 @@ var OmoTaskSettingsSchema = object({
5934
6040
  max_members: 8,
5935
6041
  max_parallel_members: 4,
5936
6042
  max_wall_clock_minutes: 120
5937
- })
6043
+ }),
6044
+ dag: OmoTaskDagSettingsSchema.optional()
6045
+ }).strict();
6046
+ var OmoTaskDagSettingsLayerSchema = object({
6047
+ max_nodes_per_run: number2().int().positive().optional(),
6048
+ max_runs_per_session: number2().int().positive().optional(),
6049
+ subscriber_ring: number2().int().positive().optional(),
6050
+ heartbeat_ms: number2().int().positive().optional(),
6051
+ history_default_limit: number2().int().positive().optional(),
6052
+ history_max_limit: number2().int().positive().optional(),
6053
+ retention_days: number2().int().positive().optional(),
6054
+ max_prompt_bytes: number2().int().positive().optional()
5938
6055
  }).strict();
5939
6056
  var OmoTaskWaitLayerSchema = object({
5940
6057
  min_ms: number2().int().positive().optional(),
@@ -5951,9 +6068,10 @@ var OmoTaskWarningsLayerSchema = object({
5951
6068
  }).strict();
5952
6069
  var OmoTaskSettingsLayerSchema = object({
5953
6070
  default_execution_mode: _enum(["in-process", "process"]).optional(),
5954
- default_concurrency: number2().int().positive().optional(),
5955
- provider_concurrency: record(string2(), number2().int().positive()).optional(),
5956
- model_concurrency: record(string2(), number2().int().positive()).optional(),
6071
+ default_concurrency: number2().int().nonnegative().optional(),
6072
+ global_concurrency: number2().int().nonnegative().optional(),
6073
+ provider_concurrency: record(string2(), number2().int().nonnegative()).optional(),
6074
+ model_concurrency: record(string2(), number2().int().nonnegative()).optional(),
5957
6075
  max_depth: number2().int().nonnegative().optional(),
5958
6076
  residency_max_children: ResidencyMaxChildrenInputSchema.optional(),
5959
6077
  ttl_ms: number2().int().positive().optional(),
@@ -5962,13 +6080,15 @@ var OmoTaskSettingsLayerSchema = object({
5962
6080
  resume_children: boolean2().optional(),
5963
6081
  warnings: OmoTaskWarningsLayerSchema.optional(),
5964
6082
  wait: OmoTaskWaitLayerSchema.optional(),
5965
- team: OmoTaskTeamSettingsLayerSchema.optional()
6083
+ team: OmoTaskTeamSettingsLayerSchema.optional(),
6084
+ dag: OmoTaskDagSettingsLayerSchema.optional()
5966
6085
  }).strict();
5967
6086
  function resolveOmoTaskSettings(input, resolveParallelism = availableParallelism) {
5968
6087
  const record2 = record(string2(), unknown()).parse(input);
5969
6088
  return OmoTaskSettingsSchema.parse({
5970
6089
  ...record2,
5971
- residency_max_children: record2["residency_max_children"] ?? Math.max(8, resolveParallelism() * 3)
6090
+ residency_max_children: record2["residency_max_children"] ?? Math.max(8, resolveParallelism() * 3),
6091
+ global_concurrency: record2["global_concurrency"] ?? Math.max(8, resolveParallelism() * 2)
5972
6092
  });
5973
6093
  }
5974
6094
 
@@ -6019,25 +6139,38 @@ var OmoTeamSpecLayerSchema = OmoTeamSpecBaseSchema.partial();
6019
6139
  var OmoTeamsConfigSchema = record(string2(), OmoTeamSpecSchema);
6020
6140
  var OmoTeamsConfigLayerSchema = record(string2(), OmoTeamSpecLayerSchema);
6021
6141
 
6142
+ // ../../../../omo-config-core/src/schema/telemetry.ts
6143
+ var OmoTelemetrySettingsShape = {
6144
+ enabled: boolean2()
6145
+ };
6146
+ var OmoTelemetrySettingsLayerSchema = object(OmoTelemetrySettingsShape).partial().strict();
6147
+ var OmoTelemetrySettingsSchema = OmoTelemetrySettingsLayerSchema.extend({
6148
+ enabled: boolean2().default(true)
6149
+ }).strict();
6150
+
6022
6151
  // ../../../../omo-config-core/src/schema/config.ts
6023
6152
  var OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
6024
6153
  var OmoTypedHarnessConfigSchema = object({
6025
6154
  categories: OmoCategoriesConfigSchema.optional(),
6026
6155
  agents: OmoAgentsConfigSchema.optional(),
6027
6156
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
6157
+ git_master: OmoGitMasterSettingsLayerSchema.optional(),
6028
6158
  task: OmoTaskSettingsLayerSchema.optional(),
6029
6159
  teams: OmoTeamsConfigLayerSchema.optional(),
6030
6160
  models: OmoModelCatalogLayerSchema.optional(),
6031
- memory: OmoMemorySettingsLayerSchema.optional()
6161
+ memory: OmoMemorySettingsLayerSchema.optional(),
6162
+ telemetry: OmoTelemetrySettingsLayerSchema.optional()
6032
6163
  }).strict();
6033
6164
  var OmoConfigProfileSchema = object({
6034
6165
  categories: OmoCategoriesConfigSchema.optional(),
6035
6166
  agents: OmoAgentsConfigSchema.optional(),
6036
6167
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
6168
+ git_master: OmoGitMasterSettingsLayerSchema.optional(),
6037
6169
  task: OmoTaskSettingsLayerSchema.optional(),
6038
6170
  teams: OmoTeamsConfigLayerSchema.optional(),
6039
6171
  models: OmoModelCatalogLayerSchema.optional(),
6040
6172
  memory: OmoMemorySettingsLayerSchema.optional(),
6173
+ telemetry: OmoTelemetrySettingsLayerSchema.optional(),
6041
6174
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
6042
6175
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
6043
6176
  "[codex]": OmoTypedHarnessConfigSchema.optional()
@@ -6047,10 +6180,12 @@ var OmoConfigSchema = object({
6047
6180
  categories: OmoCategoriesConfigSchema.optional(),
6048
6181
  agents: OmoAgentsConfigSchema.optional(),
6049
6182
  codegraph: OmoCodegraphSettingsSchema.optional(),
6183
+ git_master: OmoGitMasterSettingsSchema.optional(),
6050
6184
  task: OmoTaskSettingsSchema.optional(),
6051
6185
  teams: OmoTeamsConfigSchema.optional(),
6052
6186
  models: OmoModelCatalogSchema.optional(),
6053
6187
  memory: OmoMemorySettingsSchema.optional(),
6188
+ telemetry: OmoTelemetrySettingsSchema.optional(),
6054
6189
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
6055
6190
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
6056
6191
  "[codex]": OmoTypedHarnessConfigSchema.optional(),
@@ -6063,10 +6198,12 @@ var OmoConfigLayerSchema = object({
6063
6198
  categories: OmoCategoriesConfigSchema.optional(),
6064
6199
  agents: OmoAgentsConfigSchema.optional(),
6065
6200
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
6201
+ git_master: OmoGitMasterSettingsLayerSchema.optional(),
6066
6202
  task: OmoTaskSettingsLayerSchema.optional(),
6067
6203
  teams: OmoTeamsConfigLayerSchema.optional(),
6068
6204
  models: OmoModelCatalogLayerSchema.optional(),
6069
6205
  memory: OmoMemorySettingsLayerSchema.optional(),
6206
+ telemetry: OmoTelemetrySettingsLayerSchema.optional(),
6070
6207
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
6071
6208
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
6072
6209
  "[codex]": OmoTypedHarnessConfigSchema.optional(),
@@ -9214,7 +9351,11 @@ function createParentWatchdog(config2, onDeadParent) {
9214
9351
  const probeAlive = config2.probeAlive ?? isProcessAlive;
9215
9352
  let fired = false;
9216
9353
  const timer = setInterval(() => {
9217
- if (fired || probeAlive(parentPid))
9354
+ if (fired)
9355
+ return;
9356
+ const alive = probeAlive(parentPid);
9357
+ config2.onPoll?.(alive);
9358
+ if (alive)
9218
9359
  return;
9219
9360
  fired = true;
9220
9361
  onDeadParent(parentPid, pollIntervalMs);
@@ -9284,7 +9425,8 @@ async function runBridgedCodegraphProcess(command, args, options) {
9284
9425
  const child = spawn(invocation.command, invocation.args, {
9285
9426
  cwd: options.cwd,
9286
9427
  env: options.env,
9287
- stdio: ["pipe", "pipe", "inherit"]
9428
+ stdio: ["pipe", "pipe", "inherit"],
9429
+ windowsHide: true
9288
9430
  });
9289
9431
  const childInput = child.stdin;
9290
9432
  const childOutput = child.stdout;
@@ -9726,7 +9868,7 @@ function isDirectInvocation(argvPath) {
9726
9868
  return realpathSync3(resolve5(argvPath)) === realpathSync3(modulePath);
9727
9869
  }
9728
9870
  export {
9729
- runCodegraphServeCli,
9871
+ resolveServeProcessInvocation,
9730
9872
  runCodegraphServe,
9731
- resolveServeProcessInvocation
9873
+ runCodegraphServeCli
9732
9874
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-codegraph",
3
- "version": "5.0.0-beta.2",
3
+ "version": "5.0.0-beta.21",
4
4
  "description": "Codex plugin MCP wrapper for CodeGraph.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -20,9 +20,9 @@
20
20
  },
21
21
  "devDependencies": {
22
22
  "@oh-my-opencode/utils": "file:../../../../utils",
23
- "@types/node": "^25.9.3",
24
- "bun-types": "^1.3.1",
25
- "typescript": "^6.0.3"
23
+ "@types/node": "^26.2.0",
24
+ "bun-types": "^1.4.0",
25
+ "typescript": "^7.0.2"
26
26
  },
27
27
  "optionalDependencies": {
28
28
  "@colbymchenry/codegraph": "1.5.0"
@@ -48,6 +48,7 @@ export async function runBridgedCodegraphProcess(
48
48
  cwd: options.cwd,
49
49
  env: options.env,
50
50
  stdio: ["pipe", "pipe", "inherit"],
51
+ windowsHide: true,
51
52
  });
52
53
  const childInput = child.stdin;
53
54
  const childOutput = child.stdout;
@@ -7,6 +7,7 @@ export function spawnDetachedSessionStartWorker(invocation: WorkerSpawnInvocatio
7
7
  detached: true,
8
8
  env: invocation.env,
9
9
  stdio: "ignore",
10
+ windowsHide: true,
10
11
  });
11
12
  child.unref();
12
13
  }
@@ -10,6 +10,15 @@ Conventions for human contributors and AI agents working on this repository.
10
10
  - Tabs for indentation. Double quotes for strings.
11
11
  - Tests use vitest with `#given .. #when .. #then` descriptions or plain `// given / // when / // then` body comments.
12
12
 
13
+ ## Layout
14
+
15
+ - `src/core.ts`: parse API — `parseApplyPatchRequests`, `extractCommentCheckRequests`, `toHookInput`, `isToolFailureOutput`, `isRecord`.
16
+ - `src/apply-patch.ts`: `apply_patch` extraction supporting Codex `tool_input.command`, raw patch text, and OMO-compatible metadata.
17
+ - `src/request-extractor.ts` / `src/hook-input.ts` / `src/core-values.ts`: request/input shaping and constants.
18
+ - `src/runner.ts`: spawns the checker binary — `runCommentChecker`, `resolveCommentCheckerBinary`, `spawnProcess`.
19
+ - `src/codex-hook.ts`: `PostToolUse` hook + CLI (`extractCodexCommentCheckRequests`, `runCommentCheckerPostToolUse`, `runCodexHookCli`).
20
+ - `hooks/hooks.json`: registration. Heaviest suite: `test/codex-hook.test.ts` (513 LOC).
21
+
13
22
  ## Commands
14
23
 
15
24
  - `npm install` - install dependencies.
@@ -1,9 +1,9 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.4.15/schema.json",
2
+ "$schema": "https://biomejs.dev/schemas/2.5.9/schema.json",
3
3
  "linter": {
4
4
  "enabled": true,
5
5
  "rules": {
6
- "recommended": true,
6
+ "preset": "recommended",
7
7
  "style": {
8
8
  "noDefaultExport": "error",
9
9
  "noEnum": "error",
@@ -416,7 +416,8 @@ function spawnProcess(command, args, stdin, maxOutputBytes = MAX_PROCESS_OUTPUT_
416
416
  return new Promise((resolve) => {
417
417
  const outputByteLimit = Number.isFinite(maxOutputBytes) && maxOutputBytes > 0 ? Math.floor(maxOutputBytes) : 0;
418
418
  const proc = spawn(command, args, {
419
- stdio: ["pipe", "pipe", "pipe"]
419
+ stdio: ["pipe", "pipe", "pipe"],
420
+ windowsHide: true
420
421
  });
421
422
  const stdout = { text: "", bytes: 0, truncated: false };
422
423
  const stderr = { text: "", bytes: 0, truncated: false };
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.0.0-beta.2) Checking Comments"
11
+ "statusMessage": "(OmO 5.0.0-beta.21) Checking Comments"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-comment-checker",
3
- "version": "5.0.0-beta.2",
3
+ "version": "5.0.0-beta.21",
4
4
  "description": "Codex plugin that runs comment-checker after edit-like PostToolUse hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -47,10 +47,10 @@
47
47
  },
48
48
  "devDependencies": {
49
49
  "@oh-my-opencode/comment-checker-core": "file:../../../../comment-checker-core",
50
- "@biomejs/biome": "2.4.16",
51
- "@types/node": "^25.9.3",
52
- "typescript": "^6.0.3",
53
- "vitest": "^4.1.8"
50
+ "@biomejs/biome": "2.5.9",
51
+ "@types/node": "^26.2.0",
52
+ "typescript": "^7.0.2",
53
+ "vitest": "^4.1.11"
54
54
  },
55
55
  "engines": {
56
56
  "node": ">=20.0.0"
@@ -1,8 +1,5 @@
1
- import {
2
- extractApplyPatchEdits,
3
- getApplyPatchMetadataFiles,
4
- } from "@oh-my-opencode/comment-checker-core";
5
1
  import type { CheckerEdit as CoreApplyPatchEdit } from "@oh-my-opencode/comment-checker-core";
2
+ import { extractApplyPatchEdits, getApplyPatchMetadataFiles } from "@oh-my-opencode/comment-checker-core";
6
3
  import type { CommentCheckRequest } from "./types.js";
7
4
 
8
5
  export function extractApplyPatchRequests(event: {
@@ -27,10 +24,7 @@ function extractApplyPatchMetadataRequests(details: unknown, sourceToolName: str
27
24
  return toCommentCheckRequests(edits, sourceToolName);
28
25
  }
29
26
 
30
- function toCommentCheckRequests(
31
- edits: readonly CoreApplyPatchEdit[],
32
- sourceToolName: string,
33
- ): CommentCheckRequest[] {
27
+ function toCommentCheckRequests(edits: readonly CoreApplyPatchEdit[], sourceToolName: string): CommentCheckRequest[] {
34
28
  const requests: CommentCheckRequest[] = [];
35
29
  for (const edit of edits) {
36
30
  if (edit.before.length === 0) {
@@ -1,6 +1,5 @@
1
- export { parseApplyPatchRequests } from "@oh-my-opencode/comment-checker-core";
1
+ export { isRecord, parseApplyPatchRequests } from "@oh-my-opencode/comment-checker-core";
2
2
  export { toHookInput } from "./hook-input.js";
3
- export { isRecord } from "@oh-my-opencode/comment-checker-core";
4
3
  export { extractCommentCheckRequests, isToolFailureOutput } from "./request-extractor.js";
5
4
  export type {
6
5
  CheckerEdit,
@@ -1,5 +1,5 @@
1
- import { extractApplyPatchRequests } from "./apply-patch.js";
2
1
  import { getString, isRecord } from "@oh-my-opencode/comment-checker-core";
2
+ import { extractApplyPatchRequests } from "./apply-patch.js";
3
3
  import type { CheckerEdit, CommentCheckRequest, TextContent, ToolResultContent, ToolResultLike } from "./types.js";
4
4
 
5
5
  export function extractCommentCheckRequests(event: ToolResultLike): CommentCheckRequest[] {
@@ -167,6 +167,7 @@ export function spawnProcess(
167
167
  const outputByteLimit = Number.isFinite(maxOutputBytes) && maxOutputBytes > 0 ? Math.floor(maxOutputBytes) : 0;
168
168
  const proc = spawn(command, args, {
169
169
  stdio: ["pipe", "pipe", "pipe"],
170
+ windowsHide: true,
170
171
  });
171
172
  const stdout: OutputAccumulator = { text: "", bytes: 0, truncated: false };
172
173
  const stderr: OutputAccumulator = { text: "", bytes: 0, truncated: false };
@@ -27,5 +27,5 @@ Component wrapper (`@sisyphuslabs/codex-git-bash-hook`, private, bin `omo-git-ba
27
27
  - **Windows detection is env-tolerant** (`isWindowsHost`): `platform === "win32"` OR any of `OS=Windows_NT` / `ComSpec` / `SystemRoot` present, so bash-hosted shells on Windows still count.
28
28
  - **Marker path:** `${PLUGIN_DATA:-~/.codex/omo-git-bash}/git-bash-reminder/<session_id>.seen`; session id sanitized to `[A-Za-z0-9._-]`. `PostCompact` removes it with `rmSync(force)`.
29
29
  - **Hook must never block the user's Bash call:** the CLI swallows parse/fs errors and exits 0 on both hook paths; malformed or empty stdin yields empty output.
30
- - **Runtime dep-free Node >=20 ESM.** `@oh-my-opencode/utils` is a devDependency only (`file:` link). Build `tsc -p tsconfig.build.json`; tests run via `bun test test/*.test.ts` (unlike the vitest-based `lsp` component).
30
+ - **Runtime dep-free Node >=20 ESM.** Build `tsc -p tsconfig.build.json`; tests run via `bun test test/*.test.ts` (unlike the vitest-based `lsp` component).
31
31
  - **Windows absolute MCP targets are valid:** `isPluginRuntimePathArg` in `packages/omo-opencode/src/cli/doctor/checks/codex-components.ts` and `script/lazycodex-marketplace-validation.ts` gained `isAbsolute(arg)` so a rewritten `C:\...` git_bash/lsp entrypoint passes validation (commit 3b1681ae8).