oh-my-opencode 4.8.1 → 4.9.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/dist/agents/prometheus/system-prompt.d.ts +1 -1
- package/dist/agents/sisyphus/claude-fable-5.d.ts +19 -0
- package/dist/agents/sisyphus/claude-opus-4-7.d.ts +3 -1
- package/dist/agents/sisyphus/claude-opus-4-8.d.ts +19 -0
- package/dist/agents/sisyphus/index.d.ts +4 -0
- package/dist/agents/types.d.ts +2 -2
- package/dist/cli/doctor/checks/codex.d.ts +1 -0
- package/dist/cli/doctor/checks/dependencies.d.ts +2 -2
- package/dist/cli/doctor/checks/tools-gh.d.ts +8 -1
- package/dist/cli/doctor/index.d.ts +1 -0
- package/dist/cli/doctor/types.d.ts +2 -0
- package/dist/cli/index.js +1908 -787
- package/dist/cli/install-codex/codex-config-permissions.d.ts +1 -1
- package/dist/cli/install-codex/codex-config-plugins.d.ts +1 -0
- package/dist/cli/install-codex/codex-config-toml.d.ts +1 -0
- package/dist/cli/install-codex/codex-installer-bin-dir.d.ts +8 -0
- package/dist/cli/install-codex/install-codex.d.ts +1 -8
- package/dist/cli/install-codex/lsp-daemon-reaper.d.ts +5 -0
- package/dist/cli/sparkshell-condense.d.ts +10 -0
- package/dist/cli/sparkshell-parse.d.ts +3 -0
- package/dist/cli/sparkshell-session-context.d.ts +20 -0
- package/dist/cli/sparkshell-spark.d.ts +23 -0
- package/dist/cli/sparkshell.d.ts +8 -1
- package/dist/cli-node/index.js +92564 -0
- package/dist/config/schema/agent-names.d.ts +2 -0
- package/dist/config/schema/hooks.d.ts +0 -2
- package/dist/config/schema/keyword-detector.d.ts +0 -6
- package/dist/config/schema/oh-my-opencode-config.d.ts +2 -4
- package/dist/create-hooks.d.ts +0 -2
- package/dist/features/background-agent/parent-wake-dedupe.d.ts +2 -0
- package/dist/features/background-agent/parent-wake-flush-runner.d.ts +2 -0
- package/dist/features/background-agent/parent-wake-prompt-dispatch.d.ts +1 -0
- package/dist/features/background-agent/parent-wake-session-history.d.ts +4 -0
- package/dist/features/background-agent/parent-wake-session-inspector.d.ts +1 -0
- package/dist/features/builtin-commands/templates/handoff.d.ts +1 -1
- package/dist/features/builtin-skills/index.d.ts +1 -1
- package/dist/features/builtin-skills/skills.d.ts +4 -0
- package/dist/features/opencode-runtime-skills/source-server.d.ts +16 -1
- package/dist/features/opencode-skill-loader/skill-definition-record.d.ts +2 -0
- package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +2 -0
- package/dist/features/team-mode/types.d.ts +1 -0
- package/dist/features/tmux-subagent/failed-readiness-cache.d.ts +28 -0
- package/dist/features/tmux-subagent/manager.d.ts +1 -9
- package/dist/features/tmux-subagent/resolve-server-url.d.ts +3 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/executor.d.ts +1 -1
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/keyword-detector/constants.d.ts +0 -4
- package/dist/hooks/keyword-detector/ultrawork/source-detector.d.ts +1 -1
- package/dist/index.js +9001 -1795
- package/dist/oh-my-opencode.schema.json +2 -4
- package/dist/plugin/chat-params.d.ts +1 -8
- package/dist/plugin/hooks/create-core-hooks.d.ts +0 -2
- package/dist/plugin/hooks/create-session-hooks.d.ts +0 -2
- package/dist/plugin/hooks/create-transform-hooks.d.ts +1 -2
- package/dist/plugin/messages-transform.d.ts +0 -1
- package/dist/shared/model-availability.d.ts +10 -2
- package/dist/shared/module-resolution-failure.d.ts +7 -0
- package/package.json +25 -18
- package/packages/ast-grep-mcp/dist/cli.js +2 -10
- package/packages/git-bash-mcp/dist/cli.js +11 -4
- package/packages/lsp-daemon/dist/cli.d.ts +2 -0
- package/packages/lsp-daemon/dist/cli.js +3711 -0
- package/packages/lsp-daemon/dist/daemon-client.d.ts +19 -0
- package/packages/lsp-daemon/dist/daemon-client.js +114 -0
- package/packages/lsp-daemon/dist/daemon-server.d.ts +12 -0
- package/packages/lsp-daemon/dist/daemon-server.js +106 -0
- package/packages/lsp-daemon/dist/ensure-daemon.d.ts +21 -0
- package/packages/lsp-daemon/dist/ensure-daemon.js +97 -0
- package/packages/lsp-daemon/dist/index.d.ts +5 -0
- package/packages/lsp-daemon/dist/index.js +3573 -0
- package/packages/lsp-daemon/dist/lock.d.ts +7 -0
- package/packages/lsp-daemon/dist/lock.js +61 -0
- package/packages/lsp-daemon/dist/package.json +6 -0
- package/packages/lsp-daemon/dist/paths.d.ts +11 -0
- package/packages/lsp-daemon/dist/paths.js +49 -0
- package/packages/lsp-daemon/dist/proxy.d.ts +10 -0
- package/packages/lsp-daemon/dist/proxy.js +61 -0
- package/packages/lsp-daemon/dist/request-routing.d.ts +9 -0
- package/packages/lsp-daemon/dist/request-routing.js +44 -0
- package/packages/lsp-daemon/dist/run-daemon.d.ts +1 -0
- package/packages/lsp-daemon/dist/run-daemon.js +11 -0
- package/packages/lsp-daemon/dist/socket-jsonrpc.d.ts +5 -0
- package/packages/lsp-daemon/dist/socket-jsonrpc.js +25 -0
- package/packages/lsp-daemon/package.json +38 -0
- package/packages/lsp-tools-mcp/dist/cli.js +0 -0
- package/packages/lsp-tools-mcp/dist/lsp/client-wrapper.js +40 -17
- package/packages/lsp-tools-mcp/dist/lsp/client.js +11 -9
- package/packages/lsp-tools-mcp/dist/lsp/config-loader.js +5 -5
- package/packages/lsp-tools-mcp/dist/lsp/directory-diagnostics.js +5 -3
- package/packages/lsp-tools-mcp/dist/lsp/effective-extension.d.ts +1 -0
- package/packages/lsp-tools-mcp/dist/lsp/effective-extension.js +8 -0
- package/packages/lsp-tools-mcp/dist/lsp/infer-extension.js +3 -2
- package/packages/lsp-tools-mcp/dist/lsp/language-mappings.js +1 -0
- package/packages/lsp-tools-mcp/dist/lsp/server-definitions.js +12 -0
- package/packages/lsp-tools-mcp/dist/lsp/server-install-state.d.ts +12 -0
- package/packages/lsp-tools-mcp/dist/lsp/server-install-state.js +51 -0
- package/packages/lsp-tools-mcp/dist/lsp/workspace-edit.js +2 -1
- package/packages/lsp-tools-mcp/dist/request-context.d.ts +7 -0
- package/packages/lsp-tools-mcp/dist/request-context.js +14 -0
- package/packages/lsp-tools-mcp/dist/tools.js +44 -1
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +46 -33
- package/packages/omo-codex/plugin/.mcp.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/dist/apply-patch.d.ts +7 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/apply-patch.js +173 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/cli.d.ts +2 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/cli.js +10 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/codex-hook.d.ts +22 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/codex-hook.js +165 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/core-values.d.ts +1 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/core-values.js +1 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/core.d.ts +5 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/core.js +4 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/hook-input.d.ts +6 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/hook-input.js +10 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/record.d.ts +2 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/record.js +11 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/request-extractor.d.ts +3 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/request-extractor.js +104 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/runner.d.ts +26 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/runner.js +144 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/types.d.ts +43 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/types.js +1 -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/dist/cli.d.ts +2 -0
- package/packages/omo-codex/plugin/components/git-bash/dist/cli.js +29 -0
- package/packages/omo-codex/plugin/components/git-bash/dist/codex-hook.d.ts +28 -0
- package/packages/omo-codex/plugin/components/git-bash/dist/codex-hook.js +137 -0
- package/packages/omo-codex/plugin/components/git-bash/dist/index.d.ts +1 -0
- package/packages/omo-codex/plugin/components/git-bash/dist/index.js +1 -0
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +5 -2
- package/packages/omo-codex/plugin/components/lsp/.mcp.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/cli.d.ts +2 -0
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +42 -0
- package/packages/omo-codex/plugin/components/lsp/dist/codex-hook-cli.d.ts +2 -0
- package/packages/omo-codex/plugin/components/lsp/dist/codex-hook-cli.js +40 -0
- package/packages/omo-codex/plugin/components/lsp/dist/codex-hook.d.ts +16 -0
- package/packages/omo-codex/plugin/components/lsp/dist/codex-hook.js +180 -0
- package/packages/omo-codex/plugin/components/lsp/dist/lsp-session-state.d.ts +12 -0
- package/packages/omo-codex/plugin/components/lsp/dist/lsp-session-state.js +95 -0
- package/packages/omo-codex/plugin/components/lsp/dist/mutated-file-paths.d.ts +6 -0
- package/packages/omo-codex/plugin/components/lsp/dist/mutated-file-paths.js +79 -0
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +7 -7
- package/packages/omo-codex/plugin/components/lsp/scripts/build-lsp-daemon.mjs +68 -0
- package/packages/omo-codex/plugin/components/lsp/scripts/build-lsp-tools.mjs +45 -22
- package/packages/omo-codex/plugin/components/lsp/src/cli.ts +1 -1
- package/packages/omo-codex/plugin/components/lsp/src/codex-hook-cli.ts +1 -1
- package/packages/omo-codex/plugin/components/lsp/src/codex-hook.ts +6 -2
- package/packages/omo-codex/plugin/components/lsp/src/lsp-session-state.ts +4 -0
- package/packages/omo-codex/plugin/components/lsp/test/codex-hook-unavailable.test.ts +68 -0
- package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +8 -20
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus.md +69 -96
- package/packages/omo-codex/plugin/components/rules/dist/cli.d.ts +2 -0
- package/packages/omo-codex/plugin/components/rules/dist/cli.js +118 -0
- package/packages/omo-codex/plugin/components/rules/dist/codex-hook-options.d.ts +5 -0
- package/packages/omo-codex/plugin/components/rules/dist/codex-hook-options.js +1 -0
- package/packages/omo-codex/plugin/components/rules/dist/codex-hook.d.ts +47 -0
- package/packages/omo-codex/plugin/components/rules/dist/codex-hook.js +127 -0
- package/packages/omo-codex/plugin/components/rules/dist/config.d.ts +2 -0
- package/packages/omo-codex/plugin/components/rules/dist/config.js +100 -0
- package/packages/omo-codex/plugin/components/rules/dist/context-pressure.d.ts +2 -0
- package/packages/omo-codex/plugin/components/rules/dist/context-pressure.js +26 -0
- package/packages/omo-codex/plugin/components/rules/dist/debug-log.d.ts +8 -0
- package/packages/omo-codex/plugin/components/rules/dist/debug-log.js +36 -0
- package/packages/omo-codex/plugin/components/rules/dist/dynamic-target-fingerprints.d.ts +7 -0
- package/packages/omo-codex/plugin/components/rules/dist/dynamic-target-fingerprints.js +65 -0
- package/packages/omo-codex/plugin/components/rules/dist/event-budget.d.ts +3 -0
- package/packages/omo-codex/plugin/components/rules/dist/event-budget.js +14 -0
- package/packages/omo-codex/plugin/components/rules/dist/hook-output.d.ts +2 -0
- package/packages/omo-codex/plugin/components/rules/dist/hook-output.js +24 -0
- package/packages/omo-codex/plugin/components/rules/dist/path-utils.d.ts +4 -0
- package/packages/omo-codex/plugin/components/rules/dist/path-utils.js +24 -0
- package/packages/omo-codex/plugin/components/rules/dist/persistent-cache.d.ts +13 -0
- package/packages/omo-codex/plugin/components/rules/dist/persistent-cache.js +172 -0
- package/packages/omo-codex/plugin/components/rules/dist/post-compact-budget.d.ts +6 -0
- package/packages/omo-codex/plugin/components/rules/dist/post-compact-budget.js +74 -0
- package/packages/omo-codex/plugin/components/rules/dist/post-compact-claim.d.ts +4 -0
- package/packages/omo-codex/plugin/components/rules/dist/post-compact-claim.js +6 -0
- package/packages/omo-codex/plugin/components/rules/dist/post-compact-directive.d.ts +1 -0
- package/packages/omo-codex/plugin/components/rules/dist/post-compact-directive.js +32 -0
- package/packages/omo-codex/plugin/components/rules/dist/post-compact-state.d.ts +13 -0
- package/packages/omo-codex/plugin/components/rules/dist/post-compact-state.js +29 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/cache.d.ts +9 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/cache.js +51 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/constants.d.ts +70 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/constants.js +101 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine-dynamic-cache.d.ts +5 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine-dynamic-cache.js +60 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine-dynamic-loader.d.ts +6 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine-dynamic-loader.js +61 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine-loader.d.ts +7 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine-loader.js +60 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine-paths.d.ts +11 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine-paths.js +75 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine-static-loader.d.ts +6 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine-static-loader.js +29 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine-types.d.ts +44 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine-types.js +1 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine.d.ts +5 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/engine.js +85 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/errors.d.ts +6 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/errors.js +12 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/finder-cache.d.ts +14 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/finder-cache.js +51 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/finder-paths.d.ts +6 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/finder-paths.js +33 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/finder-sources.d.ts +5 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/finder-sources.js +40 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/finder.d.ts +28 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/finder.js +146 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/formatter.d.ts +7 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/formatter.js +112 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/matcher.d.ts +18 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/matcher.js +93 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/ordering.d.ts +3 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/ordering.js +27 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/parser-frontmatter.d.ts +7 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/parser-frontmatter.js +30 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/parser-yaml.d.ts +2 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/parser-yaml.js +237 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/parser.d.ts +3 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/parser.js +31 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/plugin-root.d.ts +1 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/plugin-root.js +48 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/project-root.d.ts +1 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/project-root.js +23 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/scanner.d.ts +14 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/scanner.js +111 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/sources.d.ts +3 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/sources.js +9 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/truncator.d.ts +18 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/truncator.js +59 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/types.d.ts +126 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules/types.js +8 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules-engine-factory.d.ts +6 -0
- package/packages/omo-codex/plugin/components/rules/dist/rules-engine-factory.js +20 -0
- package/packages/omo-codex/plugin/components/rules/dist/session-state-lock.d.ts +3 -0
- package/packages/omo-codex/plugin/components/rules/dist/session-state-lock.js +41 -0
- package/packages/omo-codex/plugin/components/rules/dist/sparkshell-awareness.d.ts +10 -0
- package/packages/omo-codex/plugin/components/rules/dist/sparkshell-awareness.js +90 -0
- package/packages/omo-codex/plugin/components/rules/dist/static-injection.d.ts +3 -0
- package/packages/omo-codex/plugin/components/rules/dist/static-injection.js +128 -0
- package/packages/omo-codex/plugin/components/rules/dist/tool-paths.d.ts +6 -0
- package/packages/omo-codex/plugin/components/rules/dist/tool-paths.js +168 -0
- package/packages/omo-codex/plugin/components/rules/dist/transcript-rule-filter.d.ts +4 -0
- package/packages/omo-codex/plugin/components/rules/dist/transcript-rule-filter.js +49 -0
- package/packages/omo-codex/plugin/components/rules/dist/transcript-search.d.ts +4 -0
- package/packages/omo-codex/plugin/components/rules/dist/transcript-search.js +91 -0
- 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/codex-hook.ts +4 -2
- package/packages/omo-codex/plugin/components/rules/src/config.ts +13 -0
- package/packages/omo-codex/plugin/components/rules/src/event-budget.ts +17 -0
- package/packages/omo-codex/plugin/components/rules/src/persistent-cache.ts +4 -1
- package/packages/omo-codex/plugin/components/rules/src/post-compact-directive.ts +39 -0
- package/packages/omo-codex/plugin/components/rules/src/rules/constants.ts +16 -0
- package/packages/omo-codex/plugin/components/rules/src/rules/engine.ts +8 -0
- package/packages/omo-codex/plugin/components/rules/src/rules/types.ts +4 -0
- package/packages/omo-codex/plugin/components/rules/src/sparkshell-awareness.ts +53 -4
- package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +127 -7
- package/packages/omo-codex/plugin/components/rules/src/transcript-rule-filter.ts +9 -1
- package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +4 -2
- package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-budget.test.ts +7 -2
- package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-context.test.ts +9 -9
- package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-dedup.test.ts +10 -4
- package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-directive.test.ts +241 -0
- package/packages/omo-codex/plugin/components/rules/test/event-budget.test.ts +168 -0
- package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +4 -0
- package/packages/omo-codex/plugin/components/rules/test/sparkshell-awareness.test.ts +86 -3
- package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +15 -15
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/boulder-reader.d.ts +16 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/boulder-reader.js +146 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/cli.d.ts +2 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/cli.js +49 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/codex-hook.d.ts +2 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/codex-hook.js +80 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/directive.d.ts +1 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/directive.js +2 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/index.d.ts +5 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/index.js +3 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/types.d.ts +20 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/types.js +1 -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/test/codex-hook.test.ts +24 -2
- package/packages/omo-codex/plugin/components/telemetry/dist/atomic-write.d.ts +1 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/atomic-write.js +18 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/cli.d.ts +2 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +62 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/codex-hook.d.ts +15 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/codex-hook.js +42 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/data-path.d.ts +10 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/data-path.js +35 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/diagnostics.d.ts +12 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/diagnostics.js +108 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/env-flags.d.ts +4 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/env-flags.js +31 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog-activity-state.d.ts +8 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog-activity-state.js +68 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog.d.ts +21 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +133 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/product-identity.d.ts +8 -0
- package/packages/omo-codex/plugin/components/telemetry/dist/product-identity.js +29 -0
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/explorer.toml +5 -13
- package/packages/omo-codex/plugin/components/ultrawork/agents/librarian.toml +61 -185
- package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/directive.md +122 -117
- package/packages/omo-codex/plugin/components/ultrawork/dist/cli.d.ts +2 -0
- package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +48 -0
- package/packages/omo-codex/plugin/components/ultrawork/dist/codex-hook.d.ts +7 -0
- package/packages/omo-codex/plugin/components/ultrawork/dist/codex-hook.js +122 -0
- package/packages/omo-codex/plugin/components/ultrawork/dist/directive.d.ts +1 -0
- package/packages/omo-codex/plugin/components/ultrawork/dist/directive.js +2 -0
- 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/ulw-plan/SKILL.md +20 -11
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +17 -11
- package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +2 -5
- package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +0 -71
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.d.ts +16 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +200 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-arg-parser.d.ts +17 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-arg-parser.js +97 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-commands.d.ts +4 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-commands.js +183 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +6 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +55 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-steering.d.ts +12 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-steering.js +145 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.d.ts +2 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +39 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.d.ts +13 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +100 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.d.ts +26 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.js +97 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-hook.d.ts +28 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-hook.js +145 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/command-types.d.ts +34 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/command-types.js +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/constants.d.ts +16 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/constants.js +41 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/domain-types.d.ts +95 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/domain-types.js +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/evidence.d.ts +31 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/evidence.js +119 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/goal-status.d.ts +12 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/goal-status.js +69 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.d.ts +16 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.js +59 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.d.ts +48 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.js +119 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.d.ts +8 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.js +89 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.d.ts +6 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.js +123 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/review-blockers.d.ts +16 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/review-blockers.js +70 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/runtime.d.ts +10 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/runtime.js +13 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-types.d.ts +63 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-types.js +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/steering.d.ts +6 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/steering.js +292 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/types.d.ts +5 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/types.js +5 -0
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +2 -2
- 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 +14 -14
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +24 -25
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +17 -3
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +2 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +95 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +0 -96
- package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate.test.ts +23 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/skill-contract.test.ts +46 -0
- package/packages/omo-codex/plugin/hooks/hooks.json +16 -16
- package/packages/omo-codex/plugin/package-lock.json +10 -9
- package/packages/omo-codex/plugin/package.json +27 -26
- package/packages/omo-codex/plugin/scripts/auto-update.mjs +64 -15
- package/packages/omo-codex/plugin/scripts/build-bundled-mcp-runtimes.mjs +16 -0
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-v2-guard.mjs +82 -18
- package/packages/omo-codex/plugin/scripts/migrate-codex-config.mjs +2 -2
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +23 -11
- package/packages/omo-codex/plugin/scripts/sync-version.mjs +94 -0
- package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +9 -9
- package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/SKILL.md +16 -1
- package/packages/omo-codex/plugin/skills/lcx-doctor/SKILL.md +93 -0
- package/packages/omo-codex/plugin/skills/lcx-doctor/agents/openai.yaml +11 -0
- package/packages/omo-codex/plugin/skills/lcx-report-bug/SKILL.md +17 -13
- package/packages/omo-codex/plugin/skills/lsp-setup/SKILL.md +139 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/bash/README.md +60 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/c-cpp/README.md +61 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/csharp/README.md +71 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/dart/README.md +48 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/elixir/README.md +51 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/go/README.md +57 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/haskell/README.md +57 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/java/README.md +57 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/julia/README.md +60 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/kotlin/README.md +59 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/lua/README.md +66 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/php/README.md +62 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/python/README.md +71 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/ruby/README.md +53 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/rust/README.md +59 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/swift/README.md +51 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/terraform/README.md +62 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/typescript/README.md +77 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/yaml/README.md +70 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/references/zig/README.md +49 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/scripts/detect-lsp.ts +210 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/scripts/lsp-server-table.ts +177 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/scripts/tsconfig.json +17 -0
- package/packages/omo-codex/plugin/skills/lsp-setup/scripts/verify-lsp.ts +147 -0
- package/packages/omo-codex/plugin/skills/refactor/SKILL.md +9 -9
- package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +10 -10
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +20 -22
- package/packages/omo-codex/plugin/skills/start-work/SKILL.md +38 -61
- package/packages/omo-codex/plugin/skills/ultraresearch/SKILL.md +135 -677
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +14 -14
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +24 -25
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +20 -11
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +17 -11
- package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +9 -9
- package/packages/omo-codex/plugin/test/aggregate-build.test.mjs +2 -1
- package/packages/omo-codex/plugin/test/aggregate-mcp.test.mjs +1 -1
- package/packages/omo-codex/plugin/test/aggregate-plugin-fixture.mjs +5 -5
- package/packages/omo-codex/plugin/test/aggregate-skills.test.mjs +6 -6
- package/packages/omo-codex/plugin/test/auto-update-restart-notice.test.mjs +194 -0
- package/packages/omo-codex/plugin/test/auto-update.test.mjs +17 -0
- package/packages/omo-codex/plugin/test/lcx-bug-skills.test.mjs +15 -44
- package/packages/omo-codex/plugin/test/lsp-prebuild-layouts.test.mjs +140 -0
- package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +189 -7
- package/packages/omo-codex/plugin/test/start-work-skill.test.mjs +9 -31
- package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +68 -4
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +119 -0
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +11 -112
- package/packages/omo-codex/plugin/test/sync-version.test.mjs +68 -0
- package/packages/omo-codex/plugin/test/ultraresearch-skill-contract.test.mjs +126 -0
- package/packages/omo-codex/plugin/test/ulw-plan-skill.test.mjs +2 -2
- package/packages/omo-codex/scripts/install/bin-dir.mjs +20 -0
- package/packages/omo-codex/scripts/install/bin-links.mjs +43 -6
- package/packages/omo-codex/scripts/install/cache.mjs +4 -0
- package/packages/omo-codex/scripts/install/config.mjs +4 -4
- package/packages/omo-codex/scripts/install/delegated-command.mjs +5 -1
- package/packages/omo-codex/scripts/install/git-bash-mcp-env.mjs +28 -0
- package/packages/omo-codex/scripts/install/git-bash.mjs +12 -4
- package/packages/omo-codex/scripts/install/git-bash.test.mjs +39 -4
- package/packages/omo-codex/scripts/install/hook-targets.mjs +46 -0
- package/packages/omo-codex/scripts/install/multi-agent-v2-config.mjs +12 -2
- package/packages/omo-codex/scripts/install/process.mjs +1 -0
- package/packages/omo-codex/scripts/install-bin-links.test.mjs +131 -3
- package/packages/omo-codex/scripts/install-config-git-bash.test.mjs +91 -0
- package/packages/omo-codex/scripts/install-config.test.mjs +50 -44
- package/packages/omo-codex/scripts/install-delegated-command.test.mjs +78 -0
- package/packages/omo-codex/scripts/install-git-bash-mcp-env.test.mjs +93 -0
- package/packages/omo-codex/scripts/install-hook-targets.test.mjs +100 -0
- package/packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs +3 -1
- package/packages/omo-codex/scripts/install-local.mjs +7 -18
- package/packages/omo-codex/scripts/install-local.test.mjs +34 -1
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/SKILL.md +16 -1
- package/packages/shared-skills/skills/lcx-doctor/SKILL.md +93 -0
- package/packages/shared-skills/skills/lcx-doctor/agents/openai.yaml +11 -0
- package/packages/shared-skills/skills/lcx-report-bug/SKILL.md +17 -13
- package/packages/shared-skills/skills/lsp-setup/SKILL.md +139 -0
- package/packages/shared-skills/skills/lsp-setup/references/bash/README.md +60 -0
- package/packages/shared-skills/skills/lsp-setup/references/c-cpp/README.md +61 -0
- package/packages/shared-skills/skills/lsp-setup/references/csharp/README.md +71 -0
- package/packages/shared-skills/skills/lsp-setup/references/dart/README.md +48 -0
- package/packages/shared-skills/skills/lsp-setup/references/elixir/README.md +51 -0
- package/packages/shared-skills/skills/lsp-setup/references/go/README.md +57 -0
- package/packages/shared-skills/skills/lsp-setup/references/haskell/README.md +57 -0
- package/packages/shared-skills/skills/lsp-setup/references/java/README.md +57 -0
- package/packages/shared-skills/skills/lsp-setup/references/julia/README.md +60 -0
- package/packages/shared-skills/skills/lsp-setup/references/kotlin/README.md +59 -0
- package/packages/shared-skills/skills/lsp-setup/references/lua/README.md +66 -0
- package/packages/shared-skills/skills/lsp-setup/references/php/README.md +62 -0
- package/packages/shared-skills/skills/lsp-setup/references/python/README.md +71 -0
- package/packages/shared-skills/skills/lsp-setup/references/ruby/README.md +53 -0
- package/packages/shared-skills/skills/lsp-setup/references/rust/README.md +59 -0
- package/packages/shared-skills/skills/lsp-setup/references/swift/README.md +51 -0
- package/packages/shared-skills/skills/lsp-setup/references/terraform/README.md +62 -0
- package/packages/shared-skills/skills/lsp-setup/references/typescript/README.md +77 -0
- package/packages/shared-skills/skills/lsp-setup/references/yaml/README.md +70 -0
- package/packages/shared-skills/skills/lsp-setup/references/zig/README.md +49 -0
- package/packages/shared-skills/skills/lsp-setup/scripts/detect-lsp.ts +210 -0
- package/packages/shared-skills/skills/lsp-setup/scripts/lsp-server-table.ts +177 -0
- package/packages/shared-skills/skills/lsp-setup/scripts/tsconfig.json +17 -0
- package/packages/shared-skills/skills/lsp-setup/scripts/verify-lsp.ts +147 -0
- package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +1 -1
- package/packages/shared-skills/skills/review-work/SKILL.md +10 -14
- package/packages/shared-skills/skills/start-work/SKILL.md +30 -59
- package/packages/shared-skills/skills/ultraresearch/SKILL.md +126 -667
- package/dist/hooks/anthropic-effort/hook.d.ts +0 -26
- package/dist/hooks/anthropic-effort/index.d.ts +0 -1
- package/dist/hooks/keyword-detector/analyze/default.d.ts +0 -12
- package/dist/hooks/keyword-detector/analyze/index.d.ts +0 -1
- package/dist/hooks/keyword-detector/search/default.d.ts +0 -12
- package/dist/hooks/keyword-detector/search/index.d.ts +0 -1
- package/dist/hooks/thinking-block-validator/hook.d.ts +0 -12
- package/dist/hooks/thinking-block-validator/index.d.ts +0 -1
- package/packages/omo-codex/plugin/components/ultrawork/test/directive-contract.test.ts +0 -18
- package/packages/omo-codex/plugin/test/global-review-debug-gate.test.mjs +0 -29
- package/packages/omo-codex/plugin/test/subagent-guidance.test.mjs +0 -151
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "LazyCodex(
|
|
10
|
+
"statusMessage": "LazyCodex(4.9.1): Loading Project Rules"
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
13
|
},
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"type": "command",
|
|
18
18
|
"command": "node \"${PLUGIN_ROOT}/components/telemetry/dist/cli.js\" hook session-start",
|
|
19
19
|
"timeout": 5,
|
|
20
|
-
"statusMessage": "LazyCodex(
|
|
20
|
+
"statusMessage": "LazyCodex(4.9.1): Recording Session Telemetry"
|
|
21
21
|
}
|
|
22
22
|
]
|
|
23
23
|
},
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"type": "command",
|
|
29
29
|
"command": "node \"${PLUGIN_ROOT}/scripts/auto-update.mjs\" hook session-start",
|
|
30
30
|
"timeout": 5,
|
|
31
|
-
"statusMessage": "LazyCodex(
|
|
31
|
+
"statusMessage": "LazyCodex(4.9.1): Checking Auto Update"
|
|
32
32
|
}
|
|
33
33
|
]
|
|
34
34
|
}
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"type": "command",
|
|
41
41
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook user-prompt-submit",
|
|
42
42
|
"timeout": 10,
|
|
43
|
-
"statusMessage": "LazyCodex(
|
|
43
|
+
"statusMessage": "LazyCodex(4.9.1): Loading Project Rules"
|
|
44
44
|
}
|
|
45
45
|
]
|
|
46
46
|
},
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"type": "command",
|
|
51
51
|
"command": "node \"${PLUGIN_ROOT}/components/ultrawork/dist/cli.js\" hook user-prompt-submit",
|
|
52
52
|
"timeout": 5,
|
|
53
|
-
"statusMessage": "LazyCodex(
|
|
53
|
+
"statusMessage": "LazyCodex(4.9.1): Checking Ultrawork Trigger"
|
|
54
54
|
}
|
|
55
55
|
]
|
|
56
56
|
},
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"type": "command",
|
|
61
61
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook user-prompt-submit",
|
|
62
62
|
"timeout": 10,
|
|
63
|
-
"statusMessage": "LazyCodex(
|
|
63
|
+
"statusMessage": "LazyCodex(4.9.1): Checking Ulw-Loop Steering"
|
|
64
64
|
}
|
|
65
65
|
]
|
|
66
66
|
}
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"type": "command",
|
|
74
74
|
"command": "node \"${PLUGIN_ROOT}/components/git-bash/dist/cli.js\" hook pre-tool-use",
|
|
75
75
|
"timeout": 5,
|
|
76
|
-
"statusMessage": "LazyCodex(
|
|
76
|
+
"statusMessage": "LazyCodex(4.9.1): Recommending Git Bash Mcp"
|
|
77
77
|
}
|
|
78
78
|
]
|
|
79
79
|
},
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"type": "command",
|
|
85
85
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook pre-tool-use",
|
|
86
86
|
"timeout": 5,
|
|
87
|
-
"statusMessage": "LazyCodex(
|
|
87
|
+
"statusMessage": "LazyCodex(4.9.1): Enforcing Unlimited Goal Budget"
|
|
88
88
|
}
|
|
89
89
|
]
|
|
90
90
|
}
|
|
@@ -97,13 +97,13 @@
|
|
|
97
97
|
"type": "command",
|
|
98
98
|
"command": "node \"${PLUGIN_ROOT}/components/comment-checker/dist/cli.js\" hook post-tool-use",
|
|
99
99
|
"timeout": 30,
|
|
100
|
-
"statusMessage": "LazyCodex(
|
|
100
|
+
"statusMessage": "LazyCodex(4.9.1): Checking Comments"
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"type": "command",
|
|
104
104
|
"command": "node \"${PLUGIN_ROOT}/components/lsp/dist/cli.js\" hook post-tool-use",
|
|
105
105
|
"timeout": 60,
|
|
106
|
-
"statusMessage": "LazyCodex(
|
|
106
|
+
"statusMessage": "LazyCodex(4.9.1): Checking LSP Diagnostics"
|
|
107
107
|
}
|
|
108
108
|
]
|
|
109
109
|
},
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
"type": "command",
|
|
115
115
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-tool-use",
|
|
116
116
|
"timeout": 10,
|
|
117
|
-
"statusMessage": "LazyCodex(
|
|
117
|
+
"statusMessage": "LazyCodex(4.9.1): Matching Project Rules"
|
|
118
118
|
}
|
|
119
119
|
]
|
|
120
120
|
}
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
"type": "command",
|
|
128
128
|
"command": "node \"${PLUGIN_ROOT}/components/git-bash/dist/cli.js\" hook post-compact",
|
|
129
129
|
"timeout": 5,
|
|
130
|
-
"statusMessage": "LazyCodex(
|
|
130
|
+
"statusMessage": "LazyCodex(4.9.1): Resetting Git Bash Mcp Reminder"
|
|
131
131
|
}
|
|
132
132
|
]
|
|
133
133
|
},
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"type": "command",
|
|
139
139
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-compact",
|
|
140
140
|
"timeout": 10,
|
|
141
|
-
"statusMessage": "LazyCodex(
|
|
141
|
+
"statusMessage": "LazyCodex(4.9.1): Resetting Project Rule Cache"
|
|
142
142
|
}
|
|
143
143
|
]
|
|
144
144
|
},
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
"type": "command",
|
|
150
150
|
"command": "node \"${PLUGIN_ROOT}/components/lsp/dist/cli.js\" hook post-compact",
|
|
151
151
|
"timeout": 5,
|
|
152
|
-
"statusMessage": "LazyCodex(
|
|
152
|
+
"statusMessage": "LazyCodex(4.9.1): Resetting LSP Diagnostics Cache"
|
|
153
153
|
}
|
|
154
154
|
]
|
|
155
155
|
}
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
"type": "command",
|
|
162
162
|
"command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook stop",
|
|
163
163
|
"timeout": 10,
|
|
164
|
-
"statusMessage": "LazyCodex(
|
|
164
|
+
"statusMessage": "LazyCodex(4.9.1): Checking Start-Work Continuation"
|
|
165
165
|
}
|
|
166
166
|
]
|
|
167
167
|
}
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
"type": "command",
|
|
174
174
|
"command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook subagent-stop",
|
|
175
175
|
"timeout": 10,
|
|
176
|
-
"statusMessage": "LazyCodex(
|
|
176
|
+
"statusMessage": "LazyCodex(4.9.1): Checking Start-Work Continuation"
|
|
177
177
|
}
|
|
178
178
|
]
|
|
179
179
|
}
|
|
@@ -21,18 +21,19 @@
|
|
|
21
21
|
"@oh-my-opencode/shared-skills": "file:../../shared-skills"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
|
-
"../../lsp-
|
|
25
|
-
"name": "@code-yeongyu/lsp-
|
|
24
|
+
"../../lsp-daemon": {
|
|
25
|
+
"name": "@code-yeongyu/lsp-daemon",
|
|
26
26
|
"version": "0.1.0",
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"bin": {
|
|
29
|
-
"omo-lsp": "dist/cli.js"
|
|
29
|
+
"omo-lsp-daemon": "dist/cli.js"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@biomejs/biome": "2.4.
|
|
33
|
-
"@
|
|
32
|
+
"@biomejs/biome": "2.4.16",
|
|
33
|
+
"@code-yeongyu/lsp-tools-mcp": "file:../lsp-tools-mcp",
|
|
34
|
+
"@types/node": "^25.9.2",
|
|
34
35
|
"typescript": "^6.0.3",
|
|
35
|
-
"vitest": "^4.1.
|
|
36
|
+
"vitest": "^4.1.8"
|
|
36
37
|
},
|
|
37
38
|
"engines": {
|
|
38
39
|
"node": ">=20.0.0"
|
|
@@ -81,7 +82,7 @@
|
|
|
81
82
|
"version": "0.2.0",
|
|
82
83
|
"license": "MIT",
|
|
83
84
|
"dependencies": {
|
|
84
|
-
"@code-yeongyu/lsp-
|
|
85
|
+
"@code-yeongyu/lsp-daemon": "file:../../../../lsp-daemon"
|
|
85
86
|
},
|
|
86
87
|
"bin": {
|
|
87
88
|
"omo-lsp": "dist/cli.js"
|
|
@@ -405,8 +406,8 @@
|
|
|
405
406
|
"node": ">=18"
|
|
406
407
|
}
|
|
407
408
|
},
|
|
408
|
-
"node_modules/@code-yeongyu/lsp-
|
|
409
|
-
"resolved": "../../lsp-
|
|
409
|
+
"node_modules/@code-yeongyu/lsp-daemon": {
|
|
410
|
+
"resolved": "../../lsp-daemon",
|
|
410
411
|
"link": true
|
|
411
412
|
},
|
|
412
413
|
"node_modules/@emnapi/core": {
|
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
2
|
+
"name": "@sisyphuslabs/omo-codex-plugin",
|
|
3
|
+
"version": "4.9.1",
|
|
4
|
+
"description": "Aggregate Codex plugin root for OMO components.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"packageManager": "npm@11.12.1",
|
|
7
|
+
"private": true,
|
|
8
|
+
"workspaces": [
|
|
9
|
+
"components/comment-checker",
|
|
10
|
+
"components/git-bash",
|
|
11
|
+
"components/rules",
|
|
12
|
+
"components/lsp",
|
|
13
|
+
"components/telemetry",
|
|
14
|
+
"components/start-work-continuation",
|
|
15
|
+
"components/ulw-loop",
|
|
16
|
+
"components/ultrawork"
|
|
17
|
+
],
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@oh-my-opencode/shared-skills": "file:../../shared-skills"
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "node scripts/sync-version.mjs && node scripts/sync-hook-status-messages.mjs && node scripts/build-bundled-mcp-runtimes.mjs && node scripts/sync-skills.mjs && node ../scripts/sync-telemetry-component.mjs && node scripts/build-components.mjs",
|
|
23
|
+
"sync:version": "node scripts/sync-version.mjs",
|
|
24
|
+
"check": "npm run build && npm test",
|
|
25
|
+
"sync:hooks": "node scripts/sync-hook-status-messages.mjs",
|
|
26
|
+
"sync:skills": "node scripts/sync-skills.mjs",
|
|
27
|
+
"test": "node --test test/*.test.mjs"
|
|
28
|
+
}
|
|
28
29
|
}
|
|
@@ -37,9 +37,11 @@ export function resolveAutoUpdatePlan({ env = process.env, now = Date.now(), las
|
|
|
37
37
|
return { shouldRun: false, reason: "retry-throttled" };
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
const currentVersion = resolveCurrentVersion(env);
|
|
41
|
+
const latestVersion = resolveLatestVersion(env);
|
|
40
42
|
const updatePlan = resolveLazyCodexUpdatePlan({
|
|
41
|
-
currentVersion
|
|
42
|
-
latestVersion
|
|
43
|
+
currentVersion,
|
|
44
|
+
latestVersion,
|
|
43
45
|
command: resolveCommand(env),
|
|
44
46
|
args: resolveArgs(env),
|
|
45
47
|
});
|
|
@@ -49,6 +51,8 @@ export function resolveAutoUpdatePlan({ env = process.env, now = Date.now(), las
|
|
|
49
51
|
shouldRun: true,
|
|
50
52
|
command: updatePlan.command,
|
|
51
53
|
args: updatePlan.args,
|
|
54
|
+
currentVersion,
|
|
55
|
+
latestVersion,
|
|
52
56
|
env: {
|
|
53
57
|
...env,
|
|
54
58
|
LAZYCODEX_AUTO_UPDATE_DISABLED: "1",
|
|
@@ -94,7 +98,8 @@ export async function runLazyCodexManualUpdate({ env = process.env, dryRun = fal
|
|
|
94
98
|
export async function runAutoUpdateCheck({ env = process.env, now = Date.now() } = {}) {
|
|
95
99
|
await runConfigMigration({ env });
|
|
96
100
|
const statePath = resolveStatePath(env);
|
|
97
|
-
const
|
|
101
|
+
const notices = [];
|
|
102
|
+
const state = await settlePendingNotice({ env, now, statePath, state: await readState(statePath), notices });
|
|
98
103
|
const plan = resolveAutoUpdatePlan({
|
|
99
104
|
env,
|
|
100
105
|
now,
|
|
@@ -107,17 +112,18 @@ export async function runAutoUpdateCheck({ env = process.env, now = Date.now() }
|
|
|
107
112
|
if (plan.reason === "up-to-date") {
|
|
108
113
|
await writeState(statePath, { ...state, lastCheckedAt: now, lastStatus: "success" });
|
|
109
114
|
}
|
|
110
|
-
return { started: false, reason: plan.reason };
|
|
115
|
+
return { started: false, reason: plan.reason, notices };
|
|
111
116
|
}
|
|
112
117
|
|
|
113
118
|
const lockStaleMs = parsePositiveInteger(env.LAZYCODEX_AUTO_UPDATE_LOCK_STALE_MS, DEFAULT_LOCK_STALE_MS);
|
|
114
119
|
const lock = await acquireLock(resolveLockPath(env, statePath), now, lockStaleMs);
|
|
115
120
|
if (lock === null) {
|
|
116
121
|
await appendUpdateLog(env, now, "locked");
|
|
117
|
-
return { started: false, reason: "locked" };
|
|
122
|
+
return { started: false, reason: "locked", notices };
|
|
118
123
|
}
|
|
119
124
|
try {
|
|
120
125
|
await appendUpdateLog(env, now, "started", { command: plan.command, args: plan.args });
|
|
126
|
+
const pendingNotice = { fromVersion: plan.currentVersion, toVersion: plan.latestVersion, startedAt: now };
|
|
121
127
|
if (env.LAZYCODEX_AUTO_UPDATE_WAIT === "1") {
|
|
122
128
|
const invocation = resolveSpawnInvocation(plan.command, plan.args);
|
|
123
129
|
const result = spawnSync(invocation.command, invocation.args, {
|
|
@@ -126,10 +132,13 @@ export async function runAutoUpdateCheck({ env = process.env, now = Date.now() }
|
|
|
126
132
|
});
|
|
127
133
|
const status = result.status ?? (result.error === undefined ? 0 : 1);
|
|
128
134
|
await appendUpdateLog(env, now, "finished", { status });
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
135
|
+
if (status === 0) {
|
|
136
|
+
await writeState(statePath, { lastCheckedAt: now, lastAttemptedAt: now, lastStatus: "success", pendingNotice });
|
|
137
|
+
await recordUpdateStartedNotice({ env, now, notices, pendingNotice });
|
|
138
|
+
} else {
|
|
139
|
+
await writeState(statePath, { lastAttemptedAt: now, lastStatus: "failed" });
|
|
140
|
+
}
|
|
141
|
+
return { started: true, status, notices };
|
|
133
142
|
}
|
|
134
143
|
|
|
135
144
|
const invocation = resolveSpawnInvocation(plan.command, plan.args);
|
|
@@ -138,14 +147,44 @@ export async function runAutoUpdateCheck({ env = process.env, now = Date.now() }
|
|
|
138
147
|
stdio: "ignore",
|
|
139
148
|
detached: true,
|
|
140
149
|
});
|
|
141
|
-
await writeState(statePath, { lastAttemptedAt: now, lastStatus: "started" });
|
|
150
|
+
await writeState(statePath, { lastAttemptedAt: now, lastStatus: "started", pendingNotice });
|
|
151
|
+
await recordUpdateStartedNotice({ env, now, notices, pendingNotice });
|
|
142
152
|
child.unref();
|
|
143
|
-
return { started: true };
|
|
153
|
+
return { started: true, notices };
|
|
144
154
|
} finally {
|
|
145
155
|
await lock.release();
|
|
146
156
|
}
|
|
147
157
|
}
|
|
148
158
|
|
|
159
|
+
async function settlePendingNotice({ env, now, statePath, state, notices }) {
|
|
160
|
+
const pendingNotice = state.pendingNotice;
|
|
161
|
+
if (pendingNotice === undefined) return state;
|
|
162
|
+
const current = parseVersion(resolveCurrentVersion(env));
|
|
163
|
+
const target = parseVersion(pendingNotice.toVersion);
|
|
164
|
+
if (current !== null && target !== null && compareVersions(current, target) < 0) return state;
|
|
165
|
+
const nextState = { ...state };
|
|
166
|
+
delete nextState.pendingNotice;
|
|
167
|
+
await writeState(statePath, nextState);
|
|
168
|
+
if (current !== null && target !== null) {
|
|
169
|
+
notices.push(`[LazyCodex] Auto-update completed: v${pendingNotice.fromVersion} -> v${pendingNotice.toVersion}. This session is already running the new version. Tell the user the auto-update was applied.`);
|
|
170
|
+
await appendUpdateLog(env, now, "notified", {
|
|
171
|
+
kind: "update-completed",
|
|
172
|
+
fromVersion: pendingNotice.fromVersion,
|
|
173
|
+
toVersion: pendingNotice.toVersion,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
return nextState;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
async function recordUpdateStartedNotice({ env, now, notices, pendingNotice }) {
|
|
180
|
+
notices.push(`[LazyCodex] Auto-update started in the background: v${pendingNotice.fromVersion} -> v${pendingNotice.toVersion}. Tell the user a new LazyCodex version is installing and that they should start a new Codex session after it completes to apply it.`);
|
|
181
|
+
await appendUpdateLog(env, now, "notified", {
|
|
182
|
+
kind: "update-started",
|
|
183
|
+
fromVersion: pendingNotice.fromVersion,
|
|
184
|
+
toVersion: pendingNotice.toVersion,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
|
|
149
188
|
async function runConfigMigration({ env }) {
|
|
150
189
|
if (env.LAZYCODEX_CONFIG_MIGRATION_DISABLED === "1" || env.OMO_CODEX_CONFIG_MIGRATION_DISABLED === "1") return;
|
|
151
190
|
try {
|
|
@@ -264,8 +303,18 @@ function parsePositiveInteger(value, fallback) {
|
|
|
264
303
|
}
|
|
265
304
|
|
|
266
305
|
if (process.argv[1] !== undefined && import.meta.url === pathToFileURL(process.argv[1]).href) {
|
|
267
|
-
runAutoUpdateCheck()
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
306
|
+
runAutoUpdateCheck()
|
|
307
|
+
.then(({ notices }) => {
|
|
308
|
+
if (notices.length === 0) return;
|
|
309
|
+
console.log(JSON.stringify({
|
|
310
|
+
hookSpecificOutput: {
|
|
311
|
+
hookEventName: "SessionStart",
|
|
312
|
+
additionalContext: notices.join("\n\n"),
|
|
313
|
+
},
|
|
314
|
+
}));
|
|
315
|
+
})
|
|
316
|
+
.catch((error) => {
|
|
317
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
318
|
+
process.exit(0);
|
|
319
|
+
});
|
|
271
320
|
}
|
|
@@ -13,6 +13,12 @@ const runtimes = [
|
|
|
13
13
|
packageRoot: join(repoPackagesRoot, "lsp-tools-mcp"),
|
|
14
14
|
requiredOutputs: ["dist/cli.js", "dist/tools.js"],
|
|
15
15
|
},
|
|
16
|
+
{
|
|
17
|
+
label: "lsp-daemon",
|
|
18
|
+
packageRoot: join(repoPackagesRoot, "lsp-daemon"),
|
|
19
|
+
requiredOutputs: ["dist/cli.js", "dist/index.js", "dist/index.d.ts"],
|
|
20
|
+
install: true,
|
|
21
|
+
},
|
|
16
22
|
{
|
|
17
23
|
label: "ast-grep-mcp",
|
|
18
24
|
packageRoot: join(repoPackagesRoot, "ast-grep-mcp"),
|
|
@@ -41,6 +47,16 @@ function buildRuntime(runtime) {
|
|
|
41
47
|
return;
|
|
42
48
|
}
|
|
43
49
|
|
|
50
|
+
if (runtime.install === true && !existsSync(join(runtime.packageRoot, "node_modules"))) {
|
|
51
|
+
const install = spawnSync("npm", ["ci"], {
|
|
52
|
+
cwd: runtime.packageRoot,
|
|
53
|
+
shell: process.platform === "win32",
|
|
54
|
+
stdio: "inherit",
|
|
55
|
+
});
|
|
56
|
+
if (install.error !== undefined) throw install.error;
|
|
57
|
+
if (install.status !== 0) process.exit(install.status ?? 1);
|
|
58
|
+
}
|
|
59
|
+
|
|
44
60
|
const result = spawnSync("npm", ["run", "build"], {
|
|
45
61
|
cwd: runtime.packageRoot,
|
|
46
62
|
shell: process.platform === "win32",
|
|
@@ -1,27 +1,88 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Runtime migration:
|
|
3
|
-
* `[features.multi_agent_v2]`.
|
|
2
|
+
* Runtime migration: force `[features.multi_agent_v2]` to `enabled = false`.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* installer
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
4
|
+
* Runs on every Codex SessionStart (via auto-update's config migration) so
|
|
5
|
+
* multi-agent V2 stays off regardless of how it was turned on: an
|
|
6
|
+
* installer-forced `enabled = true`, a missing `enabled` key the runtime
|
|
7
|
+
* would resolve per model, or the `[features]` boolean shorthand
|
|
8
|
+
* `multi_agent_v2 = true` (removed here because a boolean key and a
|
|
9
|
+
* `[features.multi_agent_v2]` table for the same name are conflicting TOML).
|
|
10
|
+
*
|
|
11
|
+
* Upstream basis: openai/codex#26753 — with the flag on, EVERY turn fails
|
|
12
|
+
* with a 400 ("spawn_agent declares encrypted parameters but is not
|
|
13
|
+
* configured for encrypted tool use by this model"), even on prompts that
|
|
14
|
+
* never touch subagents. OpenAI closed it NOT_PLANNED stating V2 is under
|
|
15
|
+
* development, not recommended, and bug reports are not accepted. Same
|
|
16
|
+
* failure class still being reported (openai/codex#27205).
|
|
11
17
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
18
|
+
const MANAGED_COMMENT_MARKER = "openai/codex#26753";
|
|
19
|
+
const MANAGED_DISABLE_COMMENT = [
|
|
20
|
+
"# Managed by LazyCodex: multi_agent_v2 is re-disabled on every Codex session start",
|
|
21
|
+
`# because enabling it fails every turn with HTTP 400 (${MANAGED_COMMENT_MARKER}).`,
|
|
22
|
+
"# Opt out: LAZYCODEX_CONFIG_MIGRATION_DISABLED=1 (or OMO_CODEX_CONFIG_MIGRATION_DISABLED=1).",
|
|
23
|
+
"",
|
|
24
|
+
].join("\n");
|
|
25
|
+
|
|
26
|
+
export function forceDisableMultiAgentV2(config) {
|
|
27
|
+
let result = removeEnabledFeaturesShorthand(config);
|
|
28
|
+
const section = findSection(result, "[features.multi_agent_v2]");
|
|
29
|
+
|
|
30
|
+
if (!section) {
|
|
31
|
+
if (hasDisabledFeaturesShorthand(result)) return result;
|
|
32
|
+
return ensureManagedComment(appendDisabledSection(result));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const enabledTruePattern = /^(\s*)enabled\s*=\s*true[ \t]*(#[^\n]*)?$/m;
|
|
36
|
+
if (enabledTruePattern.test(section.text)) {
|
|
37
|
+
const patched = section.text.replace(enabledTruePattern, (_match, indent, comment) => comment ? `${indent}enabled = false ${comment}` : `${indent}enabled = false`);
|
|
38
|
+
return ensureManagedComment(result.slice(0, section.start) + patched + result.slice(section.end));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (/^\s*enabled\s*=\s*false[ \t]*(?:#[^\n]*)?$/m.test(section.text)) return result;
|
|
42
|
+
|
|
43
|
+
const headerEnd = section.text.indexOf("\n");
|
|
44
|
+
const insertAt = headerEnd === -1 ? section.text.length : headerEnd + 1;
|
|
45
|
+
const patched = `${section.text.slice(0, insertAt)}${headerEnd === -1 ? "\n" : ""}enabled = false\n${section.text.slice(insertAt)}`;
|
|
46
|
+
return ensureManagedComment(result.slice(0, section.start) + patched + result.slice(section.end));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function ensureManagedComment(config) {
|
|
50
|
+
if (config.includes(MANAGED_COMMENT_MARKER)) return config;
|
|
51
|
+
const section = findSection(config, "[features.multi_agent_v2]");
|
|
52
|
+
if (!section) return config;
|
|
53
|
+
return config.slice(0, section.start) + MANAGED_DISABLE_COMMENT + config.slice(section.start);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function removeEnabledFeaturesShorthand(config) {
|
|
57
|
+
const section = findSection(config, "[features]");
|
|
14
58
|
if (!section) return config;
|
|
15
59
|
|
|
16
|
-
const
|
|
17
|
-
if (!
|
|
60
|
+
const shorthandPattern = /^\s*multi_agent_v2\s*=\s*true[ \t]*(?:#[^\n]*)?[ \t]*\n?/m;
|
|
61
|
+
if (!shorthandPattern.test(section.text)) return config;
|
|
18
62
|
|
|
19
|
-
const patched = section.text.replace(
|
|
63
|
+
const patched = section.text.replace(shorthandPattern, "");
|
|
20
64
|
return config.slice(0, section.start) + patched + config.slice(section.end);
|
|
21
65
|
}
|
|
22
66
|
|
|
23
|
-
function
|
|
24
|
-
const
|
|
67
|
+
function hasDisabledFeaturesShorthand(config) {
|
|
68
|
+
const section = findSection(config, "[features]");
|
|
69
|
+
if (!section) return false;
|
|
70
|
+
return /^\s*multi_agent_v2\s*=\s*false[ \t]*(?:#[^\n]*)?$/m.test(section.text);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function appendDisabledSection(config) {
|
|
74
|
+
const trimmed = config.trimEnd();
|
|
75
|
+
const prefix = trimmed.length === 0 ? "" : `${trimmed}\n\n`;
|
|
76
|
+
return `${prefix}[features.multi_agent_v2]\nenabled = false\n`;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Strips a trailing # comment from a TOML line fragment (best-effort; quoted keys containing # are out of scope).
|
|
80
|
+
function stripTrailingComment(line) {
|
|
81
|
+
const idx = line.indexOf("#");
|
|
82
|
+
return idx === -1 ? line : line.slice(0, idx).trim();
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function findSection(config, headerLine) {
|
|
25
86
|
const lines = config.match(/[^\n]*\n?|$/g) ?? [];
|
|
26
87
|
let offset = 0;
|
|
27
88
|
let start = -1;
|
|
@@ -29,9 +90,12 @@ function findMultiAgentV2Section(config) {
|
|
|
29
90
|
if (line.length === 0) break;
|
|
30
91
|
const trimmed = line.trim();
|
|
31
92
|
if (start === -1) {
|
|
32
|
-
if (trimmed === headerLine) start = offset;
|
|
33
|
-
} else
|
|
34
|
-
|
|
93
|
+
if (stripTrailingComment(trimmed) === headerLine) start = offset;
|
|
94
|
+
} else {
|
|
95
|
+
const bare = stripTrailingComment(trimmed);
|
|
96
|
+
if (bare.startsWith("[") && bare.endsWith("]")) {
|
|
97
|
+
return { start, end: offset, text: config.slice(start, offset) };
|
|
98
|
+
}
|
|
35
99
|
}
|
|
36
100
|
offset += line.length;
|
|
37
101
|
}
|
|
@@ -6,7 +6,7 @@ import { pathToFileURL } from "node:url";
|
|
|
6
6
|
|
|
7
7
|
import { FALLBACK_CATALOG, readModelCatalog } from "./migrate-codex-config/catalog.mjs";
|
|
8
8
|
import { configPaths } from "./migrate-codex-config/config-paths.mjs";
|
|
9
|
-
import {
|
|
9
|
+
import { forceDisableMultiAgentV2 } from "./migrate-codex-config/multi-agent-v2-guard.mjs";
|
|
10
10
|
import { ensureCodexReasoningConfig as applyReasoningProfile, readRootSettings } from "./migrate-codex-config/root-settings.mjs";
|
|
11
11
|
import { readState, resolveStatePath, writeState } from "./migrate-codex-config/state.mjs";
|
|
12
12
|
|
|
@@ -51,7 +51,7 @@ export async function migrateConfigFile(configPath, { catalog = FALLBACK_CATALOG
|
|
|
51
51
|
reasoningApplied = config !== before;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
const afterMultiAgentGuard =
|
|
54
|
+
const afterMultiAgentGuard = forceDisableMultiAgentV2(config);
|
|
55
55
|
const multiAgentChanged = afterMultiAgentGuard !== config;
|
|
56
56
|
if (multiAgentChanged) config = afterMultiAgentGuard;
|
|
57
57
|
|
|
@@ -24,21 +24,23 @@ This skill may include examples copied from the OpenCode harness. In Codex, do n
|
|
|
24
24
|
|
|
25
25
|
| OpenCode example | Codex tool to use |
|
|
26
26
|
| --- | --- |
|
|
27
|
-
| \`call_omo_agent(subagent_type="explore", ...)\` | \`spawn_agent({"
|
|
28
|
-
| \`call_omo_agent(subagent_type="librarian", ...)\` | \`spawn_agent({"
|
|
29
|
-
| \`task(subagent_type="plan", ...)\` | \`spawn_agent({"
|
|
30
|
-
| \`task(subagent_type="oracle", ...)\` for final verification | \`spawn_agent({"
|
|
31
|
-
| \`task(category="...", ...)\` for implementation or QA | \`spawn_agent({"
|
|
32
|
-
| \`background_output(task_id="...")\` | \`wait_agent(...)\` for mailbox signals
|
|
33
|
-
| \`team_*(...)\` | Use Codex native subagents
|
|
27
|
+
| \`call_omo_agent(subagent_type="explore", ...)\` | \`multi_agent_v1.spawn_agent({"message":"TASK: act as an explorer. ...","agent_type":"explorer","fork_context":false})\` |
|
|
28
|
+
| \`call_omo_agent(subagent_type="librarian", ...)\` | \`multi_agent_v1.spawn_agent({"message":"TASK: act as a librarian. ...","agent_type":"librarian","fork_context":false})\` |
|
|
29
|
+
| \`task(subagent_type="plan", ...)\` | \`multi_agent_v1.spawn_agent({"message":"TASK: act as a planning agent. ...","agent_type":"plan","fork_context":false})\` |
|
|
30
|
+
| \`task(subagent_type="oracle", ...)\` for final verification | \`multi_agent_v1.spawn_agent({"message":"TASK: act as a rigorous reviewer. ...","agent_type":"codex-ultrawork-reviewer","fork_context":false})\` |
|
|
31
|
+
| \`task(category="...", ...)\` for implementation or QA | \`multi_agent_v1.spawn_agent({"message":"TASK: act as an implementation or QA worker. ...","fork_context":false})\` |
|
|
32
|
+
| \`background_output(task_id="...")\` | \`multi_agent_v1.wait_agent(...)\` for mailbox signals |
|
|
33
|
+
| \`team_*(...)\` | Use Codex native subagents via \`multi_agent_v1.spawn_agent\`, \`multi_agent_v1.send_input\`, \`multi_agent_v1.wait_agent\`, and \`multi_agent_v1.close_agent\` |
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Role-specific behavior must be described in a self-contained \`message\`. Use \`fork_context: false\` to start the child with only the initial prompt (no parent history); use \`fork_context: true\` only when full parent history is truly required. Include any required conversation context, files, diffs, constraints, and requested skill names directly in the spawned agent's \`message\`. OMO installs these selectable agent roles into \`~/.codex/agents/\`: \`explorer\`, \`librarian\`, \`plan\`, \`momus\`, \`metis\`, and \`codex-ultrawork-reviewer\` — pass the matching name as \`agent_type\` so the child gets that role's model and instructions. On \`multi_agent_v2\` sessions the same \`agent_type\` applies (the OMO installer exposes it) with \`fork_turns\` instead of \`fork_context\`. If the spawn tool exposes no \`agent_type\` parameter, omit it and describe the role inside \`message\`. If a code block below conflicts with this section, this section wins.
|
|
36
36
|
|
|
37
|
-
For work likely to exceed one wait cycle, require the child to send \`WORKING: <task> - <current phase>\` before long passes and \`BLOCKED: <reason>\` only when progress stops. A \`wait_agent\` timeout only means no new mailbox update arrived. Treat a running child
|
|
37
|
+
For work likely to exceed one wait cycle, require the child to send \`WORKING: <task> - <current phase>\` before long passes and \`BLOCKED: <reason>\` only when progress stops. A \`multi_agent_v1.wait_agent\` timeout only means no new mailbox update arrived. Treat a running child as alive. Fallback only when the child is completed without the deliverable, ack-only after followup, explicitly \`BLOCKED:\`, or no longer running.
|
|
38
38
|
|
|
39
39
|
`;
|
|
40
40
|
|
|
41
41
|
const codexCompatibilityEndMarkers = [
|
|
42
|
+
"For work likely to exceed one wait cycle, require the child to send `WORKING: <task> - <current phase>` before long passes and `BLOCKED: <reason>` only when progress stops. A `multi_agent_v1.wait_agent` timeout only means no new mailbox update arrived. Treat a running child as alive. Fallback only when the child is completed without the deliverable, ack-only after followup, explicitly `BLOCKED:`, or no longer running.\n\n",
|
|
43
|
+
"Role-specific behavior must be described in a self-contained `message`. Use `fork_context: false` to start the child with only the initial prompt (no parent history); use `fork_context: true` only when full parent history is truly required. Include any required conversation context, files, diffs, constraints, and requested skill names directly in the spawned agent's `message`. If a code block below conflicts with this section, this section wins.\n\n",
|
|
42
44
|
"For work likely to exceed one wait cycle, require the child to send `WORKING: <task> - <current phase>` before long passes and `BLOCKED: <reason>` only when progress stops. A `wait_agent` timeout only means no new mailbox update arrived. Treat a running child or latest `WORKING:` message as alive. Do not use `list_agents` as a polling loop. Fallback only when the child is completed without the deliverable, ack-only after followup, explicitly `BLOCKED:`, or no longer running.\n\n",
|
|
43
45
|
"Codex full-history forks inherit parent context, so role-specific behavior must be described in a self-contained `message` and usually should use a non-full-history fork mode such as `fork_turns=\"none\"`. Include any required conversation context, files, diffs, constraints, and requested skill names directly in the spawned agent's `message`. If a code block below conflicts with this section, this section wins.\n\n",
|
|
44
46
|
"When translating `load_skills=[...]`, include the requested skill names in the spawned agent's `message`. If a code block below conflicts with this section, this section wins.\n\n",
|
|
@@ -46,7 +48,7 @@ const codexCompatibilityEndMarkers = [
|
|
|
46
48
|
];
|
|
47
49
|
|
|
48
50
|
function findCodexCompatibilitySectionEnd(content, searchStart) {
|
|
49
|
-
const structuralEndPattern = /\n(
|
|
51
|
+
const structuralEndPattern = /\n(?:---|export\s+const\s+|#{1,6}\s)/g;
|
|
50
52
|
structuralEndPattern.lastIndex = searchStart;
|
|
51
53
|
const structuralEnd = structuralEndPattern.exec(content);
|
|
52
54
|
if (structuralEnd) return structuralEnd.index + 1;
|
|
@@ -71,11 +73,21 @@ function removeCodexCompatibilityGuidance(content) {
|
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
75
|
|
|
76
|
+
function hasKnownGeneratedCodexCompatibilityGuidance(content, compatibilityIndex) {
|
|
77
|
+
return codexCompatibilityEndMarkers.some((marker) => content.indexOf(marker, compatibilityIndex) !== -1);
|
|
78
|
+
}
|
|
79
|
+
|
|
74
80
|
export function insertCodexCompatibilityGuidance(content) {
|
|
75
81
|
if (!opencodeOnlyOrchestrationPattern.test(content)) return content;
|
|
76
82
|
const firstExampleIndex = content.search(opencodeOnlyOrchestrationPattern);
|
|
77
83
|
const compatibilityIndex = content.indexOf("## Codex Harness Tool Compatibility");
|
|
78
|
-
if (
|
|
84
|
+
if (
|
|
85
|
+
compatibilityIndex !== -1 &&
|
|
86
|
+
compatibilityIndex < firstExampleIndex &&
|
|
87
|
+
!hasKnownGeneratedCodexCompatibilityGuidance(content, compatibilityIndex)
|
|
88
|
+
) {
|
|
89
|
+
return content;
|
|
90
|
+
}
|
|
79
91
|
|
|
80
92
|
const contentWithoutGuidance = removeCodexCompatibilityGuidance(content);
|
|
81
93
|
|