lazycodex-ai 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 (412) hide show
  1. package/README.ja.md +25 -21
  2. package/README.ko.md +25 -21
  3. package/README.md +38 -23
  4. package/README.ru.md +24 -20
  5. package/README.zh-cn.md +25 -21
  6. package/dist/cli/config-manager/parse-opencode-config-file.d.ts +2 -1
  7. package/dist/cli/doctor/checks/system-plugin.d.ts +4 -3
  8. package/dist/cli/fallback-lane-policy.d.ts +1 -0
  9. package/dist/cli/index.js +22601 -20302
  10. package/dist/cli/install-codex/install-codex-test-fixtures.d.ts +1 -1
  11. package/dist/cli/run/on-complete-hook.d.ts +2 -0
  12. package/dist/cli/runtime-commands.d.ts +1 -1
  13. package/dist/cli/worktree-sweep/classify.d.ts +16 -0
  14. package/dist/cli/worktree-sweep/format.d.ts +8 -0
  15. package/dist/cli/worktree-sweep/git.d.ts +19 -0
  16. package/dist/cli/worktree-sweep/index.d.ts +7 -0
  17. package/dist/cli/worktree-sweep/options.d.ts +2 -0
  18. package/dist/cli/worktree-sweep/parse-worktree-list.d.ts +8 -0
  19. package/dist/cli/worktree-sweep/sweep.d.ts +2 -0
  20. package/dist/cli/worktree-sweep/types.d.ts +65 -0
  21. package/dist/cli/worktree-sweep/worktree-sweep.d.ts +2 -0
  22. package/dist/cli-node/index.js +22219 -19897
  23. package/package.json +11 -7
  24. package/packages/git-bash-mcp/dist/cli.js +6 -1
  25. package/packages/lsp-daemon/dist/cli.js +752 -307
  26. package/packages/lsp-daemon/dist/client.d.ts +10 -0
  27. package/packages/lsp-daemon/dist/client.js +712 -264
  28. package/packages/lsp-daemon/dist/daemon-client.d.ts +1 -0
  29. package/packages/lsp-daemon/dist/daemon-client.js +3 -0
  30. package/packages/lsp-daemon/dist/ensure-daemon.js +1 -0
  31. package/packages/lsp-daemon/dist/index.js +716 -273
  32. package/packages/lsp-daemon/dist/proxy.js +3 -0
  33. package/packages/lsp-daemon/dist/version-reap.js +1 -1
  34. package/packages/lsp-daemon/package.json +1 -1
  35. package/packages/lsp-tools-mcp/dist/cli.js +671 -228
  36. package/packages/lsp-tools-mcp/dist/lsp/manager.js +207 -103
  37. package/packages/lsp-tools-mcp/dist/mcp.js +673 -230
  38. package/packages/lsp-tools-mcp/dist/request-context.js +12 -13
  39. package/packages/lsp-tools-mcp/dist/tools.js +677 -238
  40. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +4 -4
  41. package/packages/omo-codex/plugin/AGENTS.md +47 -0
  42. package/packages/omo-codex/plugin/README.md +1 -1
  43. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +34 -33
  44. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  45. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  46. package/packages/omo-codex/plugin/components/bootstrap/src/hook.ts +1 -0
  47. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +323 -117
  48. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +275 -85
  49. package/packages/omo-codex/plugin/components/codegraph/package.json +4 -4
  50. package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +1 -0
  51. package/packages/omo-codex/plugin/components/codegraph/src/mcp-unavailable.ts +12 -0
  52. package/packages/omo-codex/plugin/components/codegraph/src/session-start-hook-runtime.ts +1 -0
  53. package/packages/omo-codex/plugin/components/codegraph/test/serve-unavailable-idle.test.ts +47 -0
  54. package/packages/omo-codex/plugin/components/comment-checker/AGENTS.md +9 -0
  55. package/packages/omo-codex/plugin/components/comment-checker/biome.json +2 -2
  56. package/packages/omo-codex/plugin/components/comment-checker/dist/cli.js +2 -1
  57. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  58. package/packages/omo-codex/plugin/components/comment-checker/package.json +5 -5
  59. package/packages/omo-codex/plugin/components/comment-checker/src/apply-patch.ts +2 -8
  60. package/packages/omo-codex/plugin/components/comment-checker/src/core.ts +1 -2
  61. package/packages/omo-codex/plugin/components/comment-checker/src/request-extractor.ts +1 -1
  62. package/packages/omo-codex/plugin/components/comment-checker/src/runner.ts +1 -0
  63. package/packages/omo-codex/plugin/components/git-bash/AGENTS.md +1 -1
  64. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  65. package/packages/omo-codex/plugin/components/git-bash/package.json +3 -4
  66. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/biome.json +2 -2
  67. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js +1 -5
  68. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.js +1 -5
  69. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  70. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +5 -5
  71. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/codex-hook.ts +1 -5
  72. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +4 -21
  73. package/packages/omo-codex/plugin/components/lsp/AGENTS.md +30 -15
  74. package/packages/omo-codex/plugin/components/lsp/biome.json +2 -2
  75. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +4 -4
  76. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +702 -278
  77. package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.js +1 -1
  78. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  79. package/packages/omo-codex/plugin/components/lsp/package.json +5 -5
  80. package/packages/omo-codex/plugin/components/lsp/src/cli.ts +1 -1
  81. package/packages/omo-codex/plugin/components/lsp/src/codex-hook.ts +1 -1
  82. package/packages/omo-codex/plugin/components/lsp/src/daemon-cli-path.ts +1 -5
  83. package/packages/omo-codex/plugin/components/lsp/test/codex-hook-unavailable.test.ts +6 -7
  84. package/packages/omo-codex/plugin/components/lsp/test/codex-hook.test.ts +1 -2
  85. package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +11 -1
  86. package/packages/omo-codex/plugin/components/rules/AGENTS.md +12 -0
  87. package/packages/omo-codex/plugin/components/rules/biome.json +2 -2
  88. package/packages/omo-codex/plugin/components/rules/dist/cli.js +60 -45
  89. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  90. package/packages/omo-codex/plugin/components/rules/package.json +7 -7
  91. package/packages/omo-codex/plugin/components/rules/src/config.ts +1 -2
  92. package/packages/omo-codex/plugin/components/rules/src/persistent-cache.ts +1 -2
  93. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +9 -5
  94. package/packages/omo-codex/plugin/components/rules/src/rules-engine-factory.ts +1 -4
  95. package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +4 -9
  96. package/packages/omo-codex/plugin/components/rules/test/bundled-rules-priority.test.ts +11 -16
  97. package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +17 -25
  98. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-budget.test.ts +9 -7
  99. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-context.test.ts +0 -6
  100. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-dedup.test.ts +6 -4
  101. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-directive.test.ts +12 -9
  102. package/packages/omo-codex/plugin/components/rules/test/codex-hook.test.ts +28 -37
  103. package/packages/omo-codex/plugin/components/rules/test/dynamic-target-fingerprints.test.ts +1 -2
  104. package/packages/omo-codex/plugin/components/rules/test/engine.test.ts +7 -4
  105. package/packages/omo-codex/plugin/components/rules/test/finder.test.ts +2 -3
  106. package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +39 -72
  107. package/packages/omo-codex/plugin/components/rules/test/hephaestus-model-variant.test.ts +1 -2
  108. package/packages/omo-codex/plugin/components/rules/test/hook-output.test.ts +2 -3
  109. package/packages/omo-codex/plugin/components/rules/test/matcher.test.ts +2 -3
  110. package/packages/omo-codex/plugin/components/rules/test/package-smoke.test.ts +1 -1
  111. package/packages/omo-codex/plugin/components/rules/test/parser.test.ts +1 -2
  112. package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +5 -6
  113. package/packages/omo-codex/plugin/components/rules/test/rules-engine-consumption.test.ts +3 -6
  114. package/packages/omo-codex/plugin/components/rules/test/scanner.test.ts +1 -2
  115. package/packages/omo-codex/plugin/components/rules/test/sources.test.ts +2 -5
  116. package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +2 -17
  117. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  118. package/packages/omo-codex/plugin/components/teammode/package.json +5 -5
  119. package/packages/omo-codex/plugin/components/teammode/test/thread-title-hook.test.ts +3 -9
  120. package/packages/omo-codex/plugin/components/telemetry/AGENTS.md +8 -0
  121. package/packages/omo-codex/plugin/components/telemetry/biome.json +2 -2
  122. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +2463 -437
  123. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +2467 -441
  124. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  125. package/packages/omo-codex/plugin/components/telemetry/package.json +5 -5
  126. package/packages/omo-codex/plugin/components/telemetry/src/codex-hook.ts +1 -4
  127. package/packages/omo-codex/plugin/components/telemetry/src/posthog.ts +4 -14
  128. package/packages/omo-codex/plugin/components/telemetry/src/product-identity.ts +1 -1
  129. package/packages/omo-codex/plugin/components/telemetry/test/diagnostics.test.ts +2 -5
  130. package/packages/omo-codex/plugin/components/ultrawork/AGENTS.md +5 -0
  131. package/packages/omo-codex/plugin/components/ultrawork/biome.json +2 -2
  132. package/packages/omo-codex/plugin/components/ultrawork/directive.md +13 -1
  133. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  134. package/packages/omo-codex/plugin/components/ultrawork/package.json +5 -5
  135. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +13 -1
  136. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +6 -6
  137. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +31 -7
  138. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +2 -1
  139. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +5 -5
  140. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-trigger-policy.test.ts +9 -1
  141. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +0 -136
  142. package/packages/omo-codex/plugin/components/ultrawork/test/skill-pointer.test.ts +0 -2
  143. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/AGENTS.md +5 -4
  144. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/NOTICE +1 -1
  145. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/README.md +5 -5
  146. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/biome.json +2 -2
  147. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/directive.md +6 -6
  148. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/dist/cli.js +12 -12
  149. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +28 -0
  150. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/package.json +12 -12
  151. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/boulder-reader.ts +1 -1
  152. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/cli.ts +1 -1
  153. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/codex-hook.ts +3 -3
  154. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/directive.ts +1 -1
  155. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/index.ts +1 -1
  156. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/boulder-reader.test.ts +3 -3
  157. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/cli.test.ts +1 -4
  158. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/codex-hook.test.ts +8 -22
  159. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +17 -0
  160. package/packages/omo-codex/plugin/components/ulw-loop/CHANGELOG.md +1 -1
  161. package/packages/omo-codex/plugin/components/ulw-loop/biome.json +2 -2
  162. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +13 -1
  163. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +2 -0
  164. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-commands.js +5 -1
  165. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +2 -1
  166. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +11 -1
  167. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +124 -68
  168. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.d.ts +2 -0
  169. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +9 -6
  170. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.js +1 -1
  171. package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.js +1 -1
  172. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.d.ts +4 -2
  173. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.js +7 -10
  174. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.js +3 -2
  175. package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +3 -3
  176. package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.d.ts +15 -0
  177. package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.js +50 -0
  178. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  179. package/packages/omo-codex/plugin/components/ulw-loop/package.json +5 -5
  180. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +3 -2
  181. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +108 -0
  182. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +1 -0
  183. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +2 -0
  184. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +5 -1
  185. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +13 -1
  186. package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +3 -5
  187. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +16 -5
  188. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-snapshot.ts +3 -1
  189. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +3 -1
  190. package/packages/omo-codex/plugin/components/ulw-loop/src/paths.ts +1 -1
  191. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate.ts +11 -14
  192. package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-guard.ts +3 -2
  193. package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +3 -3
  194. package/packages/omo-codex/plugin/components/ulw-loop/src/surface.ts +73 -0
  195. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-continuation.test.ts +0 -1
  196. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-final.test.ts +44 -1
  197. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-create-goals.test.ts +25 -0
  198. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +26 -2
  199. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +27 -2
  200. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-snapshot.test.ts +18 -0
  201. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-hook.test.ts +0 -3
  202. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/quality-gate-builder.ts +7 -3
  203. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +5 -37
  204. package/packages/omo-codex/plugin/components/ulw-loop/test/paths.test.ts +9 -0
  205. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-roles.test.ts +45 -2
  206. package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard.test.ts +20 -0
  207. package/packages/omo-codex/plugin/components/ulw-loop/test/steering.test.ts +8 -5
  208. package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +1 -1
  209. package/packages/omo-codex/plugin/components/ulw-loop/test/surface.test.ts +74 -0
  210. package/packages/omo-codex/plugin/components/ulw-loop/test/ultrawork-directive.test.ts +4 -5
  211. package/packages/omo-codex/plugin/components/ulw-loop/vitest.config.ts +1 -0
  212. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  213. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  214. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  215. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  216. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  217. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  218. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  219. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  220. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  221. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  222. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  223. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  224. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  225. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  226. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  227. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  228. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +17 -0
  229. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  230. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-ulw-execute-continuation.json +17 -0
  231. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  232. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  233. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  234. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  235. package/packages/omo-codex/plugin/model-catalog.json +3 -3
  236. package/packages/omo-codex/plugin/package-lock.json +681 -395
  237. package/packages/omo-codex/plugin/package.json +2 -2
  238. package/packages/omo-codex/plugin/scripts/AGENTS.md +40 -0
  239. package/packages/omo-codex/plugin/scripts/auto-update-plan.mjs +1 -1
  240. package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +3 -3
  241. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +11 -11
  242. package/packages/omo-codex/plugin/shared/package.json +3 -4
  243. package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +51 -0
  244. package/packages/omo-codex/plugin/skills/coding-agent-sessions/AGENTS.md +62 -0
  245. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +3 -2
  246. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  247. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +4 -4
  248. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  249. package/packages/omo-codex/plugin/skills/data-scientist/SKILL.md +99 -239
  250. package/packages/omo-codex/plugin/skills/data-scientist/references/execution-surfaces.md +91 -0
  251. package/packages/omo-codex/plugin/skills/data-scientist/references/placement.md +74 -0
  252. package/packages/omo-codex/plugin/skills/data-scientist/references/polars-lane.md +95 -0
  253. package/packages/omo-codex/plugin/skills/data-scientist/references/uv-setup.md +1 -1
  254. package/packages/omo-codex/plugin/skills/data-scientist/references/visualization.md +64 -0
  255. package/packages/omo-codex/plugin/skills/data-scientist/scripts/ensure-js-deps.sh +28 -0
  256. package/packages/omo-codex/plugin/skills/data-scientist/scripts/ensure-py-deps.sh +37 -0
  257. package/packages/omo-codex/plugin/skills/debugging/SKILL.md +2 -0
  258. package/packages/omo-codex/plugin/skills/debugging/references/methodology/00-setup.md +12 -0
  259. package/packages/omo-codex/plugin/skills/debugging/references/methodology/02-investigate.md +21 -0
  260. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/go.md +15 -1
  261. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/native-binary.md +38 -0
  262. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/node.md +25 -0
  263. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/python.md +13 -0
  264. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/rust.md +41 -0
  265. package/packages/omo-codex/plugin/skills/debugging/references/scripts/dap.mjs +267 -0
  266. package/packages/omo-codex/plugin/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
  267. package/packages/omo-codex/plugin/skills/debugging/references/tools/dap.md +103 -0
  268. package/packages/omo-codex/plugin/skills/debugging/references/tools/frida.md +193 -0
  269. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +11 -7
  270. package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +1 -0
  271. package/packages/omo-codex/plugin/skills/frontend/references/design/print-paged-media.md +76 -0
  272. package/packages/omo-codex/plugin/skills/frontend/references/design/stylegallery.md +80 -0
  273. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/README.md +1 -1
  274. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  275. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  276. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  277. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/orchestration.md +1 -1
  278. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/routing.md +5 -5
  279. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +4 -4
  280. package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
  281. package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +2 -0
  282. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +179 -0
  283. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/package.json +1 -1
  284. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
  285. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +13 -1
  286. package/packages/omo-codex/plugin/skills/{start-work → ulw-execute}/SKILL.md +12 -11
  287. package/packages/omo-codex/plugin/skills/ulw-execute/agents/openai.yaml +2 -0
  288. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +3 -2
  289. package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +108 -0
  290. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +1 -0
  291. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +6 -6
  292. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +31 -7
  293. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +2 -1
  294. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +5 -5
  295. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +4 -2
  296. package/packages/omo-codex/plugin/skills/visual-qa/AGENTS.md +58 -0
  297. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +3 -2
  298. package/packages/omo-codex/plugin/test/AGENTS.md +47 -0
  299. package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +19 -173
  300. package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +8 -28
  301. package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +1 -1
  302. package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +1 -1
  303. package/packages/omo-codex/plugin/test/aggregate-plugin-fixture.mjs +175 -13
  304. package/packages/omo-codex/plugin/test/aggregate.test.mjs +78 -2
  305. package/packages/omo-codex/plugin/test/auto-update-release-notes.test.mjs +19 -33
  306. package/packages/omo-codex/plugin/test/auto-update.test.mjs +2 -2
  307. package/packages/omo-codex/plugin/test/component-bin-names.test.mjs +2 -2
  308. package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +1 -1
  309. package/packages/omo-codex/plugin/test/component-hook-contract-cases.mjs +2 -2
  310. package/packages/omo-codex/plugin/test/hook-status-message.test.mjs +4 -4
  311. package/packages/omo-codex/plugin/test/lcx-contribute-bug-fix-template.test.mjs +21 -27
  312. package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +8 -8
  313. package/packages/omo-codex/plugin/test/scaffold-plan.test.mjs +0 -36
  314. package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +101 -0
  315. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +12 -12
  316. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +1 -119
  317. package/packages/omo-codex/plugin/test/teammode-archive-ambiguity.test.mjs +0 -40
  318. package/packages/omo-codex/plugin/test/teammode-communication.test.mjs +6 -62
  319. package/packages/omo-codex/plugin/test/teammode-thread-links.test.mjs +3 -36
  320. package/packages/omo-codex/plugin/test/teammode-transport.test.mjs +0 -44
  321. package/packages/omo-codex/plugin/test/teammode-worktree.test.mjs +2 -6
  322. package/packages/omo-codex/plugin/test/ultrawork-skill-pointer.test.mjs +0 -3
  323. package/packages/omo-codex/plugin/test/ulw-plan-review-state-contract.test.mjs +0 -3
  324. package/packages/omo-codex/scripts/install-dist/install-local.mjs +2637 -549
  325. package/packages/shared-skills/skills/ast-grep/AGENTS.md +51 -0
  326. package/packages/shared-skills/skills/coding-agent-sessions/AGENTS.md +62 -0
  327. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +3 -2
  328. package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  329. package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +4 -4
  330. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  331. package/packages/shared-skills/skills/data-scientist/SKILL.md +99 -239
  332. package/packages/shared-skills/skills/data-scientist/references/execution-surfaces.md +91 -0
  333. package/packages/shared-skills/skills/data-scientist/references/placement.md +74 -0
  334. package/packages/shared-skills/skills/data-scientist/references/polars-lane.md +95 -0
  335. package/packages/shared-skills/skills/data-scientist/references/uv-setup.md +1 -1
  336. package/packages/shared-skills/skills/data-scientist/references/visualization.md +64 -0
  337. package/packages/shared-skills/skills/data-scientist/scripts/ensure-js-deps.sh +28 -0
  338. package/packages/shared-skills/skills/data-scientist/scripts/ensure-py-deps.sh +37 -0
  339. package/packages/shared-skills/skills/debugging/SKILL.md +2 -0
  340. package/packages/shared-skills/skills/debugging/references/methodology/00-setup.md +12 -0
  341. package/packages/shared-skills/skills/debugging/references/methodology/02-investigate.md +21 -0
  342. package/packages/shared-skills/skills/debugging/references/runtimes/go.md +15 -1
  343. package/packages/shared-skills/skills/debugging/references/runtimes/native-binary.md +38 -0
  344. package/packages/shared-skills/skills/debugging/references/runtimes/node.md +25 -0
  345. package/packages/shared-skills/skills/debugging/references/runtimes/python.md +13 -0
  346. package/packages/shared-skills/skills/debugging/references/runtimes/rust.md +41 -0
  347. package/packages/shared-skills/skills/debugging/references/scripts/dap.mjs +267 -0
  348. package/packages/shared-skills/skills/debugging/references/scripts/dap.test.ts +86 -0
  349. package/packages/shared-skills/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
  350. package/packages/shared-skills/skills/debugging/references/tools/dap.md +103 -0
  351. package/packages/shared-skills/skills/debugging/references/tools/frida.md +193 -0
  352. package/packages/shared-skills/skills/frontend/SKILL.md +11 -7
  353. package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +1 -0
  354. package/packages/shared-skills/skills/frontend/references/design/print-paged-media.md +76 -0
  355. package/packages/shared-skills/skills/frontend/references/design/stylegallery.md +80 -0
  356. package/packages/shared-skills/skills/frontend/references/designpowers/README.md +1 -1
  357. package/packages/shared-skills/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  358. package/packages/shared-skills/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  359. package/packages/shared-skills/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  360. package/packages/shared-skills/skills/frontend/references/designpowers/orchestration.md +1 -1
  361. package/packages/shared-skills/skills/frontend/references/designpowers/routing.md +5 -5
  362. package/packages/shared-skills/skills/review-work/SKILL.md +3 -3
  363. package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
  364. package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +2 -0
  365. package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +179 -0
  366. package/packages/shared-skills/skills/ultimate-browsing/engine/templates/package.json +1 -1
  367. package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
  368. package/packages/shared-skills/skills/{start-work → ulw-execute}/SKILL.md +9 -8
  369. package/packages/shared-skills/skills/ulw-plan/SKILL.md +6 -6
  370. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +31 -7
  371. package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +2 -1
  372. package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +5 -5
  373. package/packages/shared-skills/skills/ulw-research/SKILL.md +4 -2
  374. package/packages/shared-skills/skills/visual-qa/AGENTS.md +58 -0
  375. package/packages/shared-skills/skills/visual-qa/SKILL.md +3 -2
  376. package/script/qa/web-terminal-visual-qa.mjs +2 -0
  377. package/script/qa/xterm-live-terminal.mjs +18 -2
  378. package/packages/lsp-tools-mcp/dist/lsp/cleanup-errors.d.ts +0 -1
  379. package/packages/lsp-tools-mcp/dist/lsp/constants.d.ts +0 -1
  380. package/packages/lsp-tools-mcp/dist/lsp/language-mappings.d.ts +0 -1
  381. package/packages/lsp-tools-mcp/dist/lsp/process-signal-cleanup.d.ts +0 -1
  382. package/packages/lsp-tools-mcp/dist/missing-dependency-result.d.ts +0 -1
  383. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +0 -28
  384. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +0 -17
  385. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +0 -17
  386. package/packages/omo-codex/plugin/skills/data-scientist/references/common-scenarios.md +0 -176
  387. package/packages/omo-codex/plugin/skills/data-scientist/references/execution-templates.md +0 -197
  388. package/packages/omo-codex/plugin/skills/data-scientist/references/integration-patterns.md +0 -153
  389. package/packages/omo-codex/plugin/skills/data-scientist/references/performance-benchmarks.md +0 -37
  390. package/packages/omo-codex/plugin/skills/start-work/agents/openai.yaml +0 -2
  391. package/packages/omo-codex/plugin/test/aggregate-skills.test.mjs +0 -92
  392. package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +0 -314
  393. package/packages/omo-codex/plugin/test/ulw-plan-scope-contract.test.mjs +0 -24
  394. package/packages/shared-skills/skills/data-scientist/references/common-scenarios.md +0 -176
  395. package/packages/shared-skills/skills/data-scientist/references/execution-templates.md +0 -197
  396. package/packages/shared-skills/skills/data-scientist/references/integration-patterns.md +0 -153
  397. package/packages/shared-skills/skills/data-scientist/references/performance-benchmarks.md +0 -37
  398. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/.gitattributes +0 -0
  399. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/CHANGELOG.md +0 -0
  400. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/LICENSE +0 -0
  401. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/plan-checklist.ts +0 -0
  402. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/types.ts +0 -0
  403. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-completed.json +0 -0
  404. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-mixed-platforms.json +0 -0
  405. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-single-codex-work.json +0 -0
  406. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-all-done.md +0 -0
  407. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-scaffold.md +0 -0
  408. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-with-nested-checkboxes.md +0 -0
  409. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-with-unchecked.md +0 -0
  410. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/tsconfig.build.json +0 -0
  411. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/tsconfig.json +0 -0
  412. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/vitest.config.ts +0 -0
@@ -0,0 +1,47 @@
1
+ import { describe, expect, it } from "bun:test";
2
+ import { PassThrough } from "node:stream";
3
+
4
+ import { runUnavailableCodegraphMcpServer } from "../src/mcp-unavailable.ts";
5
+
6
+ describe("unavailable codegraph MCP idle teardown", () => {
7
+ it("#given the codex host (no respawn for exited stdio servers) #when the unavailable stub starts #then the idle timeout is disabled", async () => {
8
+ // given — codex never respawns a user-configured stdio MCP server
9
+ // (codex-rs reconnects only its own codex_apps server), so if the stub
10
+ // inherited the mcp-stdio-core default idle timeout it would destroy its
11
+ // own stdin after 10 idle minutes and every later codegraph tool call in
12
+ // a long-lived session would fail on a dead connection instead of
13
+ // answering with the skip reason.
14
+ const stdin = new PassThrough();
15
+ const stdout = new PassThrough();
16
+ stdout.resume();
17
+ const lifecycle: Array<{ readonly event: string; readonly data?: unknown }> = [];
18
+
19
+ try {
20
+ // when
21
+ const served = runUnavailableCodegraphMcpServer({
22
+ input: stdin,
23
+ output: stdout,
24
+ reason: "CodeGraph MCP skipped: test reason",
25
+ serverVersion: "0.0.0-test",
26
+ lifecycleLog: (event, data) => {
27
+ lifecycle.push({ event, data });
28
+ },
29
+ });
30
+ const outcome = await Promise.race([
31
+ served.then(() => "settled" as const),
32
+ Bun.sleep(500).then(() => "parked" as const),
33
+ ]);
34
+
35
+ // then — the server must park on the held-open pipe (no idle timer
36
+ // tore it down) and must have started with the timeout disabled.
37
+ expect(outcome).toBe("parked");
38
+ expect(lifecycle).toContainEqual({
39
+ event: "stdio_started",
40
+ data: expect.objectContaining({ idle_timeout_ms: 0 }),
41
+ });
42
+ } finally {
43
+ stdin.destroy();
44
+ stdout.destroy();
45
+ }
46
+ });
47
+ });
@@ -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.3) Checking Comments"
11
+ "statusMessage": "(OmO 5.0.0-beta.31) 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.3",
3
+ "version": "5.0.0-beta.31",
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).
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
10
10
  "timeout": 5,
11
- "statusMessage": "(OmO 5.0.0-beta.3) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.0.0-beta.31) Recommending Git Bash MCP"
12
12
  }
13
13
  ]
14
14
  }
@@ -20,7 +20,7 @@
20
20
  "type": "command",
21
21
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
22
22
  "timeout": 5,
23
- "statusMessage": "(OmO 5.0.0-beta.3) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.0.0-beta.31) Resetting Git Bash MCP Reminder"
24
24
  }
25
25
  ]
26
26
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-git-bash-hook",
3
- "version": "5.0.0-beta.3",
3
+ "version": "5.0.0-beta.31",
4
4
  "description": "Codex hook component that reminds Windows sessions to prefer the OMO git_bash MCP.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -17,9 +17,8 @@
17
17
  "typecheck": "tsc --noEmit"
18
18
  },
19
19
  "devDependencies": {
20
- "@oh-my-opencode/utils": "file:../../../../utils",
21
- "@types/node": "^25.9.3",
22
- "typescript": "^6.0.3"
20
+ "@types/node": "^26.2.0",
21
+ "typescript": "^7.0.2"
23
22
  },
24
23
  "engines": {
25
24
  "node": ">=20.0.0"
@@ -1,9 +1,9 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.4.16/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",
@@ -66,11 +66,7 @@ function isRecord(value) {
66
66
  var SUBAGENT_STOP_EVENT = "SubagentStop";
67
67
 
68
68
  // components/lazycodex-executor-verify/src/codex-hook.ts
69
- var RECEIPT_ENFORCED_AGENTS = new Set([
70
- "lazycodex-worker-low",
71
- "lazycodex-worker-medium",
72
- "lazycodex-worker-high"
73
- ]);
69
+ var RECEIPT_ENFORCED_AGENTS = new Set(["lazycodex-worker-low", "lazycodex-worker-medium", "lazycodex-worker-high"]);
74
70
  function runSubagentStopHook(input, fs) {
75
71
  if (!isSubagentStopInput(input))
76
72
  return "";
@@ -3,11 +3,7 @@ import { isAbsolute, relative, resolve } from "node:path";
3
3
  import { renderDirective } from "./directive.js";
4
4
  import { clearAttemptState, MAX_ATTEMPTS, readAttemptState, writeAttemptState } from "./state.js";
5
5
  import { SUBAGENT_STOP_EVENT } from "./types.js";
6
- const RECEIPT_ENFORCED_AGENTS = new Set([
7
- "lazycodex-worker-low",
8
- "lazycodex-worker-medium",
9
- "lazycodex-worker-high",
10
- ]);
6
+ const RECEIPT_ENFORCED_AGENTS = new Set(["lazycodex-worker-low", "lazycodex-worker-medium", "lazycodex-worker-high"]);
11
7
  export function runSubagentStopHook(input, fs) {
12
8
  if (!isSubagentStopInput(input))
13
9
  return "";
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.0.0-beta.3) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.0.0-beta.31) Verifying LazyCodex Executor Evidence"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lazycodex-executor-verify",
3
- "version": "5.0.0-beta.3",
3
+ "version": "5.0.0-beta.31",
4
4
  "description": "Codex SubagentStop evidence verifier for LazyCodex executor completions.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -33,10 +33,10 @@
33
33
  "NOTICE"
34
34
  ],
35
35
  "devDependencies": {
36
- "@biomejs/biome": "2.4.16",
37
- "@types/node": "^25.9.3",
38
- "typescript": "^6.0.3",
39
- "vitest": "^4.1.8"
36
+ "@biomejs/biome": "2.5.9",
37
+ "@types/node": "^26.2.0",
38
+ "typescript": "^7.0.2",
39
+ "vitest": "^4.1.11"
40
40
  },
41
41
  "engines": {
42
42
  "node": ">=20.0.0"
@@ -6,11 +6,7 @@ import { clearAttemptState, MAX_ATTEMPTS, readAttemptState, writeAttemptState }
6
6
  import type { HookFileSystem, StopHookOutput, SubagentStopInput } from "./types.js";
7
7
  import { SUBAGENT_STOP_EVENT } from "./types.js";
8
8
 
9
- const RECEIPT_ENFORCED_AGENTS = new Set([
10
- "lazycodex-worker-low",
11
- "lazycodex-worker-medium",
12
- "lazycodex-worker-high",
13
- ]);
9
+ const RECEIPT_ENFORCED_AGENTS = new Set(["lazycodex-worker-low", "lazycodex-worker-medium", "lazycodex-worker-high"]);
14
10
 
15
11
  export function runSubagentStopHook(input: unknown, fs: HookFileSystem): string {
16
12
  if (!isSubagentStopInput(input)) return "";
@@ -36,10 +36,8 @@ describe("lazycodex executor SubagentStop verifier", () => {
36
36
  // then
37
37
  const parsed = parseBlockOutput(output);
38
38
  expect(parsed.decision).toBe("block");
39
- expect(parsed.reason).toContain("너는 방금 작업을 완료했다고 보고했고, 그건 거짓말이다.");
40
39
  expect(parsed.reason).toContain(".omo/evidence/");
41
40
  expect(parsed.reason).toContain("EVIDENCE_RECORDED: <path>");
42
- expect(parsed.reason).not.toContain("2번째");
43
41
  });
44
42
 
45
43
  it("#given a prior blocked stop #when lazycodex executor stops again #then escalates the attempt count", () => {
@@ -51,8 +49,9 @@ describe("lazycodex executor SubagentStop verifier", () => {
51
49
  const output = runSubagentStopHook(createInput(cwd), nodeFileSystem);
52
50
 
53
51
  // then
54
- const parsed = parseBlockOutput(output);
55
- expect(parsed.reason).toContain("2번째");
52
+ expect(parseBlockOutput(output).decision).toBe("block");
53
+ const statePath = join(cwd, ".omo", "lazycodex-executor-verify", "sess.1-agent_1.json");
54
+ expect(JSON.parse(readFileSync(statePath, "utf8"))).toEqual({ attempts: 2 });
56
55
  });
57
56
 
58
57
  it("#given turn_id is omitted #when lazycodex executor stops #then the hook still parses the payload", () => {
@@ -375,9 +374,7 @@ describe("tier worker receipt enforcement", () => {
375
374
 
376
375
  it("#given both hook manifests #when their matchers are applied #then enforced agents match and read-only roles do not", () => {
377
376
  // given
378
- const componentManifest = JSON.parse(
379
- readFileSync(new URL("../hooks/hooks.json", import.meta.url), "utf8"),
380
- );
377
+ const componentManifest = JSON.parse(readFileSync(new URL("../hooks/hooks.json", import.meta.url), "utf8"));
381
378
  const rootManifest = JSON.parse(
382
379
  readFileSync(
383
380
  new URL("../../../hooks/subagent-stop-verifying-lazycodex-executor-evidence.json", import.meta.url),
@@ -394,18 +391,4 @@ describe("tier worker receipt enforcement", () => {
394
391
  expect(matcher.test("lazycodex-gate-reviewer")).toBe(false);
395
392
  }
396
393
  });
397
-
398
- it("#given the tier worker TOMLs #when inspected #then each instructs the EVIDENCE_RECORDED receipt line", () => {
399
- for (const tier of ["low", "medium", "high"]) {
400
- // when
401
- const toml = readFileSync(
402
- new URL(`../../ultrawork/agents/lazycodex-worker-${tier}.toml`, import.meta.url),
403
- "utf8",
404
- );
405
-
406
- // then
407
- expect(toml).toContain("EVIDENCE_RECORDED: <path>");
408
- }
409
- });
410
394
  });
411
-
@@ -1,26 +1,41 @@
1
- # Repository Conventions
1
+ # lsp — Codex LSP integration (PostToolUse diagnostics + MCP routing)
2
2
 
3
- Conventions for humans and agents working on this repository.
3
+ **Generated:** 2026-08-24 (refresh pass)
4
4
 
5
- ## Style
5
+ ## OVERVIEW
6
6
 
7
- - TypeScript strict mode. No `any`, `@ts-ignore`, `@ts-expect-error`, or enums.
8
- - ESM modules with `.js` suffix in import paths.
9
- - Tabs for indentation. Double quotes for strings.
10
- - Runtime is Node only.
11
- - Tests use vitest and should exercise Codex hook/MCP behavior before implementation changes.
7
+ `@code-yeongyu/codex-lsp` (Node >=20). Codex-specific integration only: a `PostToolUse` hook (matcher `^(apply_patch|Write|Edit|MultiEdit|multi_edit|write|edit|multiedit)$`, 60s timeout) that runs error diagnostics on files mutated by edit tools and injects blocking feedback plus the same diagnostics as additional context, and a `PostCompact` hook that resets the per-session diagnostics cache. The LSP/MCP runtime lives upstream: `src/cli.ts` routes the `mcp` subcommand to the vendored repo-root `packages/lsp-tools-mcp/` + `packages/lsp-daemon/` builds (wired via the component `.mcp.json` → `../../../../lsp-daemon/dist/cli.js mcp`); this component consumes `@oh-my-opencode/lsp-core` and `@code-yeongyu/lsp-daemon/client` and stays standalone.
8
+
9
+ Deletes are ignored (cannot introduce new diagnostics); unsupported extensions and clean files emit no hook output.
10
+
11
+ ## KEY FILES
12
+
13
+ | File | Role |
14
+ |------|------|
15
+ | `src/cli.ts` | Entry: routes `mcp` to the upstream runtime; `hook post-tool-use` / `hook post-compact` stay local |
16
+ | `src/codex-hook.ts` | Hook logic: request context, mutated-file extraction, daemon diagnostics call, output shaping (`runLspPostToolUseHook`, `runLspPostCompactHook`, `codexLspRequestContext`) |
17
+ | `src/mutated-file-paths.ts` | Tool-input → file path extraction (`path`/`filePath`/`file_path` aliases, `apply_patch` command parsing) |
18
+ | `src/lsp-session-state.ts` | Per-session post-edit cache, compaction marking, daemon-unreachable detection |
19
+ | `src/daemon-cli-path.ts` | Resolves/vets the lsp-daemon CLI and its env (`resolveLspDaemonCliPath`, `ensureLspDaemonCliEnv`) |
20
+ | `scripts/build-lsp-tools.mjs`, `build-lsp-daemon.mjs`, `build-runtime.mjs` | Vendored upstream builds (run by `prebuild`/`pretest` hooks) |
21
+ | `scripts/test.mjs` | Test driver behind `npm test` |
12
22
 
13
- ## Commands
23
+ ## COMMANDS
14
24
 
15
- - `npm install` installs dependencies.
16
- - `npm test` runs the test suite once.
17
- - `npm run typecheck` runs strict TypeScript checking.
18
- - `npm run check` runs typecheck, Biome, and build.
25
+ - `npm install` then `npm run bootstrap` (builds vendored lsp-tools-mcp + lsp-daemon)
26
+ - `npm test` (builds first, then `node scripts/test.mjs`); `npm run test:watch`
27
+ - `npm run typecheck` / `npm run lint` / `npm run check` (typecheck + Biome + build)
19
28
 
20
29
  ## LSP Constraints
21
30
 
22
- - LSP server processes are owned by `LspManager`.
31
+ - LSP server processes are owned by `LspManager` (upstream runtime).
23
32
  - Tool execution acquires clients through `withLspClient(...)` unless it only reports static status.
24
33
  - `lsp.rename` mutates files by applying workspace edits; keep it sequential at the MCP caller level.
25
- - `.mcp.json` sets `lsp` MCP server `startup_timeout_sec: 10` to bound startup; preserve the bound on edits.
34
+ - `.mcp.json` sets `startup_timeout_sec: 10` to bound startup; preserve the bound on edits.
26
35
  - Do not add pi-coding-agent or omo source dependencies. This package is standalone.
36
+
37
+ ## Style
38
+
39
+ - TypeScript strict mode. No `any`, `@ts-ignore`, `@ts-expect-error`, or enums.
40
+ - ESM modules with `.js` suffix in import paths. Tabs. Double quotes.
41
+ - Runtime is Node only; tests use vitest and should exercise Codex hook/MCP behavior before implementation changes.
@@ -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",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "5.0.0-beta.3",
4
- "inputDigest": "sha256:7a43282ba028b5ee285a825219c8083d95133328bfee666aa2e3bddd62342ba9",
3
+ "version": "5.0.0-beta.31",
4
+ "inputDigest": "sha256:858b6dbf85523225a57282289db35b4a82d608613a4a5930ce1d85a86b4296b4",
5
5
  "outputs": [
6
6
  {
7
7
  "path": "cli.d.ts",
@@ -9,7 +9,7 @@
9
9
  },
10
10
  {
11
11
  "path": "cli.js",
12
- "sha256": "805d158f4d99b2fcc318f995efbbf219a8c577952b0785d0da63916d52fc33f8"
12
+ "sha256": "d20c513dadc159abf9ecbc16198769b6b872a77472ac64a78d137e6c73c5debb"
13
13
  },
14
14
  {
15
15
  "path": "codex-hook-cli.d.ts",
@@ -33,7 +33,7 @@
33
33
  },
34
34
  {
35
35
  "path": "daemon-cli-path.js",
36
- "sha256": "5c34353638e95d4a98664c8d23516475e850983e81900aa40e03752946162830"
36
+ "sha256": "96812ddde5100fc408c6109949f07df3df817282dae48428f01a4c3967b4795a"
37
37
  },
38
38
  {
39
39
  "path": "lsp-session-state.d.ts",