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.
Files changed (108) hide show
  1. package/dist/cli/index.js +4682 -14969
  2. package/dist/cli-node/index.js +4727 -15014
  3. package/package.json +1 -1
  4. package/packages/lsp-daemon/dist/cli.js +181 -181
  5. package/packages/lsp-daemon/dist/client.js +232 -232
  6. package/packages/lsp-daemon/dist/index.js +132 -132
  7. package/packages/lsp-tools-mcp/dist/cli.js +103 -101
  8. package/packages/lsp-tools-mcp/dist/lsp/manager.js +14 -14
  9. package/packages/lsp-tools-mcp/dist/mcp.js +129 -129
  10. package/packages/lsp-tools-mcp/dist/tools.js +47 -47
  11. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  12. package/packages/omo-codex/plugin/README.md +4 -0
  13. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +151 -102
  14. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  15. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  16. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  17. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  18. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  19. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  20. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/AGENTS.md +2 -2
  21. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/directive.md +2 -0
  22. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js +35 -24
  23. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.js +31 -21
  24. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/types.d.ts +3 -0
  25. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  26. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  27. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/codex-hook.ts +31 -23
  28. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/types.ts +3 -0
  29. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/cli.test.ts +1 -1
  30. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +133 -7
  31. package/packages/omo-codex/plugin/components/lcx/skills/lcx-doctor/SKILL.md +3 -1
  32. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  33. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +298 -298
  34. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  35. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  36. package/packages/omo-codex/plugin/components/rules/README.md +2 -0
  37. package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-6.md +123 -0
  38. package/packages/omo-codex/plugin/components/rules/dist/cli.js +38 -30
  39. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  40. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  41. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +6 -0
  42. package/packages/omo-codex/plugin/components/rules/test/hephaestus-model-variant.test.ts +38 -2
  43. package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +24 -0
  44. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  45. package/packages/omo-codex/plugin/components/teammode/package.json +2 -2
  46. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +66 -357
  47. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +66 -358
  48. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  49. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  50. package/packages/omo-codex/plugin/components/ultrawork/README.md +2 -0
  51. package/packages/omo-codex/plugin/components/ultrawork/agents/explorer.toml +1 -1
  52. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-clone-fidelity-reviewer.toml +1 -1
  53. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-code-reviewer.toml +1 -1
  54. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +1 -1
  55. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-qa-executor.toml +1 -1
  56. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-high.toml +1 -1
  57. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-low.toml +1 -1
  58. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-medium.toml +1 -1
  59. package/packages/omo-codex/plugin/components/ultrawork/agents/librarian.toml +1 -1
  60. package/packages/omo-codex/plugin/components/ultrawork/agents/metis.toml +1 -1
  61. package/packages/omo-codex/plugin/components/ultrawork/agents/momus.toml +1 -1
  62. package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +1 -1
  63. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  64. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  65. package/packages/omo-codex/plugin/components/ulw-execute-continuation/dist/cli.js +3 -3
  66. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  67. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  68. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +63 -63
  69. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  70. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  71. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  72. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  73. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  74. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  75. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  76. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  77. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  78. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  79. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  80. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  81. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  82. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  83. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  84. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  85. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  86. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  87. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  88. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  89. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  90. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  91. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  92. package/packages/omo-codex/plugin/model-catalog.json +16 -7
  93. package/packages/omo-codex/plugin/package-lock.json +16 -16
  94. package/packages/omo-codex/plugin/package.json +1 -1
  95. package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +16 -7
  96. package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-v2-guard.mjs +8 -4
  97. package/packages/omo-codex/plugin/scripts/migrate-codex-config/subagent-limit-guard.mjs +18 -90
  98. package/packages/omo-codex/plugin/scripts/migrate-codex-config/toml-section-editor.mjs +1 -1
  99. package/packages/omo-codex/plugin/shared/package.json +1 -1
  100. package/packages/omo-codex/plugin/skills/lcx-doctor/SKILL.md +3 -1
  101. package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +12 -12
  102. package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +14 -4
  103. package/packages/omo-codex/plugin/test/auto-update.test.mjs +4 -4
  104. package/packages/omo-codex/plugin/test/component-hook-contract-cases.mjs +25 -1
  105. package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +35 -35
  106. package/packages/omo-codex/plugin/test/multi-agent-v2-regression.test.mjs +1 -1
  107. package/packages/omo-codex/plugin/test/subagent-limit-migration.test.mjs +107 -15
  108. 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.49) Recording Spawn Admission",
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.49) Enforcing Unlimited Goal Budget",
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.49) Guarding Ulw-Loop Spawns",
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.49) Recommending Git Bash MCP",
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.49) Checking Auto Update",
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.49) Checking Bootstrap Provisioning"
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.49) Loading Project Rules",
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.49) Recording Session Telemetry",
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.49) Checking Ulw-Execute Continuation",
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.49) Checking Ulw-Loop Resume",
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
  ]
@@ -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.49) Verifying LazyCodex Executor Evidence",
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.49) Checking Ultrawork Trigger",
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.49) Checking Ulw-Loop Steering",
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.49) Loading Project Rules",
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-27.gpt-5.6-sol-650k-high",
2
+ "version": "2026-09-08.gpt-6-astra-600k-high",
3
3
  "current": {
4
- "model": "gpt-5.6-sol",
5
- "model_context_window": 650000,
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-5.6-sol",
12
- "model_context_window": 650000,
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-5.6-sol",
17
+ "model": "gpt-6-astra",
18
18
  "model_reasoning_effort": "high"
19
19
  },
20
20
  "worker": {
21
- "model": "gpt-5.6-sol",
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.49",
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.49",
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.49",
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.49",
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.49",
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.49",
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.49",
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.49",
188
+ "version": "5.0.0-beta.50",
189
189
  "devDependencies": {
190
190
  "@types/node": "^26.2.0",
191
- "bun-types": "^1.4.0",
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.49",
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.49",
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.49",
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.49",
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.0",
1309
- "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.4.0.tgz",
1310
- "integrity": "sha512-iIKw23BspnQQYd3prITOBxeUsxBHnwzX6YJfGMuNOZzeNcMmVqzIIVGRm1l69ogaPQmb4wB6BN8mA5bE9YuC5Q==",
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": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/omo-codex-plugin",
3
- "version": "5.0.0-beta.49",
3
+ "version": "5.0.0-beta.50",
4
4
  "description": "Aggregate Codex plugin root for OMO components.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -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-5.6-sol-650k-high",
6
+ version: "fallback.gpt-6-astra-600k-high",
7
7
  current: {
8
- model: "gpt-5.6-sol",
9
- model_context_window: 650_000,
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-5.6-sol",
16
- model_context_window: 650_000,
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-5.6-sol", model_reasoning_effort: "high" },
21
- worker: { model: "gpt-5.6-sol", model_reasoning_effort: "high" },
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, readRootModel, resolveMultiAgentVersionFromConfig } from "./multi-agent-v2-guard.mjs";
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
- * When no model is resolvable at all (no session model and no root `model`
22
- * in config.toml — Codex Desktop selects the model in the UI), never
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 !== undefined
33
- ? options.multiAgentVersion
34
- : resolveMultiAgentVersionFromConfig(config, options);
35
- const v2Preferred = prefersMultiAgentV2(multiAgentVersion, options.sessionModel) || isMultiAgentV2Enabled(config);
36
-
37
- let result = config;
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 raiseExistingAgentsMaxThreads(config) {
30
+ function removeAgentsMaxThreads(config, v2Preferred) {
60
31
  const section = findSection(config, CODEX_AGENTS_HEADER);
61
32
  if (!section) return config;
62
- if (!/^\s*max_threads\s*=/m.test(section.text)) return config;
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 ensureAgentsMaxThreads(config) {
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
- return appendBlock(
93
- config,
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
  }
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "devDependencies": {
16
16
  "@types/node": "^26.2.0",
17
- "bun-types": "1.4.0",
17
+ "bun-types": "1.4.2",
18
18
  "typescript": "^7.0.2"
19
19
  },
20
20
  "engines": {
@@ -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-5.6-luna", effort: "low" }],
26
- ["librarian.toml", { model: "gpt-5.6-luna", effort: "low" }],
27
- ["metis.toml", { model: "gpt-5.6-sol", effort: "high" }],
28
- ["momus.toml", { model: "gpt-5.6-terra", effort: "high" }],
29
- ["plan.toml", { model: "gpt-5.6-sol", effort: "high" }],
30
- ["lazycodex-worker-low.toml", { model: "gpt-5.6-luna", effort: "high", includes: [/EVIDENCE_RECORDED: <path>/] }],
31
- ["lazycodex-worker-medium.toml", { model: "gpt-5.6-terra", effort: "high", includes: [/EVIDENCE_RECORDED: <path>/] }],
32
- ["lazycodex-worker-high.toml", { model: "gpt-5.6-sol", effort: "medium", includes: [/EVIDENCE_RECORDED: <path>/] }],
33
- ["lazycodex-clone-fidelity-reviewer.toml", { model: "gpt-5.6-terra", effort: "high", includes: [/recommendation/, /blockers/] }],
34
- ["lazycodex-code-reviewer.toml", { model: "gpt-5.6-terra", effort: "medium", includes: [/codeQualityStatus/, /recommendation/, /<attemptDir>\/<goalId>-code-review\.md/, /currentAttemptDir/] }],
35
- ["lazycodex-qa-executor.toml", { model: "gpt-5.6-luna", effort: "high", includes: [/not_applicable/, /surfaceEvidence/, /adversarialCases/, /<attemptDir>\/<goalId>-manual-qa\.md/] }],
36
- ["lazycodex-gate-reviewer.toml", { model: "gpt-5.6-sol", effort: "low", includes: [/blockers/, /currentAttemptDir/] }],
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(