oh-my-opencode 4.18.1 → 4.19.0
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/.agents/skills/codex-qa/scripts/lsp-e2e.sh +39 -16
- package/.agents/skills/opencode-qa/scripts/lsp-e2e.sh +111 -28
- package/README.ja.md +2 -2
- package/README.ko.md +2 -2
- package/README.md +4 -4
- package/README.ru.md +2 -2
- package/README.zh-cn.md +2 -2
- package/bin/AGENTS.md +33 -0
- package/dist/agents/atlas/agent.d.ts +6 -5
- package/dist/agents/sisyphus/index.d.ts +5 -0
- package/dist/agents/sisyphus/kimi-k3.d.ts +19 -0
- package/dist/agents/sisyphus-agent-factory.d.ts +1 -1
- package/dist/agents/sisyphus-junior/agent.d.ts +8 -4
- package/dist/agents/sisyphus-junior/index.d.ts +2 -0
- package/dist/agents/sisyphus-junior/kimi-k3.d.ts +12 -0
- package/dist/agents/types.d.ts +2 -2
- package/dist/cli/index.js +690 -139
- package/dist/cli-node/index.js +690 -139
- package/dist/config/index.d.ts +1 -1
- package/dist/config/schema/browser-automation.d.ts +1 -0
- package/dist/config/schema/commands.d.ts +1 -3
- package/dist/config/schema/default-mode.d.ts +1 -1
- package/dist/config/schema/goal.d.ts +7 -0
- package/dist/config/schema/hooks.d.ts +1 -1
- package/dist/config/schema/oh-my-opencode-config.d.ts +6 -10
- package/dist/config/schema/ralph-loop.d.ts +1 -1
- package/dist/config/schema.d.ts +1 -1
- package/dist/create-hooks.d.ts +1 -1
- package/dist/features/builtin-commands/templates/goal.d.ts +1 -0
- package/dist/features/builtin-commands/templates/stop-continuation.d.ts +1 -1
- package/dist/features/builtin-commands/types.d.ts +1 -1
- package/dist/hooks/anthropic-context-window-limit-recovery/empty-content-recovery-sdk.d.ts +6 -0
- package/dist/hooks/auto-slash-command/executor.d.ts +1 -0
- package/dist/hooks/category-skill-reminder/hook.d.ts +9 -1
- package/dist/hooks/comment-checker/hook.d.ts +8 -1
- package/dist/hooks/goal/command-arguments.d.ts +13 -0
- package/dist/hooks/goal/controller.d.ts +26 -0
- package/dist/hooks/goal/index.d.ts +23 -0
- package/dist/hooks/goal/prompt.d.ts +3 -0
- package/dist/hooks/goal/store.d.ts +8 -0
- package/dist/hooks/goal/tools.d.ts +10 -0
- package/dist/hooks/goal/types.d.ts +93 -0
- package/dist/hooks/goal/validation.d.ts +4 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/keyword-detector/hook.d.ts +1 -2
- package/dist/hooks/ralph-loop/types.d.ts +1 -1
- package/dist/hooks/todo-continuation-enforcer/types.d.ts +3 -0
- package/dist/index.js +3706 -4329
- package/dist/oh-my-opencode.schema.json +23 -19
- package/dist/plugin/chat-message/loop-commands.d.ts +1 -1
- package/dist/plugin/chat-message/types.d.ts +23 -10
- package/dist/plugin/hooks/create-core-hooks.d.ts +1 -1
- package/dist/plugin/hooks/create-session-hooks.d.ts +3 -2
- package/dist/plugin/hooks/create-transform-hooks.d.ts +0 -2
- package/dist/plugin/messages-transform.d.ts +1 -0
- package/dist/plugin/stop-continuation.d.ts +2 -2
- package/dist/plugin-handlers/prometheus-agent-config-builder.d.ts +2 -0
- package/dist/shared/system-directive.d.ts +0 -1
- package/dist/skills/ulw-plan/SKILL.md +11 -7
- package/dist/skills/ulw-plan/references/full-workflow.md +117 -6
- package/dist/skills/ulw-plan/scripts/scaffold-plan.mjs +46 -10
- package/dist/skills/ulw-research/SKILL.md +3 -3
- package/dist/tools/delegate-task/types.d.ts +0 -1
- package/dist/tui.js +115 -28
- package/package.json +14 -14
- package/packages/git-bash-mcp/dist/cli.js +81 -19
- package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +4 -4
- package/packages/lsp-core/src/lsp/directory-diagnostics.test.ts +118 -1
- package/packages/lsp-core/src/lsp/directory-diagnostics.ts +1 -1
- package/packages/lsp-daemon/dist/cli.js +262 -63
- package/packages/lsp-daemon/dist/client.js +194 -50
- package/packages/lsp-daemon/dist/daemon-client.d.ts +2 -2
- package/packages/lsp-daemon/dist/daemon-client.js +26 -2
- package/packages/lsp-daemon/dist/ensure-daemon.d.ts +5 -4
- package/packages/lsp-daemon/dist/ensure-daemon.js +79 -18
- package/packages/lsp-daemon/dist/index.js +262 -63
- package/packages/lsp-daemon/dist/proxy.d.ts +2 -0
- package/packages/lsp-daemon/dist/proxy.js +79 -23
- package/packages/lsp-tools-mcp/dist/cli.js +82 -20
- package/packages/lsp-tools-mcp/dist/mcp.js +82 -20
- package/packages/lsp-tools-mcp/dist/tools.js +1 -1
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/.mcp.json +2 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +352 -17
- 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/codegraph/AGENTS.md +7 -6
- package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +195 -56
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +100 -28
- package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
- package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +21 -9
- package/packages/omo-codex/plugin/components/codegraph/test/hook-exclusion.test.ts +1 -1
- package/packages/omo-codex/plugin/components/codegraph/test/mcp-bridge-fixtures.ts +35 -0
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge-lifecycle.test.ts +69 -0
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +57 -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/.mcp.json +2 -1
- package/packages/omo-codex/plugin/components/lsp/AGENTS.md +1 -0
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +113 -31
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +1 -0
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.5.md +1 -1
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.6.md +5 -3
- 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/start-work-continuation/AGENTS.md +8 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/README.md +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +3 -3
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/cli.js +148 -61
- package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/src/boulder-reader.ts +4 -72
- package/packages/omo-codex/plugin/components/start-work-continuation/src/codex-hook.ts +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/src/plan-checklist.ts +171 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/test/boulder-reader.test.ts +213 -24
- package/packages/omo-codex/plugin/components/start-work-continuation/test/cli.test.ts +4 -3
- package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +25 -4
- package/packages/omo-codex/plugin/components/start-work-continuation/test/fixtures/plan-scaffold.md +15 -0
- 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/AGENTS.md +10 -10
- package/packages/omo-codex/plugin/components/ultrawork/agents/momus.toml +3 -3
- package/packages/omo-codex/plugin/components/ultrawork/directive.md +50 -33
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +50 -33
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +11 -7
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +117 -6
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/scripts/scaffold-plan.mjs +46 -10
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +50 -33
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +3 -3
- package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +5 -6
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +5 -6
- package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +2 -2
- 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-codegraph-init-guidance.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/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-checking-codegraph-bootstrap.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-start-work-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-checking-start-work-continuation.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 +13 -13
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-v2-guard.mjs +32 -28
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/subagent-limit-guard.mjs +17 -45
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/toml-section-editor.mjs +455 -0
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +13 -20
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +7 -0
- package/packages/omo-codex/plugin/skills/start-work/SKILL.md +3 -2
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +50 -33
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +11 -7
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +117 -6
- package/packages/omo-codex/plugin/skills/ulw-plan/scripts/scaffold-plan.mjs +46 -10
- package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +2 -2
- package/packages/omo-codex/plugin/test/lcx-bug-skills.test.mjs +2 -2
- package/packages/omo-codex/plugin/test/mcp-research-servers.test.mjs +1 -0
- package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +6 -6
- package/packages/omo-codex/plugin/test/multi-agent-v2-regression.test.mjs +3 -3
- package/packages/omo-codex/plugin/test/scaffold-plan.test.mjs +62 -0
- package/packages/omo-codex/plugin/test/subagent-limit-migration.test.mjs +271 -14
- package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +7 -0
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +38 -22
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +0 -5
- package/packages/omo-codex/plugin/test/ulw-plan-review-state-contract.test.mjs +293 -0
- package/packages/omo-codex/scripts/install-config.test.mjs +10 -10
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +353 -18
- package/packages/omo-codex/scripts/install-generated-bundle.test.mjs +39 -2
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +11 -7
- package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +117 -6
- package/packages/shared-skills/skills/ulw-plan/scripts/scaffold-plan.mjs +46 -10
- package/packages/shared-skills/skills/ulw-research/SKILL.md +3 -3
- package/dist/features/builtin-commands/templates/ralph-loop.d.ts +0 -3
- package/dist/skills/ultraresearch/SKILL.md +0 -10
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/SKILL.md +0 -273
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/agents/openai.yaml +0 -12
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/scripts/create-pr-body.mjs +0 -107
- package/packages/shared-skills/skills/lcx-doctor/SKILL.md +0 -128
- package/packages/shared-skills/skills/lcx-doctor/agents/openai.yaml +0 -11
- package/packages/shared-skills/skills/lcx-report-bug/SKILL.md +0 -268
- package/packages/shared-skills/skills/lcx-report-bug/agents/openai.yaml +0 -11
- package/packages/shared-skills/skills/ultraresearch/SKILL.md +0 -10
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-contribute-bug-fix/SKILL.md +0 -0
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-contribute-bug-fix/agents/openai.yaml +0 -0
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-contribute-bug-fix/scripts/create-pr-body.mjs +0 -0
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-doctor/SKILL.md +0 -0
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-doctor/agents/openai.yaml +0 -0
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-report-bug/SKILL.md +0 -0
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-report-bug/agents/openai.yaml +0 -0
|
@@ -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 4.
|
|
10
|
+
"statusMessage": "(OmO 4.19.0) 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 4.
|
|
10
|
+
"statusMessage": "(OmO 4.19.0) 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 4.
|
|
10
|
+
"statusMessage": "(OmO 4.19.0) 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": "4.
|
|
3
|
+
"version": "4.19.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@sisyphuslabs/omo-codex-plugin",
|
|
9
|
-
"version": "4.
|
|
9
|
+
"version": "4.19.0",
|
|
10
10
|
"workspaces": [
|
|
11
11
|
"components/codegraph",
|
|
12
12
|
"components/comment-checker",
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
},
|
|
101
101
|
"components/codegraph": {
|
|
102
102
|
"name": "@sisyphuslabs/codex-codegraph",
|
|
103
|
-
"version": "4.
|
|
103
|
+
"version": "4.19.0",
|
|
104
104
|
"bin": {
|
|
105
105
|
"omo-codegraph": "dist/cli.js"
|
|
106
106
|
},
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
},
|
|
120
120
|
"components/comment-checker": {
|
|
121
121
|
"name": "@code-yeongyu/codex-comment-checker",
|
|
122
|
-
"version": "4.
|
|
122
|
+
"version": "4.19.0",
|
|
123
123
|
"license": "MIT",
|
|
124
124
|
"bin": {
|
|
125
125
|
"omo-comment-checker": "dist/cli.js"
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
},
|
|
141
141
|
"components/git-bash": {
|
|
142
142
|
"name": "@sisyphuslabs/codex-git-bash-hook",
|
|
143
|
-
"version": "4.
|
|
143
|
+
"version": "4.19.0",
|
|
144
144
|
"bin": {
|
|
145
145
|
"omo-git-bash-hook": "dist/cli.js"
|
|
146
146
|
},
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
},
|
|
156
156
|
"components/lazycodex-executor-verify": {
|
|
157
157
|
"name": "@code-yeongyu/codex-lazycodex-executor-verify",
|
|
158
|
-
"version": "4.
|
|
158
|
+
"version": "4.19.0",
|
|
159
159
|
"license": "MIT",
|
|
160
160
|
"bin": {
|
|
161
161
|
"lazycodex-executor-verify": "dist/cli.js"
|
|
@@ -172,7 +172,7 @@
|
|
|
172
172
|
},
|
|
173
173
|
"components/lsp": {
|
|
174
174
|
"name": "@code-yeongyu/codex-lsp",
|
|
175
|
-
"version": "4.
|
|
175
|
+
"version": "4.19.0",
|
|
176
176
|
"license": "MIT",
|
|
177
177
|
"dependencies": {
|
|
178
178
|
"@code-yeongyu/lsp-daemon": "file:../../../../lsp-daemon",
|
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
},
|
|
194
194
|
"components/rules": {
|
|
195
195
|
"name": "@code-yeongyu/codex-rules",
|
|
196
|
-
"version": "4.
|
|
196
|
+
"version": "4.19.0",
|
|
197
197
|
"license": "MIT",
|
|
198
198
|
"dependencies": {
|
|
199
199
|
"picomatch": "^4.0.3"
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
},
|
|
216
216
|
"components/start-work-continuation": {
|
|
217
217
|
"name": "@code-yeongyu/codex-start-work-continuation",
|
|
218
|
-
"version": "4.
|
|
218
|
+
"version": "4.19.0",
|
|
219
219
|
"license": "MIT",
|
|
220
220
|
"bin": {
|
|
221
221
|
"omo-start-work-continuation": "dist/cli.js"
|
|
@@ -232,7 +232,7 @@
|
|
|
232
232
|
},
|
|
233
233
|
"components/teammode": {
|
|
234
234
|
"name": "@sisyphuslabs/codex-teammode",
|
|
235
|
-
"version": "4.
|
|
235
|
+
"version": "4.19.0",
|
|
236
236
|
"devDependencies": {
|
|
237
237
|
"@types/node": "^25.9.3",
|
|
238
238
|
"bun-types": "^1.3.1",
|
|
@@ -245,7 +245,7 @@
|
|
|
245
245
|
},
|
|
246
246
|
"components/telemetry": {
|
|
247
247
|
"name": "@code-yeongyu/codex-telemetry",
|
|
248
|
-
"version": "4.
|
|
248
|
+
"version": "4.19.0",
|
|
249
249
|
"license": "MIT",
|
|
250
250
|
"bin": {
|
|
251
251
|
"omo-telemetry": "dist/cli.js"
|
|
@@ -263,7 +263,7 @@
|
|
|
263
263
|
},
|
|
264
264
|
"components/ultrawork": {
|
|
265
265
|
"name": "@code-yeongyu/codex-ultrawork",
|
|
266
|
-
"version": "4.
|
|
266
|
+
"version": "4.19.0",
|
|
267
267
|
"license": "MIT",
|
|
268
268
|
"bin": {
|
|
269
269
|
"omo-ultrawork": "dist/cli.js"
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
},
|
|
282
282
|
"components/ulw-loop": {
|
|
283
283
|
"name": "@code-yeongyu/codex-ulw-loop",
|
|
284
|
-
"version": "4.
|
|
284
|
+
"version": "4.19.0",
|
|
285
285
|
"license": "MIT",
|
|
286
286
|
"bin": {
|
|
287
287
|
"omo-ulw-loop": "dist/cli.js",
|
|
@@ -26,7 +26,17 @@ import { readFileSync } from "node:fs";
|
|
|
26
26
|
import { homedir } from "node:os";
|
|
27
27
|
import { dirname, isAbsolute, join } from "node:path";
|
|
28
28
|
|
|
29
|
+
import {
|
|
30
|
+
findTomlSection as findSection,
|
|
31
|
+
hasTomlSetting,
|
|
32
|
+
removeTomlSectionSetting,
|
|
33
|
+
removeRootTomlSetting,
|
|
34
|
+
replaceOrInsertTomlSectionSetting,
|
|
35
|
+
replaceOrInsertRootTomlSetting,
|
|
36
|
+
} from "./toml-section-editor.mjs";
|
|
37
|
+
|
|
29
38
|
const MANAGED_COMMENT_MARKER = "openai/codex#26753";
|
|
39
|
+
const MULTI_AGENT_V2_THREAD_LIMIT_KEY = "features.multi_agent_v2.max_concurrent_threads_per_session";
|
|
30
40
|
const MANAGED_DISABLE_COMMENT = [
|
|
31
41
|
"# Managed by LazyCodex: multi_agent_v2 is re-disabled on every Codex session start",
|
|
32
42
|
`# because enabling it fails every turn with HTTP 400 (${MANAGED_COMMENT_MARKER}).`,
|
|
@@ -177,7 +187,11 @@ function isGpt56Family(model) {
|
|
|
177
187
|
|
|
178
188
|
function clearMultiAgentV2DisableForReservedSchema(config) {
|
|
179
189
|
// `config` arrives shorthand-normalized from forceDisableMultiAgentV2.
|
|
180
|
-
|
|
190
|
+
let result = removeManagedDisableComments(config);
|
|
191
|
+
result = removeRootTomlSetting(result, "features.multi_agent_v2.enabled", "false");
|
|
192
|
+
result = removeRootTomlSetting(result, "features.multi_agent_v2.hide_spawn_agent_metadata", "false");
|
|
193
|
+
result = removeDottedMultiAgentV2Setting(result, "enabled", "false");
|
|
194
|
+
result = removeDottedMultiAgentV2Setting(result, "hide_spawn_agent_metadata", "false");
|
|
181
195
|
|
|
182
196
|
const section = findSection(result, "[features.multi_agent_v2]");
|
|
183
197
|
if (!section) return result;
|
|
@@ -203,6 +217,9 @@ function forceDisableLegacyEncryptedV2(config) {
|
|
|
203
217
|
const section = findSection(config, "[features.multi_agent_v2]");
|
|
204
218
|
|
|
205
219
|
if (!section) {
|
|
220
|
+
if (hasTomlSetting(config, MULTI_AGENT_V2_THREAD_LIMIT_KEY)) {
|
|
221
|
+
return setDottedMultiAgentV2Disable(config);
|
|
222
|
+
}
|
|
206
223
|
return ensureManagedComment(appendDisabledSection(config));
|
|
207
224
|
}
|
|
208
225
|
|
|
@@ -222,6 +239,20 @@ function forceDisableLegacyEncryptedV2(config) {
|
|
|
222
239
|
return ensureManagedComment(config.slice(0, section.start) + patched + config.slice(section.end));
|
|
223
240
|
}
|
|
224
241
|
|
|
242
|
+
function setDottedMultiAgentV2Disable(config) {
|
|
243
|
+
const featuresSection = findSection(config, "[features]");
|
|
244
|
+
if (!featuresSection) {
|
|
245
|
+
return replaceOrInsertRootTomlSetting(config, "features.multi_agent_v2.enabled", "false");
|
|
246
|
+
}
|
|
247
|
+
return replaceOrInsertTomlSectionSetting(config, featuresSection, "multi_agent_v2.enabled", "false");
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
function removeDottedMultiAgentV2Setting(config, key, expectedValue) {
|
|
251
|
+
const featuresSection = findSection(config, "[features]");
|
|
252
|
+
if (!featuresSection) return config;
|
|
253
|
+
return removeTomlSectionSetting(config, featuresSection, `multi_agent_v2.${key}`, expectedValue);
|
|
254
|
+
}
|
|
255
|
+
|
|
225
256
|
function ensureManagedComment(config) {
|
|
226
257
|
if (config.includes(MANAGED_COMMENT_MARKER)) return config;
|
|
227
258
|
const section = findSection(config, "[features.multi_agent_v2]");
|
|
@@ -269,30 +300,3 @@ function appendDisabledSection(config) {
|
|
|
269
300
|
const prefix = trimmed.length === 0 ? "" : `${trimmed}\n\n`;
|
|
270
301
|
return `${prefix}[features.multi_agent_v2]\nenabled = false\n`;
|
|
271
302
|
}
|
|
272
|
-
|
|
273
|
-
// Strips a trailing # comment from a TOML line fragment (best-effort; quoted keys containing # are out of scope).
|
|
274
|
-
function stripTrailingComment(line) {
|
|
275
|
-
const idx = line.indexOf("#");
|
|
276
|
-
return idx === -1 ? line : line.slice(0, idx).trim();
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
function findSection(config, headerLine) {
|
|
280
|
-
const lines = config.match(/[^\n]*\n?|$/g) ?? [];
|
|
281
|
-
let offset = 0;
|
|
282
|
-
let start = -1;
|
|
283
|
-
for (const line of lines) {
|
|
284
|
-
if (line.length === 0) break;
|
|
285
|
-
const trimmed = line.trim();
|
|
286
|
-
if (start === -1) {
|
|
287
|
-
if (stripTrailingComment(trimmed) === headerLine) start = offset;
|
|
288
|
-
} else {
|
|
289
|
-
const bare = stripTrailingComment(trimmed);
|
|
290
|
-
if (bare.startsWith("[") && bare.endsWith("]")) {
|
|
291
|
-
return { start, end: offset, text: config.slice(start, offset) };
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
offset += line.length;
|
|
295
|
-
}
|
|
296
|
-
if (start === -1) return null;
|
|
297
|
-
return { start, end: config.length, text: config.slice(start) };
|
|
298
|
-
}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { prefersMultiAgentV2, readRootModel, resolveMultiAgentVersionFromConfig } from "./multi-agent-v2-guard.mjs";
|
|
2
|
+
import {
|
|
3
|
+
findTomlSection as findSection,
|
|
4
|
+
hasTomlSetting,
|
|
5
|
+
replaceOrInsertTomlSectionSetting,
|
|
6
|
+
} from "./toml-section-editor.mjs";
|
|
2
7
|
|
|
3
8
|
const CODEX_AGENTS_HEADER = "[agents]";
|
|
4
9
|
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";
|
|
5
11
|
const CODEX_SUBAGENT_THREAD_LIMIT = "1000";
|
|
12
|
+
const CODEX_MULTI_AGENT_V2_DEFAULT_THREAD_LIMIT = "16";
|
|
6
13
|
|
|
7
14
|
/**
|
|
8
15
|
* Ensure subagent concurrency limits without writing settings that conflict
|
|
@@ -53,13 +60,13 @@ function raiseExistingAgentsMaxThreads(config) {
|
|
|
53
60
|
const section = findSection(config, CODEX_AGENTS_HEADER);
|
|
54
61
|
if (!section) return config;
|
|
55
62
|
if (!/^\s*max_threads\s*=/m.test(section.text)) return config;
|
|
56
|
-
return
|
|
63
|
+
return replaceOrInsertTomlSectionSetting(config, section, "max_threads", CODEX_SUBAGENT_THREAD_LIMIT);
|
|
57
64
|
}
|
|
58
65
|
|
|
59
66
|
function ensureAgentsMaxThreads(config) {
|
|
60
67
|
const section = findSection(config, CODEX_AGENTS_HEADER);
|
|
61
68
|
if (!section) return appendBlock(config, `${CODEX_AGENTS_HEADER}\nmax_threads = ${CODEX_SUBAGENT_THREAD_LIMIT}\n`);
|
|
62
|
-
return
|
|
69
|
+
return replaceOrInsertTomlSectionSetting(config, section, "max_threads", CODEX_SUBAGENT_THREAD_LIMIT);
|
|
63
70
|
}
|
|
64
71
|
|
|
65
72
|
function removeAgentsMaxThreads(config) {
|
|
@@ -79,29 +86,20 @@ function removeAgentsMaxThreads(config) {
|
|
|
79
86
|
}
|
|
80
87
|
|
|
81
88
|
function ensureMultiAgentV2ThreadLimit(config) {
|
|
89
|
+
if (hasTomlSetting(config, CODEX_MULTI_AGENT_V2_THREAD_LIMIT_KEY)) return config;
|
|
82
90
|
const section = findSection(config, CODEX_MULTI_AGENT_V2_HEADER);
|
|
83
91
|
if (!section) {
|
|
84
92
|
return appendBlock(
|
|
85
93
|
config,
|
|
86
|
-
`${CODEX_MULTI_AGENT_V2_HEADER}\nmax_concurrent_threads_per_session = ${
|
|
94
|
+
`${CODEX_MULTI_AGENT_V2_HEADER}\nmax_concurrent_threads_per_session = ${CODEX_MULTI_AGENT_V2_DEFAULT_THREAD_LIMIT}\n`,
|
|
87
95
|
);
|
|
88
96
|
}
|
|
89
|
-
return
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
const patched = section.text.replace(pattern, (_match, indent, comment) =>
|
|
96
|
-
comment ? `${indent}${key} = ${value} ${comment}` : `${indent}${key} = ${value}`,
|
|
97
|
-
);
|
|
98
|
-
return config.slice(0, section.start) + patched + config.slice(section.end);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
const headerEnd = section.text.indexOf("\n");
|
|
102
|
-
const insertAt = headerEnd === -1 ? section.text.length : headerEnd + 1;
|
|
103
|
-
const patched = `${section.text.slice(0, insertAt)}${headerEnd === -1 ? "\n" : ""}${key} = ${value}\n${section.text.slice(insertAt)}`;
|
|
104
|
-
return config.slice(0, section.start) + patched + config.slice(section.end);
|
|
97
|
+
return replaceOrInsertTomlSectionSetting(
|
|
98
|
+
config,
|
|
99
|
+
section,
|
|
100
|
+
"max_concurrent_threads_per_session",
|
|
101
|
+
CODEX_MULTI_AGENT_V2_DEFAULT_THREAD_LIMIT,
|
|
102
|
+
);
|
|
105
103
|
}
|
|
106
104
|
|
|
107
105
|
function appendBlock(config, block) {
|
|
@@ -113,29 +111,3 @@ function appendBlock(config, block) {
|
|
|
113
111
|
function escapeRegExp(value) {
|
|
114
112
|
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
115
113
|
}
|
|
116
|
-
|
|
117
|
-
function stripTrailingComment(line) {
|
|
118
|
-
const idx = line.indexOf("#");
|
|
119
|
-
return idx === -1 ? line : line.slice(0, idx).trim();
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
function findSection(config, headerLine) {
|
|
123
|
-
const lines = config.match(/[^\n]*\n?|$/g) ?? [];
|
|
124
|
-
let offset = 0;
|
|
125
|
-
let start = -1;
|
|
126
|
-
for (const line of lines) {
|
|
127
|
-
if (line.length === 0) break;
|
|
128
|
-
const trimmed = line.trim();
|
|
129
|
-
if (start === -1) {
|
|
130
|
-
if (stripTrailingComment(trimmed) === headerLine) start = offset;
|
|
131
|
-
} else {
|
|
132
|
-
const bare = stripTrailingComment(trimmed);
|
|
133
|
-
if (bare.startsWith("[") && bare.endsWith("]")) {
|
|
134
|
-
return { start, end: offset, text: config.slice(start, offset) };
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
offset += line.length;
|
|
138
|
-
}
|
|
139
|
-
if (start === -1) return null;
|
|
140
|
-
return { start, end: config.length, text: config.slice(start) };
|
|
141
|
-
}
|