oh-my-opencode 4.19.1 → 4.19.3
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/publish.md +95 -28
- package/.agents/skills/publish/SKILL.md +20 -6
- package/.opencode/command/publish.md +95 -28
- package/README.ja.md +2 -2
- package/README.ko.md +2 -2
- package/README.md +2 -2
- package/README.ru.md +2 -2
- package/README.zh-cn.md +2 -2
- package/THIRD-PARTY-NOTICES.md +7 -7
- package/dist/agents/atlas/agent.d.ts +4 -2
- package/dist/agents/explore.d.ts +4 -2
- package/dist/agents/hephaestus/agent.d.ts +4 -2
- package/dist/agents/librarian.d.ts +4 -2
- package/dist/agents/metis.d.ts +4 -2
- package/dist/agents/momus.d.ts +3 -2
- package/dist/agents/multimodal-looker.d.ts +4 -2
- package/dist/agents/oracle.d.ts +4 -2
- package/dist/agents/sisyphus/claude-opus-5.d.ts +33 -0
- package/dist/agents/sisyphus/index.d.ts +2 -0
- package/dist/agents/sisyphus-agent-factory.d.ts +5 -2
- package/dist/agents/sisyphus-junior/agent.d.ts +4 -1
- package/dist/agents/sisyphus-runtime-prompt-reconciler.d.ts +1 -1
- package/dist/agents/types.d.ts +2 -2
- package/dist/cli/config-migrate.d.ts +8 -0
- package/dist/cli/doctor/checks/legacy-config-leftovers.d.ts +10 -0
- package/dist/cli/doctor/checks/model-resolution-config.d.ts +1 -1
- package/dist/cli/doctor/checks/tools-lsp.d.ts +1 -1
- package/dist/cli/doctor/framework/constants.d.ts +1 -1
- package/dist/cli/index.js +95391 -88524
- package/dist/cli-node/index.js +95504 -88637
- package/dist/config/schema/agent-names.d.ts +26 -26
- package/dist/config/schema/agent-overrides.d.ts +400 -400
- package/dist/config/schema/browser-automation.d.ts +2 -2
- package/dist/config/schema/categories.d.ts +36 -36
- package/dist/config/schema/commands.d.ts +2 -2
- package/dist/config/schema/dynamic-context-pruning.d.ts +1 -1
- package/dist/config/schema/experimental.d.ts +1 -1
- package/dist/config/schema/fallback-models.d.ts +25 -25
- package/dist/config/schema/hooks.d.ts +43 -43
- package/dist/config/schema/internal/permission.d.ts +9 -9
- package/dist/config/schema/keyword-detector.d.ts +6 -6
- package/dist/config/schema/oh-my-opencode-config.d.ts +402 -402
- package/dist/config/schema/tmux.d.ts +6 -6
- package/dist/config/validate.d.ts +2 -1
- package/dist/config-migration/deep-diff.d.ts +1 -0
- package/dist/config-migration/discovery-paths.d.ts +11 -0
- package/dist/config-migration/discovery-roots.d.ts +7 -0
- package/dist/config-migration/discovery.d.ts +4 -0
- package/dist/config-migration/index.d.ts +9 -0
- package/dist/config-migration/legacy-history.d.ts +3 -0
- package/dist/config-migration/migration-executor.d.ts +4 -0
- package/dist/config-migration/migration-plans.d.ts +14 -0
- package/dist/config-migration/record-values.d.ts +4 -0
- package/dist/config-migration/schema-url.d.ts +1 -0
- package/dist/config-migration/transform-config-jsonc.d.ts +2 -0
- package/dist/config-migration/transform-opencode.d.ts +2 -0
- package/dist/config-migration/transform-types.d.ts +24 -0
- package/dist/config-migration/types.d.ts +39 -0
- package/dist/create-hooks.d.ts +35 -35
- package/dist/features/background-agent/spawner/tmux-callback-invoker.d.ts +11 -0
- package/dist/features/builtin-commands/templates/hyperplan.d.ts +1 -1
- package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
- package/dist/features/claude-tasks/types.d.ts +4 -4
- package/dist/features/team-mode/team-runtime/shutdown-helpers.d.ts +1 -1
- package/dist/features/team-mode/team-runtime/shutdown-test-fixtures.d.ts +4 -4
- package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +42 -42
- package/dist/features/tmux-subagent/environment-eligibility.d.ts +2 -0
- package/dist/features/tmux-subagent/index.d.ts +1 -0
- package/dist/features/tmux-subagent/tracked-session-state.d.ts +1 -0
- package/dist/features/tui-sidebar/snapshot-schema.d.ts +6 -6
- package/dist/help/schema/acp.d.ts +3 -3
- package/dist/help/schema/doctor.d.ts +4 -4
- package/dist/help/schema/status.d.ts +3 -3
- package/dist/hooks/auto-update-checker/constants.d.ts +3 -3
- package/dist/hooks/goal/types.d.ts +5 -5
- package/dist/hooks/non-interactive-env/constants.d.ts +4 -1
- package/dist/hooks/start-work/parse-user-request.d.ts +2 -0
- package/dist/hooks/start-work/worktree-block.d.ts +5 -0
- package/dist/index.js +35450 -28257
- package/dist/mcp/types.d.ts +3 -3
- package/dist/oh-my-opencode.schema.json +1 -1
- package/dist/plugin/chat-message/loop-commands.d.ts +1 -0
- package/dist/plugin/command-execute-before.d.ts +3 -3
- package/dist/plugin/hooks/create-core-hooks.d.ts +25 -25
- package/dist/plugin-config/omo-config-chain.d.ts +14 -0
- package/dist/plugin-config/unknown-key-diagnostics.d.ts +5 -0
- package/dist/plugin-config.d.ts +2 -2
- package/dist/shared/agent-display-names.d.ts +1 -1
- package/dist/shared/jsonc-parser.d.ts +1 -1
- package/dist/shared/migration.d.ts +5 -1
- package/dist/shared/opencode-config-dir-types.d.ts +0 -1
- package/dist/shared/plugin-identity.d.ts +6 -8
- package/dist/shared/project-discovery-dirs.d.ts +0 -1
- package/dist/shared/tmux/tmux-utils/environment.d.ts +1 -1
- package/dist/shared/tmux/tmux-utils.d.ts +1 -1
- package/dist/shared/typescript-native-source-parser.d.ts +7 -0
- package/dist/skills/coding-agent-sessions/SKILL.md +5 -2
- package/dist/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/dist/skills/coding-agent-sessions/references/senpi.md +15 -5
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +46 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +19 -10
- package/dist/skills/debugging/SKILL.md +2 -1
- package/dist/skills/debugging/references/methodology/03-flaky-triage.md +47 -0
- package/dist/skills/frontend/ATTRIBUTION.md +7 -0
- package/dist/skills/frontend/SKILL.md +4 -1
- package/dist/skills/frontend/references/design/README.md +8 -0
- package/dist/skills/frontend/references/design/_INDEX.md +14 -1
- package/dist/skills/frontend/references/design/interaction-skill.md +144 -0
- package/dist/skills/programming/SKILL.md +11 -1
- package/dist/skills/programming/references/logging.md +6 -1
- package/dist/skills/programming/scripts/typescript/check-no-excuse-rules.ts +51 -17
- package/dist/skills/start-work/SKILL.md +12 -2
- package/dist/skills/ulw-plan/SKILL.md +1 -1
- package/dist/skills/ulw-plan/references/full-workflow.md +12 -1
- package/dist/skills/ulw-plan/references/intent-clear.md +1 -1
- package/dist/startup-migration.d.ts +28 -0
- package/dist/testing/create-plugin-module.d.ts +4 -0
- package/dist/tools/task/types.d.ts +10 -10
- package/dist/tui.js +31812 -26849
- package/package.json +14 -14
- package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +21 -5
- package/packages/lsp-core/src/lsp/fixtures/workspace-edit-server.mjs +11 -2
- package/packages/omo-codex/THIRD-PARTY-NOTICES.md +2 -2
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +8 -4
- 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/codegraph/AGENTS.md +11 -5
- package/packages/omo-codex/plugin/components/codegraph/NOTICE +1 -1
- package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +10272 -2600
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +7341 -562
- package/packages/omo-codex/plugin/components/codegraph/package.json +2 -2
- package/packages/omo-codex/plugin/components/codegraph/src/hook-input.ts +33 -0
- package/packages/omo-codex/plugin/components/codegraph/src/hook-types.ts +36 -10
- package/packages/omo-codex/plugin/components/codegraph/src/hook.ts +170 -186
- package/packages/omo-codex/plugin/components/codegraph/src/post-tool-use-hook.ts +34 -0
- package/packages/omo-codex/plugin/components/codegraph/src/serve.ts +22 -5
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-command.ts +106 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-cooldown.ts +145 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-hook-runtime.ts +21 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-lock.ts +139 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-outcome.ts +15 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-paths.ts +32 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-project.ts +109 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker-result.ts +148 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker.ts +126 -186
- package/packages/omo-codex/plugin/components/codegraph/test/hook-exclusion.test.ts +9 -4
- package/packages/omo-codex/plugin/components/codegraph/test/hook-session-start-guard.test.ts +160 -0
- package/packages/omo-codex/plugin/components/codegraph/test/hook-store-upgrade.test.ts +12 -110
- package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +29 -20
- package/packages/omo-codex/plugin/components/codegraph/test/mcp-bridge-fixtures.ts +3 -3
- package/packages/omo-codex/plugin/components/codegraph/test/package-runtime.test.ts +2 -2
- package/packages/omo-codex/plugin/components/codegraph/test/provisioned-node-guard.test.ts +11 -5
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +3 -3
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-facade.test.ts +2 -1
- package/packages/omo-codex/plugin/components/codegraph/test/serve-provision.test.ts +50 -5
- package/packages/omo-codex/plugin/components/codegraph/test/serve-unavailable.test.ts +3 -2
- package/packages/omo-codex/plugin/components/codegraph/test/serve.test.ts +24 -13
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-node-support.test.ts +70 -13
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-project.test.ts +58 -0
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-state.test.ts +104 -0
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-trust-boundary.test.ts +4 -2
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-cooldown.test.ts +116 -0
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-flow.test.ts +114 -119
- 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 +2 -2
- 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 +31 -14
- 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/start-work-continuation/directive.md +1 -1
- 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/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/directive.md +12 -7
- 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 +12 -7
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +12 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +12 -7
- 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 +19 -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 +42 -41
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/shared/src/config-loader.ts +165 -16
- package/packages/omo-codex/plugin/shared/src/config-migration.ts +162 -0
- package/packages/omo-codex/plugin/shared/test/config-loader.test.ts +196 -18
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +5 -2
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +15 -5
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +46 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +19 -10
- package/packages/omo-codex/plugin/skills/debugging/SKILL.md +2 -1
- package/packages/omo-codex/plugin/skills/debugging/references/methodology/03-flaky-triage.md +47 -0
- package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +7 -0
- package/packages/omo-codex/plugin/skills/frontend/SKILL.md +4 -1
- package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +8 -0
- package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +14 -1
- package/packages/omo-codex/plugin/skills/frontend/references/design/interaction-skill.md +144 -0
- package/packages/omo-codex/plugin/skills/programming/SKILL.md +11 -1
- package/packages/omo-codex/plugin/skills/programming/references/logging.md +6 -1
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/check-no-excuse-rules.ts +51 -17
- package/packages/omo-codex/plugin/skills/start-work/SKILL.md +12 -2
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +12 -7
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +19 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +12 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +1 -1
- package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +22 -0
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +1 -1
- package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +5 -2
- package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +15 -5
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +46 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +19 -10
- package/packages/shared-skills/skills/debugging/SKILL.md +2 -1
- package/packages/shared-skills/skills/debugging/references/methodology/03-flaky-triage.md +47 -0
- package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +7 -0
- package/packages/shared-skills/skills/frontend/SKILL.md +4 -1
- package/packages/shared-skills/skills/frontend/references/design/README.md +8 -0
- package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +14 -1
- package/packages/shared-skills/skills/frontend/references/design/interaction-skill.md +144 -0
- package/packages/shared-skills/skills/programming/SKILL.md +11 -1
- package/packages/shared-skills/skills/programming/references/logging.md +6 -1
- package/packages/shared-skills/skills/programming/scripts/typescript/check-no-excuse-rules.ts +51 -17
- package/packages/shared-skills/skills/start-work/SKILL.md +12 -2
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +1 -1
- package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +12 -1
- package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +1 -1
- package/dist/plugin-config/layered-config-loader.d.ts +0 -2
- package/dist/plugin-config/single-config-loader.d.ts +0 -4
- package/dist/shared/migrate-legacy-config-file.d.ts +0 -1
- package/dist/shared/migration/config-migration.d.ts +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oh-my-opencode",
|
|
3
|
-
"version": "4.19.
|
|
3
|
+
"version": "4.19.3",
|
|
4
4
|
"description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -209,21 +209,21 @@
|
|
|
209
209
|
"bun-types": "1.3.14",
|
|
210
210
|
"node-pty": "^1.1.0",
|
|
211
211
|
"puppeteer-core": "^25.3.0",
|
|
212
|
-
"typescript": "^
|
|
212
|
+
"typescript": "^7.0.2"
|
|
213
213
|
},
|
|
214
214
|
"optionalDependencies": {
|
|
215
|
-
"oh-my-opencode-darwin-arm64": "4.19.
|
|
216
|
-
"oh-my-opencode-darwin-x64": "4.19.
|
|
217
|
-
"oh-my-opencode-darwin-x64-baseline": "4.19.
|
|
218
|
-
"oh-my-opencode-linux-arm64": "4.19.
|
|
219
|
-
"oh-my-opencode-linux-arm64-musl": "4.19.
|
|
220
|
-
"oh-my-opencode-linux-x64": "4.19.
|
|
221
|
-
"oh-my-opencode-linux-x64-baseline": "4.19.
|
|
222
|
-
"oh-my-opencode-linux-x64-musl": "4.19.
|
|
223
|
-
"oh-my-opencode-linux-x64-musl-baseline": "4.19.
|
|
224
|
-
"oh-my-opencode-windows-arm64": "4.19.
|
|
225
|
-
"oh-my-opencode-windows-x64": "4.19.
|
|
226
|
-
"oh-my-opencode-windows-x64-baseline": "4.19.
|
|
215
|
+
"oh-my-opencode-darwin-arm64": "4.19.3",
|
|
216
|
+
"oh-my-opencode-darwin-x64": "4.19.3",
|
|
217
|
+
"oh-my-opencode-darwin-x64-baseline": "4.19.3",
|
|
218
|
+
"oh-my-opencode-linux-arm64": "4.19.3",
|
|
219
|
+
"oh-my-opencode-linux-arm64-musl": "4.19.3",
|
|
220
|
+
"oh-my-opencode-linux-x64": "4.19.3",
|
|
221
|
+
"oh-my-opencode-linux-x64-baseline": "4.19.3",
|
|
222
|
+
"oh-my-opencode-linux-x64-musl": "4.19.3",
|
|
223
|
+
"oh-my-opencode-linux-x64-musl-baseline": "4.19.3",
|
|
224
|
+
"oh-my-opencode-windows-arm64": "4.19.3",
|
|
225
|
+
"oh-my-opencode-windows-x64": "4.19.3",
|
|
226
|
+
"oh-my-opencode-windows-x64-baseline": "4.19.3"
|
|
227
227
|
},
|
|
228
228
|
"overrides": {
|
|
229
229
|
"@earendil-works/pi-agent-core": "0.80.3",
|
|
@@ -51,21 +51,23 @@ describe("LspClient diagnostics freshness", () => {
|
|
|
51
51
|
{
|
|
52
52
|
trigger: "didChange",
|
|
53
53
|
diagnostics: [diagnostic("post-generation-versionless")],
|
|
54
|
+
awaitClientDelivery: true,
|
|
54
55
|
},
|
|
55
56
|
],
|
|
56
57
|
},
|
|
57
58
|
{ diagnosticsFreshnessTimeoutMs: 80, versionlessPublishQuiescenceMs: 20 },
|
|
58
59
|
);
|
|
59
60
|
await context.client.openFile(context.source);
|
|
60
|
-
|
|
61
|
+
const versionlessDelivery = waitForEventCount(
|
|
61
62
|
context.events,
|
|
62
|
-
(event) => event.type === "
|
|
63
|
+
(event) => event.type === "clientResponse" && event.method === "workspace/configuration",
|
|
63
64
|
1,
|
|
64
65
|
);
|
|
66
|
+
const startedAt = Date.now();
|
|
65
67
|
writeFileSync(context.source, "const after = 1;\n", "utf-8");
|
|
66
68
|
await context.client.openFile(context.source);
|
|
69
|
+
expect(await versionlessDelivery).toHaveLength(1);
|
|
67
70
|
|
|
68
|
-
const startedAt = Date.now();
|
|
69
71
|
const result = await context.client.diagnostics(context.source);
|
|
70
72
|
const elapsedMs = Date.now() - startedAt;
|
|
71
73
|
|
|
@@ -104,14 +106,21 @@ describe("LspClient diagnostics freshness", () => {
|
|
|
104
106
|
trigger: "didChange",
|
|
105
107
|
version: 1,
|
|
106
108
|
diagnostics: [diagnostic("stale")],
|
|
109
|
+
awaitClientDelivery: true,
|
|
107
110
|
},
|
|
108
111
|
],
|
|
109
112
|
},
|
|
110
|
-
{ diagnosticsFreshnessTimeoutMs:
|
|
113
|
+
{ diagnosticsFreshnessTimeoutMs: 100, versionlessPublishQuiescenceMs: 5 },
|
|
111
114
|
);
|
|
112
115
|
await stale.client.openFile(stale.source);
|
|
116
|
+
const staleDelivery = waitForEventCount(
|
|
117
|
+
stale.events,
|
|
118
|
+
(event) => event.type === "clientResponse" && event.method === "workspace/configuration",
|
|
119
|
+
1,
|
|
120
|
+
);
|
|
113
121
|
writeFileSync(stale.source, "const stale = 1;\n", "utf-8");
|
|
114
122
|
await stale.client.openFile(stale.source);
|
|
123
|
+
expect(await staleDelivery).toHaveLength(1);
|
|
115
124
|
|
|
116
125
|
const staleResult = await stale.client.diagnostics(stale.source);
|
|
117
126
|
|
|
@@ -127,14 +136,21 @@ describe("LspClient diagnostics freshness", () => {
|
|
|
127
136
|
trigger: "didChange",
|
|
128
137
|
version: 3,
|
|
129
138
|
diagnostics: [diagnostic("future")],
|
|
139
|
+
awaitClientDelivery: true,
|
|
130
140
|
},
|
|
131
141
|
],
|
|
132
142
|
},
|
|
133
|
-
{ diagnosticsFreshnessTimeoutMs:
|
|
143
|
+
{ diagnosticsFreshnessTimeoutMs: 100, versionlessPublishQuiescenceMs: 5 },
|
|
134
144
|
);
|
|
135
145
|
await future.client.openFile(future.source);
|
|
146
|
+
const futureDelivery = waitForEventCount(
|
|
147
|
+
future.events,
|
|
148
|
+
(event) => event.type === "clientResponse" && event.method === "workspace/configuration",
|
|
149
|
+
1,
|
|
150
|
+
);
|
|
136
151
|
writeFileSync(future.source, "const future = 1;\n", "utf-8");
|
|
137
152
|
await future.client.openFile(future.source);
|
|
153
|
+
expect(await futureDelivery).toHaveLength(1);
|
|
138
154
|
|
|
139
155
|
const futureResult = await future.client.diagnostics(future.source);
|
|
140
156
|
|
|
@@ -51,6 +51,14 @@ function finishRename(context) {
|
|
|
51
51
|
}, delay);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
function sendPublishDeliveryBarrier() {
|
|
55
|
+
const id = nextServerRequestId;
|
|
56
|
+
nextServerRequestId += 1;
|
|
57
|
+
pendingServerRequests.set(String(id), { kind: "publishDeliveryBarrier", method: "workspace/configuration" });
|
|
58
|
+
record({ type: "serverRequest", method: "workspace/configuration", id });
|
|
59
|
+
send({ jsonrpc: "2.0", id, method: "workspace/configuration", params: { items: [] } });
|
|
60
|
+
}
|
|
61
|
+
|
|
54
62
|
function schedulePublish(step, fallbackUri, fallbackVersion) {
|
|
55
63
|
const delay = Number(step.delayMs ?? 0);
|
|
56
64
|
setTimeout(() => {
|
|
@@ -61,6 +69,7 @@ function schedulePublish(step, fallbackUri, fallbackVersion) {
|
|
|
61
69
|
};
|
|
62
70
|
record({ type: "serverNotification", method: "textDocument/publishDiagnostics", params });
|
|
63
71
|
send({ jsonrpc: "2.0", method: "textDocument/publishDiagnostics", params });
|
|
72
|
+
if (step.awaitClientDelivery === true) sendPublishDeliveryBarrier();
|
|
64
73
|
}, delay);
|
|
65
74
|
}
|
|
66
75
|
|
|
@@ -79,11 +88,11 @@ function handleClientResponse(message) {
|
|
|
79
88
|
pendingServerRequests.delete(String(message.id));
|
|
80
89
|
record({
|
|
81
90
|
type: "clientResponse",
|
|
82
|
-
method: "workspace/applyEdit",
|
|
91
|
+
method: context.method ?? "workspace/applyEdit",
|
|
83
92
|
result: message.result ?? null,
|
|
84
93
|
error: message.error ?? null,
|
|
85
94
|
});
|
|
86
|
-
if (context.kind === "unscoped") return;
|
|
95
|
+
if (context.kind === "publishDeliveryBarrier" || context.kind === "unscoped") return;
|
|
87
96
|
if (typeof context.pendingApplyResponses === "number") {
|
|
88
97
|
context.pendingApplyResponses -= 1;
|
|
89
98
|
if (context.pendingApplyResponses > 0) return;
|
|
@@ -7,13 +7,13 @@ payloads, and component NOTICE files.
|
|
|
7
7
|
|
|
8
8
|
## Components
|
|
9
9
|
|
|
10
|
-
### @colbymchenry/codegraph@1.0
|
|
10
|
+
### @colbymchenry/codegraph@1.5.0
|
|
11
11
|
- License: MIT, from npm package metadata and root third-party notice inspection.
|
|
12
12
|
- Copyright: CodeGraph contributors.
|
|
13
13
|
- Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph
|
|
14
14
|
- Where-bundled: optional runtime dependency of `plugin/components/codegraph`.
|
|
15
15
|
|
|
16
|
-
### @colbymchenry/codegraph platform bundles@1.0
|
|
16
|
+
### @colbymchenry/codegraph platform bundles@1.5.0
|
|
17
17
|
- License: MIT for CodeGraph package metadata; bundled payloads also include a Node.js v24.16.0 runtime and vendored JavaScript/WASM dependencies. The Codex CodeGraph component ships the Node.js runtime license and bundled third-party license text at `plugin/components/codegraph/NODE-RUNTIME-LICENSES.md`.
|
|
18
18
|
- Copyright: CodeGraph contributors, Node.js contributors, and bundled dependency contributors.
|
|
19
19
|
- Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph
|
|
@@ -737,7 +737,11 @@ function defaultFileExists(filePath) {
|
|
|
737
737
|
}
|
|
738
738
|
}
|
|
739
739
|
function defaultVersionProbe(binaryPath) {
|
|
740
|
-
return String(execFileSync(binaryPath, ["--version"], {
|
|
740
|
+
return String(execFileSync(binaryPath, ["--version"], {
|
|
741
|
+
encoding: "utf8",
|
|
742
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
743
|
+
timeout: 5000
|
|
744
|
+
}));
|
|
741
745
|
}
|
|
742
746
|
function isAstGrepVersionOutput(output) {
|
|
743
747
|
return output.toLowerCase().includes("ast-grep");
|
|
@@ -751,8 +755,8 @@ function hasAstGrepVersion(binaryPath, runVersionProbeSync) {
|
|
|
751
755
|
return false;
|
|
752
756
|
}
|
|
753
757
|
}
|
|
754
|
-
function pathCommandCandidates(
|
|
755
|
-
return
|
|
758
|
+
function pathCommandCandidates() {
|
|
759
|
+
return ["ast-grep", "sg"];
|
|
756
760
|
}
|
|
757
761
|
function findSgBinarySync(options = {}) {
|
|
758
762
|
const env = options.env ?? process.env;
|
|
@@ -769,7 +773,7 @@ function findSgBinarySync(options = {}) {
|
|
|
769
773
|
if (fileExists(runtimeCandidate))
|
|
770
774
|
return runtimeCandidate;
|
|
771
775
|
}
|
|
772
|
-
for (const commandName of pathCommandCandidates(
|
|
776
|
+
for (const commandName of pathCommandCandidates()) {
|
|
773
777
|
const pathCandidate = which(commandName);
|
|
774
778
|
if (pathCandidate === null || !fileExists(pathCandidate))
|
|
775
779
|
continue;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/bootstrap/dist/cli.js\" hook session-start",
|
|
9
9
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\bootstrap.ps1\"",
|
|
10
10
|
"timeout": 30,
|
|
11
|
-
"statusMessage": "(OmO 4.19.
|
|
11
|
+
"statusMessage": "(OmO 4.19.3) Checking Bootstrap Provisioning"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## OVERVIEW
|
|
6
6
|
|
|
7
|
-
`@sisyphuslabs/codex-codegraph` (private, Node >=20, bin `omo-codegraph`). Wraps the external CodeGraph CLI (`@colbymchenry/codegraph`, pinned `1.0
|
|
7
|
+
`@sisyphuslabs/codex-codegraph` (private, Node >=20, bin `omo-codegraph`). Wraps the external CodeGraph CLI (`@colbymchenry/codegraph`, pinned `1.5.0` through the shared `CODEGRAPH_PINNED_VERSION` and the component optionalDependency) behind a stdio MCP server plus Codex lifecycle hooks. Two committed dists ship in the published payload; rebuild `dist/` in the same change as `src/` edits.
|
|
8
8
|
|
|
9
9
|
Codex wiring (all repo-relative to `packages/omo-codex/plugin/`):
|
|
10
10
|
- **MCP:** `.mcp.json` server `codegraph` → `node components/codegraph/dist/serve.js` (`required: false`).
|
|
@@ -14,7 +14,7 @@ Codex wiring (all repo-relative to `packages/omo-codex/plugin/`):
|
|
|
14
14
|
|
|
15
15
|
Serve pipeline (`src/serve.ts`): OMO SOT config gate (`[codex].codegraph.enabled=false` → unavailable stub) → resolve binary (`OMO_CODEGRAPH_BIN` env → bundled → provisioned `~/.omo/codegraph/bin` → PATH) → Node support gate (major 20-24; >=25 crashes CodeGraph mid-indexing; `CODEGRAPH_ALLOW_UNSAFE_NODE=1` overrides) → auto-provision into `~/.omo/codegraph` unless `codegraph.auto_provision=false` → bridge JSON-RPC to `codegraph serve --mcp`. Project cwd resolved from `OMO_CODEGRAPH_PROJECT_CWD` → `OMO_CODEGRAPH_SESSION_START_CWD` → `PWD` → wrapper cwd. When the binary is missing/disabled, `mcp-unavailable.ts` still answers `initialize`/`tools/*` with the skip reason so Codex startup never fails.
|
|
16
16
|
|
|
17
|
-
Hook pipeline (`src/hook.ts` + `src/session-start
|
|
17
|
+
Hook pipeline (`src/hook.ts` + `src/session-start-*.ts`): `hook session-start` checks only the exact filesystem marker `<projectRoot>/.codegraph/codegraph.db`; it never invokes the upstream CLI for status. An exact database skips as initialized, an ancestor database records `skipped-nested-root`, and only a definitive no-database result may acquire the per-project atomic lock and spawn `hook session-start-worker`. Live locks record `skipped-locked`; stale locks recover into an exponential cooldown instead of spawning immediately. Worker failures and skips persist a cooldown stamp (15 minutes by default, doubling to a 24-hour cap; configurable with Codex-only `codegraph.session_start_cooldown_ms`, minimum 60000), while success clears it. The worker prepares the workspace, invokes only `codegraph init` with a 60-second tree timeout, and records success only after the exact project database appears. Hook suppressions and worker outcomes append to `~/.omo/codegraph/session-start.jsonl`. `hook post-tool-use` emits init guidance when a codegraph tool result indicates an uninitialized project. `cli.js` with no hook subcommand falls through to serve.
|
|
18
18
|
|
|
19
19
|
## includeCode CONTRACT (commit 4cf383c5b)
|
|
20
20
|
|
|
@@ -26,8 +26,14 @@ Hook pipeline (`src/hook.ts` + `src/session-start-worker.ts`): `hook session-sta
|
|
|
26
26
|
|------|---------|
|
|
27
27
|
| `src/serve.ts` | MCP entry: config/resolution/Node gates, provisioning, bridge or unavailable stub |
|
|
28
28
|
| `src/cli.ts` | Hook CLI router: `hook session-start` / `hook post-tool-use` / `hook session-start-worker` / serve fallback |
|
|
29
|
-
| `src/hook.ts` | SessionStart
|
|
30
|
-
| `src/
|
|
29
|
+
| `src/hook.ts` | SessionStart exact-root decision pipeline + detached worker spawn |
|
|
30
|
+
| `src/post-tool-use-hook.ts` | PostToolUse init guidance emission |
|
|
31
|
+
| `src/session-start-project.ts` | Exact database and ancestor-coverage filesystem probes |
|
|
32
|
+
| `src/session-start-lock.ts` | Atomic per-project worker lock + stale recovery |
|
|
33
|
+
| `src/session-start-cooldown.ts` | Persistent exponential failure cooldown state |
|
|
34
|
+
| `src/session-start-worker.ts` | Background bootstrap orchestration and lock lifecycle |
|
|
35
|
+
| `src/session-start-command.ts` | Provision/resolve + bounded `codegraph init` invocation |
|
|
36
|
+
| `src/session-start-outcome.ts` | `session-start.jsonl` outcome writer |
|
|
31
37
|
| `src/mcp-bridge.ts` | Stdio JSON-RPC forwarder; per-request framed/line response-mode tracking; codegraph_node contract rewrites; awaits stdio writes and SIGKILLs the child on response-forwarding failure |
|
|
32
38
|
| `src/mcp-unavailable.ts` | Reason-bearing stub MCP server for disabled/missing binary |
|
|
33
39
|
| `src/serve-invocation.ts` | win32 invocation shim: `.cmd`/`.bat` via `cmd.exe /d /s /c`, `.js`/`.mjs`/`.cjs` via `process.execPath` (mirrored by `resolveCodegraphCommandInvocation` in session-start-worker) |
|
|
@@ -46,7 +52,7 @@ Hook pipeline (`src/hook.ts` + `src/session-start-worker.ts`): `hook session-sta
|
|
|
46
52
|
|
|
47
53
|
- This component tests with `bun test` (unlike the vitest-based `lsp` sibling); given/when/then style.
|
|
48
54
|
- `src/` imports reach sibling packages via relative paths (`../../../../../utils/src/...`); they are inlined by `bun build`, so runtime `dist/` has zero deps beyond Node.
|
|
49
|
-
- `
|
|
55
|
+
- `serve.ts` and SessionStart command provisioning derive their version from the shared `CODEGRAPH_PINNED_VERSION`; the component optionalDependency must match that pin.
|
|
50
56
|
- `trustedCodegraphInstallDir` overrides the `~/.omo/codegraph` install dir and is forwarded to children as `CODEGRAPH_INSTALL_DIR`.
|
|
51
57
|
- `resolution.source === "env"` is never auto-provisioned over: a user-set `OMO_CODEGRAPH_BIN` pointing at a missing file skips the MCP instead of silently substituting a download.
|
|
52
58
|
- `runBridgedCodegraphProcess` awaits every stdio write and races `childExit` against response forwarding; a forwarding error (e.g. parent stdout `EPIPE`) rejects the serve promise, destroys the child pipes, and `SIGKILL`s the codegraph child if still alive so a held-open child is never orphaned. Pinned by `test/serve-mcp-bridge-lifecycle.test.ts` and the held-open case in `test/serve-mcp-bridge.test.ts`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
codex-codegraph adapts the CodeGraph MCP runtime for the Codex plugin surface.
|
|
2
2
|
|
|
3
|
-
This component optionally installs @colbymchenry/codegraph@1.0.
|
|
3
|
+
This component optionally installs @colbymchenry/codegraph@1.5.0. That package
|
|
4
4
|
selects platform bundles for darwin, linux, and win32 on arm64 and x64. The
|
|
5
5
|
CodeGraph packages declare MIT license metadata.
|
|
6
6
|
|