lazycodex-ai 5.1.7 → 5.1.9

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 (65) hide show
  1. package/dist/cli/index.js +35 -43
  2. package/dist/cli-node/index.js +35 -43
  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/dist/cli.js +12 -3
  6. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  7. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  8. package/packages/omo-codex/plugin/components/bootstrap/test/download.test.ts +0 -16
  9. package/packages/omo-codex/plugin/components/bootstrap/test/environment.test.ts +3 -0
  10. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  11. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  12. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  13. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  14. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  15. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  16. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  17. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  18. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  19. package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +0 -27
  20. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  21. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  22. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  23. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  24. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  25. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  27. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  28. package/packages/omo-codex/plugin/components/ultrawork/test/directive-source.test.ts +0 -6
  29. package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +0 -15
  30. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  31. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  32. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  33. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  34. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  35. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  36. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  37. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  38. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  39. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  40. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  41. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  42. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  55. package/packages/omo-codex/plugin/package-lock.json +12 -12
  56. package/packages/omo-codex/plugin/package.json +1 -1
  57. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  58. package/packages/omo-codex/plugin/skills/debugging/SKILL.md +1 -1
  59. package/packages/omo-codex/plugin/skills/debugging/references/methodology/06-fix.md +8 -0
  60. package/packages/omo-codex/plugin/test/AGENTS.md +11 -0
  61. package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +0 -50
  62. package/packages/omo-codex/scripts/install-dist/install-local.mjs +14 -5
  63. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  64. package/packages/shared-skills/skills/debugging/SKILL.md +1 -1
  65. package/packages/shared-skills/skills/debugging/references/methodology/06-fix.md +8 -0
@@ -340,56 +340,6 @@ function smokeImportComponent(component, event) {
340
340
  }
341
341
  }
342
342
 
343
- function writeFakeLspDaemonCli(path) {
344
- writeFileSync(
345
- path,
346
- [
347
- "#!/usr/bin/env node",
348
- 'import { createHash } from "node:crypto";',
349
- 'import { appendFileSync, mkdirSync, readdirSync, unlinkSync } from "node:fs";',
350
- 'import { tmpdir } from "node:os";',
351
- 'import { dirname, join } from "node:path";',
352
- 'import { createServer } from "node:net";',
353
- "",
354
- "appendFileSync(process.env.FAKE_LSP_DAEMON_LOG, `${JSON.stringify(process.argv.slice(2))}\\n`);",
355
- "const baseDir = process.env.OMO_LSP_DAEMON_DIR;",
356
- 'const versionDirName = readdirSync(baseDir).find((entry) => entry.startsWith("v")) ?? "v0";',
357
- "const version = versionDirName.slice(1);",
358
- "const dir = join(baseDir, versionDirName);",
359
- 'const naturalSocket = join(dir, "daemon.sock");',
360
- 'const digest = createHash("sha256").update(dir).digest("hex").slice(0, 16);',
361
- "const socketPath = process.platform === \"win32\"",
362
- "\t? `\\\\\\\\.\\\\pipe\\\\omo-lsp-${version}-${digest}`",
363
- "\t: naturalSocket.length < 100 ? naturalSocket : join(tmpdir(), `omo-lsp-${version}-${digest}.sock`);",
364
- "if (process.platform !== \"win32\") {",
365
- "\tmkdirSync(dirname(socketPath), { recursive: true });",
366
- "\ttry { unlinkSync(socketPath); } catch {}",
367
- "}",
368
- "const server = createServer((socket) => {",
369
- '\tlet raw = "";',
370
- '\tsocket.setEncoding("utf8");',
371
- '\tsocket.on("data", (chunk) => {',
372
- "\t\traw += chunk;",
373
- '\t\tif (!raw.includes("\\n")) return;',
374
- "\t\tconst request = JSON.parse(raw.trim());",
375
- "\t\tconst response = {",
376
- '\t\t\tjsonrpc: "2.0",',
377
- "\t\t\tid: request.id,",
378
- "\t\t\tresult: {",
379
- '\t\t\t\tcontent: [{ type: "text", text: "error[fake] (1) at 1:1: Missing fake symbol." }],',
380
- "\t\t\t},",
381
- "\t\t};",
382
- '\t\tsocket.end(`${JSON.stringify(response)}\\n`);',
383
- "\t\tserver.close(() => process.exit(0));",
384
- "\t});",
385
- "});",
386
- "server.listen(socketPath);",
387
- "setTimeout(() => process.exit(1), 10000).unref();",
388
- "",
389
- ].join("\n"),
390
- );
391
- }
392
-
393
343
  async function stopTestDaemons(daemonRoot) {
394
344
  if (!existsSync(daemonRoot)) return;
395
345
  for (const versionDir of readdirSync(daemonRoot)) {
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // omo-codex-install:36a2cdbddec650930467b3965504e73ddeb3d82f229071008f1296a9498fe265:249413365bf0de355352ccfffc9c04669f220c439ce18a287a5bf27105c0f72d
2
+ // omo-codex-install:f71a9e172c5bb57205d798422c54dd36af66a3af936b856b127babc5967235e4:d49f02826d702947b5426fe81cd799f6ea661023155cdd609c55de0cd5a90ff3
3
3
  var __esm = (fn, res, err) => () => {
4
4
  if (fn)
5
5
  try {
@@ -9984,7 +9984,7 @@ var package_default;
9984
9984
  var init_package = __esm(() => {
9985
9985
  package_default = {
9986
9986
  name: "@oh-my-opencode/omo-codex",
9987
- version: "5.1.7",
9987
+ version: "5.1.9",
9988
9988
  type: "module",
9989
9989
  private: true,
9990
9990
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -19449,7 +19449,8 @@ var OmoMemoryRecallSchema = object({
19449
19449
  event_caps: OmoMemoryRecallEventCapsSchema.default({ tool_args: 400, result_head: 600, assistant: 1500, prompt: 4000 }),
19450
19450
  sidecar_max_tokens: number2().int().positive().default(48000),
19451
19451
  max_concurrent_wakes: number2().int().positive().default(2),
19452
- tool_budget: number2().int().positive().default(8)
19452
+ tool_budget: number2().int().positive().default(8),
19453
+ query_expansion: boolean2().default(false)
19453
19454
  }).strict();
19454
19455
  var OmoMemoryNudgeSchema = object({
19455
19456
  enabled: boolean2().default(true),
@@ -19510,7 +19511,8 @@ var OmoMemoryRecallLayerSchema = object({
19510
19511
  event_caps: OmoMemoryRecallEventCapsLayerSchema.optional(),
19511
19512
  sidecar_max_tokens: number2().int().positive().optional(),
19512
19513
  max_concurrent_wakes: number2().int().positive().optional(),
19513
- tool_budget: number2().int().positive().optional()
19514
+ tool_budget: number2().int().positive().optional(),
19515
+ query_expansion: boolean2().optional()
19514
19516
  }).strict();
19515
19517
  var OmoMemoryNudgeLayerSchema = object({
19516
19518
  enabled: boolean2().optional(),
@@ -19587,7 +19589,8 @@ var OmoMemorySettingsSchema = object({
19587
19589
  event_caps: { tool_args: 400, result_head: 600, assistant: 1500, prompt: 4000 },
19588
19590
  sidecar_max_tokens: 48000,
19589
19591
  max_concurrent_wakes: 2,
19590
- tool_budget: 8
19592
+ tool_budget: 8,
19593
+ query_expansion: false
19591
19594
  }),
19592
19595
  compile_warn_tokens: number2().int().positive().default(30000),
19593
19596
  agents: record(string2(), OmoMemoryAgentOverridesSchema).default({})
@@ -19846,11 +19849,15 @@ var OmoFormatOnMutationSchema = OmoFormatOnMutationLayerSchema.extend({
19846
19849
  timeoutMs: number2().int().positive().default(3000)
19847
19850
  }).strict();
19848
19851
 
19852
+ // packages/omo-config-core/src/schema/gateway.ts
19853
+ var OmoGatewaySectionSchema = record(string2(), unknown()).describe("Chat-surface gateway settings, owned and validated by a separately installed gateway package. omo accepts the key and never reads it.");
19854
+
19849
19855
  // packages/omo-config-core/src/schema/config.ts
19850
19856
  var OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
19851
19857
  var OmoDisabledSkillsSchema = array(string2());
19852
19858
  var OmoTypedHarnessConfigSchema = object({
19853
19859
  formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
19860
+ gateway: OmoGatewaySectionSchema.optional(),
19854
19861
  categories: OmoCategoriesConfigSchema.optional(),
19855
19862
  agents: OmoAgentsConfigSchema.optional(),
19856
19863
  git_master: OmoGitMasterSettingsLayerSchema.optional(),
@@ -19885,6 +19892,7 @@ var OmoConfigProfileSchema = object({
19885
19892
  }).strict();
19886
19893
  var OmoConfigSchema = object({
19887
19894
  formatOnMutation: OmoFormatOnMutationSchema.optional(),
19895
+ gateway: OmoGatewaySectionSchema.optional(),
19888
19896
  $schema: string2().optional(),
19889
19897
  categories: OmoCategoriesConfigSchema.optional(),
19890
19898
  agents: OmoAgentsConfigSchema.optional(),
@@ -19908,6 +19916,7 @@ var OmoConfigSchema = object({
19908
19916
  }).strict();
19909
19917
  var OmoConfigLayerSchema = object({
19910
19918
  formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
19919
+ gateway: OmoGatewaySectionSchema.optional(),
19911
19920
  $schema: string2().optional(),
19912
19921
  categories: OmoCategoriesConfigSchema.optional(),
19913
19922
  agents: OmoAgentsConfigSchema.optional(),
@@ -5,5 +5,5 @@
5
5
  "index.js": "b6b064fab277031c6c51f5a58b84b31040f9960bf767bf646adc0540c1d25c1b",
6
6
  "page-bundle.js": "bfd51e8383cf47200d57387bbbed258bce5a3a3d00c38fc108034d2888e23f0c"
7
7
  },
8
- "stagedAtUtc": "2026-09-30T23:56:44.170Z"
8
+ "stagedAtUtc": "2026-10-02T01:10:22.076Z"
9
9
  }
@@ -73,7 +73,7 @@ Each phase has exactly one reference. Read it as you enter the phase — not in
73
73
  | 4 | **Oracle Triple** — after 2 consecutive failed rounds, spawn three Oracles with orthogonal framings and synthesize | [references/methodology/04-oracle-triple.md](references/methodology/04-oracle-triple.md) |
74
74
  | 5 | **User decision escalation** — only when evidence exhausted and the call has policy implications | [references/methodology/05-escalate.md](references/methodology/05-escalate.md) |
75
75
  | 6 | **Root cause confirmation** — confirmed only when toggling the suspected cause toggles the bug | [references/methodology/06-fix.md](references/methodology/06-fix.md) |
76
- | 7 | **TDD fix** — red test first, minimal green, no scope expansion | [references/methodology/06-fix.md](references/methodology/06-fix.md) |
76
+ | 7 | **Fix locked by a failing proof** — reuse the owner test that already fails or add one regression that fails on the pre-fix code, minimal green, no scope expansion | [references/methodology/06-fix.md](references/methodology/06-fix.md) |
77
77
  | 8 | **Manual QA** — actually use the system (tmux for CLI, Playwright for browser, real curl for API, real repro for binary) | [references/methodology/08-qa.md](references/methodology/08-qa.md) |
78
78
  | 9 | **Cleanup** — walk the journal, revert every artifact, verify `git diff` shows only fix + test | [references/methodology/09-cleanup.md](references/methodology/09-cleanup.md) |
79
79
  | 10 | **Final verification** — four evidence gates before declaring done | [references/methodology/09-cleanup.md](references/methodology/09-cleanup.md) |
@@ -51,6 +51,14 @@ The "mechanism" field is the acid test. If you can't write the causal chain from
51
51
 
52
52
  Red, green, refactor. No shortcuts.
53
53
 
54
+ ### 0. Look for the owner test first
55
+
56
+ Before writing a reproduction test, find the test that already owns this contract at the strongest boundary. Run it on the pre-fix code:
57
+
58
+ - **It already fails for this bug.** It is the red proof. Record its failure and skip step 1.
59
+ - **It passes but covers the path.** Extend it with the failing case (a table row, a fixture case) instead of adding a parallel test.
60
+ - **No owner exists.** Write the new reproduction test in step 1, and apply the repository's test-authoring gate if it has one.
61
+
54
62
  ### 1. Red — the reproduction as a test
55
63
 
56
64
  Write a test that fails *specifically because of this bug*. Requirements: