lazycodex-ai 5.0.0-beta.49 → 5.0.0-beta.50
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 +4682 -14969
- package/dist/cli-node/index.js +4727 -15014
- package/package.json +1 -1
- package/packages/lsp-daemon/dist/cli.js +181 -181
- package/packages/lsp-daemon/dist/client.js +232 -232
- package/packages/lsp-daemon/dist/index.js +132 -132
- package/packages/lsp-tools-mcp/dist/cli.js +103 -101
- package/packages/lsp-tools-mcp/dist/lsp/manager.js +14 -14
- package/packages/lsp-tools-mcp/dist/mcp.js +129 -129
- package/packages/lsp-tools-mcp/dist/tools.js +47 -47
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/README.md +4 -0
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +151 -102
- 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/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/AGENTS.md +2 -2
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/directive.md +2 -0
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js +35 -24
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.js +31 -21
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/types.d.ts +3 -0
- 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/lazycodex-executor-verify/src/codex-hook.ts +31 -23
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/types.ts +3 -0
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/cli.test.ts +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +133 -7
- package/packages/omo-codex/plugin/components/lcx/skills/lcx-doctor/SKILL.md +3 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +298 -298
- 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/rules/README.md +2 -0
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-6.md +123 -0
- package/packages/omo-codex/plugin/components/rules/dist/cli.js +38 -30
- 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/rules/src/post-compact-budget.ts +6 -0
- package/packages/omo-codex/plugin/components/rules/test/hephaestus-model-variant.test.ts +38 -2
- package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +24 -0
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +2 -2
- package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +66 -357
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +66 -358
- 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/README.md +2 -0
- package/packages/omo-codex/plugin/components/ultrawork/agents/explorer.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-clone-fidelity-reviewer.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-code-reviewer.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-qa-executor.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-high.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-low.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-medium.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/librarian.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/metis.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/momus.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +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/ulw-execute-continuation/dist/cli.js +3 -3
- 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/dist/cli.js +63 -63
- 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/model-catalog.json +16 -7
- package/packages/omo-codex/plugin/package-lock.json +16 -16
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +16 -7
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-v2-guard.mjs +8 -4
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/subagent-limit-guard.mjs +18 -90
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/toml-section-editor.mjs +1 -1
- package/packages/omo-codex/plugin/shared/package.json +1 -1
- package/packages/omo-codex/plugin/skills/lcx-doctor/SKILL.md +3 -1
- package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +12 -12
- package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +14 -4
- package/packages/omo-codex/plugin/test/auto-update.test.mjs +4 -4
- package/packages/omo-codex/plugin/test/component-hook-contract-cases.mjs +25 -1
- package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +35 -35
- package/packages/omo-codex/plugin/test/multi-agent-v2-regression.test.mjs +1 -1
- package/packages/omo-codex/plugin/test/subagent-limit-migration.test.mjs +107 -15
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +318 -569
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook post-tool-use-spawn",
|
|
10
10
|
"timeout": 5,
|
|
11
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Recording Spawn Admission",
|
|
12
12
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook post-tool-use-spawn"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook pre-tool-use",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Enforcing Unlimited Goal Budget",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook pre-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook pre-tool-use-spawn",
|
|
10
10
|
"timeout": 5,
|
|
11
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Guarding Ulw-Loop Spawns",
|
|
12
12
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook pre-tool-use-spawn"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/git-bash/dist/cli.js\" hook pre-tool-use",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Recommending Git Bash MCP",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\git-bash\\dist\\cli.js\" hook pre-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/scripts/auto-update.mjs\" hook session-start",
|
|
9
9
|
"timeout": 15,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Checking Auto Update",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\scripts\\auto-update.mjs\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -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.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Checking Bootstrap Provisioning"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Loading Project Rules",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/telemetry/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 15,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Recording Session Telemetry",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\telemetry\\dist\\cli.js\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -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.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Checking Ulw-Execute Continuation",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-execute-continuation\\dist\\cli.js\" hook stop"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Checking Ulw-Loop Resume",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook stop"
|
|
12
12
|
}
|
|
13
13
|
]
|
package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Verifying LazyCodex Executor Evidence",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lazycodex-executor-verify\\dist\\cli.js\" hook subagent-stop"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ultrawork/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Checking Ultrawork Trigger",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ultrawork\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Checking Ulw-Loop Steering",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.50) Loading Project Rules",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2026-08
|
|
2
|
+
"version": "2026-09-08.gpt-6-astra-600k-high",
|
|
3
3
|
"current": {
|
|
4
|
-
"model": "gpt-
|
|
5
|
-
"model_context_window":
|
|
4
|
+
"model": "gpt-6-astra",
|
|
5
|
+
"model_context_window": 600000,
|
|
6
6
|
"model_reasoning_effort": "high",
|
|
7
7
|
"plan_mode_reasoning_effort": "xhigh"
|
|
8
8
|
},
|
|
9
9
|
"roles": {
|
|
10
10
|
"default": {
|
|
11
|
-
"model": "gpt-
|
|
12
|
-
"model_context_window":
|
|
11
|
+
"model": "gpt-6-astra",
|
|
12
|
+
"model_context_window": 600000,
|
|
13
13
|
"model_reasoning_effort": "high",
|
|
14
14
|
"plan_mode_reasoning_effort": "xhigh"
|
|
15
15
|
},
|
|
16
16
|
"verifier": {
|
|
17
|
-
"model": "gpt-
|
|
17
|
+
"model": "gpt-6-astra",
|
|
18
18
|
"model_reasoning_effort": "high"
|
|
19
19
|
},
|
|
20
20
|
"worker": {
|
|
21
|
-
"model": "gpt-
|
|
21
|
+
"model": "gpt-6-astra",
|
|
22
22
|
"model_reasoning_effort": "high"
|
|
23
23
|
}
|
|
24
24
|
},
|
|
@@ -47,6 +47,15 @@
|
|
|
47
47
|
"model": "gpt-5.5",
|
|
48
48
|
"model_context_window": 272000
|
|
49
49
|
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"version": "legacy.gpt-5.6-sol-650k-high",
|
|
53
|
+
"match": {
|
|
54
|
+
"model": "gpt-5.6-sol",
|
|
55
|
+
"model_context_window": 650000,
|
|
56
|
+
"model_reasoning_effort": "high",
|
|
57
|
+
"plan_mode_reasoning_effort": "xhigh"
|
|
58
|
+
}
|
|
50
59
|
}
|
|
51
60
|
]
|
|
52
61
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sisyphuslabs/omo-codex-plugin",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.50",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@sisyphuslabs/omo-codex-plugin",
|
|
9
|
-
"version": "5.0.0-beta.
|
|
9
|
+
"version": "5.0.0-beta.50",
|
|
10
10
|
"workspaces": [
|
|
11
11
|
"components/comment-checker",
|
|
12
12
|
"components/git-bash",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
},
|
|
91
91
|
"components/comment-checker": {
|
|
92
92
|
"name": "@code-yeongyu/codex-comment-checker",
|
|
93
|
-
"version": "5.0.0-beta.
|
|
93
|
+
"version": "5.0.0-beta.50",
|
|
94
94
|
"license": "MIT",
|
|
95
95
|
"bin": {
|
|
96
96
|
"omo-comment-checker": "dist/cli.js"
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
},
|
|
112
112
|
"components/git-bash": {
|
|
113
113
|
"name": "@sisyphuslabs/codex-git-bash-hook",
|
|
114
|
-
"version": "5.0.0-beta.
|
|
114
|
+
"version": "5.0.0-beta.50",
|
|
115
115
|
"bin": {
|
|
116
116
|
"omo-git-bash-hook": "dist/cli.js"
|
|
117
117
|
},
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
},
|
|
126
126
|
"components/lazycodex-executor-verify": {
|
|
127
127
|
"name": "@code-yeongyu/codex-lazycodex-executor-verify",
|
|
128
|
-
"version": "5.0.0-beta.
|
|
128
|
+
"version": "5.0.0-beta.50",
|
|
129
129
|
"license": "MIT",
|
|
130
130
|
"bin": {
|
|
131
131
|
"lazycodex-executor-verify": "dist/cli.js"
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
},
|
|
143
143
|
"components/lsp": {
|
|
144
144
|
"name": "@code-yeongyu/codex-lsp",
|
|
145
|
-
"version": "5.0.0-beta.
|
|
145
|
+
"version": "5.0.0-beta.50",
|
|
146
146
|
"license": "MIT",
|
|
147
147
|
"dependencies": {
|
|
148
148
|
"@code-yeongyu/lsp-daemon": "file:../../../../lsp-daemon",
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
},
|
|
164
164
|
"components/rules": {
|
|
165
165
|
"name": "@code-yeongyu/codex-rules",
|
|
166
|
-
"version": "5.0.0-beta.
|
|
166
|
+
"version": "5.0.0-beta.50",
|
|
167
167
|
"license": "MIT",
|
|
168
168
|
"dependencies": {
|
|
169
169
|
"picomatch": "^4.0.7"
|
|
@@ -185,10 +185,10 @@
|
|
|
185
185
|
},
|
|
186
186
|
"components/teammode": {
|
|
187
187
|
"name": "@sisyphuslabs/codex-teammode",
|
|
188
|
-
"version": "5.0.0-beta.
|
|
188
|
+
"version": "5.0.0-beta.50",
|
|
189
189
|
"devDependencies": {
|
|
190
190
|
"@types/node": "^26.2.0",
|
|
191
|
-
"bun-types": "^1.4.
|
|
191
|
+
"bun-types": "^1.4.2",
|
|
192
192
|
"typescript": "^7.0.2",
|
|
193
193
|
"vitest": "^4.1.11"
|
|
194
194
|
},
|
|
@@ -198,7 +198,7 @@
|
|
|
198
198
|
},
|
|
199
199
|
"components/telemetry": {
|
|
200
200
|
"name": "@code-yeongyu/codex-telemetry",
|
|
201
|
-
"version": "5.0.0-beta.
|
|
201
|
+
"version": "5.0.0-beta.50",
|
|
202
202
|
"license": "MIT",
|
|
203
203
|
"bin": {
|
|
204
204
|
"omo-telemetry": "dist/cli.js"
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
},
|
|
217
217
|
"components/ultrawork": {
|
|
218
218
|
"name": "@code-yeongyu/codex-ultrawork",
|
|
219
|
-
"version": "5.0.0-beta.
|
|
219
|
+
"version": "5.0.0-beta.50",
|
|
220
220
|
"license": "MIT",
|
|
221
221
|
"bin": {
|
|
222
222
|
"omo-ultrawork": "dist/cli.js"
|
|
@@ -234,7 +234,7 @@
|
|
|
234
234
|
},
|
|
235
235
|
"components/ulw-execute-continuation": {
|
|
236
236
|
"name": "@code-yeongyu/codex-ulw-execute-continuation",
|
|
237
|
-
"version": "5.0.0-beta.
|
|
237
|
+
"version": "5.0.0-beta.50",
|
|
238
238
|
"license": "MIT",
|
|
239
239
|
"bin": {
|
|
240
240
|
"omo-ulw-execute-continuation": "dist/cli.js"
|
|
@@ -251,7 +251,7 @@
|
|
|
251
251
|
},
|
|
252
252
|
"components/ulw-loop": {
|
|
253
253
|
"name": "@code-yeongyu/codex-ulw-loop",
|
|
254
|
-
"version": "5.0.0-beta.
|
|
254
|
+
"version": "5.0.0-beta.50",
|
|
255
255
|
"license": "MIT",
|
|
256
256
|
"bin": {
|
|
257
257
|
"omo-ulw-loop": "dist/cli.js",
|
|
@@ -1305,9 +1305,9 @@
|
|
|
1305
1305
|
}
|
|
1306
1306
|
},
|
|
1307
1307
|
"node_modules/bun-types": {
|
|
1308
|
-
"version": "1.4.
|
|
1309
|
-
"resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.4.
|
|
1310
|
-
"integrity": "sha512-
|
|
1308
|
+
"version": "1.4.2",
|
|
1309
|
+
"resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.4.2.tgz",
|
|
1310
|
+
"integrity": "sha512-bxV1FgK7yBIzjRe5zBozIM4Bem11ZJcCXSrjWRG3YWLt8yFDePu4cLjpebO8OvPeIE9trbyPF4fuj3Cia4Fj3w==",
|
|
1311
1311
|
"dev": true,
|
|
1312
1312
|
"license": "MIT",
|
|
1313
1313
|
"dependencies": {
|
|
@@ -3,22 +3,22 @@ import { dirname, join } from "node:path";
|
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
|
|
5
5
|
export const FALLBACK_CATALOG = {
|
|
6
|
-
version: "fallback.gpt-
|
|
6
|
+
version: "fallback.gpt-6-astra-600k-high",
|
|
7
7
|
current: {
|
|
8
|
-
model: "gpt-
|
|
9
|
-
model_context_window:
|
|
8
|
+
model: "gpt-6-astra",
|
|
9
|
+
model_context_window: 600_000,
|
|
10
10
|
model_reasoning_effort: "high",
|
|
11
11
|
plan_mode_reasoning_effort: "xhigh",
|
|
12
12
|
},
|
|
13
13
|
roles: {
|
|
14
14
|
default: {
|
|
15
|
-
model: "gpt-
|
|
16
|
-
model_context_window:
|
|
15
|
+
model: "gpt-6-astra",
|
|
16
|
+
model_context_window: 600_000,
|
|
17
17
|
model_reasoning_effort: "high",
|
|
18
18
|
plan_mode_reasoning_effort: "xhigh",
|
|
19
19
|
},
|
|
20
|
-
verifier: { model: "gpt-
|
|
21
|
-
worker: { model: "gpt-
|
|
20
|
+
verifier: { model: "gpt-6-astra", model_reasoning_effort: "high" },
|
|
21
|
+
worker: { model: "gpt-6-astra", model_reasoning_effort: "high" },
|
|
22
22
|
},
|
|
23
23
|
managedProfiles: [
|
|
24
24
|
{
|
|
@@ -40,6 +40,15 @@ export const FALLBACK_CATALOG = {
|
|
|
40
40
|
},
|
|
41
41
|
},
|
|
42
42
|
{ version: "legacy.gpt-5.5-272k", match: { model: "gpt-5.5", model_context_window: 272_000 } },
|
|
43
|
+
{
|
|
44
|
+
version: "legacy.gpt-5.6-sol-650k-high",
|
|
45
|
+
match: {
|
|
46
|
+
model: "gpt-5.6-sol",
|
|
47
|
+
model_context_window: 650_000,
|
|
48
|
+
model_reasoning_effort: "high",
|
|
49
|
+
plan_mode_reasoning_effort: "xhigh",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
43
52
|
],
|
|
44
53
|
};
|
|
45
54
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* spawn_agent parameters on models that were not configured for encrypted
|
|
7
7
|
* tool use. OpenAI closed that as NOT_PLANNED (V2 under development).
|
|
8
8
|
*
|
|
9
|
-
* GPT-5.6 models that declare `multi_agent_version: "v2"` in the Codex model
|
|
9
|
+
* GPT-5.6 and GPT-6 models that declare `multi_agent_version: "v2"` in the Codex model
|
|
10
10
|
* catalog invert that failure mode: forcing `enabled = false` makes every
|
|
11
11
|
* turn 400 with a reserved `collaboration.spawn_agent` schema mismatch
|
|
12
12
|
* (lazycodex#118 / oh-my-openagent#6002 / openai/codex#31097), and
|
|
@@ -100,13 +100,13 @@ export function forceDisableMultiAgentV2(config, options = {}) {
|
|
|
100
100
|
|
|
101
101
|
/**
|
|
102
102
|
* True when the effective model should run MultiAgentV2: the catalog says
|
|
103
|
-
* "v2", or the catalog is unavailable but the model is a GPT-5.6 family
|
|
103
|
+
* "v2", or the catalog is unavailable but the model is a GPT-5.6 or GPT-6 family
|
|
104
104
|
* model (which reserves the collaboration.spawn_agent schema).
|
|
105
105
|
* @param {"v1" | "v2" | null | undefined} multiAgentVersion
|
|
106
106
|
* @param {string | null | undefined} sessionModel
|
|
107
107
|
*/
|
|
108
108
|
export function prefersMultiAgentV2(multiAgentVersion, sessionModel) {
|
|
109
|
-
return multiAgentVersion === "v2" || (multiAgentVersion == null && isGpt56Family(normalizeModel(sessionModel)));
|
|
109
|
+
return multiAgentVersion === "v2" || (multiAgentVersion == null && (isGpt56Family(normalizeModel(sessionModel)) || isGpt6Family(normalizeModel(sessionModel))));
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
/**
|
|
@@ -123,7 +123,7 @@ export function resolveMultiAgentVersionFromConfig(config, options = {}) {
|
|
|
123
123
|
...options,
|
|
124
124
|
modelsCachePath: options.modelsCachePath?.trim() || resolveModelCatalogPath(readRootModelCatalogPath(config), options) || undefined,
|
|
125
125
|
});
|
|
126
|
-
return version ?? (isGpt56Family(model) ? "v2" : null);
|
|
126
|
+
return version ?? (isGpt56Family(model) || isGpt6Family(model) ? "v2" : null);
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
/**
|
|
@@ -185,6 +185,10 @@ function isGpt56Family(model) {
|
|
|
185
185
|
return typeof model === "string" && /^gpt-5\.6\b/i.test(model);
|
|
186
186
|
}
|
|
187
187
|
|
|
188
|
+
function isGpt6Family(model) {
|
|
189
|
+
return typeof model === "string" && /^gpt-6\b/i.test(model);
|
|
190
|
+
}
|
|
191
|
+
|
|
188
192
|
function clearMultiAgentV2DisableForReservedSchema(config) {
|
|
189
193
|
// `config` arrives shorthand-normalized from forceDisableMultiAgentV2.
|
|
190
194
|
let result = removeManagedDisableComments(config);
|
|
@@ -1,113 +1,41 @@
|
|
|
1
|
-
import { prefersMultiAgentV2,
|
|
2
|
-
import {
|
|
3
|
-
findTomlSection as findSection,
|
|
4
|
-
hasTomlSetting,
|
|
5
|
-
replaceOrInsertTomlSectionSetting,
|
|
6
|
-
} from "./toml-section-editor.mjs";
|
|
1
|
+
import { prefersMultiAgentV2, resolveMultiAgentVersionFromConfig } from "./multi-agent-v2-guard.mjs";
|
|
2
|
+
import { findTomlSection as findSection, removeTomlSectionSetting } from "./toml-section-editor.mjs";
|
|
7
3
|
|
|
8
4
|
const CODEX_AGENTS_HEADER = "[agents]";
|
|
9
5
|
const CODEX_MULTI_AGENT_V2_HEADER = "[features.multi_agent_v2]";
|
|
10
|
-
const CODEX_MULTI_AGENT_V2_THREAD_LIMIT_KEY = "features.multi_agent_v2.max_concurrent_threads_per_session";
|
|
11
|
-
const CODEX_SUBAGENT_THREAD_LIMIT = "1000";
|
|
12
|
-
const CODEX_MULTI_AGENT_V2_DEFAULT_THREAD_LIMIT = "16";
|
|
13
6
|
|
|
14
7
|
/**
|
|
15
8
|
* Ensure subagent concurrency limits without writing settings that conflict
|
|
16
9
|
* with MultiAgentV2. When the selected model prefers V2 (catalog `v2`, or a
|
|
17
|
-
* GPT-5.6 family session model with the catalog unavailable) or V2 is already
|
|
10
|
+
* GPT-5.6 or GPT-6 family session model with the catalog unavailable) or V2 is already
|
|
18
11
|
* enabled in config, skip `agents.max_threads` because Codex rejects that key
|
|
19
12
|
* while features.multi_agent_v2 is enabled.
|
|
20
13
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* introduce `agents.max_threads`: it hard-fails thread/start on
|
|
24
|
-
* MultiAgentV2 sessions. An existing cap is still raised in place so the
|
|
25
|
-
* legacy low-cap repair keeps working and a hand-removed key stays removed.
|
|
14
|
+
* Never insert or raise either cap. Remove LazyCodex-written values and
|
|
15
|
+
* preserve other user values, except for the incompatible V1 key under V2.
|
|
26
16
|
*
|
|
27
17
|
* @param {string} config
|
|
28
18
|
* @param {{ multiAgentVersion?: string | null, sessionModel?: string | null, env?: NodeJS.ProcessEnv, modelsCachePath?: string }} [options]
|
|
29
19
|
*/
|
|
30
20
|
export function ensureSubagentConcurrencyLimit(config, options = {}) {
|
|
31
|
-
const multiAgentVersion
|
|
32
|
-
options.multiAgentVersion
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const v2Preferred = prefersMultiAgentV2(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (v2Preferred) {
|
|
39
|
-
result = removeAgentsMaxThreads(result);
|
|
40
|
-
} else if (multiAgentVersion == null && !hasModelEvidence(config, options)) {
|
|
41
|
-
result = raiseExistingAgentsMaxThreads(result);
|
|
42
|
-
} else {
|
|
43
|
-
result = ensureAgentsMaxThreads(result);
|
|
44
|
-
}
|
|
45
|
-
return ensureMultiAgentV2ThreadLimit(result);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function hasModelEvidence(config, options) {
|
|
49
|
-
const sessionModel = typeof options.sessionModel === "string" ? options.sessionModel.trim() : "";
|
|
50
|
-
return sessionModel.length > 0 || readRootModel(config) !== null;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function isMultiAgentV2Enabled(config) {
|
|
54
|
-
const section = findSection(config, CODEX_MULTI_AGENT_V2_HEADER);
|
|
55
|
-
if (!section) return false;
|
|
56
|
-
return /^\s*enabled\s*=\s*true[ \t]*(?:#[^\n]*)?$/m.test(section.text);
|
|
21
|
+
const version = options.multiAgentVersion !== undefined
|
|
22
|
+
? options.multiAgentVersion
|
|
23
|
+
: resolveMultiAgentVersionFromConfig(config, options);
|
|
24
|
+
const v2Section = findSection(config, CODEX_MULTI_AGENT_V2_HEADER);
|
|
25
|
+
const v2Preferred = prefersMultiAgentV2(version, options.sessionModel)
|
|
26
|
+
|| (v2Section !== null && /^\s*enabled\s*=\s*true[ \t]*(?:#[^\n]*)?$/m.test(v2Section.text));
|
|
27
|
+
return removeManagedV2ThreadLimit(removeAgentsMaxThreads(config, v2Preferred));
|
|
57
28
|
}
|
|
58
29
|
|
|
59
|
-
function
|
|
30
|
+
function removeAgentsMaxThreads(config, v2Preferred) {
|
|
60
31
|
const section = findSection(config, CODEX_AGENTS_HEADER);
|
|
61
32
|
if (!section) return config;
|
|
62
|
-
|
|
63
|
-
return replaceOrInsertTomlSectionSetting(config, section, "max_threads", CODEX_SUBAGENT_THREAD_LIMIT);
|
|
33
|
+
return removeTomlSectionSetting(config, section, "max_threads", v2Preferred ? undefined : "1000");
|
|
64
34
|
}
|
|
65
35
|
|
|
66
|
-
function
|
|
67
|
-
const section = findSection(config, CODEX_AGENTS_HEADER);
|
|
68
|
-
if (!section) return appendBlock(config, `${CODEX_AGENTS_HEADER}\nmax_threads = ${CODEX_SUBAGENT_THREAD_LIMIT}\n`);
|
|
69
|
-
return replaceOrInsertTomlSectionSetting(config, section, "max_threads", CODEX_SUBAGENT_THREAD_LIMIT);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
function removeAgentsMaxThreads(config) {
|
|
73
|
-
const section = findSection(config, CODEX_AGENTS_HEADER);
|
|
74
|
-
if (!section) return config;
|
|
75
|
-
if (!/^\s*max_threads\s*=/m.test(section.text)) return config;
|
|
76
|
-
|
|
77
|
-
const patched = section.text.replace(/^\s*max_threads\s*=\s*[^\n]*\n?/m, "");
|
|
78
|
-
const bodyLines = patched
|
|
79
|
-
.split("\n")
|
|
80
|
-
.slice(1)
|
|
81
|
-
.filter((line) => line.trim() !== "");
|
|
82
|
-
if (bodyLines.length === 0) {
|
|
83
|
-
return config.slice(0, section.start) + config.slice(section.end).replace(/^\n+/, "");
|
|
84
|
-
}
|
|
85
|
-
return config.slice(0, section.start) + patched + config.slice(section.end);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function ensureMultiAgentV2ThreadLimit(config) {
|
|
89
|
-
if (hasTomlSetting(config, CODEX_MULTI_AGENT_V2_THREAD_LIMIT_KEY)) return config;
|
|
36
|
+
function removeManagedV2ThreadLimit(config) {
|
|
90
37
|
const section = findSection(config, CODEX_MULTI_AGENT_V2_HEADER);
|
|
91
|
-
if (!section)
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
`${CODEX_MULTI_AGENT_V2_HEADER}\nmax_concurrent_threads_per_session = ${CODEX_MULTI_AGENT_V2_DEFAULT_THREAD_LIMIT}\n`,
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
return replaceOrInsertTomlSectionSetting(
|
|
98
|
-
config,
|
|
99
|
-
section,
|
|
100
|
-
"max_concurrent_threads_per_session",
|
|
101
|
-
CODEX_MULTI_AGENT_V2_DEFAULT_THREAD_LIMIT,
|
|
102
|
-
);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
function appendBlock(config, block) {
|
|
106
|
-
const trimmed = config.trimEnd();
|
|
107
|
-
const prefix = trimmed.length === 0 ? "" : `${trimmed}\n\n`;
|
|
108
|
-
return `${prefix}${block}`;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
function escapeRegExp(value) {
|
|
112
|
-
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
38
|
+
if (!section) return config;
|
|
39
|
+
const withoutLegacyCap = removeTomlSectionSetting(config, section, "max_concurrent_threads_per_session", "1000");
|
|
40
|
+
return removeTomlSectionSetting(withoutLegacyCap, findSection(withoutLegacyCap, CODEX_MULTI_AGENT_V2_HEADER), "max_concurrent_threads_per_session", "16");
|
|
113
41
|
}
|
|
@@ -128,7 +128,7 @@ export function removeTomlSectionSetting(config, section, keyPath, expectedValue
|
|
|
128
128
|
const lineBody = line.endsWith("\n") ? line.slice(0, -1) : line;
|
|
129
129
|
const commentIndex = findUnquotedComment(lineBody, assignmentIndex + 1);
|
|
130
130
|
const valueEnd = commentIndex === -1 ? lineBody.length : commentIndex;
|
|
131
|
-
if (lineBody.slice(assignmentIndex + 1, valueEnd).trim() !== expectedValue) return config;
|
|
131
|
+
if (expectedValue !== undefined && lineBody.slice(assignmentIndex + 1, valueEnd).trim() !== expectedValue) return config;
|
|
132
132
|
const patched = section.text.slice(0, offset) + section.text.slice(offset + line.length);
|
|
133
133
|
return config.slice(0, section.start) + patched + config.slice(section.end);
|
|
134
134
|
}
|
|
@@ -66,6 +66,7 @@ sync_latest_source openai/codex "$LAZYCODEX_SOURCE_ROOT/openai-codex-source"
|
|
|
66
66
|
- Installed LazyCodex version: the `version` in the installed plugin manifest, discoverable with `find "${CODEX_HOME:-$HOME/.codex}/plugins" -path '*/.codex-plugin/plugin.json'`. Installed plugins live under `$CODEX_HOME/plugins/cache/<marketplace>/<name>/<version>/`.
|
|
67
67
|
- Latest LazyCodex version from `$LAZYCODEX_SOURCE_ROOT/lazycodex-source` (release tags or the version stamped in the repo) and latest Codex release (`gh release view --repo openai/codex`).
|
|
68
68
|
- OS, install method, and `lazycodex` / `lazycodex-ai` bin links resolving (`command -v`).
|
|
69
|
+
- Astra readiness. The LazyCodex catalog default is `gpt-6-astra`, which Codex only knows from codex-cli 0.153.1 onward. First release tag containing the `models.json` change: `rust-v0.153.1` (backport commit `5cc1c94b8e`). Reproduce on a full clone with tags: `git -C <codex-clone> log --format='%h %d' -S gpt-6-astra -- codex-rs/models-manager/models.json`, then `git -C <codex-clone> tag --contains 5cc1c94b8e | sort -V | head -1`; a shallow clone or one without tags returns nothing. Record the installed version from `codex --version`, the root `model` in `$CODEX_HOME/config.toml` (informational only, it doesn't change the verdict), and, when `$CODEX_HOME/models_cache.json` exists, whether it contains `gpt-6-astra` (`grep -c gpt-6-astra "${CODEX_HOME:-$HOME/.codex}/models_cache.json"`). Verdict: PASS when `codex --version` is 0.153.1 or newer and `models_cache.json` is either absent or lists `gpt-6-astra`. WARN when the version is older than 0.153.1, or the cache exists but lacks `gpt-6-astra`; remediation is upgrading Codex (`npm install -g @openai/codex@latest`, or the package manager that installed `codex`), then starting Codex once so `models_cache.json` refreshes.
|
|
69
70
|
3. Check config and wiring against the latest installer, not against assumptions. Read what the current installer under `$LAZYCODEX_SOURCE_ROOT/lazycodex-source` writes (installer sources live in the omo-codex package, e.g. `scripts/install/`), then verify the local equivalents:
|
|
70
71
|
- `$CODEX_HOME/config.toml` exists and parses; LazyCodex-managed entries match what the latest installer would write.
|
|
71
72
|
- Plugin payload present and non-empty: read `.codex-plugin/plugin.json`; when that manifest declares a `hooks` array, validate every direct hook path declared by the manifest; require `hooks/hooks.json` only when the manifest declares it; do not require retired paths such as `components/workflow-selector` or `hooks/user-prompt-submit-selecting-lazycodex-workflow.json` unless the current manifest declares them.
|
|
@@ -96,6 +97,7 @@ sync_latest_source openai/codex "$LAZYCODEX_SOURCE_ROOT/openai-codex-source"
|
|
|
96
97
|
| Check | Verdict | Evidence |
|
|
97
98
|
| --- | --- | --- |
|
|
98
99
|
| Versions current | PASS/WARN/FAIL | [command output or file:line] |
|
|
100
|
+
| Astra readiness | PASS/WARN | [`codex --version` vs the 0.153.1 floor; `gpt-6-astra` present/absent in `$CODEX_HOME/models_cache.json`; configured root `model`] |
|
|
99
101
|
| config.toml integrity | PASS/WARN/FAIL | [evidence] |
|
|
100
102
|
| Plugin payload wiring | PASS/WARN/FAIL | [evidence] |
|
|
101
103
|
| Bin links / aliases | PASS/WARN/FAIL | [evidence] |
|
|
@@ -103,7 +105,7 @@ sync_latest_source openai/codex "$LAZYCODEX_SOURCE_ROOT/openai-codex-source"
|
|
|
103
105
|
| Drift vs latest source | PASS/WARN/FAIL | [evidence, citing `$LAZYCODEX_SOURCE_ROOT/lazycodex-source` or `$LAZYCODEX_SOURCE_ROOT/openai-codex-source` paths] |
|
|
104
106
|
|
|
105
107
|
### Remediations
|
|
106
|
-
1. [Most important fix first: exact command or config edit, and what it resolves.]
|
|
108
|
+
1. [Most important fix first: exact command or config edit, and what it resolves. When Astra readiness is WARN: upgrade Codex to 0.153.1 or newer and relaunch it once so `models_cache.json` picks up `gpt-6-astra`.]
|
|
107
109
|
|
|
108
110
|
### Known Issues Matched
|
|
109
111
|
- [issue URL — or "none found"]
|
|
@@ -22,18 +22,18 @@ const agentSchemaKeys = new Set([
|
|
|
22
22
|
// -manual-qa.md are the artifact names the ulw-loop spawn guard requires before a gate-reviewer
|
|
23
23
|
// spawn; currentAttemptDir is a field of `ulw-loop status --json`.
|
|
24
24
|
const lazycodexAgentInvariants = new Map([
|
|
25
|
-
["explorer.toml", { model: "gpt-
|
|
26
|
-
["librarian.toml", { model: "gpt-
|
|
27
|
-
["metis.toml", { model: "gpt-
|
|
28
|
-
["momus.toml", { model: "gpt-
|
|
29
|
-
["plan.toml", { model: "gpt-
|
|
30
|
-
["lazycodex-worker-low.toml", { model: "gpt-
|
|
31
|
-
["lazycodex-worker-medium.toml", { model: "gpt-
|
|
32
|
-
["lazycodex-worker-high.toml", { model: "gpt-
|
|
33
|
-
["lazycodex-clone-fidelity-reviewer.toml", { model: "gpt-
|
|
34
|
-
["lazycodex-code-reviewer.toml", { model: "gpt-
|
|
35
|
-
["lazycodex-qa-executor.toml", { model: "gpt-
|
|
36
|
-
["lazycodex-gate-reviewer.toml", { model: "gpt-
|
|
25
|
+
["explorer.toml", { model: "gpt-6-astra", effort: "low" }],
|
|
26
|
+
["librarian.toml", { model: "gpt-6-astra", effort: "low" }],
|
|
27
|
+
["metis.toml", { model: "gpt-6-astra", effort: "high" }],
|
|
28
|
+
["momus.toml", { model: "gpt-6-astra", effort: "high" }],
|
|
29
|
+
["plan.toml", { model: "gpt-6-astra", effort: "high" }],
|
|
30
|
+
["lazycodex-worker-low.toml", { model: "gpt-6-astra", effort: "high", includes: [/EVIDENCE_RECORDED: <path>/] }],
|
|
31
|
+
["lazycodex-worker-medium.toml", { model: "gpt-6-astra", effort: "high", includes: [/EVIDENCE_RECORDED: <path>/] }],
|
|
32
|
+
["lazycodex-worker-high.toml", { model: "gpt-6-astra", effort: "medium", includes: [/EVIDENCE_RECORDED: <path>/] }],
|
|
33
|
+
["lazycodex-clone-fidelity-reviewer.toml", { model: "gpt-6-astra", effort: "high", includes: [/recommendation/, /blockers/] }],
|
|
34
|
+
["lazycodex-code-reviewer.toml", { model: "gpt-6-astra", effort: "medium", includes: [/codeQualityStatus/, /recommendation/, /<attemptDir>\/<goalId>-code-review\.md/, /currentAttemptDir/] }],
|
|
35
|
+
["lazycodex-qa-executor.toml", { model: "gpt-6-astra", effort: "high", includes: [/not_applicable/, /surfaceEvidence/, /adversarialCases/, /<attemptDir>\/<goalId>-manual-qa\.md/] }],
|
|
36
|
+
["lazycodex-gate-reviewer.toml", { model: "gpt-6-astra", effort: "low", includes: [/blockers/, /currentAttemptDir/] }],
|
|
37
37
|
]);
|
|
38
38
|
|
|
39
39
|
const externalSourceTokenPattern = new RegExp(
|