oh-my-opencode 4.16.3 → 4.17.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.
Files changed (177) hide show
  1. package/.agents/command/omomomo.md +1 -1
  2. package/.agents/skills/hyperplan/SKILL.md +3 -3
  3. package/.agents/skills/omomomo/SKILL.md +1 -1
  4. package/.opencode/command/omomomo.md +1 -1
  5. package/.opencode/skills/hyperplan/SKILL.md +3 -3
  6. package/.opencode/skills/pre-publish-review/SKILL.md +3 -0
  7. package/README.ja.md +4 -4
  8. package/README.ko.md +4 -4
  9. package/README.md +2 -2
  10. package/README.ru.md +4 -4
  11. package/README.zh-cn.md +4 -4
  12. package/dist/cli/index.js +179 -63
  13. package/dist/cli-node/index.js +179 -63
  14. package/dist/features/team-mode/test-support/async-test-helpers.d.ts +2 -2
  15. package/dist/index.js +121 -58
  16. package/dist/plugin/chat-message/types.d.ts +4 -0
  17. package/dist/plugin/command-execute-before.d.ts +1 -0
  18. package/dist/plugin/stop-continuation.d.ts +17 -0
  19. package/dist/skills/remove-ai-slops/SKILL.md +2 -2
  20. package/dist/skills/start-work/SKILL.md +5 -2
  21. package/dist/skills/ulw-plan/scripts/scaffold-plan.mjs +2 -2
  22. package/dist/tui.js +71 -29
  23. package/package.json +15 -14
  24. package/packages/git-bash-mcp/package.json +27 -0
  25. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +3 -1
  26. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +84 -19
  27. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  28. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  29. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  30. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  31. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  32. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  33. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  34. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/AGENTS.md +2 -2
  35. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js +6 -2
  36. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.js +6 -2
  37. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +2 -2
  38. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  39. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/codex-hook.ts +6 -2
  40. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/cli.test.ts +1 -1
  41. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +67 -2
  42. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  43. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  44. package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +0 -13
  45. package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.6.md +1 -1
  46. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  47. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  48. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  49. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  50. package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +1 -79
  51. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  52. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  53. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  54. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  55. package/packages/omo-codex/plugin/components/ultrawork/agents/explorer.toml +2 -2
  56. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-code-reviewer.toml +2 -2
  57. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +6 -6
  58. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-qa-executor.toml +5 -5
  59. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-high.toml +26 -0
  60. package/packages/omo-codex/plugin/components/ultrawork/agents/{lazycodex-executor.toml → lazycodex-worker-low.toml} +6 -4
  61. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-medium.toml +26 -0
  62. package/packages/omo-codex/plugin/components/ultrawork/agents/librarian.toml +2 -2
  63. package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +4 -4
  64. package/packages/omo-codex/plugin/components/ultrawork/directive.md +55 -28
  65. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  66. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  67. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +55 -28
  68. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/scripts/scaffold-plan.mjs +2 -2
  69. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +22 -0
  70. package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +0 -68
  71. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +1 -1
  72. package/packages/omo-codex/plugin/components/ulw-loop/CHANGELOG.md +2 -0
  73. package/packages/omo-codex/plugin/components/ulw-loop/README.md +3 -1
  74. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +55 -28
  75. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +6 -1
  76. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.d.ts +1 -1
  77. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.js +13 -2
  78. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +405 -25
  79. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +12 -1
  80. package/packages/omo-codex/plugin/components/ulw-loop/dist/domain-types.d.ts +4 -2
  81. package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.d.ts +7 -0
  82. package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.js +16 -1
  83. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.js +1 -0
  84. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-verdicts.d.ts +6 -0
  85. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-verdicts.js +20 -0
  86. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.d.ts +1 -0
  87. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.js +12 -9
  88. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.d.ts +3 -0
  89. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.js +148 -0
  90. package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.d.ts +2 -0
  91. package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +209 -0
  92. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +25 -2
  93. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  94. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +14 -15
  95. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +29 -27
  96. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +6 -1
  97. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-subcommands.ts +14 -3
  98. package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +10 -0
  99. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +12 -1
  100. package/packages/omo-codex/plugin/components/ulw-loop/src/domain-types.ts +4 -2
  101. package/packages/omo-codex/plugin/components/ulw-loop/src/paths.ts +27 -1
  102. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-crud.ts +1 -0
  103. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-verdicts.ts +23 -0
  104. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate.ts +16 -9
  105. package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-guard.ts +138 -0
  106. package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +208 -0
  107. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-create-goals.test.ts +12 -0
  108. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +4 -1
  109. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +8 -35
  110. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/quality-gate-builder.ts +24 -13
  111. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +5 -2
  112. package/packages/omo-codex/plugin/components/ulw-loop/test/paths.test.ts +43 -8
  113. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate.test.ts +55 -2
  114. package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard.test.ts +228 -0
  115. package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +193 -0
  116. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  117. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  118. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  119. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  120. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  121. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  122. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  123. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  124. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  125. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +18 -0
  126. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  127. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  128. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  129. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  130. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  131. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  132. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  133. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +17 -0
  134. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  135. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +2 -2
  136. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  137. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  138. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  139. package/packages/omo-codex/plugin/model-catalog.json +16 -7
  140. package/packages/omo-codex/plugin/package-lock.json +13 -13
  141. package/packages/omo-codex/plugin/package.json +1 -1
  142. package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +16 -7
  143. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +8 -2
  144. package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +2 -2
  145. package/packages/omo-codex/plugin/skills/refactor/SKILL.md +2 -2
  146. package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +4 -4
  147. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +8 -2
  148. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +5 -2
  149. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +55 -28
  150. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +14 -15
  151. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +29 -27
  152. package/packages/omo-codex/plugin/skills/ulw-plan/scripts/scaffold-plan.mjs +2 -2
  153. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +2 -2
  154. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +2 -2
  155. package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +76 -16
  156. package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +23 -2
  157. package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +1 -1
  158. package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +4 -4
  159. package/packages/omo-codex/plugin/test/auto-update.test.mjs +4 -4
  160. package/packages/omo-codex/plugin/test/component-hook-contract-cases.mjs +2 -2
  161. package/packages/omo-codex/plugin/test/lcx-bug-skills.test.mjs +4 -101
  162. package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +14 -14
  163. package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +11 -0
  164. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +1 -1
  165. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +4 -2
  166. package/packages/omo-codex/plugin/test/ulw-plan-skill-contract.test.mjs +9 -40
  167. package/packages/omo-codex/plugin/test/ulw-research-skill-contract.test.mjs +4 -277
  168. package/packages/omo-codex/scripts/install-config-reasoning.test.mjs +5 -5
  169. package/packages/omo-codex/scripts/install-config.test.mjs +22 -3
  170. package/packages/omo-codex/scripts/install-dist/install-local.mjs +91 -21
  171. package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +2 -2
  172. package/packages/shared-skills/skills/start-work/SKILL.md +5 -2
  173. package/packages/shared-skills/skills/ulw-plan/scripts/scaffold-plan.mjs +2 -2
  174. package/dist/skills/visual-qa/scripts/skill-prompt-contract.test.ts +0 -296
  175. package/packages/omo-codex/plugin/components/ulw-loop/test/skill-contract.test.ts +0 -70
  176. package/packages/omo-codex/plugin/test/ulw-research-epistemic-contract.test.mjs +0 -98
  177. package/packages/shared-skills/skills/visual-qa/scripts/skill-prompt-contract.test.ts +0 -296
@@ -2146,7 +2146,7 @@ var package_default;
2146
2146
  var init_package = __esm(() => {
2147
2147
  package_default = {
2148
2148
  name: "oh-my-opencode",
2149
- version: "4.16.3",
2149
+ version: "4.17.0",
2150
2150
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2151
2151
  main: "./dist/index.js",
2152
2152
  types: "dist/index.d.ts",
@@ -2209,6 +2209,7 @@ var init_package = __esm(() => {
2209
2209
  "packages/lsp-tools-mcp/dist",
2210
2210
  "packages/lsp-daemon/package.json",
2211
2211
  "packages/lsp-daemon/dist",
2212
+ "packages/git-bash-mcp/package.json",
2212
2213
  "packages/git-bash-mcp/dist",
2213
2214
  "packages/shared-skills/package.json",
2214
2215
  "packages/shared-skills/index.mjs",
@@ -2274,7 +2275,7 @@ var init_package = __esm(() => {
2274
2275
  "typecheck:packages": "tsgo --noEmit -p packages/rules-engine/tsconfig.json && tsgo --noEmit -p packages/delegate-core/tsconfig.json && tsgo --noEmit -p packages/mcp-stdio-core/tsconfig.json && tsgo --noEmit -p packages/mcp-client-core/tsconfig.json && tsgo --noEmit -p packages/git-bash-mcp/tsconfig.json && tsgo --noEmit -p packages/lsp-core/tsconfig.json && tsgo --noEmit -p packages/utils/tsconfig.json && tsgo --noEmit -p packages/model-core/tsconfig.json && tsgo --noEmit -p packages/omo-config-core/tsconfig.json && tsgo --noEmit -p packages/prompts-core/tsconfig.json && tsgo --noEmit -p packages/comment-checker-core/tsconfig.json && tsgo --noEmit -p packages/hashline-core/tsconfig.json && tsgo --noEmit -p packages/tmux-core/tsconfig.json && tsgo --noEmit -p packages/team-core/tsconfig.json && tsgo --noEmit -p packages/openclaw-core/tsconfig.json && tsgo --noEmit -p packages/boulder-state/tsconfig.json && tsgo --noEmit -p packages/telemetry-core/tsconfig.json && tsgo --noEmit -p packages/claude-code-compat-core/tsconfig.json && tsgo --noEmit -p packages/skills-loader-core/tsconfig.json && tsgo --noEmit -p packages/agents-md-core/tsconfig.json && tsgo --noEmit -p packages/omo-codex/plugin/shared/tsconfig.json && tsgo --noEmit -p packages/omo-codex/tsconfig.json && tsgo --noEmit -p packages/omo-senpi/tsconfig.json && tsgo --noEmit -p packages/senpi-task/tsconfig.json && tsgo --noEmit -p packages/pi-goal/tsconfig.json && tsgo --noEmit -p packages/pi-webfetch/tsconfig.json && tsgo --noEmit -p packages/omo-opencode/tsconfig.json",
2275
2276
  "typecheck:script": "tsgo --noEmit -p script/tsconfig.json",
2276
2277
  test: "bun test",
2277
- "test:codex": "bun run build:codex-install && bun run build:git-bash-mcp && bun run build:lsp-tools-mcp && bun run build:lsp-daemon && npm --prefix packages/lsp-tools-mcp test && npm --prefix packages/omo-codex/plugin ci && bun run --cwd packages/omo-codex/plugin build && npm --prefix packages/omo-codex/plugin/components/codegraph run typecheck && npm --prefix packages/omo-codex/plugin/components/codegraph test && node scripts/check-third-party-notices.mjs --ship && bun test packages/omo-opencode/src/cli/cli-installer.platform.test.ts packages/omo-codex/src/install/codex-cache.test.ts packages/omo-codex/src/install/codex-cleanup.test.ts packages/omo-codex/src/install/codex-config-agent-cleanup.test.ts packages/omo-codex/src/install/codex-config-autonomous-features.test.ts packages/omo-codex/src/install/codex-config-reasoning.test.ts packages/omo-codex/src/install/codex-config-toml.test.ts packages/omo-codex/src/install/codex-project-local-cleanup.test.ts packages/omo-codex/src/install/install-codex-project-local-cleanup.test.ts packages/omo-codex/src/install/install-codex.test.ts packages/omo-codex/src/install/install-codex-packaged.test.ts packages/omo-codex/src/install/link-cached-plugin-agents.test.ts packages/omo-codex/src/**/*.test.ts packages/utils/src/jsonc-parser.test.ts packages/utils/src/frontmatter.test.ts packages/hashline-core/src/hash-computation.test.ts packages/hashline-core/src/smoke-untested-modules.test.ts packages/rules-engine/src/index.test.ts packages/rules-engine/src/security-boundary.test.ts packages/agents-md-core/src/injector.test.ts packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts && node --test packages/omo-codex/plugin/test/*.test.mjs packages/omo-codex/scripts/install-cache-copy.test.mjs packages/omo-codex/scripts/install-cli-args.test.mjs packages/omo-codex/scripts/install-delegated-command.test.mjs packages/omo-codex/scripts/install-config-autonomous-features.test.mjs packages/omo-codex/scripts/install-config-autonomous.test.mjs packages/omo-codex/scripts/install-config-reasoning.test.mjs packages/omo-codex/scripts/install-config.test.mjs packages/omo-codex/scripts/install-hook-targets.test.mjs packages/omo-codex/scripts/install-project-local-cleanup.test.mjs packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs packages/omo-codex/scripts/install-local-entrypoint.test.mjs packages/omo-codex/scripts/install-local-git-bash-preflight.test.mjs packages/omo-codex/scripts/install-local.test.mjs packages/omo-codex/scripts/install-marketplace-cache.test.mjs packages/omo-codex/scripts/install-mcp-context7-runtime.test.mjs packages/omo-codex/scripts/install-mcp-runtime.test.mjs packages/omo-codex/scripts/install-packaged-local.test.mjs packages/omo-codex/scripts/install-generated-bundle.test.mjs packages/omo-codex/scripts/install-agent-links.test.mjs packages/omo-codex/scripts/install-bin-links.test.mjs",
2278
+ "test:codex": "bun run build:codex-install && bun run build:git-bash-mcp && bun run build:lsp-tools-mcp && bun run build:lsp-daemon && npm --prefix packages/lsp-tools-mcp test && npm --prefix packages/omo-codex/plugin ci && npm --prefix packages/omo-codex/plugin/components/ulw-loop test && bun run --cwd packages/omo-codex/plugin build && npm --prefix packages/omo-codex/plugin/components/codegraph run typecheck && npm --prefix packages/omo-codex/plugin/components/codegraph test && node scripts/check-third-party-notices.mjs --ship && bun test packages/omo-opencode/src/cli/cli-installer.platform.test.ts packages/omo-codex/src/install/codex-cache.test.ts packages/omo-codex/src/install/codex-cleanup.test.ts packages/omo-codex/src/install/codex-config-agent-cleanup.test.ts packages/omo-codex/src/install/codex-config-autonomous-features.test.ts packages/omo-codex/src/install/codex-config-reasoning.test.ts packages/omo-codex/src/install/codex-config-toml.test.ts packages/omo-codex/src/install/codex-project-local-cleanup.test.ts packages/omo-codex/src/install/install-codex-project-local-cleanup.test.ts packages/omo-codex/src/install/install-codex.test.ts packages/omo-codex/src/install/install-codex-packaged.test.ts packages/omo-codex/src/install/link-cached-plugin-agents.test.ts packages/omo-codex/src/**/*.test.ts packages/utils/src/jsonc-parser.test.ts packages/utils/src/frontmatter.test.ts packages/hashline-core/src/hash-computation.test.ts packages/hashline-core/src/smoke-untested-modules.test.ts packages/rules-engine/src/index.test.ts packages/rules-engine/src/security-boundary.test.ts packages/agents-md-core/src/injector.test.ts packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts && node --test packages/omo-codex/plugin/test/*.test.mjs packages/omo-codex/scripts/install-cache-copy.test.mjs packages/omo-codex/scripts/install-cli-args.test.mjs packages/omo-codex/scripts/install-delegated-command.test.mjs packages/omo-codex/scripts/install-config-autonomous-features.test.mjs packages/omo-codex/scripts/install-config-autonomous.test.mjs packages/omo-codex/scripts/install-config-reasoning.test.mjs packages/omo-codex/scripts/install-config.test.mjs packages/omo-codex/scripts/install-hook-targets.test.mjs packages/omo-codex/scripts/install-project-local-cleanup.test.mjs packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs packages/omo-codex/scripts/install-local-entrypoint.test.mjs packages/omo-codex/scripts/install-local-git-bash-preflight.test.mjs packages/omo-codex/scripts/install-local.test.mjs packages/omo-codex/scripts/install-marketplace-cache.test.mjs packages/omo-codex/scripts/install-mcp-context7-runtime.test.mjs packages/omo-codex/scripts/install-mcp-runtime.test.mjs packages/omo-codex/scripts/install-packaged-local.test.mjs packages/omo-codex/scripts/install-generated-bundle.test.mjs packages/omo-codex/scripts/install-agent-links.test.mjs packages/omo-codex/scripts/install-bin-links.test.mjs",
2278
2279
  "test:senpi": "node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check && bun test packages/omo-senpi",
2279
2280
  "test:windows-codex": "bun run test:codex",
2280
2281
  "build:git-bash-mcp": "bun run --cwd packages/git-bash-mcp build"
@@ -2356,18 +2357,18 @@ var init_package = __esm(() => {
2356
2357
  typescript: "^6.0.3"
2357
2358
  },
2358
2359
  optionalDependencies: {
2359
- "oh-my-opencode-darwin-arm64": "4.16.3",
2360
- "oh-my-opencode-darwin-x64": "4.16.3",
2361
- "oh-my-opencode-darwin-x64-baseline": "4.16.3",
2362
- "oh-my-opencode-linux-arm64": "4.16.3",
2363
- "oh-my-opencode-linux-arm64-musl": "4.16.3",
2364
- "oh-my-opencode-linux-x64": "4.16.3",
2365
- "oh-my-opencode-linux-x64-baseline": "4.16.3",
2366
- "oh-my-opencode-linux-x64-musl": "4.16.3",
2367
- "oh-my-opencode-linux-x64-musl-baseline": "4.16.3",
2368
- "oh-my-opencode-windows-arm64": "4.16.3",
2369
- "oh-my-opencode-windows-x64": "4.16.3",
2370
- "oh-my-opencode-windows-x64-baseline": "4.16.3"
2360
+ "oh-my-opencode-darwin-arm64": "4.17.0",
2361
+ "oh-my-opencode-darwin-x64": "4.17.0",
2362
+ "oh-my-opencode-darwin-x64-baseline": "4.17.0",
2363
+ "oh-my-opencode-linux-arm64": "4.17.0",
2364
+ "oh-my-opencode-linux-arm64-musl": "4.17.0",
2365
+ "oh-my-opencode-linux-x64": "4.17.0",
2366
+ "oh-my-opencode-linux-x64-baseline": "4.17.0",
2367
+ "oh-my-opencode-linux-x64-musl": "4.17.0",
2368
+ "oh-my-opencode-linux-x64-musl-baseline": "4.17.0",
2369
+ "oh-my-opencode-windows-arm64": "4.17.0",
2370
+ "oh-my-opencode-windows-x64": "4.17.0",
2371
+ "oh-my-opencode-windows-x64-baseline": "4.17.0"
2371
2372
  },
2372
2373
  overrides: {
2373
2374
  "@earendil-works/pi-agent-core": "0.80.3",
@@ -9430,6 +9431,11 @@ var init_category_model_requirements = __esm(() => {
9430
9431
  },
9431
9432
  deep: {
9432
9433
  fallbackChain: [
9434
+ {
9435
+ providers: ["openai", "vercel"],
9436
+ model: "gpt-5.6-terra",
9437
+ variant: "xhigh"
9438
+ },
9433
9439
  {
9434
9440
  providers: ["openai", "vercel"],
9435
9441
  model: "gpt-5.6-sol",
@@ -9493,6 +9499,11 @@ var init_category_model_requirements = __esm(() => {
9493
9499
  },
9494
9500
  "unspecified-low": {
9495
9501
  fallbackChain: [
9502
+ {
9503
+ providers: ["openai", "vercel"],
9504
+ model: "gpt-5.6-luna",
9505
+ variant: "xhigh"
9506
+ },
9496
9507
  {
9497
9508
  providers: ["anthropic", "github-copilot", "opencode", "vercel"],
9498
9509
  model: "claude-sonnet-4-6"
@@ -10080,6 +10091,38 @@ var init_supplemental_entries = __esm(() => {
10080
10091
  output: 128000
10081
10092
  }
10082
10093
  },
10094
+ "gpt-5.6-terra": {
10095
+ id: "gpt-5.6-terra",
10096
+ family: "gpt-mini",
10097
+ reasoning: true,
10098
+ temperature: false,
10099
+ toolCall: true,
10100
+ modalities: {
10101
+ input: ["text", "image", "pdf"],
10102
+ output: ["text"]
10103
+ },
10104
+ limit: {
10105
+ context: 1050000,
10106
+ input: 922000,
10107
+ output: 128000
10108
+ }
10109
+ },
10110
+ "gpt-5.6-luna": {
10111
+ id: "gpt-5.6-luna",
10112
+ family: "gpt-nano",
10113
+ reasoning: true,
10114
+ temperature: false,
10115
+ toolCall: true,
10116
+ modalities: {
10117
+ input: ["text", "image", "pdf"],
10118
+ output: ["text"]
10119
+ },
10120
+ limit: {
10121
+ context: 1050000,
10122
+ input: 922000,
10123
+ output: 128000
10124
+ }
10125
+ },
10083
10126
  "gpt-5.5": {
10084
10127
  id: "gpt-5.5",
10085
10128
  family: "gpt",
@@ -10686,28 +10729,7 @@ var init_agent_display_names = __esm(() => {
10686
10729
  };
10687
10730
  });
10688
10731
  // packages/omo-opencode/src/tools/delegate-task/anthropic-categories.ts
10689
- var UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = `<Category_Context>
10690
- You are working on tasks that don't fit specific categories but require moderate effort.
10691
-
10692
- <Selection_Gate>
10693
- BEFORE selecting this category, VERIFY ALL conditions:
10694
- 1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)
10695
- 2. Task requires more than trivial effort but is NOT system-wide
10696
- 3. Scope is contained within a few files/modules
10697
-
10698
- If task fits ANY other category, DO NOT select unspecified-low.
10699
- This is NOT a default choice - it's for genuinely unclassifiable moderate-effort work.
10700
- </Selection_Gate>
10701
- </Category_Context>
10702
-
10703
- <Caller_Warning>
10704
- THIS CATEGORY USES A MID-TIER MODEL (claude-sonnet-4-6).
10705
-
10706
- **PROVIDE CLEAR STRUCTURE:**
10707
- 1. MUST DO: Enumerate required actions explicitly
10708
- 2. MUST NOT DO: State forbidden actions to prevent scope creep
10709
- 3. EXPECTED OUTPUT: Define concrete success criteria
10710
- </Caller_Warning>`, UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
10732
+ var UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
10711
10733
  You are working on tasks that don't fit specific categories but require substantial effort.
10712
10734
 
10713
10735
  <Selection_Gate>
@@ -10723,12 +10745,6 @@ If task is unclassifiable but moderate-effort, use unspecified-low instead.
10723
10745
  </Category_Context>`, ANTHROPIC_CATEGORIES;
10724
10746
  var init_anthropic_categories = __esm(() => {
10725
10747
  ANTHROPIC_CATEGORIES = [
10726
- {
10727
- name: "unspecified-low",
10728
- config: { model: "anthropic/claude-sonnet-4-6" },
10729
- description: "Tasks that don't fit other categories, low effort required",
10730
- promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
10731
- },
10732
10748
  {
10733
10749
  name: "unspecified-high",
10734
10750
  config: { model: "anthropic/claude-opus-4-7", variant: "max" },
@@ -11025,6 +11041,27 @@ EXPECTED OUTPUT:
11025
11041
  \`\`\`
11026
11042
 
11027
11043
  If your prompt lacks this structure, REWRITE IT before delegating.
11044
+ </Caller_Warning>`, UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = `<Category_Context>
11045
+ You are working on tasks that don't fit specific categories but require moderate effort.
11046
+
11047
+ <Selection_Gate>
11048
+ BEFORE selecting this category, VERIFY ALL conditions:
11049
+ 1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)
11050
+ 2. Task requires more than trivial effort but is NOT system-wide
11051
+ 3. Scope is contained within a few files/modules
11052
+
11053
+ If task fits ANY other category, DO NOT select unspecified-low.
11054
+ This is NOT a default choice - it's for genuinely unclassifiable moderate-effort work.
11055
+ </Selection_Gate>
11056
+ </Category_Context>
11057
+
11058
+ <Caller_Warning>
11059
+ THIS CATEGORY USES A LIGHTWEIGHT MODEL (gpt-5.6-luna).
11060
+
11061
+ **PROVIDE CLEAR STRUCTURE:**
11062
+ 1. MUST DO: Enumerate required actions explicitly
11063
+ 2. MUST NOT DO: State forbidden actions to prevent scope creep
11064
+ 3. EXPECTED OUTPUT: Define concrete success criteria
11028
11065
  </Caller_Warning>`, OPENAI_CATEGORIES;
11029
11066
  var init_openai_categories = __esm(() => {
11030
11067
  init_types();
@@ -11037,7 +11074,7 @@ var init_openai_categories = __esm(() => {
11037
11074
  },
11038
11075
  {
11039
11076
  name: "deep",
11040
- config: { model: "openai/gpt-5.6-sol", variant: "high" },
11077
+ config: { model: "openai/gpt-5.6-terra", variant: "xhigh" },
11041
11078
  description: "Goal-oriented autonomous problem-solving on hairy problems requiring deep research. ONE goal + ONE deliverable per call — multiple goals must fan out as parallel `deep` calls, never bundled into one.",
11042
11079
  promptAppend: DEEP_CATEGORY_PROMPT_APPEND,
11043
11080
  resolvePromptAppend: resolveDeepCategoryPromptAppend
@@ -11047,6 +11084,12 @@ var init_openai_categories = __esm(() => {
11047
11084
  config: { model: "openai/gpt-5.4-mini" },
11048
11085
  description: "Trivial tasks - single file changes, typo fixes, simple modifications",
11049
11086
  promptAppend: QUICK_CATEGORY_PROMPT_APPEND
11087
+ },
11088
+ {
11089
+ name: "unspecified-low",
11090
+ config: { model: "openai/gpt-5.6-luna", variant: "xhigh" },
11091
+ description: "Tasks that don't fit other categories, low effort required",
11092
+ promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
11050
11093
  }
11051
11094
  ];
11052
11095
  });
@@ -72609,7 +72652,7 @@ var package_default2;
72609
72652
  var init_package2 = __esm(() => {
72610
72653
  package_default2 = {
72611
72654
  name: "@oh-my-opencode/omo-codex",
72612
- version: "4.16.2",
72655
+ version: "4.16.3",
72613
72656
  type: "module",
72614
72657
  private: true,
72615
72658
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -75426,7 +75469,12 @@ function shouldCopyPluginPath(path7, root) {
75426
75469
  if (relative5 === "")
75427
75470
  return true;
75428
75471
  const parts = relative5.split(sep5);
75429
- return !parts.some((part) => part === ".git" || part === "node_modules");
75472
+ if (parts.some((part) => part === ".git" || part === "node_modules"))
75473
+ return false;
75474
+ return !isNestedComponentMcpManifest(parts);
75475
+ }
75476
+ function isNestedComponentMcpManifest(parts) {
75477
+ return parts.length > 1 && parts.at(-1) === ".mcp.json";
75430
75478
  }
75431
75479
  var removedSparkshellReferencePattern = /\b(?:sparkshell|spark[-_\s]+shell)\b/i;
75432
75480
  var removedSparkshellPromptSurfaceDirs = new Set([".codex-plugin", "agents", "bundled-rules", "hooks", "skills"]);
@@ -75953,6 +76001,9 @@ function stripTomlLineComment(line) {
75953
76001
  var LEGACY_MANAGED_CODEX_AGENT_NAMES_TO_PURGE = ["codex-ultrawork-reviewer"];
75954
76002
  var CURRENT_MANAGED_CODEX_AGENT_NAMES = [
75955
76003
  "explorer",
76004
+ "lazycodex-worker-high",
76005
+ "lazycodex-worker-low",
76006
+ "lazycodex-worker-medium",
75956
76007
  "librarian",
75957
76008
  "metis",
75958
76009
  "momus",
@@ -76370,12 +76421,18 @@ import { readFile as readFile10 } from "node:fs/promises";
76370
76421
  import { join as join38 } from "node:path";
76371
76422
  var FALLBACK_CODEX_MODEL_CATALOG = {
76372
76423
  current: {
76373
- model: "gpt-5.5",
76374
- modelContextWindow: 400000,
76424
+ model: "gpt-5.6-sol",
76425
+ modelContextWindow: 372000,
76375
76426
  modelReasoningEffort: "high",
76376
76427
  planModeReasoningEffort: "xhigh"
76377
76428
  },
76378
76429
  managedProfiles: [
76430
+ {
76431
+ model: "gpt-5.5",
76432
+ modelContextWindow: 400000,
76433
+ modelReasoningEffort: "high",
76434
+ planModeReasoningEffort: "xhigh"
76435
+ },
76379
76436
  {
76380
76437
  model: "gpt-5.5",
76381
76438
  modelContextWindow: 1e6,
@@ -76819,32 +76876,88 @@ import { join as join41 } from "node:path";
76819
76876
  var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
76820
76877
  [
76821
76878
  "explorer",
76822
- {
76823
- previous: { model: "gpt-5.4-mini", effort: "low" },
76824
- current: { model: "gpt-5.6-terra", effort: "medium" }
76825
- }
76879
+ [
76880
+ {
76881
+ previous: { model: "gpt-5.4-mini", effort: "low" },
76882
+ current: { model: "gpt-5.6-terra", effort: "medium" }
76883
+ },
76884
+ {
76885
+ previous: { model: "gpt-5.6-terra", effort: "medium" },
76886
+ current: { model: "gpt-5.6-luna", effort: "low" }
76887
+ }
76888
+ ]
76826
76889
  ],
76827
76890
  [
76828
76891
  "librarian",
76829
- {
76830
- previous: { model: "gpt-5.4-mini", effort: "low" },
76831
- current: { model: "gpt-5.6-terra", effort: "medium" }
76832
- }
76892
+ [
76893
+ {
76894
+ previous: { model: "gpt-5.4-mini", effort: "low" },
76895
+ current: { model: "gpt-5.6-terra", effort: "medium" }
76896
+ },
76897
+ {
76898
+ previous: { model: "gpt-5.6-terra", effort: "medium" },
76899
+ current: { model: "gpt-5.6-luna", effort: "low" }
76900
+ }
76901
+ ]
76833
76902
  ],
76834
76903
  [
76835
76904
  "momus",
76836
- {
76837
- previous: { model: "gpt-5.5", effort: "xhigh" },
76838
- current: { model: "gpt-5.6-sol", effort: "ultra" }
76839
- }
76905
+ [
76906
+ {
76907
+ previous: { model: "gpt-5.5", effort: "xhigh" },
76908
+ current: { model: "gpt-5.6-sol", effort: "ultra" }
76909
+ }
76910
+ ]
76911
+ ],
76912
+ [
76913
+ "plan",
76914
+ [
76915
+ {
76916
+ previous: { model: "gpt-5.6-sol", effort: "xhigh" },
76917
+ current: { model: "gpt-5.6-sol", effort: "max" }
76918
+ }
76919
+ ]
76920
+ ],
76921
+ [
76922
+ "lazycodex-worker-medium",
76923
+ [
76924
+ {
76925
+ previous: { model: "gpt-5.6-sol", effort: "high" },
76926
+ current: { model: "gpt-5.6-luna", effort: "max" }
76927
+ }
76928
+ ]
76929
+ ],
76930
+ [
76931
+ "lazycodex-qa-executor",
76932
+ [
76933
+ {
76934
+ previous: { model: "gpt-5.6-terra", effort: "medium" },
76935
+ current: { model: "gpt-5.6-luna", effort: "high" }
76936
+ }
76937
+ ]
76938
+ ],
76939
+ [
76940
+ "lazycodex-gate-reviewer",
76941
+ [
76942
+ {
76943
+ previous: { model: "gpt-5.6-sol", effort: "xhigh" },
76944
+ current: { model: "gpt-5.6-sol", effort: "high" }
76945
+ }
76946
+ ]
76840
76947
  ]
76841
76948
  ]);
76842
76949
  function resolveManagedAgentReasoning(input) {
76843
- const upgrade = MANAGED_REASONING_DEFAULT_UPGRADES.get(input.agentName);
76844
- if (upgrade !== undefined && input.preserved.model === upgrade.previous.model && input.preserved.effort === upgrade.previous.effort && input.bundledModel === upgrade.current.model && input.bundledEffort === upgrade.current.effort) {
76845
- return upgrade.current.effort;
76950
+ const steps = MANAGED_REASONING_DEFAULT_UPGRADES.get(input.agentName);
76951
+ if (steps === undefined)
76952
+ return input.preserved.effort;
76953
+ const latest = steps[steps.length - 1];
76954
+ if (latest === undefined)
76955
+ return input.preserved.effort;
76956
+ if (input.bundledModel !== latest.current.model || input.bundledEffort !== latest.current.effort) {
76957
+ return input.preserved.effort;
76846
76958
  }
76847
- return input.preserved.effort;
76959
+ const preservedMatchesAnyStep = steps.some((step) => input.preserved.model === step.previous.model && input.preserved.effort === step.previous.effort);
76960
+ return preservedMatchesAnyStep ? latest.current.effort : input.preserved.effort;
76848
76961
  }
76849
76962
 
76850
76963
  // packages/omo-codex/src/install/preserved-agent-settings.ts
@@ -78234,6 +78347,9 @@ var MANAGED_MARKETPLACES = ["sisyphuslabs", "lazycodex", "code-yeongyu-codex-plu
78234
78347
  var LEGACY_MANAGED_CODEX_AGENT_NAMES_TO_PURGE2 = ["codex-ultrawork-reviewer"];
78235
78348
  var CURRENT_MANAGED_CODEX_AGENT_NAMES2 = [
78236
78349
  "explorer",
78350
+ "lazycodex-worker-high",
78351
+ "lazycodex-worker-low",
78352
+ "lazycodex-worker-medium",
78237
78353
  "librarian",
78238
78354
  "metis",
78239
78355
  "momus",
@@ -7,9 +7,9 @@ export type LaunchConcurrencySnapshot = {
7
7
  export type LaunchConcurrencyProbe = {
8
8
  readonly launch: (input: LaunchInput) => Promise<BackgroundTask>;
9
9
  readonly release: () => void;
10
- readonly releaseAndWaitForCompletion: <T>(promise: Promise<T>, message: string, timeoutMs?: number) => Promise<T>;
10
+ readonly releaseAndWaitForCompletion: <T>(promise: Promise<T>) => Promise<T>;
11
11
  readonly snapshot: () => LaunchConcurrencySnapshot;
12
- readonly waitForFirstBatch: (message: string, timeoutMs?: number) => Promise<LaunchConcurrencySnapshot>;
12
+ readonly waitForFirstBatch: () => Promise<LaunchConcurrencySnapshot>;
13
13
  };
14
14
  export type LaunchConcurrencyProbeOptions = {
15
15
  readonly launchLimit: number;