oh-my-codex 0.14.4 → 0.15.1
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/plugins/marketplace.json +20 -0
- package/Cargo.lock +6 -6
- package/Cargo.toml +2 -1
- package/README.md +40 -7
- package/crates/omx-explore/Cargo.toml +1 -0
- package/crates/omx-explore/src/main.rs +246 -24
- package/crates/omx-mux/Cargo.toml +1 -0
- package/crates/omx-runtime/Cargo.toml +1 -0
- package/crates/omx-runtime-core/Cargo.toml +1 -0
- package/crates/omx-runtime-core/src/dispatch.rs +2 -1
- package/crates/omx-runtime-core/src/engine.rs +2 -2
- package/crates/omx-runtime-core/src/mailbox.rs +2 -1
- package/crates/omx-sparkshell/Cargo.toml +1 -0
- package/crates/omx-sparkshell/src/codex_bridge.rs +1 -0
- package/crates/omx-sparkshell/src/prompt.rs +1 -0
- package/crates/omx-sparkshell/src/threshold.rs +1 -0
- package/dist/agents/__tests__/native-config.test.js +98 -4
- package/dist/agents/__tests__/native-config.test.js.map +1 -1
- package/dist/agents/native-config.d.ts +4 -0
- package/dist/agents/native-config.d.ts.map +1 -1
- package/dist/agents/native-config.js +19 -3
- package/dist/agents/native-config.js.map +1 -1
- package/dist/agents/policy.d.ts +10 -0
- package/dist/agents/policy.d.ts.map +1 -0
- package/dist/agents/policy.js +61 -0
- package/dist/agents/policy.js.map +1 -0
- package/dist/catalog/__tests__/generator.test.js +2 -0
- package/dist/catalog/__tests__/generator.test.js.map +1 -1
- package/dist/catalog/__tests__/plugin-bundle-ssot.test.d.ts +2 -0
- package/dist/catalog/__tests__/plugin-bundle-ssot.test.d.ts.map +1 -0
- package/dist/catalog/__tests__/plugin-bundle-ssot.test.js +72 -0
- package/dist/catalog/__tests__/plugin-bundle-ssot.test.js.map +1 -0
- package/dist/catalog/installable.d.ts +5 -0
- package/dist/catalog/installable.d.ts.map +1 -0
- package/dist/catalog/installable.js +13 -0
- package/dist/catalog/installable.js.map +1 -0
- package/dist/catalog/skill-mirror.d.ts +20 -0
- package/dist/catalog/skill-mirror.d.ts.map +1 -0
- package/dist/catalog/skill-mirror.js +104 -0
- package/dist/catalog/skill-mirror.js.map +1 -0
- package/dist/cli/__tests__/ask.test.js +4 -1
- package/dist/cli/__tests__/ask.test.js.map +1 -1
- package/dist/cli/__tests__/codex-plugin-layout.test.d.ts +2 -0
- package/dist/cli/__tests__/codex-plugin-layout.test.d.ts.map +1 -0
- package/dist/cli/__tests__/codex-plugin-layout.test.js +210 -0
- package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -0
- package/dist/cli/__tests__/doctor-team.test.js +46 -1
- package/dist/cli/__tests__/doctor-team.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-warning-copy.test.js +225 -111
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/exec.test.js +96 -1
- package/dist/cli/__tests__/exec.test.js.map +1 -1
- package/dist/cli/__tests__/explore.test.js +26 -9
- package/dist/cli/__tests__/explore.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +301 -7
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js +358 -4
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/__tests__/list.test.d.ts +2 -0
- package/dist/cli/__tests__/list.test.d.ts.map +1 -0
- package/dist/cli/__tests__/list.test.js +38 -0
- package/dist/cli/__tests__/list.test.js.map +1 -0
- package/dist/cli/__tests__/mcp-parity.test.js +86 -0
- package/dist/cli/__tests__/mcp-parity.test.js.map +1 -1
- package/dist/cli/__tests__/mcp-serve.test.d.ts +2 -0
- package/dist/cli/__tests__/mcp-serve.test.d.ts.map +1 -0
- package/dist/cli/__tests__/mcp-serve.test.js +38 -0
- package/dist/cli/__tests__/mcp-serve.test.js.map +1 -0
- package/dist/cli/__tests__/nested-help-routing.test.js +1 -0
- package/dist/cli/__tests__/nested-help-routing.test.js.map +1 -1
- package/dist/cli/__tests__/package-bin-contract.test.js +58 -3
- package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
- package/dist/cli/__tests__/question.test.js +209 -5
- package/dist/cli/__tests__/question.test.js.map +1 -1
- package/dist/cli/__tests__/setup-agents-overwrite.test.js +146 -3
- package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/setup-install-mode.test.d.ts +2 -0
- package/dist/cli/__tests__/setup-install-mode.test.d.ts.map +1 -0
- package/dist/cli/__tests__/setup-install-mode.test.js +873 -0
- package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -0
- package/dist/cli/__tests__/setup-prompts-overwrite.test.js +83 -22
- package/dist/cli/__tests__/setup-prompts-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/setup-refresh.test.js +120 -2
- package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
- package/dist/cli/__tests__/setup-skills-overwrite.test.js +32 -13
- package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/sidecar.test.d.ts +2 -0
- package/dist/cli/__tests__/sidecar.test.d.ts.map +1 -0
- package/dist/cli/__tests__/sidecar.test.js +24 -0
- package/dist/cli/__tests__/sidecar.test.js.map +1 -0
- package/dist/cli/__tests__/team.test.js +90 -42
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/__tests__/version-sync-contract.test.js +11 -0
- package/dist/cli/__tests__/version-sync-contract.test.js.map +1 -1
- package/dist/cli/codex-home.d.ts +4 -5
- package/dist/cli/codex-home.d.ts.map +1 -1
- package/dist/cli/codex-home.js +9 -37
- package/dist/cli/codex-home.js.map +1 -1
- package/dist/cli/doctor.d.ts +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +509 -278
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +13 -5
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +351 -60
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/list.d.ts +2 -0
- package/dist/cli/list.d.ts.map +1 -0
- package/dist/cli/list.js +40 -0
- package/dist/cli/list.js.map +1 -0
- package/dist/cli/mcp-serve.d.ts +12 -0
- package/dist/cli/mcp-serve.d.ts.map +1 -0
- package/dist/cli/mcp-serve.js +63 -0
- package/dist/cli/mcp-serve.js.map +1 -0
- package/dist/cli/plugin-marketplace.d.ts +13 -0
- package/dist/cli/plugin-marketplace.d.ts.map +1 -0
- package/dist/cli/plugin-marketplace.js +77 -0
- package/dist/cli/plugin-marketplace.js.map +1 -0
- package/dist/cli/question.d.ts.map +1 -1
- package/dist/cli/question.js +27 -2
- package/dist/cli/question.js.map +1 -1
- package/dist/cli/setup-preferences.d.ts +20 -0
- package/dist/cli/setup-preferences.d.ts.map +1 -0
- package/dist/cli/setup-preferences.js +71 -0
- package/dist/cli/setup-preferences.js.map +1 -0
- package/dist/cli/setup.d.ts +12 -3
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +1080 -254
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/team.d.ts +1 -0
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +22 -3
- package/dist/cli/team.js.map +1 -1
- package/dist/cli/uninstall.d.ts.map +1 -1
- package/dist/cli/uninstall.js +2 -8
- package/dist/cli/uninstall.js.map +1 -1
- package/dist/config/__tests__/generator-idempotent.test.js +100 -3
- package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
- package/dist/config/__tests__/generator-notify.test.js +6 -5
- package/dist/config/__tests__/generator-notify.test.js.map +1 -1
- package/dist/config/__tests__/generator-status-line-presets.test.d.ts +2 -0
- package/dist/config/__tests__/generator-status-line-presets.test.d.ts.map +1 -0
- package/dist/config/__tests__/generator-status-line-presets.test.js +203 -0
- package/dist/config/__tests__/generator-status-line-presets.test.js.map +1 -0
- package/dist/config/__tests__/models.test.js +35 -2
- package/dist/config/__tests__/models.test.js.map +1 -1
- package/dist/config/codex-hooks.d.ts.map +1 -1
- package/dist/config/codex-hooks.js +2 -7
- package/dist/config/codex-hooks.js.map +1 -1
- package/dist/config/generator.d.ts +10 -0
- package/dist/config/generator.d.ts.map +1 -1
- package/dist/config/generator.js +259 -76
- package/dist/config/generator.js.map +1 -1
- package/dist/config/models.d.ts +13 -3
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +25 -5
- package/dist/config/models.js.map +1 -1
- package/dist/config/omx-first-party-mcp.d.ts +18 -0
- package/dist/config/omx-first-party-mcp.d.ts.map +1 -0
- package/dist/config/omx-first-party-mcp.js +76 -0
- package/dist/config/omx-first-party-mcp.js.map +1 -0
- package/dist/document-refresh/__tests__/enforcer.test.d.ts +2 -0
- package/dist/document-refresh/__tests__/enforcer.test.d.ts.map +1 -0
- package/dist/document-refresh/__tests__/enforcer.test.js +128 -0
- package/dist/document-refresh/__tests__/enforcer.test.js.map +1 -0
- package/dist/document-refresh/config.d.ts +9 -0
- package/dist/document-refresh/config.d.ts.map +1 -0
- package/dist/document-refresh/config.js +70 -0
- package/dist/document-refresh/config.js.map +1 -0
- package/dist/document-refresh/enforcer.d.ts +43 -0
- package/dist/document-refresh/enforcer.d.ts.map +1 -0
- package/dist/document-refresh/enforcer.js +329 -0
- package/dist/document-refresh/enforcer.js.map +1 -0
- package/dist/exec/followup.d.ts +44 -0
- package/dist/exec/followup.d.ts.map +1 -0
- package/dist/exec/followup.js +349 -0
- package/dist/exec/followup.js.map +1 -0
- package/dist/hooks/__tests__/codebase-map.test.js +63 -1
- package/dist/hooks/__tests__/codebase-map.test.js.map +1 -1
- package/dist/hooks/__tests__/deep-interview-contract.test.js +10 -7
- package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/keyword-detector.test.js +89 -0
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js +84 -1
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +23 -2
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +43 -0
- package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js +17 -0
- package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js +53 -0
- package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-regression-205.test.js +4 -4
- package/dist/hooks/__tests__/notify-hook-regression-205.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +103 -0
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js +27 -13
- package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.d.ts +2 -0
- package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.js +35 -0
- package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.js.map +1 -0
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +70 -3
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/pre-context-gate-skills.test.js +5 -0
- package/dist/hooks/__tests__/pre-context-gate-skills.test.js.map +1 -1
- package/dist/hooks/__tests__/prompt-guidance-fragments.test.js +3 -2
- package/dist/hooks/__tests__/prompt-guidance-fragments.test.js.map +1 -1
- package/dist/hooks/__tests__/prompt-refactor-contract.test.d.ts +2 -0
- package/dist/hooks/__tests__/prompt-refactor-contract.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/prompt-refactor-contract.test.js +22 -0
- package/dist/hooks/__tests__/prompt-refactor-contract.test.js.map +1 -0
- package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.d.ts +2 -0
- package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.js +28 -0
- package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.js.map +1 -0
- package/dist/hooks/__tests__/triage-heuristic.test.js +59 -4
- package/dist/hooks/__tests__/triage-heuristic.test.js.map +1 -1
- package/dist/hooks/__tests__/visual-ralph-skill.test.d.ts +2 -0
- package/dist/hooks/__tests__/visual-ralph-skill.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/visual-ralph-skill.test.js +44 -0
- package/dist/hooks/__tests__/visual-ralph-skill.test.js.map +1 -0
- package/dist/hooks/codebase-map.d.ts.map +1 -1
- package/dist/hooks/codebase-map.js +83 -6
- package/dist/hooks/codebase-map.js.map +1 -1
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +19 -14
- package/dist/hooks/keyword-detector.js.map +1 -1
- package/dist/hooks/prompt-guidance-contract.d.ts +6 -0
- package/dist/hooks/prompt-guidance-contract.d.ts.map +1 -1
- package/dist/hooks/prompt-guidance-contract.js +89 -0
- package/dist/hooks/prompt-guidance-contract.js.map +1 -1
- package/dist/hooks/session.d.ts +2 -0
- package/dist/hooks/session.d.ts.map +1 -1
- package/dist/hooks/session.js +6 -0
- package/dist/hooks/session.js.map +1 -1
- package/dist/hooks/triage-heuristic.d.ts +2 -2
- package/dist/hooks/triage-heuristic.d.ts.map +1 -1
- package/dist/hooks/triage-heuristic.js +97 -20
- package/dist/hooks/triage-heuristic.js.map +1 -1
- package/dist/hooks/triage-state.d.ts +1 -1
- package/dist/hooks/triage-state.d.ts.map +1 -1
- package/dist/hooks/triage-state.js +2 -1
- package/dist/hooks/triage-state.js.map +1 -1
- package/dist/hud/__tests__/index.test.js +4 -4
- package/dist/hud/__tests__/index.test.js.map +1 -1
- package/dist/hud/__tests__/state.test.js +4 -0
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/__tests__/types.test.js +27 -0
- package/dist/hud/__tests__/types.test.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +8 -0
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/types.d.ts +9 -0
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js +3 -0
- package/dist/hud/types.js.map +1 -1
- package/dist/mcp/__tests__/bootstrap.test.js +45 -5
- package/dist/mcp/__tests__/bootstrap.test.js.map +1 -1
- package/dist/mcp/__tests__/server-lifecycle.test.js +50 -7
- package/dist/mcp/__tests__/server-lifecycle.test.js.map +1 -1
- package/dist/mcp/__tests__/state-server.test.js +67 -9
- package/dist/mcp/__tests__/state-server.test.js.map +1 -1
- package/dist/mcp/bootstrap.d.ts +12 -1
- package/dist/mcp/bootstrap.d.ts.map +1 -1
- package/dist/mcp/bootstrap.js +87 -29
- package/dist/mcp/bootstrap.js.map +1 -1
- package/dist/mcp/state-server.d.ts +5 -11
- package/dist/mcp/state-server.d.ts.map +1 -1
- package/dist/mcp/state-server.js +16 -432
- package/dist/mcp/state-server.js.map +1 -1
- package/dist/planning/__tests__/artifacts.test.js +152 -1
- package/dist/planning/__tests__/artifacts.test.js.map +1 -1
- package/dist/planning/artifacts.d.ts +9 -0
- package/dist/planning/artifacts.d.ts.map +1 -1
- package/dist/planning/artifacts.js +60 -1
- package/dist/planning/artifacts.js.map +1 -1
- package/dist/question/__tests__/deep-interview.test.js +1 -1
- package/dist/question/__tests__/deep-interview.test.js.map +1 -1
- package/dist/question/__tests__/renderer.test.js +70 -0
- package/dist/question/__tests__/renderer.test.js.map +1 -1
- package/dist/question/__tests__/ui.test.js +49 -0
- package/dist/question/__tests__/ui.test.js.map +1 -1
- package/dist/question/renderer.d.ts +14 -1
- package/dist/question/renderer.d.ts.map +1 -1
- package/dist/question/renderer.js +109 -10
- package/dist/question/renderer.js.map +1 -1
- package/dist/question/state.d.ts +2 -0
- package/dist/question/state.d.ts.map +1 -1
- package/dist/question/state.js +4 -0
- package/dist/question/state.js.map +1 -1
- package/dist/question/types.d.ts +2 -1
- package/dist/question/types.d.ts.map +1 -1
- package/dist/question/types.js.map +1 -1
- package/dist/question/ui.d.ts.map +1 -1
- package/dist/question/ui.js +28 -8
- package/dist/question/ui.js.map +1 -1
- package/dist/runtime/__tests__/bridge.test.js +143 -1
- package/dist/runtime/__tests__/bridge.test.js.map +1 -1
- package/dist/runtime/bridge.d.ts +21 -0
- package/dist/runtime/bridge.d.ts.map +1 -1
- package/dist/runtime/bridge.js +54 -4
- package/dist/runtime/bridge.js.map +1 -1
- package/dist/scripts/__tests__/codex-native-hook.test.js +1904 -230
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/__tests__/generate-release-body.test.js +90 -1
- package/dist/scripts/__tests__/generate-release-body.test.js.map +1 -1
- package/dist/scripts/__tests__/hook-derived-watcher.test.js +110 -2
- package/dist/scripts/__tests__/hook-derived-watcher.test.js.map +1 -1
- package/dist/scripts/__tests__/postinstall.test.js +7 -93
- package/dist/scripts/__tests__/postinstall.test.js.map +1 -1
- package/dist/scripts/__tests__/prompt-inventory.test.d.ts +2 -0
- package/dist/scripts/__tests__/prompt-inventory.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/prompt-inventory.test.js +56 -0
- package/dist/scripts/__tests__/prompt-inventory.test.js.map +1 -0
- package/dist/scripts/__tests__/run-test-files.test.d.ts +2 -0
- package/dist/scripts/__tests__/run-test-files.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/run-test-files.test.js +62 -0
- package/dist/scripts/__tests__/run-test-files.test.js.map +1 -0
- package/dist/scripts/__tests__/smoke-packed-install.test.js +13 -1
- package/dist/scripts/__tests__/smoke-packed-install.test.js.map +1 -1
- package/dist/scripts/__tests__/verify-native-agents.test.d.ts +2 -0
- package/dist/scripts/__tests__/verify-native-agents.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/verify-native-agents.test.js +166 -0
- package/dist/scripts/__tests__/verify-native-agents.test.js.map +1 -0
- package/dist/scripts/codex-execution-surface.d.ts +16 -0
- package/dist/scripts/codex-execution-surface.d.ts.map +1 -0
- package/dist/scripts/codex-execution-surface.js +42 -0
- package/dist/scripts/codex-execution-surface.js.map +1 -0
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +418 -76
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/scripts/codex-native-pre-post.d.ts +8 -0
- package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
- package/dist/scripts/codex-native-pre-post.js +133 -19
- package/dist/scripts/codex-native-pre-post.js.map +1 -1
- package/dist/scripts/generate-release-body.d.ts +1 -0
- package/dist/scripts/generate-release-body.d.ts.map +1 -1
- package/dist/scripts/generate-release-body.js +32 -3
- package/dist/scripts/generate-release-body.js.map +1 -1
- package/dist/scripts/hook-derived-watcher.js +46 -7
- package/dist/scripts/hook-derived-watcher.js.map +1 -1
- package/dist/scripts/notify-fallback-watcher.js +59 -9
- package/dist/scripts/notify-fallback-watcher.js.map +1 -1
- package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.d.ts +2 -0
- package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.d.ts.map +1 -0
- package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.js +153 -0
- package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.js.map +1 -0
- package/dist/scripts/notify-hook/managed-tmux.d.ts.map +1 -1
- package/dist/scripts/notify-hook/managed-tmux.js +18 -1
- package/dist/scripts/notify-hook/managed-tmux.js.map +1 -1
- package/dist/scripts/notify-hook/process-runner.d.ts.map +1 -1
- package/dist/scripts/notify-hook/process-runner.js +7 -3
- package/dist/scripts/notify-hook/process-runner.js.map +1 -1
- package/dist/scripts/notify-hook/team-dispatch.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-dispatch.js +96 -11
- package/dist/scripts/notify-hook/team-dispatch.js.map +1 -1
- package/dist/scripts/notify-hook/team-tmux-guard.js +3 -3
- package/dist/scripts/notify-hook/team-worker-posttooluse.d.ts +34 -0
- package/dist/scripts/notify-hook/team-worker-posttooluse.d.ts.map +1 -0
- package/dist/scripts/notify-hook/team-worker-posttooluse.js +434 -0
- package/dist/scripts/notify-hook/team-worker-posttooluse.js.map +1 -0
- package/dist/scripts/notify-hook/team-worker.d.ts +1 -1
- package/dist/scripts/notify-hook/team-worker.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-worker.js +3 -43
- package/dist/scripts/notify-hook/team-worker.js.map +1 -1
- package/dist/scripts/notify-hook.js +36 -5
- package/dist/scripts/notify-hook.js.map +1 -1
- package/dist/scripts/postinstall.d.ts +1 -5
- package/dist/scripts/postinstall.d.ts.map +1 -1
- package/dist/scripts/postinstall.js +3 -42
- package/dist/scripts/postinstall.js.map +1 -1
- package/dist/scripts/prompt-inventory.d.ts +29 -0
- package/dist/scripts/prompt-inventory.d.ts.map +1 -0
- package/dist/scripts/prompt-inventory.js +178 -0
- package/dist/scripts/prompt-inventory.js.map +1 -0
- package/dist/scripts/run-test-files.js +32 -2
- package/dist/scripts/run-test-files.js.map +1 -1
- package/dist/scripts/smoke-packed-install.d.ts +3 -0
- package/dist/scripts/smoke-packed-install.d.ts.map +1 -1
- package/dist/scripts/smoke-packed-install.js +9 -1
- package/dist/scripts/smoke-packed-install.js.map +1 -1
- package/dist/scripts/sync-plugin-mirror.d.ts +13 -0
- package/dist/scripts/sync-plugin-mirror.d.ts.map +1 -0
- package/dist/scripts/sync-plugin-mirror.js +242 -0
- package/dist/scripts/sync-plugin-mirror.js.map +1 -0
- package/dist/scripts/verify-native-agents.d.ts +16 -0
- package/dist/scripts/verify-native-agents.d.ts.map +1 -0
- package/dist/scripts/verify-native-agents.js +188 -0
- package/dist/scripts/verify-native-agents.js.map +1 -0
- package/dist/session-history/search.d.ts.map +1 -1
- package/dist/session-history/search.js +7 -2
- package/dist/session-history/search.js.map +1 -1
- package/dist/sidecar/__tests__/boundary.test.d.ts +2 -0
- package/dist/sidecar/__tests__/boundary.test.d.ts.map +1 -0
- package/dist/sidecar/__tests__/boundary.test.js +48 -0
- package/dist/sidecar/__tests__/boundary.test.js.map +1 -0
- package/dist/sidecar/__tests__/collector.test.d.ts +2 -0
- package/dist/sidecar/__tests__/collector.test.d.ts.map +1 -0
- package/dist/sidecar/__tests__/collector.test.js +162 -0
- package/dist/sidecar/__tests__/collector.test.js.map +1 -0
- package/dist/sidecar/__tests__/render.test.d.ts +2 -0
- package/dist/sidecar/__tests__/render.test.d.ts.map +1 -0
- package/dist/sidecar/__tests__/render.test.js +67 -0
- package/dist/sidecar/__tests__/render.test.js.map +1 -0
- package/dist/sidecar/__tests__/tmux.test.d.ts +2 -0
- package/dist/sidecar/__tests__/tmux.test.d.ts.map +1 -0
- package/dist/sidecar/__tests__/tmux.test.js +30 -0
- package/dist/sidecar/__tests__/tmux.test.js.map +1 -0
- package/dist/sidecar/__tests__/watch.test.d.ts +2 -0
- package/dist/sidecar/__tests__/watch.test.d.ts.map +1 -0
- package/dist/sidecar/__tests__/watch.test.js +42 -0
- package/dist/sidecar/__tests__/watch.test.js.map +1 -0
- package/dist/sidecar/collector.d.ts +4 -0
- package/dist/sidecar/collector.d.ts.map +1 -0
- package/dist/sidecar/collector.js +377 -0
- package/dist/sidecar/collector.js.map +1 -0
- package/dist/sidecar/index.d.ts +25 -0
- package/dist/sidecar/index.d.ts.map +1 -0
- package/dist/sidecar/index.js +165 -0
- package/dist/sidecar/index.js.map +1 -0
- package/dist/sidecar/render.d.ts +3 -0
- package/dist/sidecar/render.d.ts.map +1 -0
- package/dist/sidecar/render.js +72 -0
- package/dist/sidecar/render.js.map +1 -0
- package/dist/sidecar/tmux.d.ts +13 -0
- package/dist/sidecar/tmux.d.ts.map +1 -0
- package/dist/sidecar/tmux.js +44 -0
- package/dist/sidecar/tmux.js.map +1 -0
- package/dist/sidecar/types.d.ts +125 -0
- package/dist/sidecar/types.d.ts.map +1 -0
- package/dist/sidecar/types.js +2 -0
- package/dist/sidecar/types.js.map +1 -0
- package/dist/state/__tests__/operations.test.js +50 -22
- package/dist/state/__tests__/operations.test.js.map +1 -1
- package/dist/state/operations.d.ts +1 -1
- package/dist/state/operations.d.ts.map +1 -1
- package/dist/state/operations.js +19 -7
- package/dist/state/operations.js.map +1 -1
- package/dist/team/__tests__/commit-hygiene.test.d.ts +2 -0
- package/dist/team/__tests__/commit-hygiene.test.d.ts.map +1 -0
- package/dist/team/__tests__/commit-hygiene.test.js +93 -0
- package/dist/team/__tests__/commit-hygiene.test.js.map +1 -0
- package/dist/team/__tests__/delegation-policy.test.d.ts +2 -0
- package/dist/team/__tests__/delegation-policy.test.d.ts.map +1 -0
- package/dist/team/__tests__/delegation-policy.test.js +69 -0
- package/dist/team/__tests__/delegation-policy.test.js.map +1 -0
- package/dist/team/__tests__/events.test.js +54 -4
- package/dist/team/__tests__/events.test.js.map +1 -1
- package/dist/team/__tests__/hook-primary-e2e-contract.test.d.ts +2 -0
- package/dist/team/__tests__/hook-primary-e2e-contract.test.d.ts.map +1 -0
- package/dist/team/__tests__/hook-primary-e2e-contract.test.js +78 -0
- package/dist/team/__tests__/hook-primary-e2e-contract.test.js.map +1 -0
- package/dist/team/__tests__/model-contract.test.js +18 -2
- package/dist/team/__tests__/model-contract.test.js.map +1 -1
- package/dist/team/__tests__/repo-aware-decomposition.test.d.ts +2 -0
- package/dist/team/__tests__/repo-aware-decomposition.test.d.ts.map +1 -0
- package/dist/team/__tests__/repo-aware-decomposition.test.js +95 -0
- package/dist/team/__tests__/repo-aware-decomposition.test.js.map +1 -0
- package/dist/team/__tests__/runtime.test.js +677 -17
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/state-root.test.js +177 -1
- package/dist/team/__tests__/state-root.test.js.map +1 -1
- package/dist/team/__tests__/state.test.js +110 -0
- package/dist/team/__tests__/state.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +301 -2
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/worker-bootstrap.test.js +94 -0
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/commit-hygiene.d.ts +22 -3
- package/dist/team/commit-hygiene.d.ts.map +1 -1
- package/dist/team/commit-hygiene.js +134 -2
- package/dist/team/commit-hygiene.js.map +1 -1
- package/dist/team/contracts.d.ts +1 -1
- package/dist/team/contracts.d.ts.map +1 -1
- package/dist/team/contracts.js +2 -0
- package/dist/team/contracts.js.map +1 -1
- package/dist/team/dag-schema.d.ts +38 -0
- package/dist/team/dag-schema.d.ts.map +1 -0
- package/dist/team/dag-schema.js +221 -0
- package/dist/team/dag-schema.js.map +1 -0
- package/dist/team/delegation-policy.d.ts +3 -0
- package/dist/team/delegation-policy.d.ts.map +1 -0
- package/dist/team/delegation-policy.js +82 -0
- package/dist/team/delegation-policy.js.map +1 -0
- package/dist/team/model-contract.d.ts +3 -1
- package/dist/team/model-contract.d.ts.map +1 -1
- package/dist/team/model-contract.js +44 -5
- package/dist/team/model-contract.js.map +1 -1
- package/dist/team/repo-aware-decomposition.d.ts +60 -0
- package/dist/team/repo-aware-decomposition.d.ts.map +1 -0
- package/dist/team/repo-aware-decomposition.js +229 -0
- package/dist/team/repo-aware-decomposition.js.map +1 -0
- package/dist/team/runtime.d.ts +34 -0
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +191 -50
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/state/tasks.d.ts.map +1 -1
- package/dist/team/state/tasks.js +33 -0
- package/dist/team/state/tasks.js.map +1 -1
- package/dist/team/state/types.d.ts +23 -1
- package/dist/team/state/types.d.ts.map +1 -1
- package/dist/team/state/types.js.map +1 -1
- package/dist/team/state-root.d.ts +35 -0
- package/dist/team/state-root.d.ts.map +1 -1
- package/dist/team/state-root.js +281 -1
- package/dist/team/state-root.js.map +1 -1
- package/dist/team/state.d.ts +27 -1
- package/dist/team/state.d.ts.map +1 -1
- package/dist/team/state.js +6 -0
- package/dist/team/state.js.map +1 -1
- package/dist/team/tmux-session.d.ts +1 -0
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +83 -6
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/worker-bootstrap.d.ts +3 -0
- package/dist/team/worker-bootstrap.d.ts.map +1 -1
- package/dist/team/worker-bootstrap.js +77 -4
- package/dist/team/worker-bootstrap.js.map +1 -1
- package/dist/utils/__tests__/agents-model-table.test.js +8 -0
- package/dist/utils/__tests__/agents-model-table.test.js.map +1 -1
- package/dist/utils/__tests__/paths.test.js +42 -9
- package/dist/utils/__tests__/paths.test.js.map +1 -1
- package/dist/utils/agents-md.d.ts +3 -0
- package/dist/utils/agents-md.d.ts.map +1 -1
- package/dist/utils/agents-md.js +25 -0
- package/dist/utils/agents-md.js.map +1 -1
- package/dist/utils/agents-model-table.d.ts.map +1 -1
- package/dist/utils/agents-model-table.js +2 -3
- package/dist/utils/agents-model-table.js.map +1 -1
- package/package.json +14 -7
- package/plugins/oh-my-codex/.app.json +3 -0
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +30 -0
- package/plugins/oh-my-codex/.mcp.json +44 -0
- package/plugins/oh-my-codex/skills/ai-slop-cleaner/SKILL.md +114 -0
- package/plugins/oh-my-codex/skills/analyze/SKILL.md +148 -0
- package/plugins/oh-my-codex/skills/ask-claude/SKILL.md +61 -0
- package/plugins/oh-my-codex/skills/ask-gemini/SKILL.md +61 -0
- package/plugins/oh-my-codex/skills/autopilot/SKILL.md +231 -0
- package/plugins/oh-my-codex/skills/autoresearch/SKILL.md +68 -0
- package/plugins/oh-my-codex/skills/cancel/SKILL.md +399 -0
- package/plugins/oh-my-codex/skills/code-review/SKILL.md +290 -0
- package/plugins/oh-my-codex/skills/configure-notifications/SKILL.md +287 -0
- package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +464 -0
- package/plugins/oh-my-codex/skills/doctor/SKILL.md +239 -0
- package/plugins/oh-my-codex/skills/help/SKILL.md +202 -0
- package/plugins/oh-my-codex/skills/hud/SKILL.md +98 -0
- package/plugins/oh-my-codex/skills/note/SKILL.md +62 -0
- package/plugins/oh-my-codex/skills/omx-setup/SKILL.md +135 -0
- package/plugins/oh-my-codex/skills/pipeline/SKILL.md +86 -0
- package/plugins/oh-my-codex/skills/plan/SKILL.md +276 -0
- package/plugins/oh-my-codex/skills/ralph/SKILL.md +269 -0
- package/plugins/oh-my-codex/skills/ralplan/SKILL.md +162 -0
- package/plugins/oh-my-codex/skills/security-review/SKILL.md +300 -0
- package/plugins/oh-my-codex/skills/skill/SKILL.md +835 -0
- package/plugins/oh-my-codex/skills/team/SKILL.md +510 -0
- package/plugins/oh-my-codex/skills/trace/SKILL.md +33 -0
- package/plugins/oh-my-codex/skills/ultraqa/SKILL.md +143 -0
- package/plugins/oh-my-codex/skills/ultrawork/SKILL.md +175 -0
- package/plugins/oh-my-codex/skills/visual-ralph/SKILL.md +153 -0
- package/plugins/oh-my-codex/skills/visual-verdict/SKILL.md +76 -0
- package/plugins/oh-my-codex/skills/wiki/SKILL.md +57 -0
- package/plugins/oh-my-codex/skills/worker/SKILL.md +106 -0
- package/prompts/critic.md +35 -83
- package/prompts/executor.md +32 -109
- package/prompts/explore-harness.md +1 -1
- package/prompts/explore.md +37 -90
- package/prompts/planner.md +28 -58
- package/prompts/researcher.md +46 -78
- package/prompts/verifier.md +23 -31
- package/skills/autopilot/SKILL.md +1 -4
- package/skills/deep-interview/SKILL.md +8 -5
- package/skills/doctor/SKILL.md +45 -17
- package/skills/help/SKILL.md +2 -2
- package/skills/omx-setup/SKILL.md +52 -9
- package/skills/plan/SKILL.md +1 -4
- package/skills/ralph/SKILL.md +3 -5
- package/skills/ralplan/SKILL.md +2 -6
- package/skills/team/SKILL.md +2 -5
- package/skills/ultraqa/SKILL.md +1 -4
- package/skills/ultrawork/SKILL.md +2 -3
- package/skills/visual-ralph/SKILL.md +153 -0
- package/skills/web-clone/SKILL.md +12 -354
- package/src/scripts/__tests__/codex-native-hook.test.ts +2306 -224
- package/src/scripts/__tests__/generate-release-body.test.ts +109 -0
- package/src/scripts/__tests__/hook-derived-watcher.test.ts +132 -2
- package/src/scripts/__tests__/postinstall.test.ts +7 -104
- package/src/scripts/__tests__/prompt-inventory.test.ts +64 -0
- package/src/scripts/__tests__/run-test-files.test.ts +72 -0
- package/src/scripts/__tests__/smoke-packed-install.test.ts +15 -0
- package/src/scripts/__tests__/verify-native-agents.test.ts +204 -0
- package/src/scripts/codex-execution-surface.ts +73 -0
- package/src/scripts/codex-native-hook.ts +579 -82
- package/src/scripts/codex-native-pre-post.ts +157 -19
- package/src/scripts/generate-release-body.ts +34 -2
- package/src/scripts/hook-derived-watcher.ts +51 -8
- package/src/scripts/notify-fallback-watcher.ts +65 -9
- package/src/scripts/notify-hook/__tests__/team-worker-posttooluse.test.ts +180 -0
- package/src/scripts/notify-hook/managed-tmux.ts +22 -4
- package/src/scripts/notify-hook/process-runner.ts +7 -3
- package/src/scripts/notify-hook/team-dispatch.ts +103 -11
- package/src/scripts/notify-hook/team-tmux-guard.ts +3 -3
- package/src/scripts/notify-hook/team-worker-posttooluse.ts +536 -0
- package/src/scripts/notify-hook/team-worker.ts +4 -48
- package/src/scripts/notify-hook.ts +36 -5
- package/src/scripts/postinstall.ts +4 -58
- package/src/scripts/prompt-inventory.ts +218 -0
- package/src/scripts/run-test-files.ts +41 -2
- package/src/scripts/smoke-packed-install.ts +10 -1
- package/src/scripts/sync-plugin-mirror.ts +360 -0
- package/src/scripts/verify-native-agents.ts +245 -0
- package/templates/AGENTS.md +26 -91
- package/templates/catalog-manifest.json +16 -1
|
@@ -37,18 +37,13 @@ export function buildManagedCodexHooksConfig(pkgRoot) {
|
|
|
37
37
|
PreToolUse: [
|
|
38
38
|
buildCommandHook(command, {
|
|
39
39
|
matcher: "Bash",
|
|
40
|
-
statusMessage: "Running OMX Bash preflight",
|
|
41
40
|
}),
|
|
42
41
|
],
|
|
43
42
|
PostToolUse: [
|
|
44
|
-
buildCommandHook(command,
|
|
45
|
-
statusMessage: "Running OMX tool review",
|
|
46
|
-
}),
|
|
43
|
+
buildCommandHook(command),
|
|
47
44
|
],
|
|
48
45
|
UserPromptSubmit: [
|
|
49
|
-
buildCommandHook(command,
|
|
50
|
-
statusMessage: "Applying OMX prompt routing",
|
|
51
|
-
}),
|
|
46
|
+
buildCommandHook(command),
|
|
52
47
|
],
|
|
53
48
|
Stop: [
|
|
54
49
|
buildCommandHook(command, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-hooks.js","sourceRoot":"","sources":["../../src/config/codex-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,cAAc;IACd,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,MAAM;CACE,CAAC;AAoBX,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,SAAS,CAAI,KAAQ;IAC5B,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAe,EACf,UAII,EAAE;IAEN,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,SAAS;QACf,OAAO;QACP,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7E,CAAC;IAEF,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,KAAK,EAAE,CAAC,IAAI,CAAC;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,OAAe;IAEf,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,SAAS,UAAU,GAAG,CAAC;IAEvC,OAAO;QACL,KAAK,EAAE;YACL,YAAY,EAAE;gBACZ,gBAAgB,CAAC,OAAO,EAAE;oBACxB,OAAO,EAAE,gBAAgB;iBAC1B,CAAC;aACH;YACD,UAAU,EAAE;gBACV,gBAAgB,CAAC,OAAO,EAAE;oBACxB,OAAO,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"codex-hooks.js","sourceRoot":"","sources":["../../src/config/codex-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,13 +10,22 @@
|
|
|
10
10
|
* 3. [table] sections (env, mcp_servers, tui)
|
|
11
11
|
*/
|
|
12
12
|
import type { UnifiedMcpRegistryServer } from "./mcp-registry.js";
|
|
13
|
+
import type { HudPreset } from "../hud/types.js";
|
|
13
14
|
interface MergeOptions {
|
|
14
15
|
includeTui?: boolean;
|
|
15
16
|
modelOverride?: string;
|
|
16
17
|
sharedMcpServers?: UnifiedMcpRegistryServer[];
|
|
17
18
|
sharedMcpRegistrySource?: string;
|
|
18
19
|
verbose?: boolean;
|
|
20
|
+
statusLinePreset?: HudPreset;
|
|
21
|
+
forceStatusLinePreset?: boolean;
|
|
19
22
|
}
|
|
23
|
+
export declare const OMX_DEVELOPER_INSTRUCTIONS = "You have oh-my-codex installed. AGENTS.md is the orchestration brain and main control surface. Follow AGENTS.md for skill/keyword routing, $name workflow invocation, and role-specialized subagents. Native subagents live in .codex/agents and may handle independent parallel subtasks within one Codex session or team pane. Skills load from .codex/skills, not native-agent TOMLs. Treat installed prompts as narrower execution surfaces under AGENTS.md authority.";
|
|
24
|
+
export declare const STATUS_LINE_PRESETS: Record<HudPreset, readonly string[]>;
|
|
25
|
+
export declare const DEFAULT_STATUS_LINE_PRESET: HudPreset;
|
|
26
|
+
export declare function statusLineForPreset(preset?: HudPreset): string;
|
|
27
|
+
export declare function stripCodexModelAvailabilityNux(config: string): string;
|
|
28
|
+
export declare function cleanCodexModelAvailabilityNuxIfNeeded(configPath: string): Promise<boolean>;
|
|
20
29
|
export declare function hasLegacyOmxTeamRunTable(config: string): boolean;
|
|
21
30
|
export declare function getRootModelName(config: string): string | undefined;
|
|
22
31
|
export declare function stripOmxSeededBehavioralDefaults(config: string): string;
|
|
@@ -25,6 +34,7 @@ export declare function stripOmxSeededBehavioralDefaults(config: string): string
|
|
|
25
34
|
* cleanly. Also removes the comment line that precedes them.
|
|
26
35
|
*/
|
|
27
36
|
export declare function stripOmxTopLevelKeys(config: string): string;
|
|
37
|
+
export declare function upsertCodexHooksFeatureFlag(config: string): string;
|
|
28
38
|
/**
|
|
29
39
|
* Remove OMX-owned feature flags from the [features] section.
|
|
30
40
|
* If the section becomes empty after removal, remove the section header too.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/config/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElE,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC9C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/config/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC9C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAyBD,eAAO,MAAM,0BAA0B,+cACua,CAAC;AAqB/c,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAIpE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,SAAqB,CAAC;AAE/D,wBAAgB,mBAAmB,CACjC,MAAM,GAAE,SAAsC,GAC7C,MAAM,CAKR;AAmCD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAoBrE;AAED,wBAAsB,sCAAsC,CAC1D,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhE;AAMD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnE;AAsID,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA2CvE;AA4CD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AA+ED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAsClE;AA2FD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA+C3D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA2C1D;AAmQD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAqCA;AAED,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,MAAM,GAAG;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAqCA;AAqOD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,MAAM,CA4DR;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|
package/dist/config/generator.js
CHANGED
|
@@ -15,6 +15,7 @@ import { join } from "path";
|
|
|
15
15
|
import TOML from "@iarna/toml";
|
|
16
16
|
import { AGENT_DEFINITIONS } from "../agents/definitions.js";
|
|
17
17
|
import { DEFAULT_FRONTIER_MODEL } from "./models.js";
|
|
18
|
+
import { getOmxFirstPartySetupMcpServers } from "./omx-first-party-mcp.js";
|
|
18
19
|
function escapeTomlString(value) {
|
|
19
20
|
return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
20
21
|
}
|
|
@@ -32,15 +33,86 @@ const DEFAULT_SETUP_MODEL_CONTEXT_WINDOW = 250000;
|
|
|
32
33
|
const DEFAULT_SETUP_MODEL_AUTO_COMPACT_TOKEN_LIMIT = 200000;
|
|
33
34
|
const OMX_SEEDED_BEHAVIORAL_DEFAULTS_START_MARKER = "# oh-my-codex seeded behavioral defaults (uninstall removes unchanged defaults)";
|
|
34
35
|
const OMX_SEEDED_BEHAVIORAL_DEFAULTS_END_MARKER = "# End oh-my-codex seeded behavioral defaults";
|
|
36
|
+
export const OMX_DEVELOPER_INSTRUCTIONS = "You have oh-my-codex installed. AGENTS.md is the orchestration brain and main control surface. Follow AGENTS.md for skill/keyword routing, $name workflow invocation, and role-specialized subagents. Native subagents live in .codex/agents and may handle independent parallel subtasks within one Codex session or team pane. Skills load from .codex/skills, not native-agent TOMLs. Treat installed prompts as narrower execution surfaces under AGENTS.md authority.";
|
|
35
37
|
const SHARED_MCP_REGISTRY_MARKER = "oh-my-codex (OMX) Shared MCP Registry Sync";
|
|
36
38
|
const SHARED_MCP_REGISTRY_END_MARKER = "# End oh-my-codex shared MCP registry sync";
|
|
37
39
|
const OMX_AGENTS_MAX_THREADS = 6;
|
|
38
40
|
const OMX_AGENTS_MAX_DEPTH = 2;
|
|
39
|
-
const OMX_EXPLORE_ROUTING_DEFAULT =
|
|
40
|
-
const OMX_EXPLORE_CMD_ENV =
|
|
41
|
+
const OMX_EXPLORE_ROUTING_DEFAULT = "1";
|
|
42
|
+
const OMX_EXPLORE_CMD_ENV = "USE_OMX_EXPLORE_CMD";
|
|
41
43
|
const DEFAULT_LAUNCHER_MCP_STARTUP_TIMEOUT_SEC = 15;
|
|
42
|
-
const
|
|
44
|
+
const STATUS_LINE_FOCUSED_FIELDS = [
|
|
45
|
+
"model-with-reasoning",
|
|
46
|
+
"git-branch",
|
|
47
|
+
"context-remaining",
|
|
48
|
+
"total-input-tokens",
|
|
49
|
+
"total-output-tokens",
|
|
50
|
+
"five-hour-limit",
|
|
51
|
+
"weekly-limit",
|
|
52
|
+
];
|
|
53
|
+
// `full` is currently identical to `focused`. It is reserved for future
|
|
54
|
+
// expansion as Codex CLI adds support for additional status_line fields.
|
|
55
|
+
export const STATUS_LINE_PRESETS = {
|
|
56
|
+
minimal: ["model-with-reasoning", "git-branch"],
|
|
57
|
+
focused: STATUS_LINE_FOCUSED_FIELDS,
|
|
58
|
+
full: STATUS_LINE_FOCUSED_FIELDS,
|
|
59
|
+
};
|
|
60
|
+
export const DEFAULT_STATUS_LINE_PRESET = "focused";
|
|
61
|
+
export function statusLineForPreset(preset = DEFAULT_STATUS_LINE_PRESET) {
|
|
62
|
+
const fields = STATUS_LINE_PRESETS[preset] ??
|
|
63
|
+
STATUS_LINE_PRESETS[DEFAULT_STATUS_LINE_PRESET];
|
|
64
|
+
return `status_line = [${fields.map((field) => `"${field}"`).join(", ")}]`;
|
|
65
|
+
}
|
|
66
|
+
// Marker comment OMX emits immediately above any status_line it owns. New writes
|
|
67
|
+
// always include it; the customized-section detector keys on this marker so a
|
|
68
|
+
// user-edited status_line that happens to byte-match a preset literal (e.g.
|
|
69
|
+
// `["model-with-reasoning", "git-branch"]` matching the `minimal` preset) is
|
|
70
|
+
// still recognized as a user customization and preserved.
|
|
71
|
+
const OMX_MANAGED_STATUS_LINE_MARKER = "# omx:managed-status-line";
|
|
72
|
+
// Pre-marker installs only ever shipped the seven-field `focused` array.
|
|
73
|
+
// Treat that exact value as OMX-managed for backward compatibility so
|
|
74
|
+
// upgrades/preset switches still strip the legacy line. Any other preset
|
|
75
|
+
// literal without the marker is assumed user-written.
|
|
76
|
+
const LEGACY_OMX_STATUS_LINE = statusLineForPreset(DEFAULT_STATUS_LINE_PRESET);
|
|
77
|
+
// Set of every status_line literal OMX itself can emit today. Used together
|
|
78
|
+
// with the marker comment: if a status_line is preceded by the marker AND
|
|
79
|
+
// its value is a known OMX preset, it is OMX-managed. If the marker is
|
|
80
|
+
// present but the value is something else, the user edited the value (and
|
|
81
|
+
// left the marker untouched) — treat as a user customization and preserve.
|
|
82
|
+
const OMX_PRESET_STATUS_LINE_VALUES = new Set(Object.keys(STATUS_LINE_PRESETS).map((preset) => statusLineForPreset(preset)));
|
|
43
83
|
const LEGACY_OMX_TEAM_RUN_TABLE_PATTERN = /^\s*\[mcp_servers\.(?:"omx_team_run"|omx_team_run)\]\s*$/m;
|
|
84
|
+
const OMX_CONFIG_MARKER = "oh-my-codex (OMX) Configuration";
|
|
85
|
+
const OMX_CONFIG_END_MARKER = "# End oh-my-codex";
|
|
86
|
+
const CODEX_MODEL_AVAILABILITY_NUX_TABLE_PATTERN = /^\s*\[tui\.model_availability_nux\]\s*(?:#.*)?$/;
|
|
87
|
+
const TOML_TABLE_HEADER_PATTERN = /^\s*\[\[?[^\]]+\]?\]\s*(?:#.*)?$/;
|
|
88
|
+
export function stripCodexModelAvailabilityNux(config) {
|
|
89
|
+
const lines = config.split(/\r?\n/);
|
|
90
|
+
const result = [];
|
|
91
|
+
let removed = false;
|
|
92
|
+
for (let i = 0; i < lines.length;) {
|
|
93
|
+
if (CODEX_MODEL_AVAILABILITY_NUX_TABLE_PATTERN.test(lines[i])) {
|
|
94
|
+
removed = true;
|
|
95
|
+
i += 1;
|
|
96
|
+
while (i < lines.length && !TOML_TABLE_HEADER_PATTERN.test(lines[i])) {
|
|
97
|
+
i += 1;
|
|
98
|
+
}
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
result.push(lines[i]);
|
|
102
|
+
i += 1;
|
|
103
|
+
}
|
|
104
|
+
return removed ? result.join("\n") : config;
|
|
105
|
+
}
|
|
106
|
+
export async function cleanCodexModelAvailabilityNuxIfNeeded(configPath) {
|
|
107
|
+
if (!existsSync(configPath))
|
|
108
|
+
return false;
|
|
109
|
+
const content = await readFile(configPath, "utf-8");
|
|
110
|
+
const cleaned = stripCodexModelAvailabilityNux(content);
|
|
111
|
+
if (cleaned === content)
|
|
112
|
+
return false;
|
|
113
|
+
await writeFile(configPath, cleaned);
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
44
116
|
export function hasLegacyOmxTeamRunTable(config) {
|
|
45
117
|
return LEGACY_OMX_TEAM_RUN_TABLE_PATTERN.test(config);
|
|
46
118
|
}
|
|
@@ -108,7 +180,7 @@ function getOmxTopLevelLines(pkgRoot, existingConfig = "", modelOverride) {
|
|
|
108
180
|
"# oh-my-codex top-level settings (must be before any [table])",
|
|
109
181
|
`notify = ["node", "${escapedPath}"]`,
|
|
110
182
|
'model_reasoning_effort = "medium"',
|
|
111
|
-
`developer_instructions = "
|
|
183
|
+
`developer_instructions = "${escapeTomlString(OMX_DEVELOPER_INSTRUCTIONS)}"`,
|
|
112
184
|
];
|
|
113
185
|
const existingModel = rootValues.get("model");
|
|
114
186
|
const existingContextWindow = rootValues.get("model_context_window");
|
|
@@ -279,6 +351,39 @@ function upsertFeatureFlags(config) {
|
|
|
279
351
|
}
|
|
280
352
|
return lines.join("\n");
|
|
281
353
|
}
|
|
354
|
+
export function upsertCodexHooksFeatureFlag(config) {
|
|
355
|
+
const lines = config.split(/\r?\n/);
|
|
356
|
+
const featuresStart = lines.findIndex((line) => /^\s*\[features\]\s*$/.test(line));
|
|
357
|
+
if (featuresStart < 0) {
|
|
358
|
+
const base = config.trimEnd();
|
|
359
|
+
const featureBlock = ["[features]", "codex_hooks = true", ""].join("\n");
|
|
360
|
+
if (base.length === 0) {
|
|
361
|
+
return featureBlock;
|
|
362
|
+
}
|
|
363
|
+
return `${base}\n${featureBlock}`;
|
|
364
|
+
}
|
|
365
|
+
let sectionEnd = lines.length;
|
|
366
|
+
for (let i = featuresStart + 1; i < lines.length; i++) {
|
|
367
|
+
if (/^\s*\[\[?[^\]]+\]?\]\s*$/.test(lines[i])) {
|
|
368
|
+
sectionEnd = i;
|
|
369
|
+
break;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
let codexHooksIdx = -1;
|
|
373
|
+
for (let i = featuresStart + 1; i < sectionEnd; i++) {
|
|
374
|
+
if (/^\s*codex_hooks\s*=/.test(lines[i])) {
|
|
375
|
+
codexHooksIdx = i;
|
|
376
|
+
break;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
if (codexHooksIdx >= 0) {
|
|
380
|
+
lines[codexHooksIdx] = "codex_hooks = true";
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
lines.splice(sectionEnd, 0, "codex_hooks = true");
|
|
384
|
+
}
|
|
385
|
+
return lines.join("\n");
|
|
386
|
+
}
|
|
282
387
|
function upsertEnvSettings(config) {
|
|
283
388
|
const lines = config.split(/\r?\n/);
|
|
284
389
|
const envStart = lines.findIndex((line) => /^\s*\[env\]\s*$/.test(line));
|
|
@@ -492,7 +597,59 @@ function stripOrphanedOmxSections(config) {
|
|
|
492
597
|
}
|
|
493
598
|
return result.join("\n");
|
|
494
599
|
}
|
|
495
|
-
function
|
|
600
|
+
function extractCustomizedTuiSectionsFromOmxBlocks(config) {
|
|
601
|
+
const sections = [];
|
|
602
|
+
let searchStart = 0;
|
|
603
|
+
while (true) {
|
|
604
|
+
const markerIdx = config.indexOf(OMX_CONFIG_MARKER, searchStart);
|
|
605
|
+
if (markerIdx < 0)
|
|
606
|
+
break;
|
|
607
|
+
const endIdx = config.indexOf(OMX_CONFIG_END_MARKER, markerIdx);
|
|
608
|
+
if (endIdx < 0)
|
|
609
|
+
break;
|
|
610
|
+
const blockLines = config.slice(markerIdx, endIdx).split(/\r?\n/);
|
|
611
|
+
for (let i = 0; i < blockLines.length; i++) {
|
|
612
|
+
if (!/^\s*\[tui\]\s*$/.test(blockLines[i]))
|
|
613
|
+
continue;
|
|
614
|
+
const tuiLines = [blockLines[i].trim()];
|
|
615
|
+
let hasCustomizedStatusLine = false;
|
|
616
|
+
let lastNonBlankBeforeStatusLine;
|
|
617
|
+
for (let j = i + 1; j < blockLines.length; j++) {
|
|
618
|
+
if (/^\s*\[\[?[^\]]+\]?\]\s*$/.test(blockLines[j]))
|
|
619
|
+
break;
|
|
620
|
+
const trimmed = blockLines[j].trim();
|
|
621
|
+
if (!trimmed)
|
|
622
|
+
continue;
|
|
623
|
+
tuiLines.push(trimmed);
|
|
624
|
+
if (/^status_line\s*=/.test(trimmed)) {
|
|
625
|
+
// OMX-managed when:
|
|
626
|
+
// 1. Preceded by the managed-status-line marker AND the value is
|
|
627
|
+
// a known OMX preset literal (post-marker installs). If the
|
|
628
|
+
// marker is present but the value isn't a preset, the user
|
|
629
|
+
// edited the value and left the marker — treat as customized.
|
|
630
|
+
// 2. No marker but the value byte-matches the legacy seven-field
|
|
631
|
+
// default (pre-marker installs only ever shipped focused).
|
|
632
|
+
// Anything else inside an OMX-marker block is treated as a user
|
|
633
|
+
// customization and preserved across rebuild.
|
|
634
|
+
const hasMarker = lastNonBlankBeforeStatusLine === OMX_MANAGED_STATUS_LINE_MARKER;
|
|
635
|
+
const matchesPreset = OMX_PRESET_STATUS_LINE_VALUES.has(trimmed);
|
|
636
|
+
const isManagedByMarker = hasMarker && matchesPreset;
|
|
637
|
+
const isManagedByLegacyValue = !hasMarker && trimmed === LEGACY_OMX_STATUS_LINE;
|
|
638
|
+
if (!isManagedByMarker && !isManagedByLegacyValue) {
|
|
639
|
+
hasCustomizedStatusLine = true;
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
lastNonBlankBeforeStatusLine = trimmed;
|
|
643
|
+
}
|
|
644
|
+
if (hasCustomizedStatusLine) {
|
|
645
|
+
sections.push(tuiLines.join("\n"));
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
searchStart = endIdx + OMX_CONFIG_END_MARKER.length;
|
|
649
|
+
}
|
|
650
|
+
return sections;
|
|
651
|
+
}
|
|
652
|
+
function upsertTuiStatusLine(config, preset = DEFAULT_STATUS_LINE_PRESET, options = {}) {
|
|
496
653
|
const lines = config.split(/\r?\n/);
|
|
497
654
|
const sections = [];
|
|
498
655
|
for (let i = 0; i < lines.length; i++) {
|
|
@@ -513,23 +670,63 @@ function upsertTuiStatusLine(config) {
|
|
|
513
670
|
}
|
|
514
671
|
const preservedKeyLines = [];
|
|
515
672
|
const seenKeys = new Set();
|
|
673
|
+
let preservedStatusLine;
|
|
516
674
|
for (const section of sections) {
|
|
675
|
+
let lastNonBlankBeforeStatusLine;
|
|
517
676
|
for (let i = section.start + 1; i < section.end; i++) {
|
|
518
677
|
const line = lines[i];
|
|
519
678
|
const trimmed = line.trim();
|
|
520
|
-
if (!trimmed
|
|
679
|
+
if (!trimmed)
|
|
680
|
+
continue;
|
|
681
|
+
if (trimmed.startsWith("#")) {
|
|
682
|
+
lastNonBlankBeforeStatusLine = trimmed;
|
|
521
683
|
continue;
|
|
684
|
+
}
|
|
522
685
|
const keyMatch = trimmed.match(/^([A-Za-z0-9_-]+)\s*=/);
|
|
523
|
-
if (!keyMatch)
|
|
686
|
+
if (!keyMatch) {
|
|
687
|
+
lastNonBlankBeforeStatusLine = trimmed;
|
|
524
688
|
continue;
|
|
689
|
+
}
|
|
525
690
|
const key = keyMatch[1];
|
|
526
|
-
if (key === "status_line"
|
|
691
|
+
if (key === "status_line") {
|
|
692
|
+
const entryLines = [trimmed];
|
|
693
|
+
while (!parseStandaloneToml(entryLines.join("\n")) &&
|
|
694
|
+
i + 1 < section.end) {
|
|
695
|
+
i += 1;
|
|
696
|
+
entryLines.push(lines[i].trim());
|
|
697
|
+
}
|
|
698
|
+
const statusLineEntry = entryLines.join("\n");
|
|
699
|
+
const hasMarker = lastNonBlankBeforeStatusLine === OMX_MANAGED_STATUS_LINE_MARKER;
|
|
700
|
+
const isManagedByMarker = hasMarker && OMX_PRESET_STATUS_LINE_VALUES.has(statusLineEntry);
|
|
701
|
+
const isManagedByLegacyValue = !hasMarker && statusLineEntry === LEGACY_OMX_STATUS_LINE;
|
|
702
|
+
const isOmxManagedStatusLine = isManagedByMarker || isManagedByLegacyValue;
|
|
703
|
+
if (!options.forceStatusLinePreset || !isOmxManagedStatusLine) {
|
|
704
|
+
preservedStatusLine ??= statusLineEntry;
|
|
705
|
+
}
|
|
706
|
+
lastNonBlankBeforeStatusLine = statusLineEntry;
|
|
527
707
|
continue;
|
|
708
|
+
}
|
|
709
|
+
if (seenKeys.has(key)) {
|
|
710
|
+
lastNonBlankBeforeStatusLine = trimmed;
|
|
711
|
+
continue;
|
|
712
|
+
}
|
|
528
713
|
seenKeys.add(key);
|
|
529
714
|
preservedKeyLines.push(trimmed);
|
|
715
|
+
lastNonBlankBeforeStatusLine = trimmed;
|
|
530
716
|
}
|
|
531
717
|
}
|
|
532
|
-
|
|
718
|
+
// When OMX is supplying the status_line (no user-preserved value),
|
|
719
|
+
// emit the managed-status-line marker comment alongside it so the
|
|
720
|
+
// customized-section detector can unambiguously tell our writes apart
|
|
721
|
+
// from a user edit on the next merge.
|
|
722
|
+
const mergedSection = preservedStatusLine
|
|
723
|
+
? ["[tui]", ...preservedKeyLines, preservedStatusLine]
|
|
724
|
+
: [
|
|
725
|
+
"[tui]",
|
|
726
|
+
...preservedKeyLines,
|
|
727
|
+
OMX_MANAGED_STATUS_LINE_MARKER,
|
|
728
|
+
statusLineForPreset(preset),
|
|
729
|
+
];
|
|
533
730
|
const firstStart = sections[0].start;
|
|
534
731
|
const rebuilt = [];
|
|
535
732
|
for (let i = 0; i < lines.length; i++) {
|
|
@@ -555,12 +752,10 @@ function upsertTuiStatusLine(config) {
|
|
|
555
752
|
// OMX [table] sections block (appended at end of file)
|
|
556
753
|
// ---------------------------------------------------------------------------
|
|
557
754
|
export function stripExistingOmxBlocks(config) {
|
|
558
|
-
const marker = "oh-my-codex (OMX) Configuration";
|
|
559
|
-
const endMarker = "# End oh-my-codex";
|
|
560
755
|
let cleaned = config;
|
|
561
756
|
let removed = 0;
|
|
562
757
|
while (true) {
|
|
563
|
-
const markerIdx = cleaned.indexOf(
|
|
758
|
+
const markerIdx = cleaned.indexOf(OMX_CONFIG_MARKER);
|
|
564
759
|
if (markerIdx < 0)
|
|
565
760
|
break;
|
|
566
761
|
let blockStart = cleaned.lastIndexOf("\n", markerIdx);
|
|
@@ -574,7 +769,7 @@ export function stripExistingOmxBlocks(config) {
|
|
|
574
769
|
}
|
|
575
770
|
}
|
|
576
771
|
let blockEnd = cleaned.length;
|
|
577
|
-
const endIdx = cleaned.indexOf(
|
|
772
|
+
const endIdx = cleaned.indexOf(OMX_CONFIG_END_MARKER, markerIdx);
|
|
578
773
|
if (endIdx >= 0) {
|
|
579
774
|
const endLineBreak = cleaned.indexOf("\n", endIdx);
|
|
580
775
|
blockEnd = endLineBreak >= 0 ? endLineBreak + 1 : cleaned.length;
|
|
@@ -627,7 +822,7 @@ function configHasMcpServer(config, name) {
|
|
|
627
822
|
return new RegExp(`^\\s*\\[${tableName}\\]\\s*$`, "m").test(config);
|
|
628
823
|
}
|
|
629
824
|
function launcherCommandBasename(command) {
|
|
630
|
-
return command.replace(/\\/g, "/").trim().split("/").pop()?.toLowerCase() ?? "";
|
|
825
|
+
return (command.replace(/\\/g, "/").trim().split("/").pop()?.toLowerCase() ?? "");
|
|
631
826
|
}
|
|
632
827
|
function isLauncherBackedMcpCommand(command, args) {
|
|
633
828
|
const base = launcherCommandBasename(command);
|
|
@@ -661,7 +856,10 @@ function findLauncherTimeoutRepairTargets(config) {
|
|
|
661
856
|
const mcpServers = parsed
|
|
662
857
|
.mcp_servers;
|
|
663
858
|
const [name, value] = Object.entries(mcpServers ?? {})[0] ?? [];
|
|
664
|
-
if (!name ||
|
|
859
|
+
if (!name ||
|
|
860
|
+
name.startsWith("omx_") ||
|
|
861
|
+
typeof value !== "object" ||
|
|
862
|
+
!value) {
|
|
665
863
|
start = end - 1;
|
|
666
864
|
continue;
|
|
667
865
|
}
|
|
@@ -672,9 +870,12 @@ function findLauncherTimeoutRepairTargets(config) {
|
|
|
672
870
|
? section.args
|
|
673
871
|
: [];
|
|
674
872
|
const hasStartupTimeout = (typeof section.startup_timeout_sec === "number" &&
|
|
675
|
-
Number.isFinite(section.startup_timeout_sec)) ||
|
|
676
|
-
|
|
677
|
-
|
|
873
|
+
Number.isFinite(section.startup_timeout_sec)) ||
|
|
874
|
+
(typeof section.startupTimeoutSec === "number" &&
|
|
875
|
+
Number.isFinite(section.startupTimeoutSec));
|
|
876
|
+
if (!command ||
|
|
877
|
+
hasStartupTimeout ||
|
|
878
|
+
!isLauncherBackedMcpCommand(command, args)) {
|
|
678
879
|
start = end - 1;
|
|
679
880
|
continue;
|
|
680
881
|
}
|
|
@@ -733,66 +934,41 @@ function getSharedMcpRegistryBlock(servers, sourcePath, existingConfig) {
|
|
|
733
934
|
* OMX table-section block (MCP servers, TUI).
|
|
734
935
|
* Contains ONLY [table] sections — no bare keys.
|
|
735
936
|
*/
|
|
736
|
-
function getOmxTablesBlock(pkgRoot, includeTui = true) {
|
|
737
|
-
const
|
|
738
|
-
const memoryServerPath = escapeTomlString(join(pkgRoot, "dist", "mcp", "memory-server.js"));
|
|
739
|
-
const codeIntelServerPath = escapeTomlString(join(pkgRoot, "dist", "mcp", "code-intel-server.js"));
|
|
740
|
-
const traceServerPath = escapeTomlString(join(pkgRoot, "dist", "mcp", "trace-server.js"));
|
|
741
|
-
const wikiServerPath = escapeTomlString(join(pkgRoot, "dist", "mcp", "wiki-server.js"));
|
|
742
|
-
return [
|
|
937
|
+
function getOmxTablesBlock(pkgRoot, includeTui = true, statusLinePreset = DEFAULT_STATUS_LINE_PRESET) {
|
|
938
|
+
const lines = [
|
|
743
939
|
"",
|
|
744
940
|
"# ============================================================",
|
|
745
941
|
"# oh-my-codex (OMX) Configuration",
|
|
746
942
|
"# Managed by omx setup - manual edits preserved on next setup",
|
|
747
943
|
"# ============================================================",
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
`
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
"
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
"",
|
|
777
|
-
"# OMX Wiki MCP Server (persistent project knowledge base)",
|
|
778
|
-
"[mcp_servers.omx_wiki]",
|
|
779
|
-
'command = "node"',
|
|
780
|
-
`args = ["${wikiServerPath}"]`,
|
|
781
|
-
"enabled = true",
|
|
782
|
-
"startup_timeout_sec = 5",
|
|
783
|
-
...(includeTui
|
|
784
|
-
? [
|
|
785
|
-
"",
|
|
786
|
-
"# OMX TUI StatusLine (Codex CLI v0.101.0+)",
|
|
787
|
-
"[tui]",
|
|
788
|
-
OMX_TUI_STATUS_LINE,
|
|
789
|
-
"",
|
|
790
|
-
]
|
|
791
|
-
: []),
|
|
792
|
-
"# ============================================================",
|
|
793
|
-
"# End oh-my-codex",
|
|
794
|
-
"",
|
|
795
|
-
].join("\n");
|
|
944
|
+
];
|
|
945
|
+
for (const server of getOmxFirstPartySetupMcpServers(pkgRoot)) {
|
|
946
|
+
lines.push("");
|
|
947
|
+
lines.push(server.title);
|
|
948
|
+
lines.push(`[mcp_servers.${server.name}]`);
|
|
949
|
+
lines.push('command = "node"');
|
|
950
|
+
lines.push(`args = [${server.args
|
|
951
|
+
.map((arg) => `"${escapeTomlString(arg)}"`)
|
|
952
|
+
.join(", ")}]`);
|
|
953
|
+
lines.push(`enabled = ${server.enabled ? "true" : "false"}`);
|
|
954
|
+
if (typeof server.startupTimeoutSec === "number") {
|
|
955
|
+
lines.push(`startup_timeout_sec = ${server.startupTimeoutSec}`);
|
|
956
|
+
}
|
|
957
|
+
}
|
|
958
|
+
lines.push(...(includeTui
|
|
959
|
+
? [
|
|
960
|
+
"",
|
|
961
|
+
"# OMX TUI StatusLine (Codex CLI v0.101.0+)",
|
|
962
|
+
"[tui]",
|
|
963
|
+
OMX_MANAGED_STATUS_LINE_MARKER,
|
|
964
|
+
statusLineForPreset(statusLinePreset),
|
|
965
|
+
"",
|
|
966
|
+
]
|
|
967
|
+
: [""]));
|
|
968
|
+
lines.push("# ============================================================");
|
|
969
|
+
lines.push("# End oh-my-codex");
|
|
970
|
+
lines.push("");
|
|
971
|
+
return lines.join("\n");
|
|
796
972
|
}
|
|
797
973
|
// ---------------------------------------------------------------------------
|
|
798
974
|
// Public API
|
|
@@ -811,9 +987,14 @@ function getOmxTablesBlock(pkgRoot, includeTui = true) {
|
|
|
811
987
|
export function buildMergedConfig(existingConfig, pkgRoot, options = {}) {
|
|
812
988
|
let existing = existingConfig;
|
|
813
989
|
const includeTui = options.includeTui !== false;
|
|
814
|
-
|
|
990
|
+
const statusLinePreset = options.statusLinePreset ?? DEFAULT_STATUS_LINE_PRESET;
|
|
991
|
+
const customizedManagedTuiSections = extractCustomizedTuiSectionsFromOmxBlocks(existing);
|
|
992
|
+
if (existing.includes(OMX_CONFIG_MARKER)) {
|
|
815
993
|
const stripped = stripExistingOmxBlocks(existing);
|
|
816
994
|
existing = stripped.cleaned;
|
|
995
|
+
if (customizedManagedTuiSections.length > 0) {
|
|
996
|
+
existing = `${existing.trimEnd()}\n\n${customizedManagedTuiSections.join("\n\n")}\n`;
|
|
997
|
+
}
|
|
817
998
|
}
|
|
818
999
|
if (existing.includes(SHARED_MCP_REGISTRY_MARKER)) {
|
|
819
1000
|
const stripped = stripExistingSharedMcpRegistryBlock(existing);
|
|
@@ -829,11 +1010,13 @@ export function buildMergedConfig(existingConfig, pkgRoot, options = {}) {
|
|
|
829
1010
|
existing = upsertEnvSettings(existing);
|
|
830
1011
|
existing = upsertAgentsSettings(existing);
|
|
831
1012
|
const tuiUpsert = includeTui
|
|
832
|
-
? upsertTuiStatusLine(existing
|
|
1013
|
+
? upsertTuiStatusLine(existing, statusLinePreset, {
|
|
1014
|
+
forceStatusLinePreset: options.forceStatusLinePreset,
|
|
1015
|
+
})
|
|
833
1016
|
: { cleaned: existing, hadExistingTui: false };
|
|
834
1017
|
existing = tuiUpsert.cleaned;
|
|
835
1018
|
const topLines = getOmxTopLevelLines(pkgRoot, existing, options.modelOverride);
|
|
836
|
-
const tablesBlock = getOmxTablesBlock(pkgRoot, includeTui && !tuiUpsert.hadExistingTui);
|
|
1019
|
+
const tablesBlock = getOmxTablesBlock(pkgRoot, includeTui && !tuiUpsert.hadExistingTui, statusLinePreset);
|
|
837
1020
|
const sharedRegistryBlock = getSharedMcpRegistryBlock(options.sharedMcpServers ?? [], options.sharedMcpRegistrySource, existing);
|
|
838
1021
|
let body = existing.trimEnd();
|
|
839
1022
|
if (sharedRegistryBlock) {
|