lazycodex-ai 5.1.48 → 5.1.51
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/cli/index.js +1194 -752
- package/dist/cli/service-auth/accounts-gate.d.ts +11 -0
- package/dist/cli/service-auth/commands.d.ts +2 -4
- package/dist/cli/service-auth/index.d.ts +1 -1
- package/dist/cli/service-auth/keystore.d.ts +26 -2
- package/dist/cli/service-auth/protocol.d.ts +7 -1
- package/dist/cli/service-auth/session.d.ts +6 -0
- package/dist/cli/service-auth/signed-out-marker.d.ts +11 -0
- package/dist/cli-node/index.js +1194 -752
- package/package.json +3 -1
- package/packages/lsp-core/package.json +45 -0
- package/packages/lsp-core/src/index.ts +30 -0
- package/packages/lsp-core/src/lsp/bun-command-output.ts +82 -0
- package/packages/lsp-core/src/lsp/bun-project-checks.test.ts +170 -0
- package/packages/lsp-core/src/lsp/bun-project-checks.ts +223 -0
- package/packages/lsp-core/src/lsp/cleanup-errors.test.ts +18 -0
- package/packages/lsp-core/src/lsp/cleanup-errors.ts +14 -0
- package/packages/lsp-core/src/lsp/client-diagnostics-concurrency.integration.test.ts +52 -0
- package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +471 -0
- package/packages/lsp-core/src/lsp/client-diagnostics-pull-timeout.test.ts +64 -0
- package/packages/lsp-core/src/lsp/client-wrapper-outside-cwd.test.ts +78 -0
- package/packages/lsp-core/src/lsp/client-wrapper.test.ts +213 -0
- package/packages/lsp-core/src/lsp/client-wrapper.ts +290 -0
- package/packages/lsp-core/src/lsp/client.ts +398 -0
- package/packages/lsp-core/src/lsp/config-loader.ts +254 -0
- package/packages/lsp-core/src/lsp/connection.ts +95 -0
- package/packages/lsp-core/src/lsp/constants.ts +17 -0
- package/packages/lsp-core/src/lsp/controlled-clock-test-support.ts +90 -0
- package/packages/lsp-core/src/lsp/directory-diagnostics.test.ts +221 -0
- package/packages/lsp-core/src/lsp/directory-diagnostics.ts +187 -0
- package/packages/lsp-core/src/lsp/effective-extension.ts +10 -0
- package/packages/lsp-core/src/lsp/errors.ts +89 -0
- package/packages/lsp-core/src/lsp/fake-bun-test-support.ts +102 -0
- package/packages/lsp-core/src/lsp/fixtures/diagnostics-freshness-contract-probe.ts +283 -0
- package/packages/lsp-core/src/lsp/fixtures/disposed-stdin-epipe-probe.ts +28 -0
- package/packages/lsp-core/src/lsp/fixtures/workspace-edit-contract-probe.ts +196 -0
- package/packages/lsp-core/src/lsp/fixtures/workspace-edit-server.mjs +234 -0
- package/packages/lsp-core/src/lsp/format-document.test.ts +143 -0
- package/packages/lsp-core/src/lsp/format-document.ts +90 -0
- package/packages/lsp-core/src/lsp/formatters.ts +144 -0
- package/packages/lsp-core/src/lsp/infer-extension.ts +66 -0
- package/packages/lsp-core/src/lsp/json-rpc-connection-cancellation.test.ts +97 -0
- package/packages/lsp-core/src/lsp/json-rpc-connection.ts +369 -0
- package/packages/lsp-core/src/lsp/language-mappings.ts +173 -0
- package/packages/lsp-core/src/lsp/manager-lifecycle.test.ts +262 -0
- package/packages/lsp-core/src/lsp/manager-max-clients.test.ts +151 -0
- package/packages/lsp-core/src/lsp/manager.ts +495 -0
- package/packages/lsp-core/src/lsp/outside-context-workspace.ts +33 -0
- package/packages/lsp-core/src/lsp/process-pipe-errors.test.ts +21 -0
- package/packages/lsp-core/src/lsp/process-signal-cleanup.ts +21 -0
- package/packages/lsp-core/src/lsp/process.ts +221 -0
- package/packages/lsp-core/src/lsp/server-definitions.ts +205 -0
- package/packages/lsp-core/src/lsp/server-install-state.ts +67 -0
- package/packages/lsp-core/src/lsp/server-installation.test.ts +376 -0
- package/packages/lsp-core/src/lsp/server-installation.ts +218 -0
- package/packages/lsp-core/src/lsp/server-resolution-local-binary.test.ts +170 -0
- package/packages/lsp-core/src/lsp/server-resolution.ts +117 -0
- package/packages/lsp-core/src/lsp/startup-failure.ts +1 -0
- package/packages/lsp-core/src/lsp/timer-provider.ts +13 -0
- package/packages/lsp-core/src/lsp/transport-protocol.ts +52 -0
- package/packages/lsp-core/src/lsp/transport-request-timeout.test.ts +73 -0
- package/packages/lsp-core/src/lsp/transport.ts +339 -0
- package/packages/lsp-core/src/lsp/types.ts +134 -0
- package/packages/lsp-core/src/lsp/utils.test.ts +72 -0
- package/packages/lsp-core/src/lsp/utils.ts +40 -0
- package/packages/lsp-core/src/lsp/workspace-apply-edit-failure.ts +19 -0
- package/packages/lsp-core/src/lsp/workspace-apply-edit-lease.integration.test.ts +218 -0
- package/packages/lsp-core/src/lsp/workspace-apply-edit-sync.integration.test.ts +113 -0
- package/packages/lsp-core/src/lsp/workspace-apply-edit-test-support.ts +194 -0
- package/packages/lsp-core/src/lsp/workspace-apply-edit.integration.test.ts +163 -0
- package/packages/lsp-core/src/lsp/workspace-document-state.test.ts +150 -0
- package/packages/lsp-core/src/lsp/workspace-document-state.ts +392 -0
- package/packages/lsp-core/src/lsp/workspace-edit-adversarial.test.ts +132 -0
- package/packages/lsp-core/src/lsp/workspace-edit-commit.test.ts +140 -0
- package/packages/lsp-core/src/lsp/workspace-edit-commit.ts +220 -0
- package/packages/lsp-core/src/lsp/workspace-edit-contract-evidence.test.ts +56 -0
- package/packages/lsp-core/src/lsp/workspace-edit-contract-evidence.ts +30 -0
- package/packages/lsp-core/src/lsp/workspace-edit-fingerprint.ts +44 -0
- package/packages/lsp-core/src/lsp/workspace-edit-options.test.ts +147 -0
- package/packages/lsp-core/src/lsp/workspace-edit-parse-helpers.ts +59 -0
- package/packages/lsp-core/src/lsp/workspace-edit-parser.ts +130 -0
- package/packages/lsp-core/src/lsp/workspace-edit-path.ts +98 -0
- package/packages/lsp-core/src/lsp/workspace-edit-plan-types.ts +60 -0
- package/packages/lsp-core/src/lsp/workspace-edit-plan.ts +73 -0
- package/packages/lsp-core/src/lsp/workspace-edit-prevalidation.test.ts +174 -0
- package/packages/lsp-core/src/lsp/workspace-edit-resource-parser.ts +89 -0
- package/packages/lsp-core/src/lsp/workspace-edit-simulation.ts +183 -0
- package/packages/lsp-core/src/lsp/workspace-edit-snapshot.ts +53 -0
- package/packages/lsp-core/src/lsp/workspace-edit-text.ts +125 -0
- package/packages/lsp-core/src/lsp/workspace-edit-types.ts +121 -0
- package/packages/lsp-core/src/lsp/workspace-edit.characterization.test.ts +95 -0
- package/packages/lsp-core/src/lsp/workspace-edit.ts +55 -0
- package/packages/lsp-core/src/lsp/workspace-markers.ts +18 -0
- package/packages/lsp-core/src/lsp/workspace-mutation-controller.ts +182 -0
- package/packages/lsp-core/src/mcp-protocol-pin.test.ts +97 -0
- package/packages/lsp-core/src/mcp.ts +122 -0
- package/packages/lsp-core/src/missing-dependency-result.test.ts +135 -0
- package/packages/lsp-core/src/missing-dependency-result.ts +79 -0
- package/packages/lsp-core/src/post-edit/file-location.ts +55 -0
- package/packages/lsp-core/src/post-edit/index.ts +3 -0
- package/packages/lsp-core/src/post-edit/not-installed-guidance.ts +36 -0
- package/packages/lsp-core/src/post-edit/not-installed.test.ts +224 -0
- package/packages/lsp-core/src/post-edit/orchestration.test.ts +157 -0
- package/packages/lsp-core/src/post-edit/orchestration.ts +205 -0
- package/packages/lsp-core/src/request-context.test.ts +200 -0
- package/packages/lsp-core/src/request-context.ts +235 -0
- package/packages/lsp-core/src/tool-surface.test.ts +173 -0
- package/packages/lsp-core/src/tools/bun-directory-diagnostics.test.ts +113 -0
- package/packages/lsp-core/src/tools/bun-directory-diagnostics.ts +75 -0
- package/packages/lsp-core/src/tools/definitions.ts +156 -0
- package/packages/lsp-core/src/tools/diagnostics.ts +133 -0
- package/packages/lsp-core/src/tools/format.test.ts +56 -0
- package/packages/lsp-core/src/tools/format.ts +56 -0
- package/packages/lsp-core/src/tools/index.ts +11 -0
- package/packages/lsp-core/src/tools/install-decision.ts +39 -0
- package/packages/lsp-core/src/tools/navigation.ts +88 -0
- package/packages/lsp-core/src/tools/parameters.test.ts +51 -0
- package/packages/lsp-core/src/tools/parameters.ts +49 -0
- package/packages/lsp-core/src/tools/rename.ts +69 -0
- package/packages/lsp-core/src/tools/result.ts +5 -0
- package/packages/lsp-core/src/tools/runtime.ts +21 -0
- package/packages/lsp-core/src/tools/schema.ts +9 -0
- package/packages/lsp-core/src/tools/status.ts +28 -0
- package/packages/lsp-core/src/tools/symbols.ts +99 -0
- package/packages/lsp-core/src/tools/types.ts +116 -0
- package/packages/lsp-core/src/tools.ts +1 -0
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/README.md +1 -1
- 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/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/lcx/skills/lcx-contribute-bug-fix/SKILL.md +51 -55
- package/packages/omo-codex/plugin/components/lcx/skills/lcx-contribute-bug-fix/agents/openai.yaml +1 -1
- package/packages/omo-codex/plugin/components/lcx/skills/lcx-report-bug/SKILL.md +7 -7
- package/packages/omo-codex/plugin/components/lcx/skills/lcx-report-bug/agents/openai.yaml +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/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/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 +2 -2
- package/packages/omo-codex/plugin/components/telemetry/README.md +2 -2
- package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +52 -15
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +52 -19
- 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/telemetry/src/codex-hook.ts +2 -9
- package/packages/omo-codex/plugin/components/telemetry/src/posthog.ts +4 -13
- package/packages/omo-codex/plugin/components/telemetry/src/product-identity.ts +0 -2
- package/packages/omo-codex/plugin/components/telemetry/test/codex-hook-diagnostics.test.ts +0 -3
- package/packages/omo-codex/plugin/components/telemetry/test/codex-hook.test.ts +3 -8
- package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +3 -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/src/directive-content.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +3 -0
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-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/post-tool-use-recording-spawn-admission.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-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-ulw-execute-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-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 +16 -16
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/shared/package.json +1 -1
- package/packages/omo-codex/plugin/skills/ast-grep/README.md +1 -1
- package/packages/omo-codex/plugin/skills/ast-grep/install.ps1 +5 -3
- package/packages/omo-codex/plugin/skills/ast-grep/install.sh +4 -5
- package/packages/omo-codex/plugin/skills/ast-grep/references/install.md +2 -2
- package/packages/omo-codex/plugin/skills/ast-grep/scripts/ast_grep_helper.py +13 -3
- package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/AGENTS.md +5 -4
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +11 -11
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +2 -2
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/codex.md +4 -4
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/cli.py +1 -1
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/find-agent-sessions.py +6 -3
- package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +1 -1
- package/packages/omo-codex/plugin/skills/frontend/SKILL.md +34 -12
- package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +2 -2
- package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +2 -1
- package/packages/omo-codex/plugin/skills/frontend/references/design/component-catalogs.md +14 -10
- package/packages/omo-codex/plugin/skills/frontend/references/design/design-system-architecture.md +19 -6
- package/packages/omo-codex/plugin/skills/frontend/references/design/grounding.md +29 -0
- package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/scripts/design_system.py +2 -0
- package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/scripts/search.py +2 -0
- package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/SKILL.md +51 -55
- package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/agents/openai.yaml +1 -1
- package/packages/omo-codex/plugin/skills/lcx-report-bug/SKILL.md +7 -7
- package/packages/omo-codex/plugin/skills/lcx-report-bug/agents/openai.yaml +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +5 -4
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +2 -2
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/__main__.py +9 -6
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/summary.py +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/README.md +4 -4
- package/packages/omo-codex/plugin/skills/ultimate-browsing/scripts/extract_cookies.py +4 -2
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +3 -0
- package/packages/omo-codex/plugin/skills/ulw-research/AGENTS.md +8 -4
- package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +7 -316
- package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +23 -21
- package/packages/omo-codex/plugin/skills/ulw-research/references/fact-ledger-grammar.md +7 -3
- package/packages/omo-codex/plugin/skills/ulw-research/references/fact-ledger.md +42 -8
- package/packages/omo-codex/plugin/skills/ulw-research/references/fidelity-claim-kinds.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/references/markdown-blocks.md +12 -0
- package/packages/omo-codex/plugin/skills/ulw-research/references/report-gates.md +12 -5
- package/packages/omo-codex/plugin/skills/ulw-research/references/research-collection.md +195 -0
- package/packages/omo-codex/plugin/skills/ulw-research/references/research-delivery.md +123 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/claim-kinds.mjs +33 -5
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/contracts.mjs +13 -4
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/conversion-probe.mjs +229 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/css-hiding.mjs +158 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/css-lite.mjs +4 -2
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/entities.mjs +13 -4
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-fill.mjs +11 -1
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-meaning.mjs +13 -9
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-polish.mjs +40 -18
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-verify.mjs +25 -8
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands.mjs +35 -16
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-derive.mjs +7 -2
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-fill.mjs +6 -4
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger-kinds.mjs +6 -7
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-locate.mjs +15 -9
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-claims.mjs +4 -3
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-csv.mjs +32 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-lexicon.mjs +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-originals.mjs +161 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-policy.mjs +4 -4
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-records.mjs +81 -14
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-snapshot-readability.mjs +49 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-sources.mjs +76 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-trace.mjs +25 -11
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-value-unit.mjs +202 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-values.mjs +40 -39
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-fidelity.mjs +8 -6
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-static.mjs +10 -1
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-lite.mjs +6 -2
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-markup.mjs +2 -2
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-text-map.mjs +140 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/markdown-closers.mjs +126 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/md-lite.mjs +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/number-grammar.mjs +33 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/numerals.mjs +18 -7
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/outcome-start.mjs +66 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/outcome.mjs +11 -22
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/placeholder.mjs +18 -6
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-apply.mjs +3 -2
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/raw-decode.mjs +110 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/raw-locator.mjs +47 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools-commands.mjs +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools.mjs +7 -1
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-commands.mjs +79 -26
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-refresh.mjs +82 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-snapshot.mjs +73 -69
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-view.mjs +89 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/sources-citation.mjs +203 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/units.mjs +14 -3
- package/packages/omo-codex/plugin/test/payload-equivalence.test.mjs +6 -4
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +4 -3
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +338 -237
- package/packages/prompts-core/prompts/ultrawork/codex.md +3 -0
- package/packages/shared-skills/skill-source-filter.mjs +6 -2
- package/packages/shared-skills/skills/ast-grep/README.md +1 -1
- package/packages/shared-skills/skills/ast-grep/install.ps1 +5 -3
- package/packages/shared-skills/skills/ast-grep/install.sh +4 -5
- package/packages/shared-skills/skills/ast-grep/references/install.md +2 -2
- package/packages/shared-skills/skills/ast-grep/scripts/ast_grep_helper.py +13 -3
- package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/shared-skills/skills/coding-agent-sessions/AGENTS.md +5 -4
- package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +11 -11
- package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +2 -2
- package/packages/shared-skills/skills/coding-agent-sessions/references/codex.md +4 -4
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/cli.py +1 -1
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/find-agent-sessions.py +6 -3
- package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +1 -1
- package/packages/shared-skills/skills/frontend/SKILL.md +34 -12
- package/packages/shared-skills/skills/frontend/references/design/README.md +2 -2
- package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +2 -1
- package/packages/shared-skills/skills/frontend/references/design/component-catalogs.md +14 -10
- package/packages/shared-skills/skills/frontend/references/design/design-system-architecture.md +19 -6
- package/packages/shared-skills/skills/frontend/references/design/grounding.md +29 -0
- package/packages/shared-skills/skills/frontend/references/ui-ux-db/scripts/design_system.py +2 -0
- package/packages/shared-skills/skills/frontend/references/ui-ux-db/scripts/search.py +2 -0
- package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +5 -4
- package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +2 -2
- package/packages/shared-skills/skills/ultimate-browsing/engine/__main__.py +9 -6
- package/packages/shared-skills/skills/ultimate-browsing/engine/summary.py +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/README.md +4 -4
- package/packages/shared-skills/skills/ultimate-browsing/scripts/extract_cookies.py +4 -2
- package/packages/shared-skills/skills/ulw-research/AGENTS.md +8 -4
- package/packages/shared-skills/skills/ulw-research/SKILL.md +7 -316
- package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +23 -21
- package/packages/shared-skills/skills/ulw-research/references/fact-ledger-grammar.md +7 -3
- package/packages/shared-skills/skills/ulw-research/references/fact-ledger.md +42 -8
- package/packages/shared-skills/skills/ulw-research/references/fidelity-claim-kinds.md +1 -1
- package/packages/shared-skills/skills/ulw-research/references/markdown-blocks.md +12 -0
- package/packages/shared-skills/skills/ulw-research/references/report-gates.md +12 -5
- package/packages/shared-skills/skills/ulw-research/references/research-collection.md +195 -0
- package/packages/shared-skills/skills/ulw-research/references/research-delivery.md +123 -0
- package/packages/shared-skills/skills/ulw-research/scripts/claim-kinds.mjs +33 -5
- package/packages/shared-skills/skills/ulw-research/scripts/claim-kinds.test.ts +37 -2
- package/packages/shared-skills/skills/ulw-research/scripts/claim-prefix.test.ts +76 -0
- package/packages/shared-skills/skills/ulw-research/scripts/contracts-validation.test.ts +83 -0
- package/packages/shared-skills/skills/ulw-research/scripts/contracts.mjs +13 -4
- package/packages/shared-skills/skills/ulw-research/scripts/contracts.test.ts +6 -110
- package/packages/shared-skills/skills/ulw-research/scripts/conversion-altered.test.ts +154 -0
- package/packages/shared-skills/skills/ulw-research/scripts/conversion-originals.test.ts +297 -0
- package/packages/shared-skills/skills/ulw-research/scripts/conversion-probe-classes.test.ts +361 -0
- package/packages/shared-skills/skills/ulw-research/scripts/conversion-probe.mjs +229 -0
- package/packages/shared-skills/skills/ulw-research/scripts/conversion-probe.test.ts +218 -0
- package/packages/shared-skills/skills/ulw-research/scripts/copy-returns-polish.test.ts +4 -3
- package/packages/shared-skills/skills/ulw-research/scripts/css-hiding.mjs +158 -0
- package/packages/shared-skills/skills/ulw-research/scripts/css-lite.mjs +4 -2
- package/packages/shared-skills/skills/ulw-research/scripts/delivery-barrier-meaning.test.ts +186 -0
- package/packages/shared-skills/skills/ulw-research/scripts/delivery-barrier.test.ts +40 -87
- package/packages/shared-skills/skills/ulw-research/scripts/entities.mjs +13 -4
- package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-fill.mjs +11 -1
- package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-meaning.mjs +13 -9
- package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-polish.mjs +40 -18
- package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-verify.mjs +25 -8
- package/packages/shared-skills/skills/ulw-research/scripts/fact-commands.mjs +35 -16
- package/packages/shared-skills/skills/ulw-research/scripts/fact-derive-2.test.ts +149 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-derive.mjs +7 -2
- package/packages/shared-skills/skills/ulw-research/scripts/fact-derive.test.ts +7 -192
- package/packages/shared-skills/skills/ulw-research/scripts/fact-fill.mjs +6 -4
- package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-kinds.mjs +6 -7
- package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-kinds.test.ts +2 -1
- package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-legacy.test.ts +2 -1
- package/packages/shared-skills/skills/ulw-research/scripts/fact-locate.mjs +15 -9
- package/packages/shared-skills/skills/ulw-research/scripts/fact-unit-dimensions-2.test.ts +149 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-unit-dimensions.test.ts +4 -168
- package/packages/shared-skills/skills/ulw-research/scripts/fact-unit-rules.test.ts +3 -229
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-claims.mjs +4 -3
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-csv.mjs +32 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-lexicon.mjs +1 -1
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-originals.mjs +161 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-policy.mjs +4 -4
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-records.mjs +81 -14
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-snapshot-readability.mjs +49 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-sources.mjs +76 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-trace.mjs +25 -11
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-value-unit.mjs +202 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-values.mjs +40 -39
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-values.test.ts +8 -29
- package/packages/shared-skills/skills/ulw-research/scripts/gates-fidelity.mjs +8 -6
- package/packages/shared-skills/skills/ulw-research/scripts/gates-static-headings.test.ts +17 -0
- package/packages/shared-skills/skills/ulw-research/scripts/gates-static.mjs +10 -1
- package/packages/shared-skills/skills/ulw-research/scripts/html-lite.mjs +6 -2
- package/packages/shared-skills/skills/ulw-research/scripts/html-markup.mjs +2 -2
- package/packages/shared-skills/skills/ulw-research/scripts/html-text-map.mjs +140 -0
- package/packages/shared-skills/skills/ulw-research/scripts/html-text-map.test.ts +148 -0
- package/packages/shared-skills/skills/ulw-research/scripts/markdown-closers.mjs +126 -0
- package/packages/shared-skills/skills/ulw-research/scripts/md-lite-boundaries.test.ts +46 -0
- package/packages/shared-skills/skills/ulw-research/scripts/md-lite.mjs +1 -1
- package/packages/shared-skills/skills/ulw-research/scripts/number-grammar.mjs +33 -0
- package/packages/shared-skills/skills/ulw-research/scripts/number-grammar.test.ts +36 -0
- package/packages/shared-skills/skills/ulw-research/scripts/numerals.mjs +18 -7
- package/packages/shared-skills/skills/ulw-research/scripts/numerals.test.ts +3 -0
- package/packages/shared-skills/skills/ulw-research/scripts/outcome-start.mjs +66 -0
- package/packages/shared-skills/skills/ulw-research/scripts/outcome-start.test.ts +109 -0
- package/packages/shared-skills/skills/ulw-research/scripts/outcome.mjs +11 -22
- package/packages/shared-skills/skills/ulw-research/scripts/page-source-locator.test.ts +187 -0
- package/packages/shared-skills/skills/ulw-research/scripts/placeholder.mjs +18 -6
- package/packages/shared-skills/skills/ulw-research/scripts/polish-apply.mjs +3 -2
- package/packages/shared-skills/skills/ulw-research/scripts/polish-markup.test.ts +15 -1
- package/packages/shared-skills/skills/ulw-research/scripts/polish-partial.test.ts +42 -0
- package/packages/shared-skills/skills/ulw-research/scripts/raw-decode.mjs +110 -0
- package/packages/shared-skills/skills/ulw-research/scripts/raw-locator.mjs +47 -0
- package/packages/shared-skills/skills/ulw-research/scripts/raw-snapshot.test.ts +139 -0
- package/packages/shared-skills/skills/ulw-research/scripts/report-tools-2.test.ts +233 -0
- package/packages/shared-skills/skills/ulw-research/scripts/report-tools-3.test.ts +141 -0
- package/packages/shared-skills/skills/ulw-research/scripts/report-tools-4.test.ts +135 -0
- package/packages/shared-skills/skills/ulw-research/scripts/report-tools-5.test.ts +231 -0
- package/packages/shared-skills/skills/ulw-research/scripts/report-tools-commands.mjs +1 -1
- package/packages/shared-skills/skills/ulw-research/scripts/report-tools.mjs +7 -1
- package/packages/shared-skills/skills/ulw-research/scripts/report-tools.test.ts +5 -800
- package/packages/shared-skills/skills/ulw-research/scripts/snapshot-readability.test.ts +116 -0
- package/packages/shared-skills/skills/ulw-research/scripts/source-commands.mjs +79 -26
- package/packages/shared-skills/skills/ulw-research/scripts/source-integrity.test.ts +243 -0
- package/packages/shared-skills/skills/ulw-research/scripts/source-refresh.mjs +82 -0
- package/packages/shared-skills/skills/ulw-research/scripts/source-snapshot.mjs +73 -69
- package/packages/shared-skills/skills/ulw-research/scripts/source-snapshot.test.ts +7 -4
- package/packages/shared-skills/skills/ulw-research/scripts/source-view.mjs +89 -0
- package/packages/shared-skills/skills/ulw-research/scripts/sources-citation.mjs +203 -0
- package/packages/shared-skills/skills/ulw-research/scripts/sources-citation.test.ts +236 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/contracts-support.ts +147 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/delivery-barrier-session.ts +59 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/derive-clock.ts +4 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fact-derive-support.ts +65 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fact-unit-dimensions-support.ts +41 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fact-unit-rules-support.ts +241 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fidelity-values-support.ts +30 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/conversion-probe.html +14 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/sources-shapes.html +20 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/numeral-classes.ts +196 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/report-tools-support.ts +182 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/value-mode-support.ts +48 -0
- package/packages/shared-skills/skills/ulw-research/scripts/units.mjs +14 -3
- package/packages/shared-skills/skills/ulw-research/scripts/units.test.ts +10 -0
- package/packages/shared-skills/skills/ulw-research/scripts/value-mode-unit-classes.test.ts +255 -0
- package/packages/shared-skills/skills/ulw-research/scripts/value-mode-unit.test.ts +179 -0
- package/packages/shared-skills/skills/ulw-research/scripts/value-rules-cli.test.ts +157 -0
- package/packages/shared-skills/skills/ulw-research/scripts/value-rules-followups.test.ts +72 -0
- package/packages/shared-skills/skills/ulw-research/scripts/value-rules-priority.test.ts +80 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/amp_redirect_stub.html +0 -7
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/search_interstitial.html +0 -19
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/wayback_available.json +0 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/fixtures/wayback_snapshot.html +0 -1128
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_fetch_chain.py +0 -77
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_playwright_stealth.py +0 -86
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_playwright_templates.py +0 -279
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_surrogate.py +0 -252
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_surrogate_validators.py +0 -78
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { DEFAULT_MAX_REFERENCES } from "../lsp/constants.js";
|
|
2
|
+
import { formatLocation } from "../lsp/formatters.js";
|
|
3
|
+
import { withLspClient } from "../lsp/client-wrapper.js";
|
|
4
|
+
import { missingDependencyResult } from "../missing-dependency-result.js";
|
|
5
|
+
import { clientOptions, optionalBoolean, requireNumber, requireString } from "./parameters.js";
|
|
6
|
+
import { text } from "./result.js";
|
|
7
|
+
import type { LspFindReferencesDetails, LspGotoDefinitionDetails, ToolExecutionResult } from "./types.js";
|
|
8
|
+
|
|
9
|
+
export async function executeLspGotoDefinition(
|
|
10
|
+
params: Record<string, unknown>,
|
|
11
|
+
signal?: AbortSignal,
|
|
12
|
+
): Promise<ToolExecutionResult> {
|
|
13
|
+
const filePath = requireString(params, "filePath");
|
|
14
|
+
const line = requireNumber(params, "line");
|
|
15
|
+
const character = requireNumber(params, "character");
|
|
16
|
+
|
|
17
|
+
try {
|
|
18
|
+
const result = await withLspClient(
|
|
19
|
+
filePath,
|
|
20
|
+
async (client, _workspaceRoot, resolvedFilePath) =>
|
|
21
|
+
client.definition(resolvedFilePath, line, character, signal),
|
|
22
|
+
"definition",
|
|
23
|
+
clientOptions(signal),
|
|
24
|
+
);
|
|
25
|
+
const locations = !result ? [] : Array.isArray(result) ? result : [result];
|
|
26
|
+
const details: LspGotoDefinitionDetails = { filePath, line, character, locations };
|
|
27
|
+
if (locations.length === 0) return text("No definition found", details);
|
|
28
|
+
return text(locations.map(formatLocation).join("\n"), details);
|
|
29
|
+
} catch (error) {
|
|
30
|
+
const missingDependency = missingDependencyResult(error, {
|
|
31
|
+
filePath,
|
|
32
|
+
line,
|
|
33
|
+
character,
|
|
34
|
+
locations: [],
|
|
35
|
+
} satisfies Omit<LspGotoDefinitionDetails, "error" | "errorKind">);
|
|
36
|
+
if (missingDependency) return missingDependency;
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export async function executeLspFindReferences(
|
|
42
|
+
params: Record<string, unknown>,
|
|
43
|
+
signal?: AbortSignal,
|
|
44
|
+
): Promise<ToolExecutionResult> {
|
|
45
|
+
const filePath = requireString(params, "filePath");
|
|
46
|
+
const line = requireNumber(params, "line");
|
|
47
|
+
const character = requireNumber(params, "character");
|
|
48
|
+
const includeDeclaration = optionalBoolean(params, "includeDeclaration") ?? true;
|
|
49
|
+
|
|
50
|
+
try {
|
|
51
|
+
const result = await withLspClient(
|
|
52
|
+
filePath,
|
|
53
|
+
async (client, _workspaceRoot, resolvedFilePath) =>
|
|
54
|
+
client.references(resolvedFilePath, line, character, includeDeclaration, signal),
|
|
55
|
+
"references",
|
|
56
|
+
clientOptions(signal),
|
|
57
|
+
);
|
|
58
|
+
const references = Array.isArray(result) ? result : [];
|
|
59
|
+
const total = references.length;
|
|
60
|
+
const truncated = total > DEFAULT_MAX_REFERENCES;
|
|
61
|
+
const limited = truncated ? references.slice(0, DEFAULT_MAX_REFERENCES) : references;
|
|
62
|
+
const details: LspFindReferencesDetails = {
|
|
63
|
+
filePath,
|
|
64
|
+
line,
|
|
65
|
+
character,
|
|
66
|
+
references,
|
|
67
|
+
totalReferences: total,
|
|
68
|
+
truncated,
|
|
69
|
+
};
|
|
70
|
+
if (total === 0) return text("No references found", details);
|
|
71
|
+
const output = [
|
|
72
|
+
...(truncated ? [`Found ${total} references (showing first ${DEFAULT_MAX_REFERENCES}):`] : []),
|
|
73
|
+
...limited.map(formatLocation),
|
|
74
|
+
].join("\n");
|
|
75
|
+
return text(output, details);
|
|
76
|
+
} catch (error) {
|
|
77
|
+
const missingDependency = missingDependencyResult(error, {
|
|
78
|
+
filePath,
|
|
79
|
+
line,
|
|
80
|
+
character,
|
|
81
|
+
references: [],
|
|
82
|
+
totalReferences: 0,
|
|
83
|
+
truncated: false,
|
|
84
|
+
} satisfies Omit<LspFindReferencesDetails, "error" | "errorKind">);
|
|
85
|
+
if (missingDependency) return missingDependency;
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { describe, expect, test } from "bun:test";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
clientOptions,
|
|
5
|
+
optionalBoolean,
|
|
6
|
+
optionalNumber,
|
|
7
|
+
optionalString,
|
|
8
|
+
requireNumber,
|
|
9
|
+
requireString,
|
|
10
|
+
severityFilter,
|
|
11
|
+
} from "./parameters.js";
|
|
12
|
+
|
|
13
|
+
describe("LSP tool parameter helpers", () => {
|
|
14
|
+
test("#given required string parameter #when value is missing or empty #then throws clear error", () => {
|
|
15
|
+
expect(requireString({ filePath: "index.ts" }, "filePath")).toBe("index.ts");
|
|
16
|
+
expect(() => requireString({}, "filePath")).toThrow("Missing required string parameter 'filePath'");
|
|
17
|
+
expect(() => requireString({ filePath: "" }, "filePath")).toThrow("Missing required string parameter 'filePath'");
|
|
18
|
+
expect(() => requireString({ filePath: 42 }, "filePath")).toThrow("Missing required string parameter 'filePath'");
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test("#given required number parameter #when value is non-finite #then throws clear error", () => {
|
|
22
|
+
expect(requireNumber({ line: 3 }, "line")).toBe(3);
|
|
23
|
+
expect(() => requireNumber({}, "line")).toThrow("Missing required number parameter 'line'");
|
|
24
|
+
expect(() => requireNumber({ line: Number.NaN }, "line")).toThrow("Missing required number parameter 'line'");
|
|
25
|
+
expect(() => requireNumber({ line: Number.POSITIVE_INFINITY }, "line")).toThrow(
|
|
26
|
+
"Missing required number parameter 'line'",
|
|
27
|
+
);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test("#given optional parameters #when values have wrong type #then ignores them", () => {
|
|
31
|
+
expect(optionalString({ query: "symbol" }, "query")).toBe("symbol");
|
|
32
|
+
expect(optionalString({ query: 7 }, "query")).toBeUndefined();
|
|
33
|
+
expect(optionalNumber({ limit: 10 }, "limit")).toBe(10);
|
|
34
|
+
expect(optionalNumber({ limit: Number.NaN }, "limit")).toBeUndefined();
|
|
35
|
+
expect(optionalBoolean({ includeDeclaration: false }, "includeDeclaration")).toBe(false);
|
|
36
|
+
expect(optionalBoolean({ includeDeclaration: "false" }, "includeDeclaration")).toBeUndefined();
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
test("#given severity parameter #when value is unknown #then defaults to all", () => {
|
|
40
|
+
expect(severityFilter({ severity: "warning" })).toBe("warning");
|
|
41
|
+
expect(severityFilter({ severity: "fatal" })).toBe("all");
|
|
42
|
+
expect(severityFilter({})).toBe("all");
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
test("#given optional abort signal #when building client options #then includes only defined signal", () => {
|
|
46
|
+
const controller = new AbortController();
|
|
47
|
+
|
|
48
|
+
expect(clientOptions(undefined)).toEqual({});
|
|
49
|
+
expect(clientOptions(controller.signal)).toEqual({ signal: controller.signal });
|
|
50
|
+
});
|
|
51
|
+
});
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { WithLspClientOptions } from "../lsp/client-wrapper.js";
|
|
2
|
+
import type { SeverityFilter } from "../lsp/types.js";
|
|
3
|
+
|
|
4
|
+
export function isRecord(value: unknown): value is Record<string, unknown> {
|
|
5
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function requireString(params: Record<string, unknown>, key: string): string {
|
|
9
|
+
const value = params[key];
|
|
10
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
11
|
+
throw new Error(`Missing required string parameter '${key}'`);
|
|
12
|
+
}
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function optionalString(params: Record<string, unknown>, key: string): string | undefined {
|
|
17
|
+
const value = params[key];
|
|
18
|
+
return typeof value === "string" ? value : undefined;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function requireNumber(params: Record<string, unknown>, key: string): number {
|
|
22
|
+
const value = params[key];
|
|
23
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
24
|
+
throw new Error(`Missing required number parameter '${key}'`);
|
|
25
|
+
}
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function optionalNumber(params: Record<string, unknown>, key: string): number | undefined {
|
|
30
|
+
const value = params[key];
|
|
31
|
+
return typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function optionalBoolean(params: Record<string, unknown>, key: string): boolean | undefined {
|
|
35
|
+
const value = params[key];
|
|
36
|
+
return typeof value === "boolean" ? value : undefined;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function severityFilter(params: Record<string, unknown>): SeverityFilter {
|
|
40
|
+
const value = params["severity"];
|
|
41
|
+
if (value === "error" || value === "warning" || value === "information" || value === "hint" || value === "all") {
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
return "all";
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function clientOptions(signal: AbortSignal | undefined): WithLspClientOptions {
|
|
48
|
+
return signal === undefined ? {} : { signal };
|
|
49
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { formatApplyResult, formatPrepareRenameResult } from "../lsp/formatters.js";
|
|
2
|
+
import { withLspClient } from "../lsp/client-wrapper.js";
|
|
3
|
+
import { missingDependencyResult } from "../missing-dependency-result.js";
|
|
4
|
+
import { clientOptions, requireNumber, requireString } from "./parameters.js";
|
|
5
|
+
import { text } from "./result.js";
|
|
6
|
+
import type { LspPrepareRenameDetails, LspRenameDetails, ToolExecutionResult } from "./types.js";
|
|
7
|
+
|
|
8
|
+
export async function executeLspPrepareRename(
|
|
9
|
+
params: Record<string, unknown>,
|
|
10
|
+
signal?: AbortSignal,
|
|
11
|
+
): Promise<ToolExecutionResult> {
|
|
12
|
+
const filePath = requireString(params, "filePath");
|
|
13
|
+
const line = requireNumber(params, "line");
|
|
14
|
+
const character = requireNumber(params, "character");
|
|
15
|
+
|
|
16
|
+
try {
|
|
17
|
+
const result = await withLspClient(
|
|
18
|
+
filePath,
|
|
19
|
+
async (client, _workspaceRoot, resolvedFilePath) =>
|
|
20
|
+
client.prepareRename(resolvedFilePath, line, character, signal),
|
|
21
|
+
"prepareRename",
|
|
22
|
+
clientOptions(signal),
|
|
23
|
+
);
|
|
24
|
+
const details: LspPrepareRenameDetails = { filePath, line, character, result };
|
|
25
|
+
return text(formatPrepareRenameResult(result), details);
|
|
26
|
+
} catch (error) {
|
|
27
|
+
const missingDependency = missingDependencyResult(error, {
|
|
28
|
+
filePath,
|
|
29
|
+
line,
|
|
30
|
+
character,
|
|
31
|
+
result: null,
|
|
32
|
+
} satisfies Omit<LspPrepareRenameDetails, "error" | "errorKind">);
|
|
33
|
+
if (missingDependency) return missingDependency;
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export async function executeLspRename(
|
|
39
|
+
params: Record<string, unknown>,
|
|
40
|
+
signal?: AbortSignal,
|
|
41
|
+
): Promise<ToolExecutionResult> {
|
|
42
|
+
const filePath = requireString(params, "filePath");
|
|
43
|
+
const line = requireNumber(params, "line");
|
|
44
|
+
const character = requireNumber(params, "character");
|
|
45
|
+
const newName = requireString(params, "newName");
|
|
46
|
+
|
|
47
|
+
try {
|
|
48
|
+
const result = await withLspClient(
|
|
49
|
+
filePath,
|
|
50
|
+
async (client, _workspaceRoot, resolvedFilePath) =>
|
|
51
|
+
client.rename(resolvedFilePath, line, character, newName, signal),
|
|
52
|
+
"rename",
|
|
53
|
+
clientOptions(signal),
|
|
54
|
+
);
|
|
55
|
+
const details: LspRenameDetails = { filePath, line, character, newName, apply: result.apply, edit: result.edit };
|
|
56
|
+
return text(formatApplyResult(result.apply), details, !result.apply.success);
|
|
57
|
+
} catch (error) {
|
|
58
|
+
const missingDependency = missingDependencyResult(error, {
|
|
59
|
+
filePath,
|
|
60
|
+
line,
|
|
61
|
+
character,
|
|
62
|
+
newName,
|
|
63
|
+
apply: null,
|
|
64
|
+
edit: null,
|
|
65
|
+
} satisfies Omit<LspRenameDetails, "error" | "errorKind">);
|
|
66
|
+
if (missingDependency) return missingDependency;
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { LSP_MCP_TOOLS } from "./definitions.js";
|
|
2
|
+
import { isRecord } from "./parameters.js";
|
|
3
|
+
import type { LspMcpTool, ToolExecutionResult } from "./types.js";
|
|
4
|
+
|
|
5
|
+
export async function executeLspTool(
|
|
6
|
+
name: string,
|
|
7
|
+
params: Record<string, unknown>,
|
|
8
|
+
signal?: AbortSignal,
|
|
9
|
+
): Promise<ToolExecutionResult> {
|
|
10
|
+
const tool = LSP_MCP_TOOLS.find((candidate) => matchesToolName(candidate, name));
|
|
11
|
+
if (!tool) throw new Error(`Unknown LSP tool: ${name}`);
|
|
12
|
+
return tool.execute(params, signal);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function matchesToolName(tool: LspMcpTool, name: string): boolean {
|
|
16
|
+
return tool.name === name || (tool.aliases?.includes(name) ?? false);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function coerceToolArguments(value: unknown): Record<string, unknown> {
|
|
20
|
+
return isRecord(value) ? value : {};
|
|
21
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { getLspManager } from "../lsp/manager.js";
|
|
2
|
+
import { getAllServers } from "../lsp/server-resolution.js";
|
|
3
|
+
import { text } from "./result.js";
|
|
4
|
+
import type { ToolExecutionResult } from "./types.js";
|
|
5
|
+
|
|
6
|
+
export async function executeLspStatus(): Promise<ToolExecutionResult> {
|
|
7
|
+
const servers = getAllServers();
|
|
8
|
+
const snapshots = getLspManager().getSnapshot();
|
|
9
|
+
const installed = servers.filter((server) => server.installed && !server.disabled);
|
|
10
|
+
const configuredLines = servers.map((server) => {
|
|
11
|
+
const state = server.disabled ? "disabled" : server.installed ? "installed" : "missing";
|
|
12
|
+
return `- ${server.id}: ${state}; source=${server.source}; extensions=${server.extensions.join(", ")}`;
|
|
13
|
+
});
|
|
14
|
+
const activeLines = snapshots.map((snapshot) => {
|
|
15
|
+
const state = snapshot.alive ? (snapshot.isInitializing ? "initializing" : "alive") : "dead";
|
|
16
|
+
return `- ${snapshot.serverId}: ${state}; root=${snapshot.root}; refs=${snapshot.refCount}`;
|
|
17
|
+
});
|
|
18
|
+
const lines = [
|
|
19
|
+
`Configured LSP servers: ${servers.length}`,
|
|
20
|
+
`Installed LSP servers: ${installed.length}`,
|
|
21
|
+
"",
|
|
22
|
+
...configuredLines,
|
|
23
|
+
"",
|
|
24
|
+
`Active LSP clients: ${snapshots.length}`,
|
|
25
|
+
...activeLines,
|
|
26
|
+
];
|
|
27
|
+
return text(lines.join("\n"), { servers, snapshots });
|
|
28
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { DEFAULT_MAX_SYMBOLS } from "../lsp/constants.js";
|
|
2
|
+
import { formatDocumentSymbol, formatSymbolInfo } from "../lsp/formatters.js";
|
|
3
|
+
import { withLspClient } from "../lsp/client-wrapper.js";
|
|
4
|
+
import type { DocumentSymbol, SymbolInfo } from "../lsp/types.js";
|
|
5
|
+
import { missingDependencyResult } from "../missing-dependency-result.js";
|
|
6
|
+
import { clientOptions, optionalNumber, optionalString, requireString } from "./parameters.js";
|
|
7
|
+
import { text } from "./result.js";
|
|
8
|
+
import type { LspSymbolsDetails, ToolExecutionResult } from "./types.js";
|
|
9
|
+
|
|
10
|
+
function isDocumentSymbol(symbol: DocumentSymbol | SymbolInfo): symbol is DocumentSymbol {
|
|
11
|
+
return "range" in symbol;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export async function executeLspSymbols(
|
|
15
|
+
params: Record<string, unknown>,
|
|
16
|
+
signal?: AbortSignal,
|
|
17
|
+
): Promise<ToolExecutionResult> {
|
|
18
|
+
const filePath = requireString(params, "filePath");
|
|
19
|
+
const rawScope = optionalString(params, "scope") ?? "document";
|
|
20
|
+
const scope = rawScope === "workspace" ? "workspace" : "document";
|
|
21
|
+
const limit = Math.min(optionalNumber(params, "limit") ?? DEFAULT_MAX_SYMBOLS, DEFAULT_MAX_SYMBOLS);
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
if (scope === "workspace") {
|
|
25
|
+
const query = optionalString(params, "query");
|
|
26
|
+
if (!query) {
|
|
27
|
+
const message = "Error: 'query' is required for workspace scope";
|
|
28
|
+
return text(message, {
|
|
29
|
+
filePath,
|
|
30
|
+
scope,
|
|
31
|
+
symbols: [],
|
|
32
|
+
totalSymbols: 0,
|
|
33
|
+
truncated: false,
|
|
34
|
+
error: message,
|
|
35
|
+
errorKind: "missing_query",
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const symbols = await withLspClient(
|
|
40
|
+
filePath,
|
|
41
|
+
async (client) => client.workspaceSymbols(query, signal),
|
|
42
|
+
"workspaceSymbols",
|
|
43
|
+
clientOptions(signal),
|
|
44
|
+
);
|
|
45
|
+
return formatSymbolsResult(filePath, scope, symbols, limit, query);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const symbols = await withLspClient(
|
|
49
|
+
filePath,
|
|
50
|
+
async (client, _workspaceRoot, resolvedFilePath) => client.documentSymbols(resolvedFilePath, signal),
|
|
51
|
+
"documentSymbols",
|
|
52
|
+
clientOptions(signal),
|
|
53
|
+
);
|
|
54
|
+
return formatSymbolsResult(filePath, scope, symbols, limit);
|
|
55
|
+
} catch (error) {
|
|
56
|
+
const query = optionalString(params, "query");
|
|
57
|
+
const missingDependency = missingDependencyResult(error, {
|
|
58
|
+
filePath,
|
|
59
|
+
scope,
|
|
60
|
+
symbols: [],
|
|
61
|
+
totalSymbols: 0,
|
|
62
|
+
truncated: false,
|
|
63
|
+
...(query === undefined ? {} : { query }),
|
|
64
|
+
} satisfies Omit<LspSymbolsDetails, "error" | "errorKind">);
|
|
65
|
+
if (missingDependency) return missingDependency;
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function formatSymbolsResult(
|
|
71
|
+
filePath: string,
|
|
72
|
+
scope: "document" | "workspace",
|
|
73
|
+
symbols: Array<DocumentSymbol | SymbolInfo>,
|
|
74
|
+
limit: number,
|
|
75
|
+
query?: string,
|
|
76
|
+
): ToolExecutionResult {
|
|
77
|
+
const total = symbols.length;
|
|
78
|
+
const truncated = total > limit;
|
|
79
|
+
const limited = truncated ? symbols.slice(0, limit) : symbols;
|
|
80
|
+
const details: LspSymbolsDetails = {
|
|
81
|
+
filePath,
|
|
82
|
+
scope,
|
|
83
|
+
symbols,
|
|
84
|
+
totalSymbols: total,
|
|
85
|
+
truncated,
|
|
86
|
+
...(query === undefined ? {} : { query }),
|
|
87
|
+
};
|
|
88
|
+
if (total === 0) return text("No symbols found", details);
|
|
89
|
+
|
|
90
|
+
const lines: string[] = [];
|
|
91
|
+
if (truncated) lines.push(`Found ${total} symbols (showing first ${limit}):`);
|
|
92
|
+
const documentSymbols = limited.filter(isDocumentSymbol);
|
|
93
|
+
if (documentSymbols.length === limited.length) {
|
|
94
|
+
lines.push(...documentSymbols.map((symbol) => formatDocumentSymbol(symbol)));
|
|
95
|
+
} else {
|
|
96
|
+
lines.push(...limited.filter((symbol): symbol is SymbolInfo => !isDocumentSymbol(symbol)).map(formatSymbolInfo));
|
|
97
|
+
}
|
|
98
|
+
return text(lines.join("\n"), details);
|
|
99
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Diagnostic,
|
|
3
|
+
DocumentSymbol,
|
|
4
|
+
Location,
|
|
5
|
+
LocationLink,
|
|
6
|
+
PrepareRenameDefaultBehavior,
|
|
7
|
+
PrepareRenameResult,
|
|
8
|
+
Range,
|
|
9
|
+
SeverityFilter,
|
|
10
|
+
SymbolInfo,
|
|
11
|
+
WorkspaceEdit,
|
|
12
|
+
} from "../lsp/types.js";
|
|
13
|
+
import type { ApplyResult } from "../lsp/workspace-edit.js";
|
|
14
|
+
|
|
15
|
+
export interface TextContent {
|
|
16
|
+
type: "text";
|
|
17
|
+
text: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface ToolExecutionResult {
|
|
21
|
+
content: TextContent[];
|
|
22
|
+
isError?: boolean;
|
|
23
|
+
details?: unknown;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface JsonSchema {
|
|
27
|
+
type: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
properties?: Record<string, JsonSchema>;
|
|
30
|
+
required?: string[];
|
|
31
|
+
items?: JsonSchema;
|
|
32
|
+
enum?: string[];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface LspMcpTool {
|
|
36
|
+
name: string;
|
|
37
|
+
aliases?: string[];
|
|
38
|
+
title: string;
|
|
39
|
+
description: string;
|
|
40
|
+
inputSchema: JsonSchema;
|
|
41
|
+
execute(params: Record<string, unknown>, signal?: AbortSignal): Promise<ToolExecutionResult>;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface LspDiagnosticsDetails {
|
|
45
|
+
filePath: string;
|
|
46
|
+
severity: SeverityFilter;
|
|
47
|
+
mode: "file" | "directory";
|
|
48
|
+
diagnostics: Array<{ file: string; diagnostic: Diagnostic }>;
|
|
49
|
+
totalDiagnostics: number;
|
|
50
|
+
truncated: boolean;
|
|
51
|
+
error?: string;
|
|
52
|
+
errorKind?: "freshness_timeout" | "missing_dependency" | "no_files" | "invalid_path";
|
|
53
|
+
fileFailures?: Array<{ file: string; error: string }>;
|
|
54
|
+
projectCommands?: string[];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface LspGotoDefinitionDetails {
|
|
58
|
+
filePath: string;
|
|
59
|
+
line: number;
|
|
60
|
+
character: number;
|
|
61
|
+
locations: Array<Location | LocationLink>;
|
|
62
|
+
error?: string;
|
|
63
|
+
errorKind?: "missing_dependency";
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface LspFindReferencesDetails {
|
|
67
|
+
filePath: string;
|
|
68
|
+
line: number;
|
|
69
|
+
character: number;
|
|
70
|
+
references: Location[];
|
|
71
|
+
totalReferences: number;
|
|
72
|
+
truncated: boolean;
|
|
73
|
+
error?: string;
|
|
74
|
+
errorKind?: "missing_dependency";
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export interface LspSymbolsDetails {
|
|
78
|
+
filePath: string;
|
|
79
|
+
scope: "document" | "workspace";
|
|
80
|
+
query?: string;
|
|
81
|
+
symbols: Array<DocumentSymbol | SymbolInfo>;
|
|
82
|
+
totalSymbols: number;
|
|
83
|
+
truncated: boolean;
|
|
84
|
+
error?: string;
|
|
85
|
+
errorKind?: "missing_dependency" | "missing_query";
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export interface LspPrepareRenameDetails {
|
|
89
|
+
filePath: string;
|
|
90
|
+
line: number;
|
|
91
|
+
character: number;
|
|
92
|
+
result: PrepareRenameResult | PrepareRenameDefaultBehavior | Range | null;
|
|
93
|
+
error?: string;
|
|
94
|
+
errorKind?: "missing_dependency";
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export interface LspFormatDetails {
|
|
98
|
+
filePath: string;
|
|
99
|
+
status: "formatted" | "unchanged" | "unavailable";
|
|
100
|
+
reason?: "capability_not_advertised" | "server_unavailable";
|
|
101
|
+
linesAdded: number;
|
|
102
|
+
linesRemoved: number;
|
|
103
|
+
error?: string;
|
|
104
|
+
errorKind?: "missing_dependency";
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export interface LspRenameDetails {
|
|
108
|
+
filePath: string;
|
|
109
|
+
line: number;
|
|
110
|
+
character: number;
|
|
111
|
+
newName: string;
|
|
112
|
+
apply: ApplyResult | null;
|
|
113
|
+
edit: WorkspaceEdit | null;
|
|
114
|
+
error?: string;
|
|
115
|
+
errorKind?: "missing_dependency";
|
|
116
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./tools/index.js";
|
|
@@ -21,7 +21,7 @@ The root plugin manifest exports one Codex plugin named `omo`, with aggregate ho
|
|
|
21
21
|
|
|
22
22
|
## Telemetry
|
|
23
23
|
|
|
24
|
-
The bundled telemetry component emits the anonymous `omo_codex_daily_active` event at most once per UTC day per machine when the Codex `SessionStart` hook runs. It uses `sha256(
|
|
24
|
+
The bundled telemetry component emits the anonymous `omo_codex_daily_active` event at most once per UTC day per machine when the Codex `SessionStart` hook runs. It uses `sha256` of a random install id (stored as `install-id` next to the deduplication state) as the distinct ID, disables PostHog person profiles, and stores daily deduplication state in `$XDG_DATA_HOME/omo-codex/posthog-activity.json` or `~/.local/share/omo-codex/posthog-activity.json`.
|
|
25
25
|
|
|
26
26
|
Captured properties are limited to product/runtime metadata, operating-system metadata, coarse machine shape, locale/timezone, shell/terminal hints, `source`, `reason`, and `day_utc`. It does not send prompt contents, chat transcripts, source files, repository contents, file paths, access tokens, API keys, raw hostnames, Git remotes, usernames, email addresses, or runtime error diagnostics.
|
|
27
27
|
|
|
@@ -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 5.1.
|
|
11
|
+
"statusMessage": "(OmO 5.1.51) Checking Bootstrap Provisioning"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
|
|
10
10
|
"timeout": 5,
|
|
11
|
-
"statusMessage": "(OmO 5.1.
|
|
11
|
+
"statusMessage": "(OmO 5.1.51) Recommending Git Bash MCP"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"type": "command",
|
|
21
21
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
|
|
22
22
|
"timeout": 5,
|
|
23
|
-
"statusMessage": "(OmO 5.1.
|
|
23
|
+
"statusMessage": "(OmO 5.1.51) Resetting Git Bash MCP Reminder"
|
|
24
24
|
}
|
|
25
25
|
]
|
|
26
26
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
|
|
10
10
|
"timeout": 10,
|
|
11
|
-
"statusMessage": "(OmO 5.1.
|
|
11
|
+
"statusMessage": "(OmO 5.1.51) Verifying LazyCodex Executor Evidence"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|