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.
- package/dist/cli/index.js +35 -43
- package/dist/cli-node/index.js +35 -43
- package/package.json +1 -1
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +12 -3
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/test/download.test.ts +0 -16
- package/packages/omo-codex/plugin/components/bootstrap/test/environment.test.ts +3 -0
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +0 -27
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/test/directive-source.test.ts +0 -6
- package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +0 -15
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/package-lock.json +12 -12
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/omo-codex/plugin/skills/debugging/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/debugging/references/methodology/06-fix.md +8 -0
- package/packages/omo-codex/plugin/test/AGENTS.md +11 -0
- package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +0 -50
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +14 -5
- package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/shared-skills/skills/debugging/SKILL.md +1 -1
- 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:
|
|
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.
|
|
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(),
|
|
@@ -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 | **
|
|
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:
|