lazycodex-ai 5.1.34 → 5.1.38

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 (134) hide show
  1. package/dist/cli/index.js +122 -48
  2. package/dist/cli-node/index.js +122 -48
  3. package/package.json +1 -1
  4. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  5. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  6. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  7. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  8. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  9. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  10. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  11. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  12. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  13. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  14. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  15. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  16. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  17. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  18. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  19. package/packages/omo-codex/plugin/components/teammode/package.json +2 -2
  20. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +2 -1
  21. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +2 -1
  22. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  23. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  24. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  25. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  27. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  28. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  29. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  30. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  31. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  32. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  33. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  34. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  35. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  36. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  37. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  38. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  39. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  40. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  41. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  42. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  51. package/packages/omo-codex/plugin/package-lock.json +18 -17
  52. package/packages/omo-codex/plugin/package.json +1 -1
  53. package/packages/omo-codex/plugin/shared/package.json +1 -1
  54. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/index.js +4 -4
  55. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +2 -2
  56. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +8 -1
  57. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +3 -2
  58. package/packages/omo-codex/plugin/skills/frontend/references/perfection/README.md +2 -1
  59. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/color.ts +132 -0
  60. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/css-parse.ts +103 -0
  61. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/declarations.ts +156 -0
  62. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/findings.ts +34 -0
  63. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/gradient.ts +70 -0
  64. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/lint.ts +110 -0
  65. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/markup.ts +148 -0
  66. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/selector.ts +46 -0
  67. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/tailwind.ts +117 -0
  68. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/check-accent-stripes.ts +50 -0
  69. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/exempt-states.css +4 -0
  70. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/flat-stripe-side.tsx +11 -0
  71. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/full-surface-gradients.css +34 -0
  72. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/inline-ok.tsx +7 -0
  73. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/neutral-and-flat.css +6 -0
  74. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/pseudo-overlays.css +3 -0
  75. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/tailwind-ok.tsx +11 -0
  76. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/uniform-and-rings.css +3 -0
  77. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/wide-blocks-and-hairlines.css +3 -0
  78. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/apply.css +3 -0
  79. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/border-top-card.css +5 -0
  80. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/cva-variant.ts +1 -0
  81. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/gradient-edges.css +26 -0
  82. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inline-styles.tsx +6 -0
  83. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inset-shadow.css +4 -0
  84. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/non-visible-focus-and-nested.tsx +6 -0
  85. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/pseudo-bar.css +13 -0
  86. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/split-rule-and-token.scss +14 -0
  87. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/styled-components.tsx +14 -0
  88. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-cards.tsx +8 -0
  89. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-inset-and-style.vue +11 -0
  90. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-pseudo.html +3 -0
  91. package/packages/omo-codex/plugin/skills/ulw-research/references/report-gates.md +1 -1
  92. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-figures.mjs +22 -6
  93. package/packages/omo-codex/scripts/install-dist/install-local.mjs +51 -4
  94. package/packages/shared-skills/skills/browser/runtime/omowright/index.js +4 -4
  95. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +2 -2
  96. package/packages/shared-skills/skills/frontend/SKILL.md +8 -1
  97. package/packages/shared-skills/skills/frontend/references/design/README.md +3 -2
  98. package/packages/shared-skills/skills/frontend/references/perfection/README.md +2 -1
  99. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/color.ts +132 -0
  100. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/css-parse.ts +103 -0
  101. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/declarations.ts +156 -0
  102. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/findings.ts +34 -0
  103. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/gradient.ts +70 -0
  104. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/lint.ts +110 -0
  105. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/markup.ts +148 -0
  106. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/selector.ts +46 -0
  107. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/tailwind.ts +117 -0
  108. package/packages/shared-skills/skills/frontend/scripts/perfection/check-accent-stripes.test.ts +86 -0
  109. package/packages/shared-skills/skills/frontend/scripts/perfection/check-accent-stripes.ts +50 -0
  110. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/exempt-states.css +4 -0
  111. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/flat-stripe-side.tsx +11 -0
  112. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/full-surface-gradients.css +34 -0
  113. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/inline-ok.tsx +7 -0
  114. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/neutral-and-flat.css +6 -0
  115. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/pseudo-overlays.css +3 -0
  116. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/tailwind-ok.tsx +11 -0
  117. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/uniform-and-rings.css +3 -0
  118. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/wide-blocks-and-hairlines.css +3 -0
  119. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/apply.css +3 -0
  120. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/border-top-card.css +5 -0
  121. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/cva-variant.ts +1 -0
  122. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/gradient-edges.css +26 -0
  123. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inline-styles.tsx +6 -0
  124. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inset-shadow.css +4 -0
  125. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/non-visible-focus-and-nested.tsx +6 -0
  126. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/pseudo-bar.css +13 -0
  127. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/split-rule-and-token.scss +14 -0
  128. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/styled-components.tsx +14 -0
  129. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-cards.tsx +8 -0
  130. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-inset-and-style.vue +11 -0
  131. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-pseudo.html +3 -0
  132. package/packages/shared-skills/skills/ulw-research/references/report-gates.md +1 -1
  133. package/packages/shared-skills/skills/ulw-research/scripts/gates-figures.mjs +22 -6
  134. package/packages/shared-skills/skills/ulw-research/scripts/gates-static.test.ts +13 -0
@@ -2133,7 +2133,7 @@ var package_default;
2133
2133
  var init_package = __esm(() => {
2134
2134
  package_default = {
2135
2135
  name: "oh-my-opencode",
2136
- version: "5.1.34",
2136
+ version: "5.1.38",
2137
2137
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2138
2138
  main: "./dist/index.js",
2139
2139
  types: "dist/index.d.ts",
@@ -2310,7 +2310,7 @@ var init_package = __esm(() => {
2310
2310
  },
2311
2311
  devDependencies: {
2312
2312
  "@clack/prompts": "^1.8.1",
2313
- "@code-yeongyu/senpi": "2026.10.16",
2313
+ "@code-yeongyu/senpi": "2026.10.19",
2314
2314
  "@modelcontextprotocol/sdk": "^1.30.0",
2315
2315
  "@oh-my-opencode/agents-md-core": "workspace:*",
2316
2316
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
@@ -2347,6 +2347,7 @@ var init_package = __esm(() => {
2347
2347
  "@oh-my-opencode/utils": "workspace:*",
2348
2348
  "@opencode-ai/plugin": "1.18.31",
2349
2349
  "@opencode-ai/sdk": "1.18.31",
2350
+ "@opencode/plugin": "2.0.32",
2350
2351
  "@opentui/core": "^0.5.11",
2351
2352
  "@opentui/keymap": "^0.5.11",
2352
2353
  "@types/js-yaml": "^4.0.9",
@@ -2355,7 +2356,7 @@ var init_package = __esm(() => {
2355
2356
  "@typescript/typescript6": "6.0.2",
2356
2357
  "@xterm/addon-unicode11": "^0.9.0",
2357
2358
  "@xterm/xterm": "^6.0.0",
2358
- "bun-types": "1.4.2",
2359
+ "bun-types": "1.4.3",
2359
2360
  commander: "^15.0.0",
2360
2361
  diff: "^9.0.0",
2361
2362
  "js-yaml": "^5.4.2",
@@ -2369,18 +2370,18 @@ var init_package = __esm(() => {
2369
2370
  typescript: "^7.0.2"
2370
2371
  },
2371
2372
  optionalDependencies: {
2372
- "oh-my-opencode-darwin-arm64": "5.1.34",
2373
- "oh-my-opencode-darwin-x64": "5.1.34",
2374
- "oh-my-opencode-darwin-x64-baseline": "5.1.34",
2375
- "oh-my-opencode-linux-arm64": "5.1.34",
2376
- "oh-my-opencode-linux-arm64-musl": "5.1.34",
2377
- "oh-my-opencode-linux-x64": "5.1.34",
2378
- "oh-my-opencode-linux-x64-baseline": "5.1.34",
2379
- "oh-my-opencode-linux-x64-musl": "5.1.34",
2380
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.34",
2381
- "oh-my-opencode-windows-arm64": "5.1.34",
2382
- "oh-my-opencode-windows-x64": "5.1.34",
2383
- "oh-my-opencode-windows-x64-baseline": "5.1.34"
2373
+ "oh-my-opencode-darwin-arm64": "5.1.38",
2374
+ "oh-my-opencode-darwin-x64": "5.1.38",
2375
+ "oh-my-opencode-darwin-x64-baseline": "5.1.38",
2376
+ "oh-my-opencode-linux-arm64": "5.1.38",
2377
+ "oh-my-opencode-linux-arm64-musl": "5.1.38",
2378
+ "oh-my-opencode-linux-x64": "5.1.38",
2379
+ "oh-my-opencode-linux-x64-baseline": "5.1.38",
2380
+ "oh-my-opencode-linux-x64-musl": "5.1.38",
2381
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.38",
2382
+ "oh-my-opencode-windows-arm64": "5.1.38",
2383
+ "oh-my-opencode-windows-x64": "5.1.38",
2384
+ "oh-my-opencode-windows-x64-baseline": "5.1.38"
2384
2385
  },
2385
2386
  overrides: {
2386
2387
  hono: "^4.13.8",
@@ -9547,6 +9548,7 @@ var init_category_model_requirements = __esm(() => {
9547
9548
  },
9548
9549
  { providers: ["xiaomi", "opencode-go"], model: "mimo-v2.6-pro", variant: "max" },
9549
9550
  { providers: ["xai", "github-copilot", "opencode-go"], model: "grok-4.7", variant: "xhigh" },
9551
+ { providers: ["zai-coding-plan", "opencode-go"], model: "glm-5.3", variant: "high" },
9550
9552
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-6.1-sol", variant: "medium" },
9551
9553
  {
9552
9554
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
@@ -82386,6 +82388,9 @@ var init_activity_state = __esm(() => {
82386
82388
  capturedDaysByStateDir = new Map;
82387
82389
  });
82388
82390
 
82391
+ // packages/telemetry-core/src/consent-gated-fetch.ts
82392
+ var init_consent_gated_fetch = () => {};
82393
+
82389
82394
  // packages/telemetry-core/src/constants.ts
82390
82395
  var DEFAULT_POSTHOG_HOST = "https://us.i.posthog.com", DEFAULT_POSTHOG_API_KEY = "phc_CFJhj5HyvA62QPhvyaUCtaq23aUfznnijg5VaaGkNk74", UNCONFIGURED_POSTHOG_API_KEY = "phc_REPLACE_ME_OMO_NATIVE";
82391
82396
 
@@ -82433,6 +82438,7 @@ function toDiagnosticRecord(input, now) {
82433
82438
  timestamp: now.toISOString(),
82434
82439
  event: input.event,
82435
82440
  source: input.source,
82441
+ ...input.count === undefined ? {} : { count: input.count },
82436
82442
  ...serializeError(input.error, input.errorKind)
82437
82443
  };
82438
82444
  }
@@ -82525,7 +82531,7 @@ function shouldDisableTelemetry(input) {
82525
82531
  const env = input.env ?? process.env;
82526
82532
  const globalPrefix = input.globalEnvPrefix ?? "OMO";
82527
82533
  const prefixes = Array.from(new Set([globalPrefix, input.productEnvPrefix]));
82528
- if (isDisableFlag(env["DO_NOT_TRACK"])) {
82534
+ if (isDisableFlag(env["DO_NOT_TRACK"]) || isDisableFlag(env[`${globalPrefix}_DISABLE_TELEMETRY`])) {
82529
82535
  return true;
82530
82536
  }
82531
82537
  for (const prefix of prefixes) {
@@ -82557,6 +82563,47 @@ var init_env = __esm(() => {
82557
82563
  SEND_OPT_OUT_VALUES = ["0", "false", "no", "yes"];
82558
82564
  });
82559
82565
 
82566
+ // packages/telemetry-core/src/event-id.ts
82567
+ import { randomBytes as nodeRandomBytes } from "node:crypto";
82568
+ function createUuidV7Generator(source = {}) {
82569
+ const now = source.now ?? Date.now;
82570
+ const randomBytes = source.randomBytes ?? ((size) => new Uint8Array(nodeRandomBytes(size)));
82571
+ let lastMs = -1;
82572
+ let counter = 0;
82573
+ return () => {
82574
+ const random = randomBytes(10);
82575
+ const wallMs = Math.floor(now());
82576
+ if (wallMs > lastMs) {
82577
+ lastMs = wallMs;
82578
+ counter = (random[0] << 8 | random[1]) & COUNTER_SEED_MASK;
82579
+ } else if (counter < MAX_COUNTER) {
82580
+ counter += 1;
82581
+ } else {
82582
+ lastMs += 1;
82583
+ counter = (random[0] << 8 | random[1]) & COUNTER_SEED_MASK;
82584
+ }
82585
+ const bytes = new Uint8Array(16);
82586
+ let timestamp = lastMs;
82587
+ for (let index = 5;index >= 0; index -= 1) {
82588
+ bytes[index] = timestamp % 256;
82589
+ timestamp = Math.floor(timestamp / 256);
82590
+ }
82591
+ bytes[6] = 112 | counter >> 8;
82592
+ bytes[7] = counter & 255;
82593
+ bytes[8] = 128 | random[2] & 63;
82594
+ bytes.set(random.subarray(3, 10), 9);
82595
+ return formatUuid(bytes);
82596
+ };
82597
+ }
82598
+ function formatUuid(bytes) {
82599
+ const hex = Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
82600
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
82601
+ }
82602
+ var MAX_COUNTER = 4095, COUNTER_SEED_MASK = 2047, fallbackEventId;
82603
+ var init_event_id = __esm(() => {
82604
+ fallbackEventId = createUuidV7Generator();
82605
+ });
82606
+
82560
82607
  // node_modules/.bun/posthog-node@5.52.4/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
82561
82608
  import { dirname as dirname18, posix as posix7, sep as sep7 } from "path";
82562
82609
  function createModulerModifier() {
@@ -92123,8 +92170,10 @@ var init_record_daily_active = () => {};
92123
92170
  // packages/telemetry-core/src/index.ts
92124
92171
  var init_src5 = __esm(() => {
92125
92172
  init_activity_state();
92173
+ init_consent_gated_fetch();
92126
92174
  init_diagnostics();
92127
92175
  init_env();
92176
+ init_event_id();
92128
92177
  init_events();
92129
92178
  init_machine_id();
92130
92179
  init_posthog_client();
@@ -92136,7 +92185,7 @@ var package_default2;
92136
92185
  var init_package2 = __esm(() => {
92137
92186
  package_default2 = {
92138
92187
  name: "@oh-my-opencode/omo-codex",
92139
- version: "5.1.34",
92188
+ version: "5.1.38",
92140
92189
  type: "module",
92141
92190
  private: true,
92142
92191
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -92171,7 +92220,7 @@ var init_package2 = __esm(() => {
92171
92220
  "@oh-my-opencode/utils": "workspace:*"
92172
92221
  },
92173
92222
  devDependencies: {
92174
- "bun-types": "1.4.2"
92223
+ "bun-types": "1.4.3"
92175
92224
  }
92176
92225
  };
92177
92226
  });
@@ -99434,6 +99483,7 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
99434
99483
  join63("extensions", "omo-computer-use.js"),
99435
99484
  join63("extensions", "omo-memory-doctor.js"),
99436
99485
  join63("extensions", "omo-memory-memfs.js"),
99486
+ join63("extensions", "omo-memory-palace.js"),
99437
99487
  join63("extensions", "omo-thread-client.js"),
99438
99488
  join63("extensions", "assets.generated.json"),
99439
99489
  join63("extensions", "omo-member.js"),
@@ -108509,6 +108559,7 @@ var package_default3 = {
108509
108559
  "@oh-my-opencode/utils": "workspace:*",
108510
108560
  "@opencode-ai/plugin": "1.18.31",
108511
108561
  "@opencode-ai/sdk": "1.18.31",
108562
+ "@opencode/plugin": "2.0.32",
108512
108563
  commander: "^15.0.0",
108513
108564
  "jsonc-parser": "^3.3.1",
108514
108565
  picocolors: "^1.1.1",
@@ -110573,7 +110624,11 @@ function compareUtf16(left, right) {
110573
110624
  const b = Buffer2.from(right, "utf16le").swap16();
110574
110625
  return Buffer2.compare(a, b);
110575
110626
  }
110576
- function serializeValue(value, out) {
110627
+ var MAX_SERIALIZE_DEPTH = 64;
110628
+ function serializeValue(value, out, depth = 0) {
110629
+ if (typeof value === "object" && value !== null && depth >= MAX_SERIALIZE_DEPTH) {
110630
+ throw new CanonicalJsonError("json", `nesting deeper than ${MAX_SERIALIZE_DEPTH}`);
110631
+ }
110577
110632
  if (value === null)
110578
110633
  out.push("null");
110579
110634
  else if (typeof value === "boolean")
@@ -110587,7 +110642,7 @@ function serializeValue(value, out) {
110587
110642
  value.forEach((element, index) => {
110588
110643
  if (index > 0)
110589
110644
  out.push(",");
110590
- serializeValue(element, out);
110645
+ serializeValue(element, out, depth + 1);
110591
110646
  });
110592
110647
  out.push("]");
110593
110648
  } else {
@@ -110596,7 +110651,7 @@ function serializeValue(value, out) {
110596
110651
  if (index > 0)
110597
110652
  out.push(",");
110598
110653
  out.push(escapeCanonicalString(key), ":");
110599
- serializeValue(value[key], out);
110654
+ serializeValue(value[key], out, depth + 1);
110600
110655
  });
110601
110656
  out.push("}");
110602
110657
  }
@@ -110608,9 +110663,12 @@ function canonicalizeJson(value) {
110608
110663
  }
110609
110664
 
110610
110665
  // packages/memory-core/src/sync/canonical-json.ts
110666
+ var MAX_CANONICAL_DEPTH = 64;
110667
+
110611
110668
  class Parser {
110612
110669
  text;
110613
110670
  position = 0;
110671
+ depth = 0;
110614
110672
  constructor(text) {
110615
110673
  this.text = text;
110616
110674
  }
@@ -110624,10 +110682,14 @@ class Parser {
110624
110682
  parseValue() {
110625
110683
  this.skipInsignificant();
110626
110684
  const char = this.text[this.position];
110627
- if (char === "{")
110628
- return this.parseObject();
110629
- if (char === "[")
110630
- return this.parseArray();
110685
+ if (char === "{" || char === "[") {
110686
+ if (this.depth >= MAX_CANONICAL_DEPTH)
110687
+ throw this.fail("json", `nesting deeper than ${MAX_CANONICAL_DEPTH}`);
110688
+ this.depth++;
110689
+ const value = char === "{" ? this.parseObject() : this.parseArray();
110690
+ this.depth--;
110691
+ return value;
110692
+ }
110631
110693
  if (char === '"')
110632
110694
  return this.parseString().value;
110633
110695
  if (char === "-" || char >= "0" && char <= "9")
@@ -110823,7 +110885,14 @@ function openHpkeSealedBox(sealingPrivateRaw, sealingPublicRaw, wrap, info = Buf
110823
110885
  },
110824
110886
  format: "jwk"
110825
110887
  });
110826
- const dh = diffieHellman({ privateKey, publicKey: x25519PublicKeyFromRaw(enc) });
110888
+ let dh;
110889
+ try {
110890
+ dh = diffieHellman({ privateKey, publicKey: x25519PublicKeyFromRaw(enc) });
110891
+ } catch {
110892
+ throw new Error("sealed box does not open: wrong recipient or corrupted wrap");
110893
+ }
110894
+ if (dh.every((byte) => byte === 0))
110895
+ throw new Error("sealed box does not open: wrong recipient or corrupted wrap");
110827
110896
  const kem = Buffer4.concat([Buffer4.from("KEM"), KEM_ID]);
110828
110897
  const suite = Buffer4.concat([Buffer4.from("HPKE"), KEM_ID, KDF_ID, AEAD_ID]);
110829
110898
  const sharedSecret = labeledExpand(kem, "shared_secret", labeledExtract(kem, "eae_prk", dh, Buffer4.alloc(0)), Buffer4.concat([Buffer4.from(enc), Buffer4.from(sealingPublicRaw)]), 32);
@@ -110863,6 +110932,24 @@ var SIGNING_DOMAIN_TAGS = {
110863
110932
  function domainSeparatedMessage(purpose, payload) {
110864
110933
  return Buffer5.concat([Buffer5.from(SIGNING_DOMAIN_TAGS[purpose], "ascii"), Buffer5.from([0]), Buffer5.from(payload)]);
110865
110934
  }
110935
+ var CANONICAL_REASONS = {
110936
+ json: "record-json",
110937
+ "duplicate-key": "record-canonical-duplicate-key",
110938
+ number: "record-canonical-number",
110939
+ order: "record-canonical-order",
110940
+ escape: "record-canonical-escape",
110941
+ whitespace: "record-canonical-whitespace",
110942
+ encoding: "record-canonical-encoding"
110943
+ };
110944
+ function parseCanonical(bytes, what) {
110945
+ try {
110946
+ return requireCanonicalJson(bytes);
110947
+ } catch (error) {
110948
+ if (!(error instanceof CanonicalJsonError))
110949
+ throw error;
110950
+ throw new DeviceKeyringSignError(CANONICAL_REASONS[error.violation], `sign: ${what} preimage is not RFC 8785 canonical JSON: ${error.message}`);
110951
+ }
110952
+ }
110866
110953
  function validateSignRequest(request) {
110867
110954
  if (typeof request !== "object" || request === null) {
110868
110955
  throw new DeviceKeyringSignError("unknown-purpose", "sign: request must be a typed sign request");
@@ -110877,16 +110964,7 @@ function validateSignRequest(request) {
110877
110964
  if (!(request.canonicalJson instanceof Uint8Array)) {
110878
110965
  throw new DeviceKeyringSignError("record-json", "sign: record needs RFC 8785 canonical JSON bytes");
110879
110966
  }
110880
- let parsed;
110881
- try {
110882
- parsed = requireCanonicalJson(request.canonicalJson);
110883
- } catch (error) {
110884
- if (error instanceof CanonicalJsonError) {
110885
- const reason = error.violation === "json" ? "record-json" : error.violation === "duplicate-key" ? "record-canonical-duplicate-key" : error.violation === "number" ? "record-canonical-number" : error.violation === "order" ? "record-canonical-order" : error.violation === "escape" ? "record-canonical-escape" : error.violation === "whitespace" ? "record-canonical-whitespace" : "record-canonical-encoding";
110886
- throw new DeviceKeyringSignError(reason, `sign: record preimage is not RFC 8785 canonical JSON: ${error.message}`);
110887
- }
110888
- throw error;
110889
- }
110967
+ const parsed = parseCanonical(request.canonicalJson, "record");
110890
110968
  if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed) || typeof parsed.t !== "string") {
110891
110969
  throw new DeviceKeyringSignError("record-json", 'sign: record preimage needs a top-level "t" string');
110892
110970
  }
@@ -110894,8 +110972,8 @@ function validateSignRequest(request) {
110894
110972
  if (!t.startsWith("omo-sync/v1/")) {
110895
110973
  throw new DeviceKeyringSignError("record-prefix", 'sign: record "t" must start with "omo-sync/v1/"');
110896
110974
  }
110897
- if (t === SIGNING_DOMAIN_TAGS["object-digest"]) {
110898
- throw new DeviceKeyringSignError("record-prefix", 'sign: record "t" must name a record or snapshot type, not the object-digest tag');
110975
+ if (t === SIGNING_DOMAIN_TAGS["object-digest"] || t === SIGNING_DOMAIN_TAGS.snapshot) {
110976
+ throw new DeviceKeyringSignError("record-prefix", `sign: record "t" must name a keyring record type, not another purpose's tag`);
110899
110977
  }
110900
110978
  return request.canonicalJson;
110901
110979
  }
@@ -110903,15 +110981,7 @@ function validateSignRequest(request) {
110903
110981
  if (!(request.canonicalJson instanceof Uint8Array)) {
110904
110982
  throw new DeviceKeyringSignError("record-json", "sign: snapshot needs RFC 8785 canonical JSON bytes");
110905
110983
  }
110906
- let parsed;
110907
- try {
110908
- parsed = requireCanonicalJson(request.canonicalJson);
110909
- } catch (error) {
110910
- if (error instanceof CanonicalJsonError) {
110911
- throw new DeviceKeyringSignError("record-canonical", `sign: snapshot preimage is not RFC 8785 canonical JSON: ${error.message}`);
110912
- }
110913
- throw error;
110914
- }
110984
+ const parsed = parseCanonical(request.canonicalJson, "snapshot");
110915
110985
  const t = typeof parsed === "object" && parsed !== null ? parsed.t : undefined;
110916
110986
  if (t !== SIGNING_DOMAIN_TAGS.snapshot) {
110917
110987
  throw new DeviceKeyringSignError("snapshot-prefix", 'sign: snapshot preimage "t" must be exactly "omo-sync/v1/snapshot"');
@@ -110921,7 +110991,11 @@ function validateSignRequest(request) {
110921
110991
  throw new DeviceKeyringSignError("unknown-purpose", `sign: unsupported purpose ${JSON.stringify(request.purpose ?? null)}`);
110922
110992
  }
110923
110993
  var WRAP_INFO = Buffer5.concat([Buffer5.from("omo-sync/v1/wrap", "ascii"), Buffer5.from([0])]);
110924
- var wrapAad = (binding) => Buffer5.from(`{"account":${JSON.stringify(binding.account)},"epoch":${binding.epoch},"id":${JSON.stringify(binding.id)}}`, "utf8");
110994
+ var wrapAad = (binding) => {
110995
+ if (!Number.isSafeInteger(binding.epoch) || binding.epoch < 0)
110996
+ throw new Error("unseal: the wrap epoch must be a non-negative integer");
110997
+ return canonicalizeJson({ account: binding.account, epoch: binding.epoch, id: binding.id });
110998
+ };
110925
110999
  function generateDeviceKeyMaterial() {
110926
111000
  const signing = generateKeyPairSync("ed25519");
110927
111001
  const sealing = generateKeyPairSync("x25519");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lazycodex-ai",
3
- "version": "5.1.34",
3
+ "version": "5.1.38",
4
4
  "description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
5
5
  "main": "./dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.1.34",
3
+ "version": "5.1.38",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -8,7 +8,7 @@
8
8
  "command": "node \"${PLUGIN_ROOT}/components/bootstrap/dist/cli.js\" hook session-start",
9
9
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\bootstrap.ps1\"",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.1.34) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.1.38) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-bootstrap",
3
- "version": "5.1.34",
3
+ "version": "5.1.38",
4
4
  "description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -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.1.34) Checking Comments"
11
+ "statusMessage": "(OmO 5.1.38) 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.1.34",
3
+ "version": "5.1.38",
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",
@@ -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.1.34) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.1.38) 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.1.34) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.1.38) 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.1.34",
3
+ "version": "5.1.38",
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,
@@ -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.34) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.1.38) 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.34",
3
+ "version": "5.1.38",
4
4
  "description": "Codex SubagentStop evidence verifier for LazyCodex executor completions.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "5.1.34",
4
- "inputDigest": "sha256:131335f4533ab5a61ada2cf0caf0c1bb90fc1ba51063a470c4797aa887f5a390",
3
+ "version": "5.1.38",
4
+ "inputDigest": "sha256:243e2955ac73aa061ab27152dc6f31cf118025bce72b0f52537519d2f687a54e",
5
5
  "outputs": [
6
6
  {
7
7
  "path": "cli.d.ts",
@@ -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.34) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.1.38) 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.34) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.1.38) 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.34",
3
+ "version": "5.1.38",
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",
@@ -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.34) Loading Project Rules"
10
+ "statusMessage": "(OmO 5.1.38) 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.34) Loading Project Rules"
22
+ "statusMessage": "(OmO 5.1.38) 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.34) Matching Project Rules"
35
+ "statusMessage": "(OmO 5.1.38) 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.34) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 5.1.38) 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.34",
3
+ "version": "5.1.38",
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",
@@ -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.34) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 5.1.38) 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.34",
3
+ "version": "5.1.38",
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,
@@ -17,7 +17,7 @@
17
17
  "devDependencies": {
18
18
  "@vitest/coverage-v8": "5.0.1",
19
19
  "@types/node": "^26.6.2",
20
- "bun-types": "^1.4.2",
20
+ "bun-types": "^1.4.3",
21
21
  "typescript": "^7.0.2",
22
22
  "vitest": "5.0.1"
23
23
  },
@@ -270,6 +270,7 @@ function toDiagnosticRecord(input, now) {
270
270
  timestamp: now.toISOString(),
271
271
  event: input.event,
272
272
  source: input.source,
273
+ ...input.count === undefined ? {} : { count: input.count },
273
274
  ...serializeError(input.error, input.errorKind)
274
275
  };
275
276
  }
@@ -358,7 +359,7 @@ function shouldDisableTelemetry(input) {
358
359
  const env = input.env ?? process.env;
359
360
  const globalPrefix = input.globalEnvPrefix ?? "OMO";
360
361
  const prefixes = Array.from(new Set([globalPrefix, input.productEnvPrefix]));
361
- if (isDisableFlag(env["DO_NOT_TRACK"])) {
362
+ if (isDisableFlag(env["DO_NOT_TRACK"]) || isDisableFlag(env[`${globalPrefix}_DISABLE_TELEMETRY`])) {
362
363
  return true;
363
364
  }
364
365
  for (const prefix of prefixes) {
@@ -265,6 +265,7 @@ function toDiagnosticRecord(input, now) {
265
265
  timestamp: now.toISOString(),
266
266
  event: input.event,
267
267
  source: input.source,
268
+ ...input.count === undefined ? {} : { count: input.count },
268
269
  ...serializeError(input.error, input.errorKind)
269
270
  };
270
271
  }
@@ -353,7 +354,7 @@ function shouldDisableTelemetry(input) {
353
354
  const env = input.env ?? process.env;
354
355
  const globalPrefix = input.globalEnvPrefix ?? "OMO";
355
356
  const prefixes = Array.from(new Set([globalPrefix, input.productEnvPrefix]));
356
- if (isDisableFlag(env["DO_NOT_TRACK"])) {
357
+ if (isDisableFlag(env["DO_NOT_TRACK"]) || isDisableFlag(env[`${globalPrefix}_DISABLE_TELEMETRY`])) {
357
358
  return true;
358
359
  }
359
360
  for (const prefix of prefixes) {
@@ -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.34) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.1.38) 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.34",
3
+ "version": "5.1.38",
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",
@@ -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.34) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 5.1.38) Checking Ultrawork Trigger"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ultrawork",
3
- "version": "5.1.34",
3
+ "version": "5.1.38",
4
4
  "description": "Codex plugin that injects the ultrawork orchestration directive and ships LazyCodex planning, review, QA, and gate agent roles.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/ulw-execute-continuation/dist/cli.js\" hook stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.34) Checking Ulw-Execute Continuation"
10
+ "statusMessage": "(OmO 5.1.38) Checking Ulw-Execute Continuation"
11
11
  }
12
12
  ]
13
13
  }