lazycodex-ai 5.0.0-beta.50 → 5.0.0-beta.51
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 +37 -22
- package/dist/cli-node/index.js +37 -22
- 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 +5 -1
- 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/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/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/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 +11 -5
- package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.js +11 -5
- 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/components/ulw-loop/src/spawn-guard.ts +10 -5
- package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard.test.ts +21 -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/scripts/migrate-codex-config/subagent-limit-guard.mjs +1 -0
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +9 -5
package/dist/cli/index.js
CHANGED
|
@@ -64,7 +64,7 @@ var package_default;
|
|
|
64
64
|
var init_package = __esm(() => {
|
|
65
65
|
package_default = {
|
|
66
66
|
name: "oh-my-opencode",
|
|
67
|
-
version: "5.0.0-beta.
|
|
67
|
+
version: "5.0.0-beta.51",
|
|
68
68
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
69
69
|
main: "./dist/index.js",
|
|
70
70
|
types: "dist/index.d.ts",
|
|
@@ -248,7 +248,7 @@ var init_package = __esm(() => {
|
|
|
248
248
|
zod: "^4.4.3"
|
|
249
249
|
},
|
|
250
250
|
devDependencies: {
|
|
251
|
-
"@code-yeongyu/senpi": "2026.9.9",
|
|
251
|
+
"@code-yeongyu/senpi": "2026.9.9-2",
|
|
252
252
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
253
253
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
254
254
|
"@oh-my-opencode/boulder-state": "workspace:*",
|
|
@@ -289,18 +289,18 @@ var init_package = __esm(() => {
|
|
|
289
289
|
typescript: "^7.0.2"
|
|
290
290
|
},
|
|
291
291
|
optionalDependencies: {
|
|
292
|
-
"oh-my-opencode-darwin-arm64": "5.0.0-beta.
|
|
293
|
-
"oh-my-opencode-darwin-x64": "5.0.0-beta.
|
|
294
|
-
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.
|
|
295
|
-
"oh-my-opencode-linux-arm64": "5.0.0-beta.
|
|
296
|
-
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.
|
|
297
|
-
"oh-my-opencode-linux-x64": "5.0.0-beta.
|
|
298
|
-
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.
|
|
299
|
-
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.
|
|
300
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.
|
|
301
|
-
"oh-my-opencode-windows-arm64": "5.0.0-beta.
|
|
302
|
-
"oh-my-opencode-windows-x64": "5.0.0-beta.
|
|
303
|
-
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.
|
|
292
|
+
"oh-my-opencode-darwin-arm64": "5.0.0-beta.51",
|
|
293
|
+
"oh-my-opencode-darwin-x64": "5.0.0-beta.51",
|
|
294
|
+
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.51",
|
|
295
|
+
"oh-my-opencode-linux-arm64": "5.0.0-beta.51",
|
|
296
|
+
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.51",
|
|
297
|
+
"oh-my-opencode-linux-x64": "5.0.0-beta.51",
|
|
298
|
+
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.51",
|
|
299
|
+
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.51",
|
|
300
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.51",
|
|
301
|
+
"oh-my-opencode-windows-arm64": "5.0.0-beta.51",
|
|
302
|
+
"oh-my-opencode-windows-x64": "5.0.0-beta.51",
|
|
303
|
+
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.51"
|
|
304
304
|
},
|
|
305
305
|
overrides: {
|
|
306
306
|
"@earendil-works/pi-agent-core": "0.84.2",
|
|
@@ -84439,7 +84439,7 @@ var package_default2;
|
|
|
84439
84439
|
var init_package2 = __esm(() => {
|
|
84440
84440
|
package_default2 = {
|
|
84441
84441
|
name: "@oh-my-opencode/omo-codex",
|
|
84442
|
-
version: "5.0.0-beta.
|
|
84442
|
+
version: "5.0.0-beta.51",
|
|
84443
84443
|
type: "module",
|
|
84444
84444
|
private: true,
|
|
84445
84445
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -90436,7 +90436,7 @@ var CODEX_AGENTS_HEADER = "agents";
|
|
|
90436
90436
|
var CODEX_MULTI_AGENT_V2_HEADER = "features.multi_agent_v2";
|
|
90437
90437
|
function ensureCodexMultiAgentV2Config(config, options = {}) {
|
|
90438
90438
|
const featureFlag = removeFeatureFlagSetting(config, "multi_agent_v2");
|
|
90439
|
-
const v2Preferred = options.multiAgentVersion === "v2";
|
|
90439
|
+
const v2Preferred = options.multiAgentVersion === "v2" || isMultiAgentV2Enabled(featureFlag.config);
|
|
90440
90440
|
const agentsConfig = removeAgentsMaxThreads(featureFlag.config, v2Preferred);
|
|
90441
90441
|
const preserveDisable = featureFlag.value === false && !v2Preferred;
|
|
90442
90442
|
const featureConfig = preserveDisable ? setMultiAgentV2Disable(agentsConfig) : v2Preferred ? removeMultiAgentV2Disable(agentsConfig) : agentsConfig;
|
|
@@ -90515,6 +90515,10 @@ function removeFeatureFlagSetting(config, featureName) {
|
|
|
90515
90515
|
value: readBooleanSetting(section.text, featureName)
|
|
90516
90516
|
};
|
|
90517
90517
|
}
|
|
90518
|
+
function isMultiAgentV2Enabled(config) {
|
|
90519
|
+
const section = findTomlSection(config, CODEX_MULTI_AGENT_V2_HEADER);
|
|
90520
|
+
return section !== null && /^\s*enabled\s*=\s*true[ \t]*(?:#.*)?$/m.test(section.text);
|
|
90521
|
+
}
|
|
90518
90522
|
function removeAgentsMaxThreads(config, v2Preferred) {
|
|
90519
90523
|
const section = findTomlSection(config, CODEX_AGENTS_HEADER);
|
|
90520
90524
|
if (!section)
|
|
@@ -91677,7 +91681,7 @@ function lastValue(values) {
|
|
|
91677
91681
|
return values.length > 0 ? values[values.length - 1] ?? null : null;
|
|
91678
91682
|
}
|
|
91679
91683
|
function repairProjectLocalCodexConfigText(config) {
|
|
91680
|
-
if (!
|
|
91684
|
+
if (!isMultiAgentV2Enabled2(config))
|
|
91681
91685
|
return { config, changed: false, removedKeys: [] };
|
|
91682
91686
|
let nextConfig = config;
|
|
91683
91687
|
const removedKeys = [];
|
|
@@ -91767,7 +91771,7 @@ async function collectProjectLocalArtifacts(projectRoots) {
|
|
|
91767
91771
|
}
|
|
91768
91772
|
return artifacts;
|
|
91769
91773
|
}
|
|
91770
|
-
function
|
|
91774
|
+
function isMultiAgentV2Enabled2(config) {
|
|
91771
91775
|
const featuresSection = findTomlSection(config, "features");
|
|
91772
91776
|
if (featuresSection !== null && settingIsBooleanTrue(featuresSection.text, "multi_agent_v2"))
|
|
91773
91777
|
return true;
|
|
@@ -93198,6 +93202,20 @@ import { constants as constants9 } from "fs";
|
|
|
93198
93202
|
import { access as access2, readFile as readFile26, stat as stat6 } from "fs/promises";
|
|
93199
93203
|
import { dirname as dirname23, join as join59 } from "path";
|
|
93200
93204
|
|
|
93205
|
+
// packages/memory-core/src/personas/manifest.ts
|
|
93206
|
+
var PERSONA_ASSET_FILENAMES = {
|
|
93207
|
+
reflection: "reflection-persona.md",
|
|
93208
|
+
dream: "dream-persona.md",
|
|
93209
|
+
facts: "facts-persona.md",
|
|
93210
|
+
kibitzer: "kibitzer-persona.md"
|
|
93211
|
+
};
|
|
93212
|
+
var PERSONA_ASSET_FILES = [
|
|
93213
|
+
PERSONA_ASSET_FILENAMES.reflection,
|
|
93214
|
+
PERSONA_ASSET_FILENAMES.dream,
|
|
93215
|
+
PERSONA_ASSET_FILENAMES.facts,
|
|
93216
|
+
PERSONA_ASSET_FILENAMES.kibitzer
|
|
93217
|
+
];
|
|
93218
|
+
|
|
93201
93219
|
// packages/omo-senpi/src/install/senpi-settings.ts
|
|
93202
93220
|
import { constants as constants8 } from "fs";
|
|
93203
93221
|
import { access, copyFile as copyFile3, mkdir as mkdir9, readFile as readFile25, rename as rename5, writeFile as writeFile14 } from "fs/promises";
|
|
@@ -93321,10 +93339,7 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
|
|
|
93321
93339
|
join59("extensions", "omo-task.js"),
|
|
93322
93340
|
join59("extensions", "omo-member.js"),
|
|
93323
93341
|
join59("extensions", "memory-run-supervisor.mjs"),
|
|
93324
|
-
join59("extensions",
|
|
93325
|
-
join59("extensions", "dream-persona.md"),
|
|
93326
|
-
join59("extensions", "facts-persona.md"),
|
|
93327
|
-
join59("extensions", "kibitzer-persona.md"),
|
|
93342
|
+
...PERSONA_ASSET_FILES.map((filename) => join59("extensions", filename)),
|
|
93328
93343
|
join59("skills", "ast-grep", "SKILL.md"),
|
|
93329
93344
|
join59("skills", "coding-agent-sessions", "SKILL.md"),
|
|
93330
93345
|
join59("skills", "debugging", "SKILL.md"),
|
package/dist/cli-node/index.js
CHANGED
|
@@ -65,7 +65,7 @@ var package_default;
|
|
|
65
65
|
var init_package = __esm(() => {
|
|
66
66
|
package_default = {
|
|
67
67
|
name: "oh-my-opencode",
|
|
68
|
-
version: "5.0.0-beta.
|
|
68
|
+
version: "5.0.0-beta.51",
|
|
69
69
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
70
70
|
main: "./dist/index.js",
|
|
71
71
|
types: "dist/index.d.ts",
|
|
@@ -249,7 +249,7 @@ var init_package = __esm(() => {
|
|
|
249
249
|
zod: "^4.4.3"
|
|
250
250
|
},
|
|
251
251
|
devDependencies: {
|
|
252
|
-
"@code-yeongyu/senpi": "2026.9.9",
|
|
252
|
+
"@code-yeongyu/senpi": "2026.9.9-2",
|
|
253
253
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
254
254
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
255
255
|
"@oh-my-opencode/boulder-state": "workspace:*",
|
|
@@ -290,18 +290,18 @@ var init_package = __esm(() => {
|
|
|
290
290
|
typescript: "^7.0.2"
|
|
291
291
|
},
|
|
292
292
|
optionalDependencies: {
|
|
293
|
-
"oh-my-opencode-darwin-arm64": "5.0.0-beta.
|
|
294
|
-
"oh-my-opencode-darwin-x64": "5.0.0-beta.
|
|
295
|
-
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.
|
|
296
|
-
"oh-my-opencode-linux-arm64": "5.0.0-beta.
|
|
297
|
-
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.
|
|
298
|
-
"oh-my-opencode-linux-x64": "5.0.0-beta.
|
|
299
|
-
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.
|
|
300
|
-
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.
|
|
301
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.
|
|
302
|
-
"oh-my-opencode-windows-arm64": "5.0.0-beta.
|
|
303
|
-
"oh-my-opencode-windows-x64": "5.0.0-beta.
|
|
304
|
-
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.
|
|
293
|
+
"oh-my-opencode-darwin-arm64": "5.0.0-beta.51",
|
|
294
|
+
"oh-my-opencode-darwin-x64": "5.0.0-beta.51",
|
|
295
|
+
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.51",
|
|
296
|
+
"oh-my-opencode-linux-arm64": "5.0.0-beta.51",
|
|
297
|
+
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.51",
|
|
298
|
+
"oh-my-opencode-linux-x64": "5.0.0-beta.51",
|
|
299
|
+
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.51",
|
|
300
|
+
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.51",
|
|
301
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.51",
|
|
302
|
+
"oh-my-opencode-windows-arm64": "5.0.0-beta.51",
|
|
303
|
+
"oh-my-opencode-windows-x64": "5.0.0-beta.51",
|
|
304
|
+
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.51"
|
|
305
305
|
},
|
|
306
306
|
overrides: {
|
|
307
307
|
"@earendil-works/pi-agent-core": "0.84.2",
|
|
@@ -84518,7 +84518,7 @@ var package_default2;
|
|
|
84518
84518
|
var init_package2 = __esm(() => {
|
|
84519
84519
|
package_default2 = {
|
|
84520
84520
|
name: "@oh-my-opencode/omo-codex",
|
|
84521
|
-
version: "5.0.0-beta.
|
|
84521
|
+
version: "5.0.0-beta.51",
|
|
84522
84522
|
type: "module",
|
|
84523
84523
|
private: true,
|
|
84524
84524
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -90515,7 +90515,7 @@ var CODEX_AGENTS_HEADER = "agents";
|
|
|
90515
90515
|
var CODEX_MULTI_AGENT_V2_HEADER = "features.multi_agent_v2";
|
|
90516
90516
|
function ensureCodexMultiAgentV2Config(config, options = {}) {
|
|
90517
90517
|
const featureFlag = removeFeatureFlagSetting(config, "multi_agent_v2");
|
|
90518
|
-
const v2Preferred = options.multiAgentVersion === "v2";
|
|
90518
|
+
const v2Preferred = options.multiAgentVersion === "v2" || isMultiAgentV2Enabled(featureFlag.config);
|
|
90519
90519
|
const agentsConfig = removeAgentsMaxThreads(featureFlag.config, v2Preferred);
|
|
90520
90520
|
const preserveDisable = featureFlag.value === false && !v2Preferred;
|
|
90521
90521
|
const featureConfig = preserveDisable ? setMultiAgentV2Disable(agentsConfig) : v2Preferred ? removeMultiAgentV2Disable(agentsConfig) : agentsConfig;
|
|
@@ -90594,6 +90594,10 @@ function removeFeatureFlagSetting(config, featureName) {
|
|
|
90594
90594
|
value: readBooleanSetting(section.text, featureName)
|
|
90595
90595
|
};
|
|
90596
90596
|
}
|
|
90597
|
+
function isMultiAgentV2Enabled(config) {
|
|
90598
|
+
const section = findTomlSection(config, CODEX_MULTI_AGENT_V2_HEADER);
|
|
90599
|
+
return section !== null && /^\s*enabled\s*=\s*true[ \t]*(?:#.*)?$/m.test(section.text);
|
|
90600
|
+
}
|
|
90597
90601
|
function removeAgentsMaxThreads(config, v2Preferred) {
|
|
90598
90602
|
const section = findTomlSection(config, CODEX_AGENTS_HEADER);
|
|
90599
90603
|
if (!section)
|
|
@@ -91756,7 +91760,7 @@ function lastValue(values) {
|
|
|
91756
91760
|
return values.length > 0 ? values[values.length - 1] ?? null : null;
|
|
91757
91761
|
}
|
|
91758
91762
|
function repairProjectLocalCodexConfigText(config) {
|
|
91759
|
-
if (!
|
|
91763
|
+
if (!isMultiAgentV2Enabled2(config))
|
|
91760
91764
|
return { config, changed: false, removedKeys: [] };
|
|
91761
91765
|
let nextConfig = config;
|
|
91762
91766
|
const removedKeys = [];
|
|
@@ -91846,7 +91850,7 @@ async function collectProjectLocalArtifacts(projectRoots) {
|
|
|
91846
91850
|
}
|
|
91847
91851
|
return artifacts;
|
|
91848
91852
|
}
|
|
91849
|
-
function
|
|
91853
|
+
function isMultiAgentV2Enabled2(config) {
|
|
91850
91854
|
const featuresSection = findTomlSection(config, "features");
|
|
91851
91855
|
if (featuresSection !== null && settingIsBooleanTrue(featuresSection.text, "multi_agent_v2"))
|
|
91852
91856
|
return true;
|
|
@@ -93277,6 +93281,20 @@ import { constants as constants9 } from "node:fs";
|
|
|
93277
93281
|
import { access as access2, readFile as readFile26, stat as stat6 } from "node:fs/promises";
|
|
93278
93282
|
import { dirname as dirname23, join as join59 } from "node:path";
|
|
93279
93283
|
|
|
93284
|
+
// packages/memory-core/src/personas/manifest.ts
|
|
93285
|
+
var PERSONA_ASSET_FILENAMES = {
|
|
93286
|
+
reflection: "reflection-persona.md",
|
|
93287
|
+
dream: "dream-persona.md",
|
|
93288
|
+
facts: "facts-persona.md",
|
|
93289
|
+
kibitzer: "kibitzer-persona.md"
|
|
93290
|
+
};
|
|
93291
|
+
var PERSONA_ASSET_FILES = [
|
|
93292
|
+
PERSONA_ASSET_FILENAMES.reflection,
|
|
93293
|
+
PERSONA_ASSET_FILENAMES.dream,
|
|
93294
|
+
PERSONA_ASSET_FILENAMES.facts,
|
|
93295
|
+
PERSONA_ASSET_FILENAMES.kibitzer
|
|
93296
|
+
];
|
|
93297
|
+
|
|
93280
93298
|
// packages/omo-senpi/src/install/senpi-settings.ts
|
|
93281
93299
|
import { constants as constants8 } from "node:fs";
|
|
93282
93300
|
import { access, copyFile as copyFile3, mkdir as mkdir9, readFile as readFile25, rename as rename5, writeFile as writeFile14 } from "node:fs/promises";
|
|
@@ -93400,10 +93418,7 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
|
|
|
93400
93418
|
join59("extensions", "omo-task.js"),
|
|
93401
93419
|
join59("extensions", "omo-member.js"),
|
|
93402
93420
|
join59("extensions", "memory-run-supervisor.mjs"),
|
|
93403
|
-
join59("extensions",
|
|
93404
|
-
join59("extensions", "dream-persona.md"),
|
|
93405
|
-
join59("extensions", "facts-persona.md"),
|
|
93406
|
-
join59("extensions", "kibitzer-persona.md"),
|
|
93421
|
+
...PERSONA_ASSET_FILES.map((filename) => join59("extensions", filename)),
|
|
93407
93422
|
join59("skills", "ast-grep", "SKILL.md"),
|
|
93408
93423
|
join59("skills", "coding-agent-sessions", "SKILL.md"),
|
|
93409
93424
|
join59("skills", "debugging", "SKILL.md"),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lazycodex-ai",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.51",
|
|
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",
|
|
@@ -3260,7 +3260,7 @@ var CODEX_AGENTS_HEADER = "agents";
|
|
|
3260
3260
|
var CODEX_MULTI_AGENT_V2_HEADER = "features.multi_agent_v2";
|
|
3261
3261
|
function ensureCodexMultiAgentV2Config(config, options = {}) {
|
|
3262
3262
|
const featureFlag = removeFeatureFlagSetting(config, "multi_agent_v2");
|
|
3263
|
-
const v2Preferred = options.multiAgentVersion === "v2";
|
|
3263
|
+
const v2Preferred = options.multiAgentVersion === "v2" || isMultiAgentV2Enabled(featureFlag.config);
|
|
3264
3264
|
const agentsConfig = removeAgentsMaxThreads(featureFlag.config, v2Preferred);
|
|
3265
3265
|
const preserveDisable = featureFlag.value === false && !v2Preferred;
|
|
3266
3266
|
const featureConfig = preserveDisable ? setMultiAgentV2Disable(agentsConfig) : v2Preferred ? removeMultiAgentV2Disable(agentsConfig) : agentsConfig;
|
|
@@ -3339,6 +3339,10 @@ function removeFeatureFlagSetting(config, featureName) {
|
|
|
3339
3339
|
value: readBooleanSetting(section.text, featureName)
|
|
3340
3340
|
};
|
|
3341
3341
|
}
|
|
3342
|
+
function isMultiAgentV2Enabled(config) {
|
|
3343
|
+
const section = findTomlSection(config, CODEX_MULTI_AGENT_V2_HEADER);
|
|
3344
|
+
return section !== null && /^\s*enabled\s*=\s*true[ \t]*(?:#.*)?$/m.test(section.text);
|
|
3345
|
+
}
|
|
3342
3346
|
function removeAgentsMaxThreads(config, v2Preferred) {
|
|
3343
3347
|
const section = findTomlSection(config, CODEX_AGENTS_HEADER);
|
|
3344
3348
|
if (!section)
|
|
@@ -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.51) Checking Bootstrap Provisioning"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sisyphuslabs/codex-bootstrap",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.51",
|
|
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 pre-tool-use",
|
|
10
10
|
"timeout": 5,
|
|
11
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.51) 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.0.0-beta.
|
|
23
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Resetting Git Bash MCP Reminder"
|
|
24
24
|
}
|
|
25
25
|
]
|
|
26
26
|
}
|
|
@@ -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.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.51) 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.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.51",
|
|
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.0.0-beta.
|
|
4
|
-
"inputDigest": "sha256:
|
|
3
|
+
"version": "5.0.0-beta.51",
|
|
4
|
+
"inputDigest": "sha256:5ff68702440d0c19cf7d59a8fb7e953983cdae7c9228a0fae86af5e289116416",
|
|
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.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.51) 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.0.0-beta.
|
|
24
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Resetting LSP Diagnostics Cache"
|
|
25
25
|
}
|
|
26
26
|
]
|
|
27
27
|
}
|
|
@@ -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.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.51) 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.0.0-beta.
|
|
22
|
+
"statusMessage": "(OmO 5.0.0-beta.51) 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.0.0-beta.
|
|
35
|
+
"statusMessage": "(OmO 5.0.0-beta.51) 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.0.0-beta.
|
|
48
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Resetting Project Rule Cache"
|
|
49
49
|
}
|
|
50
50
|
]
|
|
51
51
|
}
|
|
@@ -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.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Checking Thread Title Hygiene"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/codex-telemetry",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.51",
|
|
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.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.51) 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.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.51",
|
|
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.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Checking Ulw-Execute Continuation"
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
13
|
}
|
|
@@ -3828,11 +3828,17 @@ async function runSpawnAdmissionRecorderCli(stdin, stdout) {
|
|
|
3828
3828
|
if (typeof dataDir !== "string" || typeof payload["session_id"] !== "string")
|
|
3829
3829
|
return;
|
|
3830
3830
|
const markerDir = join3(dataDir, "spawn-breaker");
|
|
3831
|
-
|
|
3832
|
-
|
|
3833
|
-
|
|
3834
|
-
|
|
3835
|
-
|
|
3831
|
+
try {
|
|
3832
|
+
mkdirSync2(markerDir, { recursive: true });
|
|
3833
|
+
atomicWriteJson(join3(markerDir, `${payload["session_id"]}.json`), {
|
|
3834
|
+
reason: response,
|
|
3835
|
+
at: new Date().toISOString()
|
|
3836
|
+
});
|
|
3837
|
+
} catch (error) {
|
|
3838
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
3839
|
+
process.stderr.write(`[ulw-loop] spawn-guard: could not persist admission failure: ${message}
|
|
3840
|
+
`);
|
|
3841
|
+
}
|
|
3836
3842
|
} catch {}
|
|
3837
3843
|
}
|
|
3838
3844
|
async function runSpawnGuardCli(stdin, stdout) {
|
|
@@ -70,11 +70,17 @@ export async function runSpawnAdmissionRecorderCli(stdin, stdout) {
|
|
|
70
70
|
if (typeof dataDir !== "string" || typeof payload["session_id"] !== "string")
|
|
71
71
|
return;
|
|
72
72
|
const markerDir = join(dataDir, "spawn-breaker");
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
try {
|
|
74
|
+
mkdirSync(markerDir, { recursive: true });
|
|
75
|
+
atomicWriteJson(join(markerDir, `${payload["session_id"]}.json`), {
|
|
76
|
+
reason: response,
|
|
77
|
+
at: new Date().toISOString(),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
82
|
+
process.stderr.write(`[ulw-loop] spawn-guard: could not persist admission failure: ${message}\n`);
|
|
83
|
+
}
|
|
78
84
|
}
|
|
79
85
|
catch {
|
|
80
86
|
/* malformed hook input is ignored */
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit --with-ultrawork",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Checking Ulw-Loop Steering"
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
13
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"type": "command",
|
|
21
21
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use-spawn",
|
|
22
22
|
"timeout": 5,
|
|
23
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
23
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Recording Spawn Admission"
|
|
24
24
|
}
|
|
25
25
|
]
|
|
26
26
|
}
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"type": "command",
|
|
34
34
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
|
|
35
35
|
"timeout": 5,
|
|
36
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
36
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Enforcing Unlimited Ulw-Loop Budget"
|
|
37
37
|
}
|
|
38
38
|
]
|
|
39
39
|
},
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"type": "command",
|
|
45
45
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use-spawn",
|
|
46
46
|
"timeout": 5,
|
|
47
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
47
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Guarding Ulw-Loop Spawns"
|
|
48
48
|
}
|
|
49
49
|
]
|
|
50
50
|
}
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"type": "command",
|
|
57
57
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook stop",
|
|
58
58
|
"timeout": 10,
|
|
59
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
59
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Checking Ulw-Loop Resume"
|
|
60
60
|
}
|
|
61
61
|
]
|
|
62
62
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/codex-ulw-loop",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.51",
|
|
4
4
|
"description": "Codex plugin: durable repo-native multi-goal orchestration with embedded success criteria and observable evidence audit.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "npm@11.12.1",
|
|
@@ -89,11 +89,16 @@ export async function runSpawnAdmissionRecorderCli(
|
|
|
89
89
|
const dataDir = process.env["PLUGIN_DATA"];
|
|
90
90
|
if (typeof dataDir !== "string" || typeof payload["session_id"] !== "string") return;
|
|
91
91
|
const markerDir = join(dataDir, "spawn-breaker");
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
try {
|
|
93
|
+
mkdirSync(markerDir, { recursive: true });
|
|
94
|
+
atomicWriteJson(join(markerDir, `${payload["session_id"]}.json`), {
|
|
95
|
+
reason: response,
|
|
96
|
+
at: new Date().toISOString(),
|
|
97
|
+
});
|
|
98
|
+
} catch (error) {
|
|
99
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
100
|
+
process.stderr.write(`[ulw-loop] spawn-guard: could not persist admission failure: ${message}\n`);
|
|
101
|
+
}
|
|
97
102
|
} catch {
|
|
98
103
|
/* malformed hook input is ignored */
|
|
99
104
|
}
|
|
@@ -3,7 +3,7 @@ import { mkdtemp, rm } from "node:fs/promises";
|
|
|
3
3
|
import { tmpdir } from "node:os";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { Readable, Writable } from "node:stream";
|
|
6
|
-
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
6
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
7
7
|
|
|
8
8
|
import type { PreToolUsePayload } from "../src/codex-hook.ts";
|
|
9
9
|
import { applySpawnGuards, DEFAULT_FANOUT_LIMIT, runSpawnAdmissionRecorderCli } from "../src/spawn-guard.ts";
|
|
@@ -158,6 +158,26 @@ describe("spawn admission breaker", () => {
|
|
|
158
158
|
expect(existsSync(join(sessionDir(), "spawn-count.json"))).toBe(false);
|
|
159
159
|
expect(existsSync(join(sessionDir(), "review-spawn-counts.json"))).toBe(false);
|
|
160
160
|
});
|
|
161
|
+
|
|
162
|
+
it.skipIf(process.getuid?.() === 0)(
|
|
163
|
+
"#given PLUGIN_DATA is a file #when recording an admission failure #then reports persist failure on stderr and keeps stdout empty",
|
|
164
|
+
async () => {
|
|
165
|
+
const blocked = join(workDir, "blocked-plugin-data");
|
|
166
|
+
writeFileSync(blocked, "not-a-directory");
|
|
167
|
+
process.env["PLUGIN_DATA"] = blocked;
|
|
168
|
+
const err: string[] = [];
|
|
169
|
+
const spy = vi.spyOn(process.stderr, "write").mockImplementation((chunk: string | Uint8Array): boolean => {
|
|
170
|
+
err.push(chunk.toString());
|
|
171
|
+
return true;
|
|
172
|
+
});
|
|
173
|
+
try {
|
|
174
|
+
await expect(record("too many active cells")).resolves.toBe("");
|
|
175
|
+
expect(err.join("")).toContain("could not persist");
|
|
176
|
+
} finally {
|
|
177
|
+
spy.mockRestore();
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
);
|
|
161
181
|
});
|
|
162
182
|
|
|
163
183
|
describe("applySpawnGuards fan-out cap", () => {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/git-bash/dist/cli.js\" hook post-compact",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Resetting Git Bash MCP Reminder",
|
|
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 post-compact"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/lsp/dist/cli.js\" hook post-compact",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Resetting LSP Diagnostics Cache",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lsp\\dist\\cli.js\" hook post-compact"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-compact",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Resetting Project Rule Cache",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook post-compact"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/comment-checker/dist/cli.js\" hook post-tool-use",
|
|
9
9
|
"timeout": 30,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Checking Comments",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\comment-checker\\dist\\cli.js\" hook post-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/lsp/dist/cli.js\" hook post-tool-use",
|
|
9
9
|
"timeout": 60,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Checking LSP Diagnostics",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lsp\\dist\\cli.js\" hook post-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/teammode/dist/cli.js\" hook post-tool-use",
|
|
10
10
|
"timeout": 10,
|
|
11
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Checking Thread Title Hygiene",
|
|
12
12
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\teammode\\dist\\cli.js\" hook post-tool-use"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-tool-use",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.51) Matching 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 post-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 post-tool-use-spawn",
|
|
10
10
|
"timeout": 5,
|
|
11
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.51) 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.51) 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.51) 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.51) 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.51) 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.51) 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.51) 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.51) 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.51) 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.51) 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.51) 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.51) 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.51) 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.51) 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,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sisyphuslabs/omo-codex-plugin",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.51",
|
|
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.51",
|
|
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.51",
|
|
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.51",
|
|
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.51",
|
|
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.51",
|
|
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.51",
|
|
167
167
|
"license": "MIT",
|
|
168
168
|
"dependencies": {
|
|
169
169
|
"picomatch": "^4.0.7"
|
|
@@ -185,7 +185,7 @@
|
|
|
185
185
|
},
|
|
186
186
|
"components/teammode": {
|
|
187
187
|
"name": "@sisyphuslabs/codex-teammode",
|
|
188
|
-
"version": "5.0.0-beta.
|
|
188
|
+
"version": "5.0.0-beta.51",
|
|
189
189
|
"devDependencies": {
|
|
190
190
|
"@types/node": "^26.2.0",
|
|
191
191
|
"bun-types": "^1.4.2",
|
|
@@ -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.51",
|
|
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.51",
|
|
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.51",
|
|
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.51",
|
|
255
255
|
"license": "MIT",
|
|
256
256
|
"bin": {
|
|
257
257
|
"omo-ulw-loop": "dist/cli.js",
|
|
@@ -21,6 +21,7 @@ export function ensureSubagentConcurrencyLimit(config, options = {}) {
|
|
|
21
21
|
const version = options.multiAgentVersion !== undefined
|
|
22
22
|
? options.multiAgentVersion
|
|
23
23
|
: resolveMultiAgentVersionFromConfig(config, options);
|
|
24
|
+
// Keep this V2-active rule aligned with src/install/codex-multi-agent-v2-config.ts.
|
|
24
25
|
const v2Section = findSection(config, CODEX_MULTI_AGENT_V2_HEADER);
|
|
25
26
|
const v2Preferred = prefersMultiAgentV2(version, options.sessionModel)
|
|
26
27
|
|| (v2Section !== null && /^\s*enabled\s*=\s*true[ \t]*(?:#[^\n]*)?$/m.test(v2Section.text));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// omo-codex-install:
|
|
2
|
+
// omo-codex-install:bc3bb113ea819d8b72c7576db558adb445ad7b64a2dbd605369dbfedf2f94008:29f8fd6ebb3f8a85bed1f4ec5303e033a521dbe3d7bc554ba8d2087959545c09
|
|
3
3
|
var __esm = (fn, res, err) => () => {
|
|
4
4
|
if (fn)
|
|
5
5
|
try {
|
|
@@ -7706,7 +7706,7 @@ var package_default;
|
|
|
7706
7706
|
var init_package = __esm(() => {
|
|
7707
7707
|
package_default = {
|
|
7708
7708
|
name: "@oh-my-opencode/omo-codex",
|
|
7709
|
-
version: "5.0.0-beta.
|
|
7709
|
+
version: "5.0.0-beta.51",
|
|
7710
7710
|
type: "module",
|
|
7711
7711
|
private: true,
|
|
7712
7712
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -10681,7 +10681,7 @@ var CODEX_AGENTS_HEADER = "agents";
|
|
|
10681
10681
|
var CODEX_MULTI_AGENT_V2_HEADER = "features.multi_agent_v2";
|
|
10682
10682
|
function ensureCodexMultiAgentV2Config(config, options = {}) {
|
|
10683
10683
|
const featureFlag = removeFeatureFlagSetting(config, "multi_agent_v2");
|
|
10684
|
-
const v2Preferred = options.multiAgentVersion === "v2";
|
|
10684
|
+
const v2Preferred = options.multiAgentVersion === "v2" || isMultiAgentV2Enabled(featureFlag.config);
|
|
10685
10685
|
const agentsConfig = removeAgentsMaxThreads(featureFlag.config, v2Preferred);
|
|
10686
10686
|
const preserveDisable = featureFlag.value === false && !v2Preferred;
|
|
10687
10687
|
const featureConfig = preserveDisable ? setMultiAgentV2Disable(agentsConfig) : v2Preferred ? removeMultiAgentV2Disable(agentsConfig) : agentsConfig;
|
|
@@ -10760,6 +10760,10 @@ function removeFeatureFlagSetting(config, featureName) {
|
|
|
10760
10760
|
value: readBooleanSetting(section.text, featureName)
|
|
10761
10761
|
};
|
|
10762
10762
|
}
|
|
10763
|
+
function isMultiAgentV2Enabled(config) {
|
|
10764
|
+
const section = findTomlSection(config, CODEX_MULTI_AGENT_V2_HEADER);
|
|
10765
|
+
return section !== null && /^\s*enabled\s*=\s*true[ \t]*(?:#.*)?$/m.test(section.text);
|
|
10766
|
+
}
|
|
10763
10767
|
function removeAgentsMaxThreads(config, v2Preferred) {
|
|
10764
10768
|
const section = findTomlSection(config, CODEX_AGENTS_HEADER);
|
|
10765
10769
|
if (!section)
|
|
@@ -11893,7 +11897,7 @@ function lastValue(values) {
|
|
|
11893
11897
|
return values.length > 0 ? values[values.length - 1] ?? null : null;
|
|
11894
11898
|
}
|
|
11895
11899
|
function repairProjectLocalCodexConfigText(config) {
|
|
11896
|
-
if (!
|
|
11900
|
+
if (!isMultiAgentV2Enabled2(config))
|
|
11897
11901
|
return { config, changed: false, removedKeys: [] };
|
|
11898
11902
|
let nextConfig = config;
|
|
11899
11903
|
const removedKeys = [];
|
|
@@ -11983,7 +11987,7 @@ async function collectProjectLocalArtifacts(projectRoots) {
|
|
|
11983
11987
|
}
|
|
11984
11988
|
return artifacts;
|
|
11985
11989
|
}
|
|
11986
|
-
function
|
|
11990
|
+
function isMultiAgentV2Enabled2(config) {
|
|
11987
11991
|
const featuresSection = findTomlSection(config, "features");
|
|
11988
11992
|
if (featuresSection !== null && settingIsBooleanTrue(featuresSection.text, "multi_agent_v2"))
|
|
11989
11993
|
return true;
|