lazycodex-ai 5.1.44 → 5.1.45

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 (273) hide show
  1. package/dist/cli/index.js +948 -416
  2. package/dist/cli/service-auth/keystore.d.ts +4 -2
  3. package/dist/cli-node/index.js +948 -416
  4. package/docs/reference/web-terminal-visual-qa.md +8 -0
  5. package/package.json +1 -1
  6. package/packages/lsp-daemon/dist/cli.js +4 -4
  7. package/packages/lsp-daemon/dist/client.js +4 -4
  8. package/packages/lsp-daemon/dist/index.js +4 -4
  9. package/packages/lsp-daemon/package.json +3 -3
  10. package/packages/lsp-tools-mcp/dist/cli.js +4 -4
  11. package/packages/lsp-tools-mcp/dist/mcp.js +4 -4
  12. package/packages/lsp-tools-mcp/dist/tools.js +4 -4
  13. package/packages/lsp-tools-mcp/package.json +3 -3
  14. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  15. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +62 -21
  16. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  17. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  18. package/packages/omo-codex/plugin/components/bootstrap/src/hook.ts +1 -1
  19. package/packages/omo-codex/plugin/components/comment-checker/biome.json +1 -21
  20. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  21. package/packages/omo-codex/plugin/components/comment-checker/package.json +4 -4
  22. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  23. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  24. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/biome.json +1 -21
  25. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  26. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +4 -4
  27. package/packages/omo-codex/plugin/components/lsp/biome.json +1 -21
  28. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  29. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +4 -4
  30. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  31. package/packages/omo-codex/plugin/components/lsp/package.json +4 -4
  32. package/packages/omo-codex/plugin/components/lsp/scripts/build-runtime.mjs +0 -1
  33. package/packages/omo-codex/plugin/components/lsp/test/codex-hook-not-installed.test.ts +1 -1
  34. package/packages/omo-codex/plugin/components/rules/biome.json +1 -21
  35. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  36. package/packages/omo-codex/plugin/components/rules/package.json +4 -4
  37. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  38. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  39. package/packages/omo-codex/plugin/components/telemetry/biome.json +1 -21
  40. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +90 -1
  41. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +91 -1
  42. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  43. package/packages/omo-codex/plugin/components/telemetry/package.json +4 -4
  44. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +2 -2
  45. package/packages/omo-codex/plugin/components/ultrawork/biome.json +1 -21
  46. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  47. package/packages/omo-codex/plugin/components/ultrawork/package.json +4 -4
  48. package/packages/omo-codex/plugin/components/ulw-execute-continuation/biome.json +1 -21
  49. package/packages/omo-codex/plugin/components/ulw-execute-continuation/directive.md +1 -1
  50. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  51. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +4 -4
  52. package/packages/omo-codex/plugin/components/ulw-loop/biome.json +1 -21
  53. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +1 -1
  54. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +7 -7
  55. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +5 -5
  56. package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +1 -1
  57. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  58. package/packages/omo-codex/plugin/components/ulw-loop/package.json +4 -4
  59. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +1 -1
  60. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +5 -5
  61. package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +1 -1
  62. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/commit-mutations.mjs +2 -0
  63. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  64. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  65. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  66. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  67. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  68. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  69. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  70. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  71. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  72. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  73. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  74. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  75. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  76. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  77. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  78. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  79. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  80. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  81. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  82. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  83. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  84. package/packages/omo-codex/plugin/package-lock.json +12 -12
  85. package/packages/omo-codex/plugin/package.json +1 -1
  86. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +7 -7
  87. package/packages/omo-codex/plugin/shared/test/config-loader.test.ts +2 -0
  88. package/packages/omo-codex/plugin/skills/browser/SKILL.md +21 -22
  89. package/packages/omo-codex/plugin/skills/browser/references/commands.md +2 -9
  90. package/packages/omo-codex/plugin/skills/browser/references/install.md +1 -2
  91. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  92. package/packages/omo-codex/plugin/skills/browser/scripts/browser-doctor.mjs +2 -2
  93. package/packages/omo-codex/plugin/skills/browser/scripts/browser-engine-guard.mjs +63 -487
  94. package/packages/omo-codex/plugin/skills/browser/scripts/browser-install.mjs +1 -1
  95. package/packages/omo-codex/plugin/skills/browser/scripts/omowright.mjs +1 -10
  96. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +79 -118
  97. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +75 -224
  98. package/packages/omo-codex/plugin/skills/frontend/references/design/stylegallery.md +32 -27
  99. package/packages/omo-codex/plugin/skills/frontend/references/perfection/README.md +2 -2
  100. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/check-accent-stripes.ts +8 -24
  101. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/check-draft-guard.ts +40 -0
  102. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/collect-files.ts +53 -0
  103. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/draft-guard/findings.ts +16 -0
  104. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/draft-guard/lint.ts +38 -0
  105. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/draft-guard/rules.ts +69 -0
  106. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/draft-guard/text-nodes.ts +121 -0
  107. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/attr-lookalikes.tsx +10 -0
  108. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/bound-values.tsx +12 -0
  109. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/const-generics.tsx +3 -0
  110. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/generics.tsx +7 -0
  111. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/measured-stats.html +6 -0
  112. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/plain-copy.html +9 -0
  113. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/state-copy.html +11 -0
  114. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/attribute-edges.html +7 -0
  115. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/components.tsx +16 -0
  116. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/decorative-badge.vue +7 -0
  117. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/emoji-icons.tsx +9 -0
  118. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/jsx-edges.tsx +1 -0
  119. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.html +6 -0
  120. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.tsx +8 -0
  121. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/vanity-stats.html +5 -0
  122. package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +1 -1
  123. package/packages/omo-codex/plugin/skills/programming/SKILL.md +10 -7
  124. package/packages/omo-codex/plugin/skills/programming/references/typescript/README.md +10 -7
  125. package/packages/omo-codex/plugin/skills/programming/references/typescript/bootstrap.md +9 -23
  126. package/packages/omo-codex/plugin/skills/programming/references/typescript/oxc-lint.md +130 -0
  127. package/packages/omo-codex/plugin/skills/programming/references/typescript/tsconfig-strict.md +6 -62
  128. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/check-no-excuse-rules.ts +12 -12
  129. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/new-project.ts +20 -81
  130. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/.oxfmtrc.json +9 -0
  131. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/.oxlintrc.json +46 -0
  132. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/LICENSE +21 -0
  133. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/index.js +10 -0
  134. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/no-em-dash-copy.js +28 -0
  135. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/require-suppression-reason.js +62 -0
  136. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/tsconfig.json +29 -0
  137. package/packages/omo-codex/plugin/skills/refactor/SKILL.md +14 -14
  138. package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +1 -1
  139. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +2 -2
  140. package/packages/omo-codex/plugin/skills/ulw-execute/SKILL.md +2 -2
  141. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
  142. package/packages/omo-codex/plugin/skills/ulw-research/AGENTS.md +9 -3
  143. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +2 -2
  144. package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +7 -6
  145. package/packages/omo-codex/plugin/skills/ulw-research/references/fact-ledger-grammar.md +116 -0
  146. package/packages/omo-codex/plugin/skills/ulw-research/references/report-gates.md +51 -3
  147. package/packages/omo-codex/plugin/skills/ulw-research/scripts/claims-index.mjs +125 -0
  148. package/packages/omo-codex/plugin/skills/ulw-research/scripts/contracts.mjs +68 -3
  149. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger-kinds.mjs +136 -0
  150. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger-schema.mjs +204 -0
  151. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger.mjs +103 -0
  152. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-brief.mjs +145 -0
  153. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-state.mjs +63 -0
  154. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-static.mjs +1 -1
  155. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-structure.mjs +1 -1
  156. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-text.mjs +1 -27
  157. package/packages/omo-codex/plugin/skills/ulw-research/scripts/lexicon.mjs +47 -0
  158. package/packages/omo-codex/plugin/skills/ulw-research/scripts/numerals.mjs +226 -0
  159. package/packages/omo-codex/plugin/skills/ulw-research/scripts/outcome.mjs +2 -3
  160. package/packages/omo-codex/plugin/skills/ulw-research/scripts/particles-ko.mjs +108 -0
  161. package/packages/omo-codex/plugin/skills/ulw-research/scripts/rational.mjs +139 -0
  162. package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools-commands.mjs +2 -2
  163. package/packages/omo-codex/plugin/skills/ulw-research/scripts/sentence-split.mjs +77 -0
  164. package/packages/omo-codex/plugin/skills/ulw-research/scripts/text-normalize.mjs +82 -0
  165. package/packages/omo-codex/plugin/skills/ulw-research/scripts/text-similarity.mjs +28 -0
  166. package/packages/omo-codex/plugin/skills/ulw-research/scripts/units.mjs +105 -0
  167. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +71 -64
  168. package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +4 -1
  169. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +6 -6
  170. package/packages/omo-codex/scripts/install-dist/install-local.mjs +152 -23
  171. package/packages/shared-skills/skills/browser/SKILL.md +21 -22
  172. package/packages/shared-skills/skills/browser/references/commands.md +2 -9
  173. package/packages/shared-skills/skills/browser/references/install.md +1 -2
  174. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  175. package/packages/shared-skills/skills/browser/scripts/browser-doctor.mjs +2 -2
  176. package/packages/shared-skills/skills/browser/scripts/browser-engine-guard.mjs +63 -487
  177. package/packages/shared-skills/skills/browser/scripts/browser-install.mjs +1 -1
  178. package/packages/shared-skills/skills/browser/scripts/omowright.mjs +1 -10
  179. package/packages/shared-skills/skills/frontend/SKILL.md +79 -118
  180. package/packages/shared-skills/skills/frontend/references/design/README.md +75 -224
  181. package/packages/shared-skills/skills/frontend/references/design/stylegallery.md +32 -27
  182. package/packages/shared-skills/skills/frontend/references/perfection/README.md +2 -2
  183. package/packages/shared-skills/skills/frontend/scripts/perfection/check-accent-stripes.ts +8 -24
  184. package/packages/shared-skills/skills/frontend/scripts/perfection/check-draft-guard.test.ts +101 -0
  185. package/packages/shared-skills/skills/frontend/scripts/perfection/check-draft-guard.ts +40 -0
  186. package/packages/shared-skills/skills/frontend/scripts/perfection/collect-files.test.ts +50 -0
  187. package/packages/shared-skills/skills/frontend/scripts/perfection/collect-files.ts +53 -0
  188. package/packages/shared-skills/skills/frontend/scripts/perfection/draft-guard/findings.ts +16 -0
  189. package/packages/shared-skills/skills/frontend/scripts/perfection/draft-guard/lint.ts +38 -0
  190. package/packages/shared-skills/skills/frontend/scripts/perfection/draft-guard/rules.ts +69 -0
  191. package/packages/shared-skills/skills/frontend/scripts/perfection/draft-guard/text-nodes.ts +121 -0
  192. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/attr-lookalikes.tsx +10 -0
  193. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/bound-values.tsx +12 -0
  194. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/const-generics.tsx +3 -0
  195. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/generics.tsx +7 -0
  196. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/measured-stats.html +6 -0
  197. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/plain-copy.html +9 -0
  198. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/state-copy.html +11 -0
  199. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/attribute-edges.html +7 -0
  200. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/components.tsx +16 -0
  201. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/decorative-badge.vue +7 -0
  202. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/emoji-icons.tsx +9 -0
  203. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/jsx-edges.tsx +1 -0
  204. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.html +6 -0
  205. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.tsx +8 -0
  206. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/vanity-stats.html +5 -0
  207. package/packages/shared-skills/skills/programming/SKILL.md +10 -7
  208. package/packages/shared-skills/skills/programming/references/typescript/README.md +10 -7
  209. package/packages/shared-skills/skills/programming/references/typescript/bootstrap.md +9 -23
  210. package/packages/shared-skills/skills/programming/references/typescript/oxc-lint.md +130 -0
  211. package/packages/shared-skills/skills/programming/references/typescript/tsconfig-strict.md +6 -62
  212. package/packages/shared-skills/skills/programming/scripts/typescript/check-no-excuse-rules.ts +12 -12
  213. package/packages/shared-skills/skills/programming/scripts/typescript/new-project.test.ts +162 -0
  214. package/packages/shared-skills/skills/programming/scripts/typescript/new-project.ts +20 -81
  215. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/.oxfmtrc.json +9 -0
  216. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/.oxlintrc.json +46 -0
  217. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/LICENSE +21 -0
  218. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/index.js +10 -0
  219. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/no-em-dash-copy.js +28 -0
  220. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/require-suppression-reason.js +62 -0
  221. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/tsconfig.json +29 -0
  222. package/packages/shared-skills/skills/refactor/SKILL.md +13 -13
  223. package/packages/shared-skills/skills/ulw-execute/SKILL.md +1 -1
  224. package/packages/shared-skills/skills/ulw-research/AGENTS.md +9 -3
  225. package/packages/shared-skills/skills/ulw-research/SKILL.md +2 -2
  226. package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +7 -6
  227. package/packages/shared-skills/skills/ulw-research/references/fact-ledger-grammar.md +116 -0
  228. package/packages/shared-skills/skills/ulw-research/references/report-gates.md +51 -3
  229. package/packages/shared-skills/skills/ulw-research/scripts/claims-index.mjs +125 -0
  230. package/packages/shared-skills/skills/ulw-research/scripts/claims-index.test.ts +149 -0
  231. package/packages/shared-skills/skills/ulw-research/scripts/contracts.mjs +68 -3
  232. package/packages/shared-skills/skills/ulw-research/scripts/contracts.test.ts +97 -12
  233. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-grammar.test.ts +190 -0
  234. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-kinds.mjs +136 -0
  235. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-kinds.test.ts +141 -0
  236. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-schema.mjs +204 -0
  237. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-schema.test.ts +43 -0
  238. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger.mjs +103 -0
  239. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger.test.ts +252 -0
  240. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-brief.mjs +145 -0
  241. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-brief.test.ts +179 -0
  242. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-state.mjs +63 -0
  243. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-state.test.ts +46 -0
  244. package/packages/shared-skills/skills/ulw-research/scripts/gates-context.test.ts +64 -0
  245. package/packages/shared-skills/skills/ulw-research/scripts/gates-static.mjs +1 -1
  246. package/packages/shared-skills/skills/ulw-research/scripts/gates-structure.mjs +1 -1
  247. package/packages/shared-skills/skills/ulw-research/scripts/gates-text.mjs +1 -27
  248. package/packages/shared-skills/skills/ulw-research/scripts/lexicon.mjs +47 -0
  249. package/packages/shared-skills/skills/ulw-research/scripts/lexicon.test.ts +57 -0
  250. package/packages/shared-skills/skills/ulw-research/scripts/numerals.mjs +226 -0
  251. package/packages/shared-skills/skills/ulw-research/scripts/numerals.test.ts +120 -0
  252. package/packages/shared-skills/skills/ulw-research/scripts/outcome.mjs +2 -3
  253. package/packages/shared-skills/skills/ulw-research/scripts/outcome.test.ts +29 -0
  254. package/packages/shared-skills/skills/ulw-research/scripts/particles-ko.mjs +108 -0
  255. package/packages/shared-skills/skills/ulw-research/scripts/particles-ko.test.ts +86 -0
  256. package/packages/shared-skills/skills/ulw-research/scripts/rational.mjs +139 -0
  257. package/packages/shared-skills/skills/ulw-research/scripts/rational.test.ts +46 -0
  258. package/packages/shared-skills/skills/ulw-research/scripts/report-tools-commands.mjs +2 -2
  259. package/packages/shared-skills/skills/ulw-research/scripts/sentence-split.mjs +77 -0
  260. package/packages/shared-skills/skills/ulw-research/scripts/sentence-split.test.ts +109 -0
  261. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/claim-graph.md +13 -0
  262. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity-brief-locked.md +17 -0
  263. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity-brief-pending.md +17 -0
  264. package/packages/shared-skills/skills/ulw-research/scripts/text-normalize.mjs +82 -0
  265. package/packages/shared-skills/skills/ulw-research/scripts/text-normalize.test.ts +73 -0
  266. package/packages/shared-skills/skills/ulw-research/scripts/text-similarity.mjs +28 -0
  267. package/packages/shared-skills/skills/ulw-research/scripts/text-similarity.test.ts +38 -0
  268. package/packages/shared-skills/skills/ulw-research/scripts/units.mjs +105 -0
  269. package/packages/shared-skills/skills/ulw-research/scripts/units.test.ts +83 -0
  270. package/packages/shared-skills/skills/visual-qa/SKILL.md +70 -63
  271. package/packages/shared-skills/skills/visual-qa/scripts/skill-doc-fields.test.ts +34 -0
  272. package/script/qa/web-terminal-visual-qa.mjs +6 -2
  273. package/script/qa/xterm-live-terminal.mjs +26 -3
@@ -1,27 +1,7 @@
1
1
  {
2
2
  "$schema": "https://biomejs.dev/schemas/2.5.9/schema.json",
3
3
  "linter": {
4
- "enabled": true,
5
- "rules": {
6
- "preset": "recommended",
7
- "style": {
8
- "noDefaultExport": "error",
9
- "noEnum": "error",
10
- "noNonNullAssertion": "error",
11
- "useImportType": "error",
12
- "useConst": "error",
13
- "useNodejsImportProtocol": "off"
14
- },
15
- "complexity": {
16
- "useLiteralKeys": "off"
17
- },
18
- "suspicious": {
19
- "noExplicitAny": "error",
20
- "noTsIgnore": "error",
21
- "noControlCharactersInRegex": "off",
22
- "noEmptyInterface": "off"
23
- }
24
- }
4
+ "enabled": false
25
5
  },
26
6
  "formatter": {
27
7
  "enabled": true,
@@ -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.1.44) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.1.45) 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.1.44",
3
+ "version": "5.1.45",
4
4
  "description": "Codex SubagentStop evidence verifier for LazyCodex executor completions.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -20,9 +20,9 @@
20
20
  "test": "npm run build --silent && vitest --run",
21
21
  "test:watch": "vitest",
22
22
  "typecheck": "tsc --noEmit",
23
- "lint": "biome check .",
24
- "lint:fix": "biome check --write .",
25
- "check": "tsc --noEmit && biome check . && npm run build"
23
+ "lint": "biome format .",
24
+ "lint:fix": "biome format --write .",
25
+ "check": "tsc --noEmit && biome format . && npm run build"
26
26
  },
27
27
  "files": [
28
28
  "dist",
@@ -1,27 +1,7 @@
1
1
  {
2
2
  "$schema": "https://biomejs.dev/schemas/2.5.9/schema.json",
3
3
  "linter": {
4
- "enabled": true,
5
- "rules": {
6
- "preset": "recommended",
7
- "style": {
8
- "noDefaultExport": "error",
9
- "noEnum": "error",
10
- "noNonNullAssertion": "error",
11
- "useImportType": "error",
12
- "useConst": "error",
13
- "useNodejsImportProtocol": "off"
14
- },
15
- "complexity": {
16
- "useLiteralKeys": "off"
17
- },
18
- "suspicious": {
19
- "noExplicitAny": "error",
20
- "noTsIgnore": "error",
21
- "noControlCharactersInRegex": "off",
22
- "noEmptyInterface": "off"
23
- }
24
- }
4
+ "enabled": false
25
5
  },
26
6
  "formatter": {
27
7
  "enabled": true,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "5.1.44",
4
- "inputDigest": "sha256:7118eb9694d75e6fddf2e15335c236943df69a351953f760fef7eb53bda30937",
3
+ "version": "5.1.45",
4
+ "inputDigest": "sha256:1dfcf866d737eda759d86d37d2c6e945010a7591f33c463dff7fb2dc50640bd0",
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": "a2b1db4d57a57bb19cad2ec6ba19694dcc0e0231903c010c0e845821af6dfeae"
12
+ "sha256": "93e248d2fb5ccb0bdc1a01e2ac7c6e05184a919093dd3ab979a1a48af27b8dcd"
13
13
  },
14
14
  {
15
15
  "path": "codex-hook-cli.d.ts",
@@ -4553,7 +4553,7 @@ function formatInstallOptions(serverId, installHint) {
4553
4553
  return ["To install, run:", ` ${installHint}`];
4554
4554
  }
4555
4555
  return [
4556
- "To install in THIS repository (preferred — no global install needed):",
4556
+ "To install in THIS repository (preferred, no global install needed):",
4557
4557
  ` ${localHint}`,
4558
4558
  "",
4559
4559
  "Or install it globally:",
@@ -4566,7 +4566,7 @@ function formatNotInstalled(result) {
4566
4566
  const decision = loadInstallDecision(server.id)?.decision;
4567
4567
  const context = lspRequestContext();
4568
4568
  if (decision === "declined") {
4569
- return `LSP server '${server.id}' (${extensions}) is NOT INSTALLED; user previously declined installation — proceed without LSP.`;
4569
+ return `LSP server '${server.id}' (${extensions}) is NOT INSTALLED; user previously declined installation: proceed without LSP.`;
4570
4570
  }
4571
4571
  const header = [
4572
4572
  `LSP server '${server.id}' for ${extensions} is NOT INSTALLED.`,
@@ -4588,7 +4588,7 @@ function formatNotInstalled(result) {
4588
4588
  ...header,
4589
4589
  ...installOptions,
4590
4590
  "",
4591
- "ACTION REQUIRED — ASK THE USER whether to install this LSP server.",
4591
+ "ACTION REQUIRED: ASK THE USER whether to install this LSP server.",
4592
4592
  "Install-decision recording is unavailable in this harness; proceed without LSP if the user declines."
4593
4593
  ].join(`
4594
4594
  `);
@@ -4597,7 +4597,7 @@ function formatNotInstalled(result) {
4597
4597
  ...header,
4598
4598
  ...installOptions,
4599
4599
  "",
4600
- "ACTION REQUIRED — ASK THE USER whether to install this LSP server.",
4600
+ "ACTION REQUIRED: ASK THE USER whether to install this LSP server.",
4601
4601
  "- If the user agrees: run the install command above, then retry this tool.",
4602
4602
  "- If the user declines, OR has NOT explicitly asked for LSP installation:",
4603
4603
  ` call lsp_install_decision { server_id: "${server.id}", decision: "declined" },`,
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 60,
11
- "statusMessage": "(OmO 5.1.44) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.1.45) Checking LSP Diagnostics"
12
12
  }
13
13
  ]
14
14
  }
@@ -21,7 +21,7 @@
21
21
  "type": "command",
22
22
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
23
23
  "timeout": 5,
24
- "statusMessage": "(OmO 5.1.44) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.1.45) Resetting LSP Diagnostics Cache"
25
25
  }
26
26
  ]
27
27
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lsp",
3
- "version": "5.1.44",
3
+ "version": "5.1.45",
4
4
  "description": "Codex plugin that exposes Language Server Protocol tools and post-edit diagnostics.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -44,10 +44,10 @@
44
44
  "test:watch": "vitest",
45
45
  "pretypecheck": "node scripts/build-lsp-tools.mjs && node scripts/build-lsp-daemon.mjs",
46
46
  "typecheck": "tsc --noEmit",
47
- "lint": "biome check src test",
48
- "lint:fix": "biome check --write src test",
47
+ "lint": "biome format src test",
48
+ "lint:fix": "biome format --write src test",
49
49
  "precheck": "node scripts/build-lsp-tools.mjs && node scripts/build-lsp-daemon.mjs",
50
- "check": "tsc --noEmit && biome check src test && tsc -p tsconfig.build.json"
50
+ "check": "tsc --noEmit && biome format src test && tsc -p tsconfig.build.json"
51
51
  },
52
52
  "dependencies": {
53
53
  "@oh-my-opencode/lsp-core": "file:../../../../lsp-core",
@@ -9,7 +9,6 @@ import {
9
9
  readdirSync,
10
10
  renameSync,
11
11
  rmSync,
12
- statSync,
13
12
  writeFileSync,
14
13
  } from "node:fs";
15
14
  import { dirname, join, relative } from "node:path";
@@ -30,7 +30,7 @@ const UNDECIDED_TEXT = [
30
30
  " npm install -g @biomejs/biome",
31
31
  ].join("\n");
32
32
  const DECLINED_TEXT =
33
- "LSP server 'biome' (.json, .jsonc) is NOT INSTALLED; user previously declined installation — proceed without LSP.";
33
+ "LSP server 'biome' (.json, .jsonc) is NOT INSTALLED; user previously declined installation: proceed without LSP.";
34
34
  const TS_ERROR = "error[typescript] (2322) at 1:7: Type 'string' is not assignable to type 'number'.";
35
35
 
36
36
  const tempDirs: string[] = [];
@@ -1,27 +1,7 @@
1
1
  {
2
2
  "$schema": "https://biomejs.dev/schemas/2.5.9/schema.json",
3
3
  "linter": {
4
- "enabled": true,
5
- "rules": {
6
- "preset": "recommended",
7
- "style": {
8
- "noDefaultExport": "error",
9
- "noEnum": "error",
10
- "noNonNullAssertion": "error",
11
- "useImportType": "error",
12
- "useConst": "error",
13
- "useNodejsImportProtocol": "off"
14
- },
15
- "complexity": {
16
- "useLiteralKeys": "off"
17
- },
18
- "suspicious": {
19
- "noExplicitAny": "error",
20
- "noTsIgnore": "error",
21
- "noControlCharactersInRegex": "off",
22
- "noEmptyInterface": "off"
23
- }
24
- }
4
+ "enabled": false
25
5
  },
26
6
  "formatter": {
27
7
  "enabled": true,
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.44) Loading Project Rules"
10
+ "statusMessage": "(OmO 5.1.45) Loading Project Rules"
11
11
  }
12
12
  ]
13
13
  }
@@ -19,7 +19,7 @@
19
19
  "type": "command",
20
20
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
21
21
  "timeout": 10,
22
- "statusMessage": "(OmO 5.1.44) Loading Project Rules"
22
+ "statusMessage": "(OmO 5.1.45) Loading Project Rules"
23
23
  }
24
24
  ]
25
25
  }
@@ -32,7 +32,7 @@
32
32
  "type": "command",
33
33
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
34
34
  "timeout": 10,
35
- "statusMessage": "(OmO 5.1.44) Matching Project Rules"
35
+ "statusMessage": "(OmO 5.1.45) Matching Project Rules"
36
36
  }
37
37
  ]
38
38
  }
@@ -45,7 +45,7 @@
45
45
  "type": "command",
46
46
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
47
47
  "timeout": 10,
48
- "statusMessage": "(OmO 5.1.44) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 5.1.45) Resetting Project Rule Cache"
49
49
  }
50
50
  ]
51
51
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-rules",
3
- "version": "5.1.44",
3
+ "version": "5.1.45",
4
4
  "description": "Codex plugin that injects project rule files into model context through lifecycle hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -42,9 +42,9 @@
42
42
  "test:watch": "vitest",
43
43
  "bench": "npm run build --silent && node scripts/bench-codex-rules.mjs",
44
44
  "typecheck": "tsc --noEmit",
45
- "lint": "biome check .",
46
- "lint:fix": "biome check --write .",
47
- "check": "tsc --noEmit && biome check . && npm run build"
45
+ "lint": "biome format .",
46
+ "lint:fix": "biome format --write .",
47
+ "check": "tsc --noEmit && biome format . && npm run build"
48
48
  },
49
49
  "dependencies": {
50
50
  "picomatch": "^4.0.7"
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.1.44) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 5.1.45) Checking Thread Title Hygiene"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-teammode",
3
- "version": "5.1.44",
3
+ "version": "5.1.45",
4
4
  "description": "Codex team-mode hook component that keeps background thread titles descriptive after create_thread.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -1,27 +1,7 @@
1
1
  {
2
2
  "$schema": "https://biomejs.dev/schemas/2.5.9/schema.json",
3
3
  "linter": {
4
- "enabled": true,
5
- "rules": {
6
- "preset": "recommended",
7
- "style": {
8
- "noDefaultExport": "error",
9
- "noEnum": "error",
10
- "noNonNullAssertion": "error",
11
- "useImportType": "error",
12
- "useConst": "error",
13
- "useNodejsImportProtocol": "off"
14
- },
15
- "complexity": {
16
- "useLiteralKeys": "off"
17
- },
18
- "suspicious": {
19
- "noExplicitAny": "error",
20
- "noTsIgnore": "error",
21
- "noControlCharactersInRegex": "off",
22
- "noEmptyInterface": "off"
23
- }
24
- }
4
+ "enabled": false
25
5
  },
26
6
  "formatter": {
27
7
  "enabled": true,
@@ -1,4 +1,79 @@
1
1
  #!/usr/bin/env node
2
+ var __esm = (fn, res, err) => () => {
3
+ if (fn)
4
+ try {
5
+ res = fn(fn = 0);
6
+ } catch (e) {
7
+ err = [e];
8
+ }
9
+ if (err)
10
+ throw err[0];
11
+ return res;
12
+ };
13
+
14
+ // ../../telemetry-core/src/telemetry-delivery-error.ts
15
+ var PERMANENT_STATUSES, TelemetryDeliveryError;
16
+ var init_telemetry_delivery_error = __esm(() => {
17
+ PERMANENT_STATUSES = new Set([400, 413]);
18
+ TelemetryDeliveryError = class TelemetryDeliveryError extends Error {
19
+ permanent;
20
+ status;
21
+ constructor(status, cause) {
22
+ super(status === undefined ? "telemetry event was not delivered (no response)" : `telemetry event was rejected with HTTP ${status}`, { cause });
23
+ this.name = "TelemetryDeliveryError";
24
+ this.status = status;
25
+ this.permanent = status !== undefined && PERMANENT_STATUSES.has(status);
26
+ }
27
+ };
28
+ });
29
+
30
+ // ../../telemetry-core/src/posthog-immediate-send.ts
31
+ function createImmediateSender(apiKey, options, PostHogClient) {
32
+ const baseFetch = options.fetch ?? ((url, init) => fetch(url, init));
33
+ let current;
34
+ const trackedFetch = async (url, init) => {
35
+ const attempt = current;
36
+ try {
37
+ const response = await baseFetch(url, init);
38
+ if (attempt !== undefined)
39
+ attempt.status = response.status;
40
+ return response;
41
+ } catch (error) {
42
+ if (attempt !== undefined)
43
+ attempt.error = error;
44
+ throw error;
45
+ }
46
+ };
47
+ const client = new PostHogClient(apiKey, { ...options, fetch: trackedFetch, fetchRetryCount: 0 });
48
+ let queue = Promise.resolve();
49
+ const sendOne = async (message) => {
50
+ const attempt = {};
51
+ current = attempt;
52
+ try {
53
+ await client.captureImmediate(message);
54
+ } finally {
55
+ current = undefined;
56
+ }
57
+ const { status } = attempt;
58
+ if (status === undefined || status < 200 || status >= 300)
59
+ throw new TelemetryDeliveryError(status, attempt.error);
60
+ };
61
+ return {
62
+ send(message) {
63
+ const result = queue.then(() => sendOne(message));
64
+ queue = result.catch(() => {
65
+ return;
66
+ });
67
+ return result;
68
+ },
69
+ async shutdown() {
70
+ await client.shutdown();
71
+ }
72
+ };
73
+ }
74
+ var init_posthog_immediate_send = __esm(() => {
75
+ init_telemetry_delivery_error();
76
+ });
2
77
 
3
78
  // components/telemetry/src/cli.ts
4
79
  import { stdin as processStdin, stdout as processStdout } from "node:process";
@@ -9608,17 +9683,31 @@ class PostHog extends PostHogBackendClient {
9608
9683
  // ../../telemetry-core/src/posthog-transport.ts
9609
9684
  class PostHogTelemetryTransport {
9610
9685
  #client;
9686
+ #apiKey;
9687
+ #options;
9688
+ #immediate;
9611
9689
  constructor(apiKey, options) {
9612
9690
  this.#client = new PostHog(apiKey, options);
9691
+ this.#apiKey = apiKey;
9692
+ this.#options = options;
9613
9693
  }
9614
9694
  capture(message) {
9615
9695
  this.#client.capture(message);
9616
9696
  }
9697
+ captureImmediate(message) {
9698
+ this.#immediate ??= Promise.resolve().then(() => (init_posthog_immediate_send(), {})).then(({}) => createImmediateSender(this.#apiKey, this.#options, PostHog)).catch((error) => {
9699
+ this.#immediate = undefined;
9700
+ throw error;
9701
+ });
9702
+ return this.#immediate.then((sender) => sender.send(message));
9703
+ }
9617
9704
  async flush() {
9618
9705
  await this.#client.flush();
9619
9706
  }
9620
9707
  async shutdown() {
9621
- await this.#client.shutdown();
9708
+ await Promise.all([this.#client.shutdown(), this.#immediate?.then((sender) => sender.shutdown(), () => {
9709
+ return;
9710
+ })]);
9622
9711
  }
9623
9712
  }
9624
9713
  function createDefaultPostHogTransport(apiKey, options) {
@@ -1,3 +1,79 @@
1
+ var __esm = (fn, res, err) => () => {
2
+ if (fn)
3
+ try {
4
+ res = fn(fn = 0);
5
+ } catch (e) {
6
+ err = [e];
7
+ }
8
+ if (err)
9
+ throw err[0];
10
+ return res;
11
+ };
12
+
13
+ // ../../../../telemetry-core/src/telemetry-delivery-error.ts
14
+ var PERMANENT_STATUSES, TelemetryDeliveryError;
15
+ var init_telemetry_delivery_error = __esm(() => {
16
+ PERMANENT_STATUSES = new Set([400, 413]);
17
+ TelemetryDeliveryError = class TelemetryDeliveryError extends Error {
18
+ permanent;
19
+ status;
20
+ constructor(status, cause) {
21
+ super(status === undefined ? "telemetry event was not delivered (no response)" : `telemetry event was rejected with HTTP ${status}`, { cause });
22
+ this.name = "TelemetryDeliveryError";
23
+ this.status = status;
24
+ this.permanent = status !== undefined && PERMANENT_STATUSES.has(status);
25
+ }
26
+ };
27
+ });
28
+
29
+ // ../../../../telemetry-core/src/posthog-immediate-send.ts
30
+ function createImmediateSender(apiKey, options, PostHogClient) {
31
+ const baseFetch = options.fetch ?? ((url, init) => fetch(url, init));
32
+ let current;
33
+ const trackedFetch = async (url, init) => {
34
+ const attempt = current;
35
+ try {
36
+ const response = await baseFetch(url, init);
37
+ if (attempt !== undefined)
38
+ attempt.status = response.status;
39
+ return response;
40
+ } catch (error) {
41
+ if (attempt !== undefined)
42
+ attempt.error = error;
43
+ throw error;
44
+ }
45
+ };
46
+ const client = new PostHogClient(apiKey, { ...options, fetch: trackedFetch, fetchRetryCount: 0 });
47
+ let queue = Promise.resolve();
48
+ const sendOne = async (message) => {
49
+ const attempt = {};
50
+ current = attempt;
51
+ try {
52
+ await client.captureImmediate(message);
53
+ } finally {
54
+ current = undefined;
55
+ }
56
+ const { status } = attempt;
57
+ if (status === undefined || status < 200 || status >= 300)
58
+ throw new TelemetryDeliveryError(status, attempt.error);
59
+ };
60
+ return {
61
+ send(message) {
62
+ const result = queue.then(() => sendOne(message));
63
+ queue = result.catch(() => {
64
+ return;
65
+ });
66
+ return result;
67
+ },
68
+ async shutdown() {
69
+ await client.shutdown();
70
+ }
71
+ };
72
+ }
73
+ var init_posthog_immediate_send = __esm(() => {
74
+ init_telemetry_delivery_error();
75
+ });
76
+
1
77
  // ../../../../telemetry-core/src/activity-state.ts
2
78
  import { existsSync, mkdirSync as mkdirSync3, readFileSync } from "node:fs";
3
79
  import { basename, join as join2 } from "node:path";
@@ -9603,17 +9679,31 @@ class PostHog extends PostHogBackendClient {
9603
9679
  // ../../../../telemetry-core/src/posthog-transport.ts
9604
9680
  class PostHogTelemetryTransport {
9605
9681
  #client;
9682
+ #apiKey;
9683
+ #options;
9684
+ #immediate;
9606
9685
  constructor(apiKey, options) {
9607
9686
  this.#client = new PostHog(apiKey, options);
9687
+ this.#apiKey = apiKey;
9688
+ this.#options = options;
9608
9689
  }
9609
9690
  capture(message) {
9610
9691
  this.#client.capture(message);
9611
9692
  }
9693
+ captureImmediate(message) {
9694
+ this.#immediate ??= Promise.resolve().then(() => (init_posthog_immediate_send(), {})).then(({}) => createImmediateSender(this.#apiKey, this.#options, PostHog)).catch((error) => {
9695
+ this.#immediate = undefined;
9696
+ throw error;
9697
+ });
9698
+ return this.#immediate.then((sender) => sender.send(message));
9699
+ }
9612
9700
  async flush() {
9613
9701
  await this.#client.flush();
9614
9702
  }
9615
9703
  async shutdown() {
9616
- await this.#client.shutdown();
9704
+ await Promise.all([this.#client.shutdown(), this.#immediate?.then((sender) => sender.shutdown(), () => {
9705
+ return;
9706
+ })]);
9617
9707
  }
9618
9708
  }
9619
9709
  function createDefaultPostHogTransport(apiKey, options) {
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.44) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.1.45) Recording Session Telemetry"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-telemetry",
3
- "version": "5.1.44",
3
+ "version": "5.1.45",
4
4
  "description": "Codex plugin component that emits omo-codex anonymous daily-active telemetry on SessionStart.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -38,9 +38,9 @@
38
38
  "test": "vitest --run",
39
39
  "test:watch": "vitest",
40
40
  "typecheck": "tsc --noEmit",
41
- "lint": "biome check .",
42
- "lint:fix": "biome check --write .",
43
- "check": "tsc --noEmit && biome check . && npm run build"
41
+ "lint": "biome format .",
42
+ "lint:fix": "biome format --write .",
43
+ "check": "tsc --noEmit && biome format . && npm run build"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@vitest/coverage-v8": "5.0.1",
@@ -17,7 +17,7 @@ Before approval, load or consult `remove-ai-slops` and `programming` when availa
17
17
 
18
18
  Write your report artifact to `<attemptDir>/<goalId>-gate-review.md`, where you read `currentAttemptDir` from `omo-agent-toolkit ulw-loop status --json` (`.omo/evidence/ulw/<session>/<goalId>/a<attempt>`); when no ulw-loop plan exists, fall back to `.omo/evidence/<goal>-gate-review.md`. Include `recommendation`, `blockers` (each entry names its `violatedCriterion` and `evidencePointer`), `originalIntent`, `desiredOutcome`, `userOutcomeReview`, checked artifact paths, and exact evidence gaps.
19
19
 
20
- Return the recommendation (APPROVE/REJECT) AND, on REJECT, the top blockers inline in your final message — each with its violated criterion id, a one-line observation, and an evidence pointer. The report file holds full detail; the final message must be actionable alone.
20
+ Return the recommendation (APPROVE/REJECT) AND, on REJECT, the top blockers inline in your final message: each with its violated criterion id, a one-line observation, and an evidence pointer. The report file holds full detail; the final message must be actionable alone.
21
21
 
22
- APPROVE unless you can cite a specific success criterion the artifact fails, with the evidence that proves it (including an exact artifact a criterion requires but that is missing). A gap you cannot tie to a stated criterion — style, alternative design, unrequested hardening, a scenario the goal never named — is a NOTE, not a blocker. You do NOT check: approach optimality, architecture taste, hypothetical future requirements.
22
+ APPROVE unless you can cite a specific success criterion the artifact fails, with the evidence that proves it (including an exact artifact a criterion requires but that is missing). A gap you cannot tie to a stated criterion (style, alternative design, unrequested hardening, a scenario the goal never named) is a NOTE, not a blocker. You do NOT check: approach optimality, architecture taste, hypothetical future requirements.
23
23
  """
@@ -1,27 +1,7 @@
1
1
  {
2
2
  "$schema": "https://biomejs.dev/schemas/2.5.9/schema.json",
3
3
  "linter": {
4
- "enabled": true,
5
- "rules": {
6
- "preset": "recommended",
7
- "style": {
8
- "noDefaultExport": "error",
9
- "noEnum": "error",
10
- "noNonNullAssertion": "error",
11
- "useImportType": "error",
12
- "useConst": "error",
13
- "useNodejsImportProtocol": "off"
14
- },
15
- "complexity": {
16
- "useLiteralKeys": "off"
17
- },
18
- "suspicious": {
19
- "noExplicitAny": "error",
20
- "noTsIgnore": "error",
21
- "noControlCharactersInRegex": "off",
22
- "noEmptyInterface": "off"
23
- }
24
- }
4
+ "enabled": false
25
5
  },
26
6
  "formatter": {
27
7
  "enabled": true,
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.44) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 5.1.45) Checking Ultrawork Trigger"
11
11
  }
12
12
  ]
13
13
  }