oh-my-opencode 4.19.3 → 5.0.0-beta.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/command/get-unpublished-changes.md +2 -0
- package/.agents/command/omomomo.md +1 -1
- package/.agents/command/publish.md +7 -0
- package/.agents/skills/get-unpublished-changes/SKILL.md +2 -0
- package/.agents/skills/hyperplan/SKILL.md +3 -3
- package/.agents/skills/omomomo/SKILL.md +1 -1
- package/.agents/skills/publish/SKILL.md +7 -0
- package/.opencode/command/get-unpublished-changes.md +2 -0
- package/.opencode/command/omomomo.md +1 -1
- package/.opencode/command/publish.md +7 -0
- package/.opencode/skills/hyperplan/SKILL.md +3 -3
- package/README.ja.md +1 -1
- package/README.ko.md +1 -1
- package/README.md +6 -5
- package/README.ru.md +1 -1
- package/README.zh-cn.md +1 -1
- package/bin/oh-my-opencode.js +14 -1
- package/bin/oh-my-opencode.test.ts +21 -0
- package/dist/agents/sisyphus-junior/agent.d.ts +1 -1
- package/dist/cli/doctor/checks/deprecated-reasoning-keys.d.ts +2 -0
- package/dist/cli/index.js +2925 -1919
- package/dist/cli-node/index.js +2925 -1919
- package/dist/config/schema/agent-overrides.d.ts +1343 -15
- package/dist/config/schema/categories.d.ts +132 -0
- package/dist/config/schema/fallback-models.d.ts +50 -0
- package/dist/config/schema/oh-my-opencode-config.d.ts +1322 -11
- package/dist/config-migration/index.d.ts +1 -0
- package/dist/config-migration/migration-plans.d.ts +1 -0
- package/dist/config-migration/reasoning-unification.d.ts +3 -0
- package/dist/features/monitor/batcher.d.ts +3 -1
- package/dist/features/monitor/manager-internals.d.ts +1 -0
- package/dist/features/monitor/output-injector-types.d.ts +2 -0
- package/dist/features/monitor/output-injector.d.ts +6 -0
- package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +2 -0
- package/dist/hooks/codegraph-bootstrap/command-runner.d.ts +1 -0
- package/dist/hooks/model-fallback/next-fallback.d.ts +1 -0
- package/dist/hooks/runtime-fallback/constants.d.ts +1 -1
- package/dist/hooks/todo-continuation-enforcer/types.d.ts +1 -0
- package/dist/hooks/todo-continuation-enforcer/unrecoverable-request-error.d.ts +9 -0
- package/dist/hooks/tool-pair-validator/hook.test-support.d.ts +29 -0
- package/dist/hooks/tool-pair-validator/tool-part-ids.d.ts +14 -5
- package/dist/hooks/tool-pair-validator/tool-result-repair.d.ts +4 -3
- package/dist/hooks/tool-pair-validator/types.d.ts +5 -22
- package/dist/index.js +4864 -4011
- package/dist/mcp/lsp.d.ts +1 -0
- package/dist/oh-my-opencode.schema.json +3221 -222
- package/dist/plugin-handlers/prometheus-agent-config-builder.d.ts +1 -0
- package/dist/shared/agent-variant.d.ts +11 -0
- package/dist/shared/session-prompt-params-helpers.d.ts +6 -1
- package/dist/shared/tmux/constants.d.ts +1 -1
- package/dist/skills/ast-grep/SOURCE +1 -1
- package/dist/skills/ast-grep/install.ps1 +2 -2
- package/dist/skills/ast-grep/install.sh +1 -1
- package/dist/skills/ast-grep/references/install.md +2 -2
- package/dist/skills/ast-grep/tests/smoke.sh +1 -1
- package/dist/skills/coding-agent-sessions/SKILL.md +4 -3
- package/dist/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/aside_scanner.py +140 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +3 -0
- package/dist/skills/data-scientist/SKILL.md +243 -0
- package/dist/skills/data-scientist/references/common-scenarios.md +176 -0
- package/dist/skills/data-scientist/references/execution-templates.md +197 -0
- package/dist/skills/data-scientist/references/integration-patterns.md +153 -0
- package/dist/skills/data-scientist/references/performance-benchmarks.md +37 -0
- package/dist/skills/data-scientist/references/uv-setup.md +78 -0
- package/dist/skills/data-scientist/scripts/quick-query.py +111 -0
- package/dist/skills/data-scientist/scripts/setup-uv.ps1 +53 -0
- package/dist/skills/data-scientist/scripts/setup-uv.sh +60 -0
- package/dist/skills/debugging/SKILL.md +1 -1
- package/dist/skills/programming/SKILL.md +1 -2
- package/dist/skills/start-work/SKILL.md +54 -9
- package/dist/skills/ultimate-browsing/SKILL.md +2 -2
- package/dist/skills/ultimate-browsing/engine/__main__.py +8 -1
- package/dist/skills/ultimate-browsing/engine/bias_check.py +11 -0
- package/dist/skills/ultimate-browsing/engine/fetch_chain.py +90 -52
- package/dist/skills/ultimate-browsing/engine/result_schema.py +10 -1
- package/dist/skills/ultimate-browsing/engine/surrogate.py +214 -0
- package/dist/skills/ultimate-browsing/engine/surrogates.yaml +60 -0
- package/dist/skills/ultimate-browsing/engine/tests/fixtures/amp_redirect_stub.html +7 -0
- package/dist/skills/ultimate-browsing/engine/tests/fixtures/search_interstitial.html +19 -0
- package/dist/skills/ultimate-browsing/engine/tests/fixtures/wayback_available.json +1 -0
- package/dist/skills/ultimate-browsing/engine/tests/fixtures/wayback_snapshot.html +1128 -0
- package/dist/skills/ultimate-browsing/engine/tests/test_surrogate.py +252 -0
- package/dist/skills/ultimate-browsing/engine/tests/test_surrogate_validators.py +78 -0
- package/dist/skills/ultimate-browsing/engine/validators.py +46 -0
- package/dist/skills/ultimate-browsing/engine/waf_detector.py +1 -1
- package/dist/skills/ultimate-browsing/engine/waf_profiles.yaml +10 -5
- package/dist/skills/ultimate-browsing/references/agent-reach/social.md +1 -1
- package/dist/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
- package/dist/skills/ultimate-browsing/references/insane-search/README.md +4 -4
- package/dist/skills/ultimate-browsing/references/insane-search/cache-archive.md +51 -50
- package/dist/skills/ultimate-browsing/references/insane-search/fallback.md +1 -1
- package/dist/skills/ultimate-browsing/references/insane-search/jina.md +8 -2
- package/dist/skills/ultimate-browsing/references/insane-search/naver.md +1 -1
- package/dist/skills/ultimate-browsing/references/insane-search/twitter.md +3 -3
- package/dist/skills/ulw-plan/SKILL.md +2 -2
- package/dist/skills/ulw-plan/references/full-workflow.md +3 -3
- package/dist/skills/ulw-plan/scripts/scaffold-plan.mjs +1 -1
- package/dist/skills/ulw-research/SKILL.md +128 -12
- package/dist/tools/delegate-task/builtin-categories.d.ts +1 -0
- package/dist/tools/delegate-task/builtin-category-definition.d.ts +1 -0
- package/dist/tools/delegate-task/constants.d.ts +1 -1
- package/dist/tui.js +1271 -1108
- package/docs/reference/web-terminal-visual-qa.md +1 -1
- package/package.json +27 -19
- package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +2 -2
- package/packages/lsp-core/src/lsp/connection.ts +1 -1
- package/packages/lsp-daemon/dist/cli.js +27 -13
- package/packages/lsp-daemon/dist/client.js +49 -35
- package/packages/lsp-daemon/dist/ensure-daemon.d.ts +1 -0
- package/packages/lsp-daemon/dist/ensure-daemon.js +18 -5
- package/packages/lsp-daemon/dist/index.js +34 -20
- package/packages/lsp-tools-mcp/dist/cli.js +1 -1
- package/packages/lsp-tools-mcp/dist/lsp/manager.js +1 -1
- package/packages/lsp-tools-mcp/dist/mcp.js +1 -1
- package/packages/lsp-tools-mcp/dist/tools.js +1 -1
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +289 -95
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/src/setup.ts +7 -7
- package/packages/omo-codex/plugin/components/bootstrap/src/worker.ts +3 -0
- package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +385 -64
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +336 -47
- package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
- package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +6 -0
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +56 -42
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/dist/cli.js +1 -1
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/AGENTS.md +1 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/README.md +5 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +2 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/cli.js +18 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/src/codex-hook.ts +21 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +105 -0
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/CHANGELOG.md +2 -0
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-code-reviewer.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-qa-executor.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-high.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-low.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-medium.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/directive.md +3 -2
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +3 -2
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +3 -3
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/scripts/scaffold-plan.mjs +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/CHANGELOG.md +2 -0
- package/packages/omo-codex/plugin/components/ulw-loop/README.md +11 -11
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +3 -2
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +9 -9
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-steering.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +66 -66
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-hook.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/steering.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +3 -3
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +22 -25
- package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-reconciliation.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +9 -9
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-steering.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/plan-crud.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/plan-io.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/steering.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-commands.test.ts +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-helpers.test.ts +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-steering-kind-guidance.test.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/codex-hook.test.ts +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/quality-gate-builder.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +5 -5
- package/packages/omo-codex/plugin/components/ulw-loop/test/plan-io.test.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-roles.test.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/steering.test.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/package-lock.json +13 -13
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +8 -2
- package/packages/omo-codex/plugin/skills/ast-grep/SOURCE +1 -1
- package/packages/omo-codex/plugin/skills/ast-grep/install.ps1 +2 -2
- package/packages/omo-codex/plugin/skills/ast-grep/install.sh +1 -1
- package/packages/omo-codex/plugin/skills/ast-grep/references/install.md +2 -2
- package/packages/omo-codex/plugin/skills/ast-grep/tests/smoke.sh +1 -1
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +4 -3
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/aside_scanner.py +140 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +3 -0
- package/packages/omo-codex/plugin/skills/data-scientist/SKILL.md +243 -0
- package/packages/omo-codex/plugin/skills/data-scientist/agents/openai.yaml +2 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/common-scenarios.md +176 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/execution-templates.md +197 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/integration-patterns.md +153 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/performance-benchmarks.md +37 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/uv-setup.md +78 -0
- package/packages/omo-codex/plugin/skills/data-scientist/scripts/quick-query.py +111 -0
- package/packages/omo-codex/plugin/skills/data-scientist/scripts/setup-uv.ps1 +53 -0
- package/packages/omo-codex/plugin/skills/data-scientist/scripts/setup-uv.sh +60 -0
- package/packages/omo-codex/plugin/skills/debugging/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/programming/SKILL.md +1 -2
- package/packages/omo-codex/plugin/skills/start-work/SKILL.md +54 -9
- package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +2 -2
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/__main__.py +8 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/bias_check.py +11 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/fetch_chain.py +90 -52
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/result_schema.py +10 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/surrogate.py +214 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/surrogates.yaml +60 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/amp_redirect_stub.html +7 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/search_interstitial.html +19 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/wayback_available.json +1 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/wayback_snapshot.html +1128 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_surrogate.py +252 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_surrogate_validators.py +78 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/validators.py +46 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/waf_detector.py +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/waf_profiles.yaml +10 -5
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/agent-reach/social.md +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/README.md +4 -4
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/cache-archive.md +51 -50
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/fallback.md +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/jina.md +8 -2
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/naver.md +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/twitter.md +3 -3
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +3 -2
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +3 -3
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +22 -25
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +2 -2
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +3 -3
- package/packages/omo-codex/plugin/skills/ulw-plan/scripts/scaffold-plan.mjs +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +127 -12
- package/packages/omo-codex/plugin/test/bootstrap-binlinks.test.mjs +12 -12
- package/packages/omo-codex/plugin/test/bootstrap-orchestration.test.mjs +36 -4
- package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +1 -1
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +9 -2
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +12 -0
- package/packages/omo-codex/scripts/install-bin-links.test.mjs +56 -2
- package/packages/omo-codex/scripts/install-delegated-command.test.mjs +6 -6
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +138 -65
- package/packages/omo-codex/scripts/install-local-entrypoint.test.mjs +4 -4
- package/packages/omo-codex/scripts/install-local.test.mjs +5 -2
- package/packages/shared-skills/index.mjs +19 -1
- package/packages/shared-skills/skills/ast-grep/SOURCE +1 -1
- package/packages/shared-skills/skills/ast-grep/install.ps1 +2 -2
- package/packages/shared-skills/skills/ast-grep/install.sh +1 -1
- package/packages/shared-skills/skills/ast-grep/references/install.md +2 -2
- package/packages/shared-skills/skills/ast-grep/tests/smoke.sh +1 -1
- package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +4 -3
- package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/aside_scanner.py +140 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +3 -0
- package/packages/shared-skills/skills/data-scientist/SKILL.md +243 -0
- package/packages/shared-skills/skills/data-scientist/references/common-scenarios.md +176 -0
- package/packages/shared-skills/skills/data-scientist/references/execution-templates.md +197 -0
- package/packages/shared-skills/skills/data-scientist/references/integration-patterns.md +153 -0
- package/packages/shared-skills/skills/data-scientist/references/performance-benchmarks.md +37 -0
- package/packages/shared-skills/skills/data-scientist/references/uv-setup.md +78 -0
- package/packages/shared-skills/skills/data-scientist/scripts/quick-query.py +111 -0
- package/packages/shared-skills/skills/data-scientist/scripts/setup-uv.ps1 +53 -0
- package/packages/shared-skills/skills/data-scientist/scripts/setup-uv.sh +60 -0
- package/packages/shared-skills/skills/debugging/SKILL.md +1 -1
- package/packages/shared-skills/skills/programming/SKILL.md +1 -2
- package/packages/shared-skills/skills/start-work/SKILL.md +54 -9
- package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +2 -2
- package/packages/shared-skills/skills/ultimate-browsing/engine/__main__.py +8 -1
- package/packages/shared-skills/skills/ultimate-browsing/engine/bias_check.py +11 -0
- package/packages/shared-skills/skills/ultimate-browsing/engine/fetch_chain.py +90 -52
- package/packages/shared-skills/skills/ultimate-browsing/engine/result_schema.py +10 -1
- package/packages/shared-skills/skills/ultimate-browsing/engine/surrogate.py +214 -0
- package/packages/shared-skills/skills/ultimate-browsing/engine/surrogates.yaml +60 -0
- package/packages/shared-skills/skills/ultimate-browsing/engine/tests/fixtures/amp_redirect_stub.html +7 -0
- package/packages/shared-skills/skills/ultimate-browsing/engine/tests/fixtures/search_interstitial.html +19 -0
- package/packages/shared-skills/skills/ultimate-browsing/engine/tests/fixtures/wayback_available.json +1 -0
- package/packages/shared-skills/skills/ultimate-browsing/engine/tests/fixtures/wayback_snapshot.html +1128 -0
- package/packages/shared-skills/skills/ultimate-browsing/engine/tests/test_surrogate.py +252 -0
- package/packages/shared-skills/skills/ultimate-browsing/engine/tests/test_surrogate_validators.py +78 -0
- package/packages/shared-skills/skills/ultimate-browsing/engine/validators.py +46 -0
- package/packages/shared-skills/skills/ultimate-browsing/engine/waf_detector.py +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/engine/waf_profiles.yaml +10 -5
- package/packages/shared-skills/skills/ultimate-browsing/references/agent-reach/social.md +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +13 -11
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/README.md +4 -4
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/cache-archive.md +51 -50
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/fallback.md +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/jina.md +8 -2
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/naver.md +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/twitter.md +3 -3
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +2 -2
- package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +3 -3
- package/packages/shared-skills/skills/ulw-plan/scripts/scaffold-plan.mjs +1 -1
- package/packages/shared-skills/skills/ulw-research/SKILL.md +128 -12
- package/postinstall.mjs +6 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
// omo-codex-install:7bc4b0f020f0a1b4448cc75385a7e3c60042e3b270e304d4c1a43a859e81a4c2:b6c36b51e1610bef51d65ec06f11860411fcf0c3bece75ba263c9495c8873cbf
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __returnValue = (v) => v;
|
|
4
5
|
function __exportSetter(name, newValue) {
|
|
@@ -96,20 +97,20 @@ var init_atomic_write = __esm(() => {
|
|
|
96
97
|
|
|
97
98
|
// packages/telemetry-core/src/activity-state.ts
|
|
98
99
|
import { existsSync as existsSync5, mkdirSync as mkdirSync2, readFileSync as readFileSync2 } from "node:fs";
|
|
99
|
-
import { basename as basename7, join as
|
|
100
|
+
import { basename as basename7, join as join34 } from "node:path";
|
|
100
101
|
function resolveTelemetryStateDir(product, options = {}) {
|
|
101
102
|
const dataDir = resolveXdgDataDir(product.cacheDirName, {
|
|
102
103
|
env: options.env,
|
|
103
104
|
osProvider: options.osProvider
|
|
104
105
|
});
|
|
105
|
-
const xdgStateDir = options.env?.XDG_DATA_HOME === undefined ? undefined :
|
|
106
|
+
const xdgStateDir = options.env?.XDG_DATA_HOME === undefined ? undefined : join34(options.env.XDG_DATA_HOME, product.cacheDirName);
|
|
106
107
|
if (dataDir === xdgStateDir || xdgStateDir === undefined && basename7(dataDir) === product.cacheDirName) {
|
|
107
108
|
return dataDir;
|
|
108
109
|
}
|
|
109
|
-
return
|
|
110
|
+
return join34(dataDir, product.cacheDirName);
|
|
110
111
|
}
|
|
111
112
|
function getTelemetryActivityStateFilePath(stateDir) {
|
|
112
|
-
return
|
|
113
|
+
return join34(stateDir, POSTHOG_ACTIVITY_STATE_FILE);
|
|
113
114
|
}
|
|
114
115
|
function getDailyActiveCaptureState(input) {
|
|
115
116
|
const state = readPostHogActivityState(input.stateDir, input.diagnostics);
|
|
@@ -180,9 +181,9 @@ var DEFAULT_POSTHOG_HOST = "https://us.i.posthog.com", DEFAULT_POSTHOG_API_KEY =
|
|
|
180
181
|
|
|
181
182
|
// packages/telemetry-core/src/diagnostics.ts
|
|
182
183
|
import { appendFileSync, existsSync as existsSync6, mkdirSync as mkdirSync3, readFileSync as readFileSync3 } from "node:fs";
|
|
183
|
-
import { join as
|
|
184
|
+
import { join as join35 } from "node:path";
|
|
184
185
|
function getTelemetryDiagnosticsFilePath(diagnosticsDir) {
|
|
185
|
-
return
|
|
186
|
+
return join35(diagnosticsDir, DIAGNOSTICS_FILE_NAME);
|
|
186
187
|
}
|
|
187
188
|
function writeTelemetryDiagnostic(input, options) {
|
|
188
189
|
const now = options.now ?? new Date;
|
|
@@ -5903,7 +5904,7 @@ var package_default;
|
|
|
5903
5904
|
var init_package = __esm(() => {
|
|
5904
5905
|
package_default = {
|
|
5905
5906
|
name: "@oh-my-opencode/omo-codex",
|
|
5906
|
-
version: "
|
|
5907
|
+
version: "5.0.0-beta.1",
|
|
5907
5908
|
type: "module",
|
|
5908
5909
|
private: true,
|
|
5909
5910
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -6122,8 +6123,8 @@ var init_telemetry = __esm(() => {
|
|
|
6122
6123
|
});
|
|
6123
6124
|
|
|
6124
6125
|
// packages/omo-codex/src/install/install-local-cli.ts
|
|
6125
|
-
import { readFile as
|
|
6126
|
-
import { dirname as dirname12, join as
|
|
6126
|
+
import { readFile as readFile23 } from "node:fs/promises";
|
|
6127
|
+
import { dirname as dirname12, join as join40, resolve as resolve10 } from "node:path";
|
|
6127
6128
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
6128
6129
|
|
|
6129
6130
|
// packages/utils/src/runtime/spawn.ts
|
|
@@ -6456,7 +6457,7 @@ var defaultRunCommand = async (command, args, options) => {
|
|
|
6456
6457
|
};
|
|
6457
6458
|
|
|
6458
6459
|
// packages/omo-codex/src/install/install-codex.ts
|
|
6459
|
-
import { join as
|
|
6460
|
+
import { join as join36, resolve as resolve9 } from "node:path";
|
|
6460
6461
|
import { existsSync as existsSync7 } from "node:fs";
|
|
6461
6462
|
import { homedir as homedir2 } from "node:os";
|
|
6462
6463
|
|
|
@@ -6627,6 +6628,7 @@ var LEGACY_CODEX_COMPONENT_BINS = [
|
|
|
6627
6628
|
{ name: "codex-telemetry", component: "telemetry" },
|
|
6628
6629
|
{ name: "codex-ultrawork", component: "ultrawork" }
|
|
6629
6630
|
];
|
|
6631
|
+
var LEGACY_CODEX_COMPONENT_BIN_NAMES = LEGACY_CODEX_COMPONENT_BINS.map((entry) => entry.name);
|
|
6630
6632
|
async function removeLegacyCodexComponentBins(binDir, platform) {
|
|
6631
6633
|
for (const entry of LEGACY_CODEX_COMPONENT_BINS) {
|
|
6632
6634
|
const linkPath = join3(binDir, platform === "win32" ? `${entry.name}.cmd` : entry.name);
|
|
@@ -6682,7 +6684,7 @@ function isNodeErrorWithCode2(error) {
|
|
|
6682
6684
|
// packages/omo-codex/src/install/codex-cache-runtime-wrapper.ts
|
|
6683
6685
|
import { join as join4 } from "node:path";
|
|
6684
6686
|
var RUNTIME_WRAPPER_MARKER = "OMO_GENERATED_RUNTIME_WRAPPER";
|
|
6685
|
-
function posixRuntimeWrapper(cliPath, codexHome, binDir, nodeCliPath) {
|
|
6687
|
+
function posixRuntimeWrapper(binName, cliPath, codexHome, binDir, nodeCliPath) {
|
|
6686
6688
|
const ulwLoopBin = toPosixPath(join4(binDir, "omo-ulw-loop"));
|
|
6687
6689
|
const nodeCli = escapePosixDoubleQuoted(toPosixPath(nodeCliPath));
|
|
6688
6690
|
const escapedCliPath = escapePosixDoubleQuoted(toPosixPath(cliPath));
|
|
@@ -6692,6 +6694,8 @@ function posixRuntimeWrapper(cliPath, codexHome, binDir, nodeCliPath) {
|
|
|
6692
6694
|
"#!/bin/sh",
|
|
6693
6695
|
`# ${RUNTIME_WRAPPER_MARKER}`,
|
|
6694
6696
|
`export CODEX_HOME="\${CODEX_HOME:-${escapedCodexHome}}"`,
|
|
6697
|
+
`export OMO_INVOCATION_NAME=${binName}`,
|
|
6698
|
+
"export OMO_EDITION=codex",
|
|
6695
6699
|
'if [ "$1" = "ulw-loop" ] && [ -x "' + escapedUlwLoopBin + '" ]; then',
|
|
6696
6700
|
" shift",
|
|
6697
6701
|
' exec "' + escapedUlwLoopBin + '" ulw-loop "$@"',
|
|
@@ -6715,11 +6719,11 @@ function posixRuntimeWrapper(cliPath, codexHome, binDir, nodeCliPath) {
|
|
|
6715
6719
|
` if [ -f "${nodeCli}" ] && command -v node >/dev/null 2>&1; then`,
|
|
6716
6720
|
` exec node "${nodeCli}" "$@"`,
|
|
6717
6721
|
" fi",
|
|
6718
|
-
` echo "
|
|
6722
|
+
` echo "${binName}: bun runtime not found (checked PATH, ~/.bun/bin, /opt/homebrew/bin, /usr/local/bin) and the node fallback CLI is missing at ${nodeCli}; install bun from https://bun.sh, or reinstall ${binName} and force the fallback with OMO_RUNTIME=node" >&2`,
|
|
6719
6723
|
" exit 127",
|
|
6720
6724
|
"fi",
|
|
6721
6725
|
`if [ ! -f "${escapedCliPath}" ]; then`,
|
|
6722
|
-
` echo "
|
|
6726
|
+
` echo "${binName}: runtime target missing at ${escapedCliPath}; reinstall with: npx --yes lazycodex-ai@latest install --no-tui" >&2`,
|
|
6723
6727
|
" exit 1",
|
|
6724
6728
|
"fi",
|
|
6725
6729
|
`exec "$BUN_BINARY" "${escapedCliPath}" "$@"`,
|
|
@@ -6727,12 +6731,14 @@ function posixRuntimeWrapper(cliPath, codexHome, binDir, nodeCliPath) {
|
|
|
6727
6731
|
].join(`
|
|
6728
6732
|
`);
|
|
6729
6733
|
}
|
|
6730
|
-
function windowsRuntimeWrapper(cliPath, codexHome, binDir, nodeCliPath) {
|
|
6734
|
+
function windowsRuntimeWrapper(binName, cliPath, codexHome, binDir, nodeCliPath) {
|
|
6731
6735
|
const ulwLoopBin = join4(binDir, "omo-ulw-loop.cmd");
|
|
6732
6736
|
return [
|
|
6733
6737
|
"@echo off",
|
|
6734
6738
|
`rem ${RUNTIME_WRAPPER_MARKER}`,
|
|
6735
6739
|
`if not defined CODEX_HOME set "CODEX_HOME=${codexHome}"`,
|
|
6740
|
+
`set "OMO_INVOCATION_NAME=${binName}"`,
|
|
6741
|
+
'set "OMO_EDITION=codex"',
|
|
6736
6742
|
...windowsNodeDiscoveryLines(),
|
|
6737
6743
|
`if "%~1"=="ulw-loop" if exist "${ulwLoopBin}" (`,
|
|
6738
6744
|
" shift /1",
|
|
@@ -6750,11 +6756,11 @@ function windowsRuntimeWrapper(cliPath, codexHome, binDir, nodeCliPath) {
|
|
|
6750
6756
|
` "%OMO_NODE_BINARY%" "${nodeCliPath}" %*`,
|
|
6751
6757
|
" exit /b %ERRORLEVEL%",
|
|
6752
6758
|
" )",
|
|
6753
|
-
` echo
|
|
6759
|
+
` echo ${binName}: bun runtime not found, no Node runtime was discovered from NODE_REPL_NODE_PATH or PATH, or the node fallback CLI is missing at ${nodeCliPath}; install bun from https://bun.sh or rerun LazyCodex install from Codex Desktop 1>&2`,
|
|
6754
6760
|
" exit /b 127",
|
|
6755
6761
|
")",
|
|
6756
6762
|
`if not exist "${cliPath}" (`,
|
|
6757
|
-
` echo
|
|
6763
|
+
` echo ${binName}: runtime target missing at ${cliPath}; reinstall with: npx --yes lazycodex-ai@latest install --no-tui 1>&2`,
|
|
6758
6764
|
" exit /b 1",
|
|
6759
6765
|
")",
|
|
6760
6766
|
`"%BUN_BINARY%" "${cliPath}" %*`,
|
|
@@ -6770,7 +6776,14 @@ function escapePosixDoubleQuoted(value) {
|
|
|
6770
6776
|
}
|
|
6771
6777
|
|
|
6772
6778
|
// packages/omo-codex/src/install/codex-cache-bins.ts
|
|
6773
|
-
var RESERVED_NESTED_BIN_NAMES = new Set([
|
|
6779
|
+
var RESERVED_NESTED_BIN_NAMES = new Set([
|
|
6780
|
+
"omo",
|
|
6781
|
+
"omo-agent-toolkit",
|
|
6782
|
+
"lazycodex",
|
|
6783
|
+
"lazycodex-ai",
|
|
6784
|
+
"oh-my-opencode",
|
|
6785
|
+
"oh-my-openagent"
|
|
6786
|
+
]);
|
|
6774
6787
|
async function linkCachedPluginBins(input) {
|
|
6775
6788
|
const binLinks = await discoverPackageBins(input.pluginRoot);
|
|
6776
6789
|
const platform = input.platform ?? process.platform;
|
|
@@ -6800,20 +6813,26 @@ async function removeCachedManagedNpmBinShims(pluginRoot) {
|
|
|
6800
6813
|
}
|
|
6801
6814
|
async function linkRootRuntimeBin(input) {
|
|
6802
6815
|
const cliPath = join5(input.repoRoot, "dist", "cli", "index.js");
|
|
6803
|
-
|
|
6816
|
+
const platform = input.platform ?? process.platform;
|
|
6817
|
+
const legacyPath = join5(input.binDir, platform === "win32" ? "omo.cmd" : "omo");
|
|
6818
|
+
if (!await isFile(cliPath)) {
|
|
6819
|
+
await removeGeneratedRuntimeWrapper(legacyPath);
|
|
6804
6820
|
return null;
|
|
6821
|
+
}
|
|
6822
|
+
const binName = "omo-agent-toolkit";
|
|
6805
6823
|
const nodeCliPath = join5(input.repoRoot, "dist", "cli-node", "index.js");
|
|
6806
|
-
const platform = input.platform ?? process.platform;
|
|
6807
6824
|
await mkdir(input.binDir, { recursive: true });
|
|
6808
6825
|
if (platform === "win32") {
|
|
6809
|
-
const linkPath2 = join5(input.binDir,
|
|
6810
|
-
await replaceRuntimeWrapper(linkPath2, windowsRuntimeWrapper(cliPath, input.codexHome, input.binDir, nodeCliPath));
|
|
6811
|
-
|
|
6826
|
+
const linkPath2 = join5(input.binDir, `${binName}.cmd`);
|
|
6827
|
+
await replaceRuntimeWrapper(linkPath2, windowsRuntimeWrapper(binName, cliPath, input.codexHome, input.binDir, nodeCliPath));
|
|
6828
|
+
await removeGeneratedRuntimeWrapper(legacyPath);
|
|
6829
|
+
return { name: binName, path: linkPath2, target: cliPath };
|
|
6812
6830
|
}
|
|
6813
|
-
const linkPath = join5(input.binDir,
|
|
6814
|
-
await replaceRuntimeWrapper(linkPath, posixRuntimeWrapper(cliPath, input.codexHome, input.binDir, nodeCliPath));
|
|
6831
|
+
const linkPath = join5(input.binDir, binName);
|
|
6832
|
+
await replaceRuntimeWrapper(linkPath, posixRuntimeWrapper(binName, cliPath, input.codexHome, input.binDir, nodeCliPath));
|
|
6815
6833
|
await chmod(linkPath, 493);
|
|
6816
|
-
|
|
6834
|
+
await removeGeneratedRuntimeWrapper(legacyPath);
|
|
6835
|
+
return { name: binName, path: linkPath, target: cliPath };
|
|
6817
6836
|
}
|
|
6818
6837
|
async function linkCachedPluginBin(binDir, link, platform) {
|
|
6819
6838
|
if (platform === "win32") {
|
|
@@ -6926,6 +6945,29 @@ async function replaceRuntimeWrapper(linkPath, content) {
|
|
|
6926
6945
|
await rm3(linkPath, { force: true });
|
|
6927
6946
|
await writeFile(linkPath, content);
|
|
6928
6947
|
}
|
|
6948
|
+
async function removeGeneratedRuntimeWrapper(path) {
|
|
6949
|
+
try {
|
|
6950
|
+
const entry = await lstat4(path);
|
|
6951
|
+
if (!entry.isFile() && !entry.isSymbolicLink())
|
|
6952
|
+
return;
|
|
6953
|
+
const content = await readGeneratedWrapperContent(path);
|
|
6954
|
+
if (content.includes(RUNTIME_WRAPPER_MARKER))
|
|
6955
|
+
await rm3(path, { force: true });
|
|
6956
|
+
} catch (error) {
|
|
6957
|
+
if (isNodeErrorWithCode(error) && error.code === "ENOENT")
|
|
6958
|
+
return;
|
|
6959
|
+
throw error;
|
|
6960
|
+
}
|
|
6961
|
+
}
|
|
6962
|
+
async function readGeneratedWrapperContent(path) {
|
|
6963
|
+
try {
|
|
6964
|
+
return await readFile3(path, "utf8");
|
|
6965
|
+
} catch (error) {
|
|
6966
|
+
if (isNodeErrorWithCode(error) && (error.code === "ENOENT" || error.code === "EISDIR"))
|
|
6967
|
+
return "";
|
|
6968
|
+
throw error;
|
|
6969
|
+
}
|
|
6970
|
+
}
|
|
6929
6971
|
async function existingNonRuntimeWrapper(path) {
|
|
6930
6972
|
try {
|
|
6931
6973
|
const stat3 = await lstat4(path);
|
|
@@ -8840,6 +8882,24 @@ function stripUnquotedInlineComment3(line) {
|
|
|
8840
8882
|
|
|
8841
8883
|
// packages/omo-codex/src/install/codex-config-reasoning.ts
|
|
8842
8884
|
var MANAGED_KEYS = ["model", "model_context_window", "model_reasoning_effort", "plan_mode_reasoning_effort"];
|
|
8885
|
+
var CODEX_REASONING_BY_UNIFIED_LEVEL = {
|
|
8886
|
+
off: "none",
|
|
8887
|
+
none: "none",
|
|
8888
|
+
minimal: "minimal",
|
|
8889
|
+
low: "low",
|
|
8890
|
+
medium: "medium",
|
|
8891
|
+
high: "high",
|
|
8892
|
+
xhigh: "xhigh",
|
|
8893
|
+
max: "max"
|
|
8894
|
+
};
|
|
8895
|
+
function applyReasoningOverride(catalog, reasoning) {
|
|
8896
|
+
if (reasoning === undefined)
|
|
8897
|
+
return catalog;
|
|
8898
|
+
const wireEffort = CODEX_REASONING_BY_UNIFIED_LEVEL[reasoning.trim().toLowerCase()];
|
|
8899
|
+
if (wireEffort === undefined)
|
|
8900
|
+
return catalog;
|
|
8901
|
+
return { ...catalog, current: { ...catalog.current, modelReasoningEffort: wireEffort } };
|
|
8902
|
+
}
|
|
8843
8903
|
function ensureCodexReasoningConfig(config, catalog) {
|
|
8844
8904
|
const current = readRootReasoningSettings(config);
|
|
8845
8905
|
if (Object.keys(current).length > 0 && !matchesProfile(current, catalog.current) && !catalog.managedProfiles.some((profile) => matchesProfile(current, profile))) {
|
|
@@ -9180,7 +9240,7 @@ async function updateCodexConfig(input) {
|
|
|
9180
9240
|
config = ensureFeatureEnabled(config, "plugin_hooks");
|
|
9181
9241
|
config = ensureFeatureEnabled(config, "multi_agent");
|
|
9182
9242
|
config = removeUnsupportedCodexMultiAgentModeConfig(config);
|
|
9183
|
-
config = ensureCodexReasoningConfig(config, await readCodexModelCatalog(input.repoRoot));
|
|
9243
|
+
config = ensureCodexReasoningConfig(config, applyReasoningOverride(await readCodexModelCatalog(input.repoRoot), input.reasoning));
|
|
9184
9244
|
config = ensureCodexMultiAgentV2Config(config, {
|
|
9185
9245
|
multiAgentVersion: resolveCodexMultiAgentVersion(config, input.configPath)
|
|
9186
9246
|
});
|
|
@@ -9369,7 +9429,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
9369
9429
|
"explorer",
|
|
9370
9430
|
[
|
|
9371
9431
|
{
|
|
9372
|
-
previous: { model: "gpt-5.
|
|
9432
|
+
previous: { model: "gpt-5.6-luna-fast", effort: "low" },
|
|
9373
9433
|
current: { model: "gpt-5.6-terra", effort: "medium" }
|
|
9374
9434
|
},
|
|
9375
9435
|
{
|
|
@@ -9382,7 +9442,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
9382
9442
|
"librarian",
|
|
9383
9443
|
[
|
|
9384
9444
|
{
|
|
9385
|
-
previous: { model: "gpt-5.
|
|
9445
|
+
previous: { model: "gpt-5.6-luna-fast", effort: "low" },
|
|
9386
9446
|
current: { model: "gpt-5.6-terra", effort: "medium" }
|
|
9387
9447
|
},
|
|
9388
9448
|
{
|
|
@@ -10664,9 +10724,18 @@ function resolveCodexInstallerBinDir(input) {
|
|
|
10664
10724
|
return resolve8(homeDir, ".local", "bin");
|
|
10665
10725
|
}
|
|
10666
10726
|
|
|
10667
|
-
// packages/omo-codex/src/install/codex-
|
|
10668
|
-
import { readFile as readFile20, writeFile as writeFile11 } from "node:fs/promises";
|
|
10727
|
+
// packages/omo-codex/src/install/codex-installed-bin-dir.ts
|
|
10728
|
+
import { readFile as readFile20, readdir as readdir11, writeFile as writeFile11 } from "node:fs/promises";
|
|
10669
10729
|
import { join as join29 } from "node:path";
|
|
10730
|
+
var INSTALLED_BIN_DIR_MANIFEST = ".installed-bin-dir.json";
|
|
10731
|
+
async function writeInstalledCodexBinDir(input) {
|
|
10732
|
+
await writeFile11(join29(input.pluginRoot, INSTALLED_BIN_DIR_MANIFEST), `${JSON.stringify({ binDir: input.binDir }, null, 2)}
|
|
10733
|
+
`);
|
|
10734
|
+
}
|
|
10735
|
+
|
|
10736
|
+
// packages/omo-codex/src/install/codex-git-bash-hooks.ts
|
|
10737
|
+
import { readFile as readFile21, writeFile as writeFile12 } from "node:fs/promises";
|
|
10738
|
+
import { join as join30 } from "node:path";
|
|
10670
10739
|
var WINDOWS_ONLY_GIT_BASH_HOOKS = new Set([
|
|
10671
10740
|
"./hooks/pre-tool-use-recommending-git-bash-mcp.json",
|
|
10672
10741
|
"./hooks/post-compact-resetting-git-bash-mcp-reminder.json"
|
|
@@ -10674,22 +10743,22 @@ var WINDOWS_ONLY_GIT_BASH_HOOKS = new Set([
|
|
|
10674
10743
|
async function removeGitBashHooksOffWindows(input) {
|
|
10675
10744
|
if (input.platform === "win32")
|
|
10676
10745
|
return;
|
|
10677
|
-
const manifestPath =
|
|
10678
|
-
const parsed = JSON.parse(await
|
|
10746
|
+
const manifestPath = join30(input.pluginRoot, ".codex-plugin", "plugin.json");
|
|
10747
|
+
const parsed = JSON.parse(await readFile21(manifestPath, "utf8"));
|
|
10679
10748
|
if (!isPlainRecord(parsed) || !Array.isArray(parsed.hooks))
|
|
10680
10749
|
return;
|
|
10681
10750
|
const hooks = parsed.hooks.filter((hook) => typeof hook !== "string" || !WINDOWS_ONLY_GIT_BASH_HOOKS.has(hook));
|
|
10682
10751
|
if (hooks.length === parsed.hooks.length)
|
|
10683
10752
|
return;
|
|
10684
|
-
await
|
|
10753
|
+
await writeFile12(manifestPath, `${JSON.stringify({ ...parsed, hooks }, null, "\t")}
|
|
10685
10754
|
`);
|
|
10686
10755
|
}
|
|
10687
10756
|
|
|
10688
10757
|
// packages/omo-codex/src/install/omo-sot-migration.ts
|
|
10689
|
-
import { join as
|
|
10758
|
+
import { join as join31 } from "node:path";
|
|
10690
10759
|
async function seedAndMigrateOmoSot(input) {
|
|
10691
10760
|
const commandEnv = { ...input.env };
|
|
10692
|
-
const scriptPath =
|
|
10761
|
+
const scriptPath = join31(input.repoRoot, "packages", "omo-codex", "plugin", "scripts", "migrate-omo-sot.mjs");
|
|
10693
10762
|
try {
|
|
10694
10763
|
await input.runCommand(process.execPath, [scriptPath, "--seed"], {
|
|
10695
10764
|
cwd: input.repoRoot,
|
|
@@ -10703,6 +10772,11 @@ async function seedAndMigrateOmoSot(input) {
|
|
|
10703
10772
|
}
|
|
10704
10773
|
|
|
10705
10774
|
// packages/omo-codex/src/install/install-ast-grep-sg.ts
|
|
10775
|
+
import { join as join33 } from "node:path";
|
|
10776
|
+
|
|
10777
|
+
// packages/utils/src/ast-grep/install-script.ts
|
|
10778
|
+
import { spawn as spawn2 } from "node:child_process";
|
|
10779
|
+
import { existsSync as existsSync4 } from "node:fs";
|
|
10706
10780
|
import { join as join32 } from "node:path";
|
|
10707
10781
|
|
|
10708
10782
|
// packages/utils/src/ast-grep/sg-manifest.ts
|
|
@@ -10721,13 +10795,10 @@ function runtimeSlug(platform = process.platform, arch = process.arch) {
|
|
|
10721
10795
|
}
|
|
10722
10796
|
|
|
10723
10797
|
// packages/utils/src/ast-grep/install-script.ts
|
|
10724
|
-
import { spawn as spawn2 } from "node:child_process";
|
|
10725
|
-
import { existsSync as existsSync4 } from "node:fs";
|
|
10726
|
-
import { join as join31 } from "node:path";
|
|
10727
10798
|
var AST_GREP_BIN_DIR_ENV_KEY = "OMO_AST_GREP_BIN_DIR";
|
|
10728
10799
|
var AST_GREP_INSTALL_TIMEOUT_MS = 30000;
|
|
10729
10800
|
function astGrepRuntimeDir(baseDir, platform = process.platform, arch = process.arch) {
|
|
10730
|
-
return
|
|
10801
|
+
return join32(baseDir, "runtime", "ast-grep", runtimeSlug(platform, arch));
|
|
10731
10802
|
}
|
|
10732
10803
|
function isMissingExecutable(error) {
|
|
10733
10804
|
if (!("code" in error))
|
|
@@ -10765,7 +10836,7 @@ function defaultSpawnProcess(command, args, options) {
|
|
|
10765
10836
|
};
|
|
10766
10837
|
}
|
|
10767
10838
|
function scriptPathForPlatform(skillDir, platform) {
|
|
10768
|
-
return
|
|
10839
|
+
return join32(skillDir, platform === "win32" ? "install.ps1" : "install.sh");
|
|
10769
10840
|
}
|
|
10770
10841
|
function invocationsForPlatform(scriptPath, platform) {
|
|
10771
10842
|
if (platform !== "win32")
|
|
@@ -10837,7 +10908,7 @@ async function installAstGrepForCodex(options) {
|
|
|
10837
10908
|
return;
|
|
10838
10909
|
const platform = options.platform ?? process.platform;
|
|
10839
10910
|
const targetDir = astGrepRuntimeDir(options.codexHome, platform, options.arch ?? process.arch);
|
|
10840
|
-
const skillDir =
|
|
10911
|
+
const skillDir = join33(plugin.path, "skills", "ast-grep");
|
|
10841
10912
|
const installer = options.installer ?? runAstGrepSkillInstall;
|
|
10842
10913
|
try {
|
|
10843
10914
|
const result = await installer({ platform, skillDir, targetDir });
|
|
@@ -10870,7 +10941,7 @@ async function runCodexInstaller(options = {}) {
|
|
|
10870
10941
|
const env2 = options.env ?? process.env;
|
|
10871
10942
|
const platform = options.platform ?? process.platform;
|
|
10872
10943
|
const repoRoot = resolve9(options.repoRoot ?? findRepoRoot({ importerDir: import.meta.dir, env: env2 }));
|
|
10873
|
-
const codexHome = resolve9(options.codexHome ?? env2.CODEX_HOME ??
|
|
10944
|
+
const codexHome = resolve9(options.codexHome ?? env2.CODEX_HOME ?? join36(homedir2(), ".codex"));
|
|
10874
10945
|
const projectDirectory = resolve9(options.projectDirectory ?? env2.OMO_CODEX_PROJECT ?? process.cwd());
|
|
10875
10946
|
const binDir = resolveCodexInstallerBinDir({ binDir: options.binDir, codexHome, env: env2 });
|
|
10876
10947
|
const runCommand = options.runCommand ?? defaultRunCommand;
|
|
@@ -10887,9 +10958,9 @@ async function runCodexInstaller(options = {}) {
|
|
|
10887
10958
|
if (!gitBashResolution.found) {
|
|
10888
10959
|
throw new Error(gitBashResolution.installHint);
|
|
10889
10960
|
}
|
|
10890
|
-
const codexPackageRoot =
|
|
10961
|
+
const codexPackageRoot = join36(repoRoot, "packages", "omo-codex");
|
|
10891
10962
|
const marketplace = await readMarketplace(repoRoot, {
|
|
10892
|
-
marketplacePath:
|
|
10963
|
+
marketplacePath: join36(codexPackageRoot, "marketplace.json")
|
|
10893
10964
|
});
|
|
10894
10965
|
const distributionManifest = await readDistributionManifest(repoRoot);
|
|
10895
10966
|
const installed = [];
|
|
@@ -10923,6 +10994,7 @@ async function runCodexInstaller(options = {}) {
|
|
|
10923
10994
|
if (marketplace.name === "sisyphuslabs" && plugin.name === "omo") {
|
|
10924
10995
|
await stampLazyCodexPluginVersion({ pluginRoot: plugin.path, version: version2 });
|
|
10925
10996
|
await writeLazyCodexInstallSnapshot({ pluginRoot: plugin.path, distributionManifest });
|
|
10997
|
+
await writeInstalledCodexBinDir({ pluginRoot: plugin.path, binDir });
|
|
10926
10998
|
await removeGitBashHooksOffWindows({ platform, pluginRoot: plugin.path });
|
|
10927
10999
|
}
|
|
10928
11000
|
const links = await linkCachedPluginBins({ binDir, pluginRoot: plugin.path, platform });
|
|
@@ -10934,7 +11006,7 @@ async function runCodexInstaller(options = {}) {
|
|
|
10934
11006
|
if (runtimeLink !== null)
|
|
10935
11007
|
log(`Linked ${runtimeLink.name} -> ${runtimeLink.target}`);
|
|
10936
11008
|
else
|
|
10937
|
-
log(`Warning: skipped the omo runtime wrapper because ${
|
|
11009
|
+
log(`Warning: skipped the omo-agent-toolkit runtime wrapper because ${join36(repoRoot, "dist", "cli", "index.js")} is missing; omo-agent-toolkit ulw-loop commands will be unavailable until a package shipping dist/cli is installed`);
|
|
10938
11010
|
}
|
|
10939
11011
|
pluginSources.push({ name: entry.name, sourcePath });
|
|
10940
11012
|
installed.push(plugin);
|
|
@@ -10997,13 +11069,13 @@ async function runCodexInstaller(options = {}) {
|
|
|
10997
11069
|
continue;
|
|
10998
11070
|
log(`Warning: deferred legacy Codex LSP daemon cleanup for v${cleanup.version}: ${cleanup.reason}`);
|
|
10999
11071
|
}
|
|
11000
|
-
const marketplaceRoot =
|
|
11072
|
+
const marketplaceRoot = join36(codexHome, "plugins", "cache", marketplace.name);
|
|
11001
11073
|
await writeCachedMarketplaceManifest({
|
|
11002
11074
|
marketplaceName: marketplace.name,
|
|
11003
11075
|
marketplaceRoot,
|
|
11004
11076
|
plugins: installed
|
|
11005
11077
|
});
|
|
11006
|
-
const configPath =
|
|
11078
|
+
const configPath = join36(codexHome, "config.toml");
|
|
11007
11079
|
await updateCodexConfig({
|
|
11008
11080
|
configPath,
|
|
11009
11081
|
repoRoot: codexPackageRoot,
|
|
@@ -11015,7 +11087,8 @@ async function runCodexInstaller(options = {}) {
|
|
|
11015
11087
|
gitBashEnabled: platform === "win32" && gitBashResolution.found,
|
|
11016
11088
|
trustedHookStates,
|
|
11017
11089
|
agentConfigs: [...agentConfigs.values()].sort((left, right) => left.name.localeCompare(right.name)),
|
|
11018
|
-
autonomousPermissions: options.autonomousPermissions !== false
|
|
11090
|
+
autonomousPermissions: options.autonomousPermissions !== false,
|
|
11091
|
+
...options.reasoning === undefined ? {} : { reasoning: options.reasoning }
|
|
11019
11092
|
});
|
|
11020
11093
|
await seedAndMigrateOmoSot({ env: env2, log, repoRoot, runCommand });
|
|
11021
11094
|
const projectCleanup = await repairProjectLocalCodexArtifactsBestEffort({
|
|
@@ -11063,7 +11136,7 @@ function findRepoRootFromImporter(importerDir) {
|
|
|
11063
11136
|
for (let depth = 0;depth <= 7; depth += 1) {
|
|
11064
11137
|
if (isRepoRootWithCodexPlugin(current))
|
|
11065
11138
|
return current;
|
|
11066
|
-
for (const wrapperPackageRoot of [
|
|
11139
|
+
for (const wrapperPackageRoot of [join36(current, "node_modules", "oh-my-openagent"), join36(current, "oh-my-openagent")]) {
|
|
11067
11140
|
if (isRepoRootWithCodexPlugin(wrapperPackageRoot))
|
|
11068
11141
|
return wrapperPackageRoot;
|
|
11069
11142
|
}
|
|
@@ -11081,7 +11154,7 @@ function findRepoRoot(input) {
|
|
|
11081
11154
|
return findRepoRootFromImporter(input.importerDir);
|
|
11082
11155
|
}
|
|
11083
11156
|
function isRepoRootWithCodexPlugin(repoRoot) {
|
|
11084
|
-
return existsSync7(
|
|
11157
|
+
return existsSync7(join36(repoRoot, "packages", "omo-codex", "plugin", ".codex-plugin", "plugin.json"));
|
|
11085
11158
|
}
|
|
11086
11159
|
function codexMarketplaceSource(marketplaceRoot) {
|
|
11087
11160
|
return { sourceType: "local", source: marketplaceRoot };
|
|
@@ -11268,7 +11341,7 @@ async function runDelegatedOmoCommand(parsed, options) {
|
|
|
11268
11341
|
options.log(formatShellCommand(invocation.command, invocation.args));
|
|
11269
11342
|
return;
|
|
11270
11343
|
}
|
|
11271
|
-
const env2 = invocation.delegatesToOmo ? { ...process.env, OMO_INVOCATION_NAME: "omo", ...invocation.env } : { ...process.env, ...invocation.env };
|
|
11344
|
+
const env2 = invocation.delegatesToOmo ? { ...process.env, OMO_INVOCATION_NAME: "omo-agent-toolkit", ...invocation.env } : { ...process.env, ...invocation.env };
|
|
11272
11345
|
await options.runCommand(invocation.command, invocation.args, { cwd: options.cwd, env: env2 });
|
|
11273
11346
|
}
|
|
11274
11347
|
function buildDelegatedOmoInvocation(parsed) {
|
|
@@ -11288,7 +11361,7 @@ function buildDelegatedOmoInvocation(parsed) {
|
|
|
11288
11361
|
args2.push(`--repo-root=${parsed.repoRoot}`);
|
|
11289
11362
|
return { command: "npx", args: args2, delegatesToOmo: true };
|
|
11290
11363
|
}
|
|
11291
|
-
const args = ["--yes", "--package", "oh-my-openagent", "omo", parsed.command];
|
|
11364
|
+
const args = ["--yes", "--package", "oh-my-openagent", "omo-agent-toolkit", parsed.command];
|
|
11292
11365
|
if (parsed.command === "cleanup") {
|
|
11293
11366
|
args.push("--platform=codex", ...parsed.args);
|
|
11294
11367
|
} else {
|
|
@@ -11394,12 +11467,12 @@ function shellQuote(value) {
|
|
|
11394
11467
|
// packages/omo-codex/src/install/lazycodex-manual-update.ts
|
|
11395
11468
|
import { spawn as spawn3, spawnSync as spawnSync3 } from "node:child_process";
|
|
11396
11469
|
import { readFileSync as readFileSync4 } from "node:fs";
|
|
11397
|
-
import { dirname as dirname11, join as
|
|
11470
|
+
import { dirname as dirname11, join as join38 } from "node:path";
|
|
11398
11471
|
import { createInterface as createInterface2 } from "node:readline/promises";
|
|
11399
11472
|
import { fileURLToPath } from "node:url";
|
|
11400
11473
|
|
|
11401
11474
|
// packages/omo-codex/src/install/lazycodex-bun-global-paths.ts
|
|
11402
|
-
import { join as
|
|
11475
|
+
import { join as join37 } from "node:path";
|
|
11403
11476
|
function isBunGlobalEntrypointPath(invokedPath, env2) {
|
|
11404
11477
|
if (typeof invokedPath !== "string" || invokedPath.trim().length === 0)
|
|
11405
11478
|
return false;
|
|
@@ -11410,8 +11483,8 @@ function resolveBunGlobalRoots(env2) {
|
|
|
11410
11483
|
const bunInstallRoot = env2.BUN_INSTALL?.trim();
|
|
11411
11484
|
const homeRoot = env2.HOME?.trim();
|
|
11412
11485
|
return [
|
|
11413
|
-
...bunInstallRoot ? [
|
|
11414
|
-
...homeRoot ? [
|
|
11486
|
+
...bunInstallRoot ? [join37(bunInstallRoot, "bin"), join37(bunInstallRoot, "install", "global", "node_modules")] : [],
|
|
11487
|
+
...homeRoot ? [join37(homeRoot, ".bun", "bin"), join37(homeRoot, ".bun", "install", "global", "node_modules")] : []
|
|
11415
11488
|
].map(normalizePathForPrefix);
|
|
11416
11489
|
}
|
|
11417
11490
|
function normalizePathForPrefix(path2) {
|
|
@@ -11504,7 +11577,7 @@ function resolveCurrentVersion(env2) {
|
|
|
11504
11577
|
if (env2.LAZYCODEX_CURRENT_VERSION?.trim())
|
|
11505
11578
|
return env2.LAZYCODEX_CURRENT_VERSION.trim();
|
|
11506
11579
|
const pluginRoot = dirname11(dirname11(fileURLToPath(import.meta.url)));
|
|
11507
|
-
return readVersionManifest(resolveInstalledVersionPath(env2, pluginRoot)) ?? readVersionManifest(
|
|
11580
|
+
return readVersionManifest(resolveInstalledVersionPath(env2, pluginRoot)) ?? readVersionManifest(join38(pluginRoot, "..", "..", "..", "package.json")) ?? readVersionManifest(join38(pluginRoot, ".codex-plugin", "plugin.json"));
|
|
11508
11581
|
}
|
|
11509
11582
|
function resolveLatestVersion(env2) {
|
|
11510
11583
|
if (env2.LAZYCODEX_LATEST_VERSION?.trim())
|
|
@@ -11620,7 +11693,7 @@ function compareVersions(left, right) {
|
|
|
11620
11693
|
function resolveInstalledVersionPath(env2, pluginRoot) {
|
|
11621
11694
|
if (env2.LAZYCODEX_INSTALLED_VERSION_FILE?.trim())
|
|
11622
11695
|
return env2.LAZYCODEX_INSTALLED_VERSION_FILE.trim();
|
|
11623
|
-
return
|
|
11696
|
+
return join38(pluginRoot, INSTALLED_VERSION_FILE);
|
|
11624
11697
|
}
|
|
11625
11698
|
function readVersionManifest(path2) {
|
|
11626
11699
|
try {
|
|
@@ -11636,15 +11709,15 @@ function readVersionManifest(path2) {
|
|
|
11636
11709
|
}
|
|
11637
11710
|
}
|
|
11638
11711
|
// packages/omo-codex/src/install/codex-git-bash-mcp-env.ts
|
|
11639
|
-
import { readFile as
|
|
11640
|
-
import { join as
|
|
11712
|
+
import { readFile as readFile22, writeFile as writeFile13 } from "node:fs/promises";
|
|
11713
|
+
import { join as join39 } from "node:path";
|
|
11641
11714
|
var GIT_BASH_ENV_KEY2 = "OMO_CODEX_GIT_BASH_PATH";
|
|
11642
11715
|
var CODEGRAPH_RELATIVE_ARGS2 = new Set(["components/codegraph/dist/serve.js", "./components/codegraph/dist/serve.js"]);
|
|
11643
11716
|
async function stampGitBashMcpEnv(input) {
|
|
11644
|
-
const manifestPath =
|
|
11717
|
+
const manifestPath = join39(input.pluginRoot, ".mcp.json");
|
|
11645
11718
|
if (!await fileExistsStrict(manifestPath))
|
|
11646
11719
|
return false;
|
|
11647
|
-
const parsed = JSON.parse(await
|
|
11720
|
+
const parsed = JSON.parse(await readFile22(manifestPath, "utf8"));
|
|
11648
11721
|
if (!isPlainRecord(parsed) || !isPlainRecord(parsed["mcpServers"]))
|
|
11649
11722
|
return false;
|
|
11650
11723
|
let changed = stampCodegraphMcpPath(parsed["mcpServers"], input.pluginRoot);
|
|
@@ -11662,7 +11735,7 @@ async function stampGitBashMcpEnv(input) {
|
|
|
11662
11735
|
}
|
|
11663
11736
|
if (!changed)
|
|
11664
11737
|
return false;
|
|
11665
|
-
await
|
|
11738
|
+
await writeFile13(manifestPath, `${JSON.stringify(parsed, null, "\t")}
|
|
11666
11739
|
`);
|
|
11667
11740
|
return true;
|
|
11668
11741
|
}
|
|
@@ -11674,7 +11747,7 @@ function stampCodegraphMcpPath(mcpServers, pluginRoot) {
|
|
|
11674
11747
|
const entrypoint = args[0];
|
|
11675
11748
|
if (typeof entrypoint !== "string" || !CODEGRAPH_RELATIVE_ARGS2.has(entrypoint))
|
|
11676
11749
|
return false;
|
|
11677
|
-
codegraphServer["args"] = [
|
|
11750
|
+
codegraphServer["args"] = [join39(pluginRoot, "components", "codegraph", "dist", "serve.js"), ...args.slice(1)];
|
|
11678
11751
|
return true;
|
|
11679
11752
|
}
|
|
11680
11753
|
|
|
@@ -11699,7 +11772,7 @@ async function runLazyCodexInstallLocalCli(input) {
|
|
|
11699
11772
|
return 0;
|
|
11700
11773
|
}
|
|
11701
11774
|
if (parsed.kind === "version") {
|
|
11702
|
-
const packageJson = JSON.parse(await
|
|
11775
|
+
const packageJson = JSON.parse(await readFile23(join40(input.defaultRepoRoot, "package.json"), "utf8"));
|
|
11703
11776
|
const version2 = typeof packageJson.version === "string" ? packageJson.version : "unknown";
|
|
11704
11777
|
input.log(`lazycodex-ai ${version2}`);
|
|
11705
11778
|
return 0;
|
|
@@ -153,7 +153,7 @@ test("#given dry-run cleanup path needs quoting #when running the Node installer
|
|
|
153
153
|
).trim();
|
|
154
154
|
|
|
155
155
|
// then
|
|
156
|
-
assert.equal(output, "npx --yes --package oh-my-openagent omo cleanup --platform=codex --project '/tmp/lazy codex'\\''s qa'");
|
|
156
|
+
assert.equal(output, "npx --yes --package oh-my-openagent omo-agent-toolkit cleanup --platform=codex --project '/tmp/lazy codex'\\''s qa'");
|
|
157
157
|
});
|
|
158
158
|
|
|
159
159
|
test("#given dry-run cleanup #when running the Node installer entrypoint #then prints delegated codex cleanup command", () => {
|
|
@@ -168,7 +168,7 @@ test("#given dry-run cleanup #when running the Node installer entrypoint #then p
|
|
|
168
168
|
).trim();
|
|
169
169
|
|
|
170
170
|
// then
|
|
171
|
-
assert.equal(output, "npx --yes --package oh-my-openagent omo cleanup --platform=codex --project /tmp/lazycodex-qa");
|
|
171
|
+
assert.equal(output, "npx --yes --package oh-my-openagent omo-agent-toolkit cleanup --platform=codex --project /tmp/lazycodex-qa");
|
|
172
172
|
});
|
|
173
173
|
|
|
174
174
|
test("#given dry-run uninstall #when running the Node installer entrypoint #then prints delegated codex cleanup command", () => {
|
|
@@ -183,7 +183,7 @@ test("#given dry-run uninstall #when running the Node installer entrypoint #then
|
|
|
183
183
|
).trim();
|
|
184
184
|
|
|
185
185
|
// then
|
|
186
|
-
assert.equal(output, "npx --yes --package oh-my-openagent omo cleanup --platform=codex --project /tmp/lazycodex-qa");
|
|
186
|
+
assert.equal(output, "npx --yes --package oh-my-openagent omo-agent-toolkit cleanup --platform=codex --project /tmp/lazycodex-qa");
|
|
187
187
|
});
|
|
188
188
|
|
|
189
189
|
test("#given stale lazycodex version #when running update dry-run #then prints the latest installer command", () => {
|
|
@@ -340,7 +340,7 @@ test("#given dry-run ulw-loop #when running the Node installer entrypoint #then
|
|
|
340
340
|
}).trim();
|
|
341
341
|
|
|
342
342
|
// then
|
|
343
|
-
assert.equal(output, "npx --yes --package oh-my-openagent omo ulw-loop help");
|
|
343
|
+
assert.equal(output, "npx --yes --package oh-my-openagent omo-agent-toolkit ulw-loop help");
|
|
344
344
|
});
|
|
345
345
|
|
|
346
346
|
test("#given the invoking argv path disappears #when importing the Node installer module #then the entrypoint guard does not throw", () => {
|
|
@@ -62,8 +62,10 @@ test("#given custom CODEX_HOME and PATH without omo #when installing locally wit
|
|
|
62
62
|
});
|
|
63
63
|
|
|
64
64
|
assert.equal(result.installed.length, 1);
|
|
65
|
-
const wrapper = await readFile(join(codexHome, "bin", "omo"), "utf8");
|
|
65
|
+
const wrapper = await readFile(join(codexHome, "bin", "omo-agent-toolkit"), "utf8");
|
|
66
66
|
assert.match(wrapper, /OMO_GENERATED_RUNTIME_WRAPPER/);
|
|
67
|
+
assert.match(wrapper, /export OMO_INVOCATION_NAME=omo-agent-toolkit/);
|
|
68
|
+
assert.match(wrapper, /export OMO_EDITION=codex/);
|
|
67
69
|
assert.match(
|
|
68
70
|
wrapper,
|
|
69
71
|
new RegExp(escapeRegExp(escapePosixDoubleQuoted(toPosixPath(join(repoRoot, "dist", "cli", "index.js"))))),
|
|
@@ -98,9 +100,10 @@ test("#given repoRoot without root CLI dist #when installing locally #then warns
|
|
|
98
100
|
|
|
99
101
|
const cliPath = join(repoRoot, "dist", "cli", "index.js");
|
|
100
102
|
assert.ok(
|
|
101
|
-
logs.some((line) => line.includes("omo runtime wrapper") && line.includes(cliPath)),
|
|
103
|
+
logs.some((line) => line.includes("omo-agent-toolkit runtime wrapper") && line.includes(cliPath)),
|
|
102
104
|
`expected a warning naming the missing ${cliPath}; got:\n${logs.join("\n")}`,
|
|
103
105
|
);
|
|
106
|
+
await assert.rejects(readFile(join(codexHome, "bin", "omo-agent-toolkit"), "utf8"));
|
|
104
107
|
await assert.rejects(readFile(join(codexHome, "bin", "omo"), "utf8"));
|
|
105
108
|
});
|
|
106
109
|
|
|
@@ -1,5 +1,23 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
1
2
|
import { fileURLToPath } from "node:url";
|
|
2
3
|
|
|
4
|
+
// Bundlers inline this module, so import.meta.url points at the consuming bundle, and the
|
|
5
|
+
// distance to the skills directory depends on where that bundle landed:
|
|
6
|
+
// dist/index.js -> dist/skills (sibling)
|
|
7
|
+
// dist/cli/index.js -> dist/skills (parent)
|
|
8
|
+
// dist/cli-node/index.js -> dist/skills (parent)
|
|
9
|
+
// plugins/omo/dist/cli/ -> plugins/omo/skills (grandparent; the Codex marketplace
|
|
10
|
+
// layout, where `plugin/` is copied to
|
|
11
|
+
// `plugins/omo/` and the root CLI
|
|
12
|
+
// runtimes are bundled into
|
|
13
|
+
// `plugins/omo/dist/cli`)
|
|
14
|
+
// Probes run nearest-first so a closer skills directory always wins, and the sibling path is
|
|
15
|
+
// returned unchanged when nothing matches, keeping the previous not-found behavior.
|
|
16
|
+
const SKILLS_PROBE_SPECIFIERS = ["./skills/", "../skills/", "../../skills/"];
|
|
17
|
+
|
|
3
18
|
export function sharedSkillsRootPath() {
|
|
4
|
-
|
|
19
|
+
const candidates = SKILLS_PROBE_SPECIFIERS.map((specifier) =>
|
|
20
|
+
fileURLToPath(new URL(specifier, import.meta.url)),
|
|
21
|
+
);
|
|
22
|
+
return candidates.find((candidate) => existsSync(candidate)) ?? candidates[0];
|
|
5
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
upstream: https://github.com/code-yeongyu/ast-grep-skill @ 3148c69 (ast-grep 0.
|
|
1
|
+
upstream: https://github.com/code-yeongyu/ast-grep-skill @ 3148c69 (ast-grep 0.45.0). Vendored as a sync; do not fork-drift.
|