lazycodex-ai 5.1.51 → 5.1.55
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 +1174 -394
- package/dist/cli/service-auth/credential-lock.d.ts +11 -0
- package/dist/cli/service-auth/credential-owner.d.ts +10 -0
- package/dist/cli/service-auth/index.d.ts +3 -1
- package/dist/cli/service-auth/keystore.d.ts +8 -1
- package/dist/cli/service-auth/owned-refresh.d.ts +21 -0
- package/dist/cli/service-auth/protocol-v2.d.ts +27 -0
- package/dist/cli/service-auth/protocol.d.ts +26 -2
- package/dist/cli/service-auth/recovery-clock.d.ts +7 -0
- package/dist/cli/service-auth/refresh-attempt.d.ts +34 -0
- package/dist/cli/service-auth/session.d.ts +9 -2
- package/dist/cli-node/index.js +1174 -394
- package/package.json +2 -1
- package/packages/lsp-core/src/lsp/config-loader.ts +18 -2
- package/packages/lsp-core/src/lsp/host-js-runtime.test.ts +150 -0
- package/packages/lsp-core/src/lsp/host-js-runtime.ts +57 -0
- package/packages/lsp-core/src/lsp/server-definitions.ts +10 -0
- package/packages/lsp-core/src/lsp/server-resolution.ts +9 -1
- package/packages/lsp-core/src/lsp/typescript-server-defaults.test.ts +84 -0
- package/packages/lsp-daemon/dist/cli.js +81 -15
- package/packages/lsp-daemon/dist/client.js +74 -8
- package/packages/lsp-daemon/dist/index.js +76 -10
- package/packages/lsp-tools-mcp/dist/cli.js +74 -8
- package/packages/lsp-tools-mcp/dist/mcp.js +74 -8
- package/packages/lsp-tools-mcp/dist/tools.js +74 -8
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +22 -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/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +77 -13
- 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 +1 -1
- package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +34 -2
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +34 -2
- 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/test/codex-hook.test.ts +14 -1
- 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/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/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 +12 -12
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/auto-update-plan.mjs +16 -1
- package/packages/omo-codex/plugin/skills/browser/runtime/omowright/index.js +24 -33
- package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +3 -3
- package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +104 -1
- package/packages/omo-codex/plugin/skills/frontend/SKILL.md +7 -3
- package/packages/omo-codex/plugin/skills/frontend/references/design/design-system-architecture.md +3 -3
- package/packages/omo-codex/plugin/skills/frontend/references/perfection/craft-floor.md +59 -0
- package/packages/omo-codex/plugin/skills/frontend/references/perfection/detect.md +52 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/cli.ts +70 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/config.ts +53 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/core/characters.ts +2 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/core/color.ts +150 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/core/page.ts +84 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/core/shadow.ts +40 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/core/source.ts +33 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/detect.ts +77 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/index.ts +23 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/lint.ts +98 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/render/probe-placement.ts +50 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/render/renderer.ts +37 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/render/webview.ts +71 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/report.ts +29 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rule.ts +42 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/ai-color-palette.ts +83 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/cream-palette.ts +35 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/dark-glow.ts +44 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/design-system-color.ts +35 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/gradient-text.ts +59 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/gray-on-color.ts +38 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/index.ts +15 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/low-contrast.ts +57 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/radial-halo.ts +31 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/radial-spotlight-glow.ts +33 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/animation-opacity.ts +78 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/color-path.ts +15 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/contrast-pairs.ts +54 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/contrast-role.ts +76 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/glow-forms.ts +56 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/gradient-samples.ts +134 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/gradients.ts +91 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/mockup-roots.ts +63 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/page-ignore.ts +7 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/painted-text.ts +141 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/palette-roles.ts +58 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/placeholder-contrast.ts +25 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/stock-accent.ts +31 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/color/support/text-colors.ts +80 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/copy/aphoristic-cadence.ts +20 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/copy/broken-image.ts +17 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/copy/em-dash-overuse.ts +46 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/copy/index.ts +15 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/copy/marketing-buzzword.ts +33 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/copy/numbered-section-labels.ts +34 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/copy/repeated-container-text.ts +56 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/copy/script-error.ts +38 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/copy/skipped-heading.ts +81 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/copy/support/numbered-label.ts +94 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/copy/support/page-text.ts +37 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/copy/theater-slop-phrase.ts +21 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/blinking-cursor.ts +48 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/border-accent-on-rounded.ts +14 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/bounce-easing.ts +83 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/buried-raster.ts +72 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/codex-grid-background.ts +34 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/design-system-radius.ts +31 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/gpt-thin-border-wide-shadow.ts +66 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/hard-offset-shadow.ts +31 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/hero-eyebrow-chip.ts +19 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/icon-tile-stack.ts +92 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/index.ts +38 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/kicker-above-heading.ts +69 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/marquee.ts +51 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/organic-clip-path.ts +41 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/pulsing-dot.ts +72 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/repeating-stripes-gradient.ts +25 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/shape-assembled-illustration.ts +58 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/side-tab.ts +17 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/support/appearance.ts +110 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/support/assert-cases.ts +25 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/support/borders.ts +150 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/support/clip-geometry.ts +151 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/support/css-candidates.ts +66 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/support/curve-samples.ts +55 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/support/gradient-pattern.ts +40 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/support/keyframes.ts +134 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/support/labels.ts +85 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/decoration/support/raster-state.ts +51 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/index.ts +16 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/body-text-viewport-edge.ts +62 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/clipped-overflow-container.ts +15 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/content-hidden-at-rest.ts +63 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/cramped-padding.ts +97 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/edge-flush-cards.ts +47 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/first-viewport-column-overflow.ts +43 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/heading-rhythm.ts +30 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/index.ts +21 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/monotonous-spacing.ts +32 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/nested-cards.ts +38 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/straggler.ts +28 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/support/cards.ts +114 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/support/clipping.ts +71 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/support/declared-mockups.ts +46 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/support/geometry.ts +73 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/support/hidden-interface.ts +35 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/support/layout-cases.ts +23 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/support/line-breaks.ts +32 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/support/motion.ts +77 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/support/padding.ts +93 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/support/rhythm.ts +161 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/text-occlusion.ts +84 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/text-overflow.ts +72 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/unbalanced-heading.ts +22 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/layout/viewport-reflow.ts +33 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/ai-color-palette.ts +11 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/aphoristic-cadence.ts +14 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/border-accent-on-rounded.ts +20 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/bounce-easing.ts +21 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/broken-image.ts +16 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/codex-grid-background.ts +18 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/dark-glow.ts +21 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/em-dash-overuse.ts +15 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/gradient-text.ts +11 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/gray-on-color.ts +13 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/index.ts +19 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/marketing-buzzword.ts +17 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/marquee.ts +12 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/monotonous-spacing.ts +22 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/overused-font.ts +16 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/radial-halo.ts +14 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/side-tab.ts +58 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/support/accent-scans.ts +78 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/support/check-source.ts +6 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/support/corners.ts +105 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/support/css-effects.ts +81 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/support/css-scopes.ts +131 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/support/image-tags.ts +113 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/support/js-punctuation.ts +34 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/support/markup-scope.ts +44 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/support/source-color.ts +42 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/support/source-shadow.ts +15 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/source/support/source-text.ts +110 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/all-caps-body.ts +15 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/design-system-font-size.ts +23 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/design-system-font.ts +24 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/extreme-negative-tracking.ts +18 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/flat-type-hierarchy.ts +26 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/index.ts +21 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/italic-serif-display.ts +24 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/justified-text.ts +32 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/line-length.ts +28 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/oversized-h1.ts +20 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/overused-font.ts +45 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/support/drawn-enlargement.ts +48 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/support/fading-text.ts +48 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/support/flex-runs.ts +16 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/support/font-family.ts +28 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/support/painted-text.ts +81 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/support/svg-size.ts +57 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/support/text-context.ts +112 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/support/text-lines.ts +43 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/support/type-hierarchy.ts +48 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/tight-leading.ts +47 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/tiny-text.ts +23 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/undersized-ui-text.ts +28 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/rules/typography/wide-tracking.ts +26 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/snapshot/collect.ts +158 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/snapshot/style-props.ts +25 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/testing/build-snapshot.ts +78 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/tsconfig.json +19 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/detect/types.ts +124 -0
- package/packages/omo-codex/plugin/skills/programming/SKILL.md +17 -74
- package/packages/omo-codex/plugin/skills/programming/references/go/README.md +1 -1
- package/packages/omo-codex/plugin/skills/programming/references/go/bootstrap.md +2 -2
- package/packages/omo-codex/plugin/skills/programming/references/python/README.md +4 -4
- package/packages/omo-codex/plugin/skills/programming/references/python/one-liners.md +5 -5
- package/packages/omo-codex/plugin/skills/programming/references/testing/README.md +82 -0
- package/packages/omo-codex/plugin/skills/programming/references/testing/junk-classes.md +56 -0
- package/packages/omo-codex/plugin/skills/programming/references/typescript/README.md +1 -2
- package/packages/omo-codex/plugin/skills/programming/scripts/go/new-project.ts +197 -0
- package/packages/omo-codex/plugin/skills/programming/scripts/python/new-project.ts +231 -0
- package/packages/omo-codex/plugin/skills/programming/scripts/python/new-script.ts +134 -0
- package/packages/omo-codex/plugin/skills/programming/scripts/rust/new-project.ts +215 -0
- package/packages/omo-codex/plugin/skills/programming/scripts/shared/run-tool.ts +19 -0
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/check-test-junk-rules.ts +140 -0
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/check-test-junk.ts +148 -0
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/mutation-proof.ts +179 -0
- package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +32 -20
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-commands.mjs +3 -1
- package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +12 -1
- package/packages/omo-codex/plugin/test/auto-update.test.mjs +62 -0
- package/packages/omo-codex/plugin/test/payload-equivalence.test.mjs +12 -2
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +79 -10
- package/packages/shared-skills/skills/browser/runtime/omowright/index.js +24 -33
- package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +3 -3
- package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +104 -1
- package/packages/shared-skills/skills/frontend/SKILL.md +7 -3
- package/packages/shared-skills/skills/frontend/references/design/design-system-architecture.md +3 -3
- package/packages/shared-skills/skills/frontend/references/perfection/craft-floor.md +59 -0
- package/packages/shared-skills/skills/frontend/references/perfection/detect.md +52 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/cli.ts +70 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/config.test.ts +26 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/config.ts +53 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/core/characters.ts +2 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/core/color.test.ts +29 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/core/color.ts +150 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/core/page.ts +84 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/core/shadow.ts +40 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/core/source.ts +33 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/detect.ts +77 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/index.ts +23 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/lint.test.ts +27 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/lint.ts +98 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/render/probe-placement.test.ts +19 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/render/probe-placement.ts +50 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/render/renderer.ts +37 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/render/webview.ts +71 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/report.ts +29 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rule.ts +42 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/ai-color-palette.test.ts +74 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/ai-color-palette.ts +83 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/cream-palette.test.ts +24 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/cream-palette.ts +35 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/dark-glow.test.ts +47 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/dark-glow.ts +44 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/design-system-color.test.ts +26 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/design-system-color.ts +35 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/gradient-text.test.ts +24 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/gradient-text.ts +59 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/gray-on-color.test.ts +39 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/gray-on-color.ts +38 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/index.ts +15 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/low-contrast.test.ts +209 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/low-contrast.ts +57 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/placeholder-contrast.test.ts +62 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/radial-halo.test.ts +40 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/radial-halo.ts +31 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/radial-spotlight-glow.test.ts +27 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/radial-spotlight-glow.ts +33 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/animation-opacity.ts +78 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/color-path.ts +15 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/contrast-pairs.ts +54 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/contrast-role.ts +76 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/glow-forms.ts +56 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/gradient-samples.ts +134 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/gradients.ts +91 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/mockup-roots.ts +63 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/page-ignore.ts +7 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/painted-text.ts +141 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/palette-roles.ts +58 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/placeholder-contrast.ts +25 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/stock-accent.ts +31 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/color/support/text-colors.ts +80 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/aphoristic-cadence.test.ts +18 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/aphoristic-cadence.ts +20 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/broken-image.test.ts +25 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/broken-image.ts +17 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/em-dash-overuse.test.ts +39 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/em-dash-overuse.ts +46 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/index.ts +15 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/marketing-buzzword.test.ts +18 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/marketing-buzzword.ts +33 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/numbered-section-labels.test.ts +58 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/numbered-section-labels.ts +34 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/repeated-container-text.test.ts +43 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/repeated-container-text.ts +56 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/script-error.test.ts +48 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/script-error.ts +38 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/skipped-heading.test.ts +49 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/skipped-heading.ts +81 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/support/numbered-label.ts +94 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/support/page-text.ts +37 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/theater-slop-phrase.test.ts +17 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/copy/theater-slop-phrase.ts +21 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/blinking-cursor.test.ts +43 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/blinking-cursor.ts +48 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/border-accent-on-rounded.test.ts +33 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/border-accent-on-rounded.ts +14 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/bounce-easing.test.ts +72 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/bounce-easing.ts +83 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/buried-raster.test.ts +95 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/buried-raster.ts +72 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/codex-grid-background.test.ts +28 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/codex-grid-background.ts +34 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/design-system-radius.test.ts +37 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/design-system-radius.ts +31 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/gpt-thin-border-wide-shadow.test.ts +59 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/gpt-thin-border-wide-shadow.ts +66 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/hard-offset-shadow.test.ts +45 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/hard-offset-shadow.ts +31 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/hero-eyebrow-chip.test.ts +76 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/hero-eyebrow-chip.ts +19 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/icon-tile-stack.test.ts +67 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/icon-tile-stack.ts +92 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/index.ts +38 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/kicker-above-heading.test.ts +126 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/kicker-above-heading.ts +69 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/marquee.test.ts +63 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/marquee.ts +51 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/organic-clip-path.test.ts +67 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/organic-clip-path.ts +41 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/pulsing-dot.test.ts +58 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/pulsing-dot.ts +72 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/repeating-stripes-gradient.test.ts +26 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/repeating-stripes-gradient.ts +25 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/shape-assembled-illustration.test.ts +59 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/shape-assembled-illustration.ts +58 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/side-tab.test.ts +91 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/side-tab.ts +17 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/support/appearance.ts +110 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/support/assert-cases.ts +25 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/support/borders.ts +150 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/support/clip-geometry.ts +151 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/support/css-candidates.ts +66 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/support/curve-samples.ts +55 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/support/gradient-pattern.ts +40 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/support/keyframes.ts +134 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/support/labels.ts +85 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/decoration/support/raster-state.ts +51 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/index.ts +16 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/body-text-viewport-edge.test.ts +64 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/body-text-viewport-edge.ts +62 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/clipped-overflow-container.test.ts +40 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/clipped-overflow-container.ts +15 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/content-hidden-at-rest.test.ts +62 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/content-hidden-at-rest.ts +63 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/cramped-padding.test.ts +61 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/cramped-padding.ts +97 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/edge-flush-cards.test.ts +43 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/edge-flush-cards.ts +47 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/first-viewport-column-overflow.test.ts +28 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/first-viewport-column-overflow.ts +43 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/heading-rhythm.test.ts +67 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/heading-rhythm.ts +30 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/index.ts +21 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/monotonous-spacing.test.ts +19 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/monotonous-spacing.ts +32 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/nested-cards.test.ts +60 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/nested-cards.ts +38 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/straggler.test.ts +33 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/straggler.ts +28 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/support/cards.ts +114 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/support/clipping.ts +71 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/support/declared-mockups.ts +46 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/support/geometry.ts +73 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/support/hidden-interface.ts +35 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/support/layout-cases.ts +23 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/support/line-breaks.ts +32 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/support/motion.ts +77 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/support/padding.ts +93 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/support/rhythm.ts +161 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/text-occlusion.test.ts +37 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/text-occlusion.ts +84 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/text-overflow.test.ts +83 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/text-overflow.ts +72 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/unbalanced-heading.test.ts +22 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/unbalanced-heading.ts +22 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/viewport-reflow.test.ts +34 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/layout/viewport-reflow.ts +33 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/ai-color-palette.test.ts +13 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/ai-color-palette.ts +11 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/aphoristic-cadence.test.ts +12 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/aphoristic-cadence.ts +14 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/border-accent-on-rounded.test.ts +14 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/border-accent-on-rounded.ts +20 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/bounce-easing.test.ts +19 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/bounce-easing.ts +21 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/broken-image.test.ts +27 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/broken-image.ts +16 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/codex-grid-background.test.ts +11 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/codex-grid-background.ts +18 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/dark-glow.test.ts +15 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/dark-glow.ts +21 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/em-dash-overuse.test.ts +13 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/em-dash-overuse.ts +15 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/gradient-text.test.ts +12 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/gradient-text.ts +11 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/gray-on-color.test.ts +20 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/gray-on-color.ts +13 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/index.ts +19 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/marketing-buzzword.test.ts +12 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/marketing-buzzword.ts +17 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/marquee.test.ts +12 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/marquee.ts +12 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/monotonous-spacing.test.ts +13 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/monotonous-spacing.ts +22 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/overused-font.test.ts +21 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/overused-font.ts +16 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/radial-halo.test.ts +16 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/radial-halo.ts +14 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/side-tab.test.ts +29 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/side-tab.ts +58 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/support/accent-scans.ts +78 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/support/check-source.ts +6 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/support/corners.ts +105 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/support/css-effects.ts +81 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/support/css-scopes.ts +131 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/support/image-tags.ts +113 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/support/js-punctuation.ts +34 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/support/markup-scope.ts +44 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/support/source-color.ts +42 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/support/source-shadow.ts +15 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/source/support/source-text.ts +110 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/all-caps-body.test.ts +24 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/all-caps-body.ts +15 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/design-system-font-size.test.ts +21 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/design-system-font-size.ts +23 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/design-system-font.test.ts +22 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/design-system-font.ts +24 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/extreme-negative-tracking.test.ts +23 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/extreme-negative-tracking.ts +18 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/flat-type-hierarchy.test.ts +33 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/flat-type-hierarchy.ts +26 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/index.ts +21 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/italic-serif-display.test.ts +24 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/italic-serif-display.ts +24 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/justified-text.test.ts +31 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/justified-text.ts +32 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/line-length.test.ts +43 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/line-length.ts +28 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/oversized-h1.test.ts +26 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/oversized-h1.ts +20 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/overused-font.test.ts +35 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/overused-font.ts +45 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/support/drawn-enlargement.ts +48 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/support/fading-text.ts +48 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/support/flex-runs.ts +16 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/support/font-family.ts +28 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/support/painted-text.test.ts +63 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/support/painted-text.ts +81 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/support/svg-size.ts +57 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/support/text-context.ts +112 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/support/text-lines.ts +43 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/support/type-hierarchy.ts +48 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/tight-leading.test.ts +54 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/tight-leading.ts +47 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/tiny-text.test.ts +60 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/tiny-text.ts +23 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/undersized-ui-text.test.ts +98 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/undersized-ui-text.ts +28 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/wide-tracking.test.ts +26 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/rules/typography/wide-tracking.ts +26 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/snapshot/collect.ts +158 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/snapshot/style-props.ts +25 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/testing/build-snapshot.ts +78 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/tsconfig.json +19 -0
- package/packages/shared-skills/skills/frontend/scripts/detect/types.ts +124 -0
- package/packages/shared-skills/skills/programming/SKILL.md +17 -74
- package/packages/shared-skills/skills/programming/references/go/README.md +1 -1
- package/packages/shared-skills/skills/programming/references/go/bootstrap.md +2 -2
- package/packages/shared-skills/skills/programming/references/python/README.md +4 -4
- package/packages/shared-skills/skills/programming/references/python/one-liners.md +5 -5
- package/packages/shared-skills/skills/programming/references/testing/README.md +82 -0
- package/packages/shared-skills/skills/programming/references/testing/junk-classes.md +56 -0
- package/packages/shared-skills/skills/programming/references/typescript/README.md +1 -2
- package/packages/shared-skills/skills/programming/scripts/go/new-project.ts +197 -0
- package/packages/shared-skills/skills/programming/scripts/python/new-project.ts +231 -0
- package/packages/shared-skills/skills/programming/scripts/python/new-script.ts +134 -0
- package/packages/shared-skills/skills/programming/scripts/rust/new-project.ts +215 -0
- package/packages/shared-skills/skills/programming/scripts/scaffolders.test.ts +96 -0
- package/packages/shared-skills/skills/programming/scripts/shared/run-tool.ts +19 -0
- package/packages/shared-skills/skills/programming/scripts/typescript/check-test-junk-rules.ts +140 -0
- package/packages/shared-skills/skills/programming/scripts/typescript/check-test-junk.test.ts +125 -0
- package/packages/shared-skills/skills/programming/scripts/typescript/check-test-junk.ts +148 -0
- package/packages/shared-skills/skills/programming/scripts/typescript/mutation-proof.test.ts +43 -0
- package/packages/shared-skills/skills/programming/scripts/typescript/mutation-proof.ts +179 -0
- package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +32 -20
- package/packages/shared-skills/skills/ulw-research/scripts/source-commands.mjs +3 -1
- package/packages/shared-skills/skills/ulw-research/scripts/source-integrity.test.ts +39 -2
- package/packages/shared-skills/skills/visual-qa/SKILL.md +12 -1
- package/packages/omo-codex/plugin/skills/programming/scripts/go/new-project.py +0 -138
- package/packages/omo-codex/plugin/skills/programming/scripts/python/new-project.py +0 -172
- package/packages/omo-codex/plugin/skills/programming/scripts/python/new-script.py +0 -116
- package/packages/omo-codex/plugin/skills/programming/scripts/rust/new-project.py +0 -178
- package/packages/shared-skills/skills/programming/scripts/go/new-project.py +0 -138
- package/packages/shared-skills/skills/programming/scripts/python/new-project.py +0 -172
- package/packages/shared-skills/skills/programming/scripts/python/new-script.py +0 -116
- package/packages/shared-skills/skills/programming/scripts/rust/new-project.py +0 -178
|
@@ -1160,7 +1160,7 @@ function createIdleTimer(idleTimeoutMs, log, onTimeout) {
|
|
|
1160
1160
|
};
|
|
1161
1161
|
}
|
|
1162
1162
|
// ../lsp-core/src/lsp/client-wrapper.ts
|
|
1163
|
-
import { existsSync as existsSync11, realpathSync as
|
|
1163
|
+
import { existsSync as existsSync11, realpathSync as realpathSync6, statSync as statSync4 } from "node:fs";
|
|
1164
1164
|
import { basename as basename3, dirname as dirname10, join as join5, resolve as resolve8 } from "node:path";
|
|
1165
1165
|
|
|
1166
1166
|
// ../lsp-core/src/lsp/effective-extension.ts
|
|
@@ -4433,10 +4433,15 @@ var LSP_LOCAL_INSTALL_HINTS = {
|
|
|
4433
4433
|
ty: "uv add --dev ty",
|
|
4434
4434
|
"ruby-lsp": "bundle add ruby-lsp --group development"
|
|
4435
4435
|
};
|
|
4436
|
+
var TYPESCRIPT_SERVER_INITIALIZATION = {
|
|
4437
|
+
tsserver: { useSyntaxServer: "never" },
|
|
4438
|
+
disableAutomaticTypingAcquisition: true
|
|
4439
|
+
};
|
|
4436
4440
|
var BUILTIN_SERVERS = {
|
|
4437
4441
|
typescript: {
|
|
4438
4442
|
command: ["typescript-language-server", "--stdio"],
|
|
4439
|
-
extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".mts", ".cts"]
|
|
4443
|
+
extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".mts", ".cts"],
|
|
4444
|
+
initialization: TYPESCRIPT_SERVER_INITIALIZATION
|
|
4440
4445
|
},
|
|
4441
4446
|
deno: { command: ["deno", "lsp"], extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs"] },
|
|
4442
4447
|
vue: { command: ["vue-language-server", "--stdio"], extensions: [".vue"] },
|
|
@@ -4654,7 +4659,8 @@ function getMergedServers() {
|
|
|
4654
4659
|
command: config.command,
|
|
4655
4660
|
extensions: config.extensions,
|
|
4656
4661
|
priority: -100,
|
|
4657
|
-
source: "builtin"
|
|
4662
|
+
source: "builtin",
|
|
4663
|
+
...config.initialization === undefined ? {} : { initialization: config.initialization }
|
|
4658
4664
|
});
|
|
4659
4665
|
}
|
|
4660
4666
|
return servers.sort((a, b) => {
|
|
@@ -4681,8 +4687,9 @@ function createServerFromEntry(id, entry, source) {
|
|
|
4681
4687
|
priority: entry.priority ?? 0,
|
|
4682
4688
|
source
|
|
4683
4689
|
});
|
|
4684
|
-
|
|
4685
|
-
|
|
4690
|
+
const initialization = mergeInitialization(builtin.initialization, entry.initialization);
|
|
4691
|
+
if (initialization !== undefined) {
|
|
4692
|
+
server.initialization = initialization;
|
|
4686
4693
|
}
|
|
4687
4694
|
return server;
|
|
4688
4695
|
}
|
|
@@ -4707,8 +4714,20 @@ function createServerFromEntry(id, entry, source) {
|
|
|
4707
4714
|
source
|
|
4708
4715
|
});
|
|
4709
4716
|
applyOptionalServerFields(server, entry);
|
|
4717
|
+
const builtinInitialization = entry.command === undefined ? builtin.initialization : undefined;
|
|
4718
|
+
const initialization = mergeInitialization(builtinInitialization, entry.initialization);
|
|
4719
|
+
if (initialization !== undefined) {
|
|
4720
|
+
server.initialization = initialization;
|
|
4721
|
+
}
|
|
4710
4722
|
return server;
|
|
4711
4723
|
}
|
|
4724
|
+
function mergeInitialization(builtin, entry) {
|
|
4725
|
+
if (builtin === undefined)
|
|
4726
|
+
return entry;
|
|
4727
|
+
if (entry === undefined)
|
|
4728
|
+
return builtin;
|
|
4729
|
+
return { ...builtin, ...entry };
|
|
4730
|
+
}
|
|
4712
4731
|
function createServer(input) {
|
|
4713
4732
|
const server = {
|
|
4714
4733
|
id: input.id,
|
|
@@ -4779,6 +4798,49 @@ function getDisabledServerIds() {
|
|
|
4779
4798
|
return disabled;
|
|
4780
4799
|
}
|
|
4781
4800
|
|
|
4801
|
+
// ../lsp-core/src/lsp/host-js-runtime.ts
|
|
4802
|
+
import { closeSync as closeSync3, openSync as openSync3, readSync, realpathSync as realpathSync5 } from "node:fs";
|
|
4803
|
+
var HOST_RUNTIME_SERVER_IDS = new Set(["typescript"]);
|
|
4804
|
+
var JS_ENTRY = /\.[cm]?js$/;
|
|
4805
|
+
var NODE_SHEBANG = /^#![^\n]*\bnode\b/;
|
|
4806
|
+
function currentHostJsRuntime() {
|
|
4807
|
+
return { bunExecPath: process.versions["bun"] === undefined ? undefined : process.execPath };
|
|
4808
|
+
}
|
|
4809
|
+
function withHostJsRuntime(serverId, command, host = currentHostJsRuntime()) {
|
|
4810
|
+
if (host.bunExecPath === undefined || !HOST_RUNTIME_SERVER_IDS.has(serverId))
|
|
4811
|
+
return command;
|
|
4812
|
+
const [binary, ...args] = command;
|
|
4813
|
+
if (binary === undefined)
|
|
4814
|
+
return command;
|
|
4815
|
+
const script = nodeScriptPath(binary);
|
|
4816
|
+
return script === undefined ? command : [host.bunExecPath, script, ...args];
|
|
4817
|
+
}
|
|
4818
|
+
function nodeScriptPath(binary) {
|
|
4819
|
+
let real;
|
|
4820
|
+
try {
|
|
4821
|
+
real = realpathSync5(binary);
|
|
4822
|
+
} catch {
|
|
4823
|
+
return;
|
|
4824
|
+
}
|
|
4825
|
+
if (JS_ENTRY.test(real))
|
|
4826
|
+
return real;
|
|
4827
|
+
try {
|
|
4828
|
+
return NODE_SHEBANG.test(readHead(real)) ? real : undefined;
|
|
4829
|
+
} catch {
|
|
4830
|
+
return;
|
|
4831
|
+
}
|
|
4832
|
+
}
|
|
4833
|
+
function readHead(path) {
|
|
4834
|
+
const fd = openSync3(path, "r");
|
|
4835
|
+
try {
|
|
4836
|
+
const buffer = Buffer.alloc(128);
|
|
4837
|
+
const bytes = readSync(fd, buffer, 0, buffer.length, 0);
|
|
4838
|
+
return buffer.toString("utf8", 0, bytes);
|
|
4839
|
+
} finally {
|
|
4840
|
+
closeSync3(fd);
|
|
4841
|
+
}
|
|
4842
|
+
}
|
|
4843
|
+
|
|
4782
4844
|
// ../lsp-core/src/lsp/server-installation.ts
|
|
4783
4845
|
import { existsSync as existsSync10 } from "node:fs";
|
|
4784
4846
|
import { delimiter as delimiter3, dirname as dirname9, isAbsolute as isAbsolute5, join as join4, resolve as resolve7 } from "node:path";
|
|
@@ -4918,6 +4980,10 @@ function isServerInstalled(command, workingDirectory, options = {}) {
|
|
|
4918
4980
|
function withResolvedCommand(command, binaryPath) {
|
|
4919
4981
|
return [binaryPath, ...command.slice(1)];
|
|
4920
4982
|
}
|
|
4983
|
+
function usesBuiltinCommand(id, command) {
|
|
4984
|
+
const builtin = BUILTIN_SERVERS[id]?.command;
|
|
4985
|
+
return builtin !== undefined && builtin.length === command.length && builtin.every((part, index) => part === command[index]);
|
|
4986
|
+
}
|
|
4921
4987
|
function findServerForExtension(ext) {
|
|
4922
4988
|
const servers = getMergedServers();
|
|
4923
4989
|
const workingDirectory = contextCwd();
|
|
@@ -4928,7 +4994,7 @@ function findServerForExtension(ext) {
|
|
|
4928
4994
|
if (binaryPath !== null) {
|
|
4929
4995
|
const resolvedServer = {
|
|
4930
4996
|
id: server.id,
|
|
4931
|
-
command: withResolvedCommand(server.command, binaryPath),
|
|
4997
|
+
command: usesBuiltinCommand(server.id, server.command) ? withHostJsRuntime(server.id, withResolvedCommand(server.command, binaryPath)) : withResolvedCommand(server.command, binaryPath),
|
|
4932
4998
|
extensions: server.extensions,
|
|
4933
4999
|
priority: server.priority
|
|
4934
5000
|
};
|
|
@@ -5069,7 +5135,7 @@ function rebaseThroughCanonicalAncestor(path, cwd) {
|
|
|
5069
5135
|
const suffix = [];
|
|
5070
5136
|
while (true) {
|
|
5071
5137
|
if (existsSync11(current)) {
|
|
5072
|
-
const canonical =
|
|
5138
|
+
const canonical = realpathSync6(current);
|
|
5073
5139
|
if (isPathInside(cwd, canonical))
|
|
5074
5140
|
return suffix.length === 0 ? canonical : join5(canonical, ...suffix);
|
|
5075
5141
|
}
|
|
@@ -5083,7 +5149,7 @@ function rebaseThroughCanonicalAncestor(path, cwd) {
|
|
|
5083
5149
|
function existingDirectoryInsideContext(directory, cwd) {
|
|
5084
5150
|
if (!existsSync11(directory))
|
|
5085
5151
|
return;
|
|
5086
|
-
const canonical =
|
|
5152
|
+
const canonical = realpathSync6(directory);
|
|
5087
5153
|
if (!statSync4(canonical).isDirectory())
|
|
5088
5154
|
return;
|
|
5089
5155
|
return isPathInside(cwd, canonical) ? canonical : undefined;
|
|
@@ -4314,7 +4314,7 @@ function createIdleTimer(idleTimeoutMs, log, onTimeout) {
|
|
|
4314
4314
|
};
|
|
4315
4315
|
}
|
|
4316
4316
|
// ../lsp-core/src/lsp/client-wrapper.ts
|
|
4317
|
-
import { existsSync as existsSync11, realpathSync as
|
|
4317
|
+
import { existsSync as existsSync11, realpathSync as realpathSync6, statSync as statSync4 } from "node:fs";
|
|
4318
4318
|
import { basename as basename3, dirname as dirname10, join as join5, resolve as resolve8 } from "node:path";
|
|
4319
4319
|
|
|
4320
4320
|
// ../lsp-core/src/lsp/outside-context-workspace.ts
|
|
@@ -4428,10 +4428,15 @@ var LSP_LOCAL_INSTALL_HINTS = {
|
|
|
4428
4428
|
ty: "uv add --dev ty",
|
|
4429
4429
|
"ruby-lsp": "bundle add ruby-lsp --group development"
|
|
4430
4430
|
};
|
|
4431
|
+
var TYPESCRIPT_SERVER_INITIALIZATION = {
|
|
4432
|
+
tsserver: { useSyntaxServer: "never" },
|
|
4433
|
+
disableAutomaticTypingAcquisition: true
|
|
4434
|
+
};
|
|
4431
4435
|
var BUILTIN_SERVERS = {
|
|
4432
4436
|
typescript: {
|
|
4433
4437
|
command: ["typescript-language-server", "--stdio"],
|
|
4434
|
-
extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".mts", ".cts"]
|
|
4438
|
+
extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".mts", ".cts"],
|
|
4439
|
+
initialization: TYPESCRIPT_SERVER_INITIALIZATION
|
|
4435
4440
|
},
|
|
4436
4441
|
deno: { command: ["deno", "lsp"], extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs"] },
|
|
4437
4442
|
vue: { command: ["vue-language-server", "--stdio"], extensions: [".vue"] },
|
|
@@ -4649,7 +4654,8 @@ function getMergedServers() {
|
|
|
4649
4654
|
command: config.command,
|
|
4650
4655
|
extensions: config.extensions,
|
|
4651
4656
|
priority: -100,
|
|
4652
|
-
source: "builtin"
|
|
4657
|
+
source: "builtin",
|
|
4658
|
+
...config.initialization === undefined ? {} : { initialization: config.initialization }
|
|
4653
4659
|
});
|
|
4654
4660
|
}
|
|
4655
4661
|
return servers.sort((a, b) => {
|
|
@@ -4676,8 +4682,9 @@ function createServerFromEntry(id, entry, source) {
|
|
|
4676
4682
|
priority: entry.priority ?? 0,
|
|
4677
4683
|
source
|
|
4678
4684
|
});
|
|
4679
|
-
|
|
4680
|
-
|
|
4685
|
+
const initialization = mergeInitialization(builtin.initialization, entry.initialization);
|
|
4686
|
+
if (initialization !== undefined) {
|
|
4687
|
+
server.initialization = initialization;
|
|
4681
4688
|
}
|
|
4682
4689
|
return server;
|
|
4683
4690
|
}
|
|
@@ -4702,8 +4709,20 @@ function createServerFromEntry(id, entry, source) {
|
|
|
4702
4709
|
source
|
|
4703
4710
|
});
|
|
4704
4711
|
applyOptionalServerFields(server, entry);
|
|
4712
|
+
const builtinInitialization = entry.command === undefined ? builtin.initialization : undefined;
|
|
4713
|
+
const initialization = mergeInitialization(builtinInitialization, entry.initialization);
|
|
4714
|
+
if (initialization !== undefined) {
|
|
4715
|
+
server.initialization = initialization;
|
|
4716
|
+
}
|
|
4705
4717
|
return server;
|
|
4706
4718
|
}
|
|
4719
|
+
function mergeInitialization(builtin, entry) {
|
|
4720
|
+
if (builtin === undefined)
|
|
4721
|
+
return entry;
|
|
4722
|
+
if (entry === undefined)
|
|
4723
|
+
return builtin;
|
|
4724
|
+
return { ...builtin, ...entry };
|
|
4725
|
+
}
|
|
4707
4726
|
function createServer(input) {
|
|
4708
4727
|
const server = {
|
|
4709
4728
|
id: input.id,
|
|
@@ -4774,6 +4793,49 @@ function getDisabledServerIds() {
|
|
|
4774
4793
|
return disabled;
|
|
4775
4794
|
}
|
|
4776
4795
|
|
|
4796
|
+
// ../lsp-core/src/lsp/host-js-runtime.ts
|
|
4797
|
+
import { closeSync as closeSync3, openSync as openSync3, readSync, realpathSync as realpathSync5 } from "node:fs";
|
|
4798
|
+
var HOST_RUNTIME_SERVER_IDS = new Set(["typescript"]);
|
|
4799
|
+
var JS_ENTRY = /\.[cm]?js$/;
|
|
4800
|
+
var NODE_SHEBANG = /^#![^\n]*\bnode\b/;
|
|
4801
|
+
function currentHostJsRuntime() {
|
|
4802
|
+
return { bunExecPath: process.versions["bun"] === undefined ? undefined : process.execPath };
|
|
4803
|
+
}
|
|
4804
|
+
function withHostJsRuntime(serverId, command, host = currentHostJsRuntime()) {
|
|
4805
|
+
if (host.bunExecPath === undefined || !HOST_RUNTIME_SERVER_IDS.has(serverId))
|
|
4806
|
+
return command;
|
|
4807
|
+
const [binary, ...args] = command;
|
|
4808
|
+
if (binary === undefined)
|
|
4809
|
+
return command;
|
|
4810
|
+
const script = nodeScriptPath(binary);
|
|
4811
|
+
return script === undefined ? command : [host.bunExecPath, script, ...args];
|
|
4812
|
+
}
|
|
4813
|
+
function nodeScriptPath(binary) {
|
|
4814
|
+
let real;
|
|
4815
|
+
try {
|
|
4816
|
+
real = realpathSync5(binary);
|
|
4817
|
+
} catch {
|
|
4818
|
+
return;
|
|
4819
|
+
}
|
|
4820
|
+
if (JS_ENTRY.test(real))
|
|
4821
|
+
return real;
|
|
4822
|
+
try {
|
|
4823
|
+
return NODE_SHEBANG.test(readHead(real)) ? real : undefined;
|
|
4824
|
+
} catch {
|
|
4825
|
+
return;
|
|
4826
|
+
}
|
|
4827
|
+
}
|
|
4828
|
+
function readHead(path) {
|
|
4829
|
+
const fd = openSync3(path, "r");
|
|
4830
|
+
try {
|
|
4831
|
+
const buffer = Buffer.alloc(128);
|
|
4832
|
+
const bytes = readSync(fd, buffer, 0, buffer.length, 0);
|
|
4833
|
+
return buffer.toString("utf8", 0, bytes);
|
|
4834
|
+
} finally {
|
|
4835
|
+
closeSync3(fd);
|
|
4836
|
+
}
|
|
4837
|
+
}
|
|
4838
|
+
|
|
4777
4839
|
// ../lsp-core/src/lsp/server-installation.ts
|
|
4778
4840
|
import { existsSync as existsSync10 } from "node:fs";
|
|
4779
4841
|
import { delimiter as delimiter3, dirname as dirname9, isAbsolute as isAbsolute5, join as join4, resolve as resolve7 } from "node:path";
|
|
@@ -4913,6 +4975,10 @@ function isServerInstalled(command, workingDirectory, options = {}) {
|
|
|
4913
4975
|
function withResolvedCommand(command, binaryPath) {
|
|
4914
4976
|
return [binaryPath, ...command.slice(1)];
|
|
4915
4977
|
}
|
|
4978
|
+
function usesBuiltinCommand(id, command) {
|
|
4979
|
+
const builtin = BUILTIN_SERVERS[id]?.command;
|
|
4980
|
+
return builtin !== undefined && builtin.length === command.length && builtin.every((part, index) => part === command[index]);
|
|
4981
|
+
}
|
|
4916
4982
|
function findServerForExtension(ext) {
|
|
4917
4983
|
const servers = getMergedServers();
|
|
4918
4984
|
const workingDirectory = contextCwd();
|
|
@@ -4923,7 +4989,7 @@ function findServerForExtension(ext) {
|
|
|
4923
4989
|
if (binaryPath !== null) {
|
|
4924
4990
|
const resolvedServer = {
|
|
4925
4991
|
id: server.id,
|
|
4926
|
-
command: withResolvedCommand(server.command, binaryPath),
|
|
4992
|
+
command: usesBuiltinCommand(server.id, server.command) ? withHostJsRuntime(server.id, withResolvedCommand(server.command, binaryPath)) : withResolvedCommand(server.command, binaryPath),
|
|
4927
4993
|
extensions: server.extensions,
|
|
4928
4994
|
priority: server.priority
|
|
4929
4995
|
};
|
|
@@ -5064,7 +5130,7 @@ function rebaseThroughCanonicalAncestor(path, cwd) {
|
|
|
5064
5130
|
const suffix = [];
|
|
5065
5131
|
while (true) {
|
|
5066
5132
|
if (existsSync11(current)) {
|
|
5067
|
-
const canonical =
|
|
5133
|
+
const canonical = realpathSync6(current);
|
|
5068
5134
|
if (isPathInside(cwd, canonical))
|
|
5069
5135
|
return suffix.length === 0 ? canonical : join5(canonical, ...suffix);
|
|
5070
5136
|
}
|
|
@@ -5078,7 +5144,7 @@ function rebaseThroughCanonicalAncestor(path, cwd) {
|
|
|
5078
5144
|
function existingDirectoryInsideContext(directory, cwd) {
|
|
5079
5145
|
if (!existsSync11(directory))
|
|
5080
5146
|
return;
|
|
5081
|
-
const canonical =
|
|
5147
|
+
const canonical = realpathSync6(directory);
|
|
5082
5148
|
if (!statSync4(canonical).isDirectory())
|
|
5083
5149
|
return;
|
|
5084
5150
|
return isPathInside(cwd, canonical) ? canonical : undefined;
|
|
@@ -6871,7 +6937,7 @@ function isRetryableTool(name) {
|
|
|
6871
6937
|
return name !== "rename" && name !== "lsp_rename";
|
|
6872
6938
|
}
|
|
6873
6939
|
// src/proxy.ts
|
|
6874
|
-
import { existsSync as existsSync14, realpathSync as
|
|
6940
|
+
import { existsSync as existsSync14, realpathSync as realpathSync7 } from "node:fs";
|
|
6875
6941
|
import { basename as basename4, delimiter as delimiter4, dirname as dirname12, isAbsolute as isAbsolute6 } from "node:path";
|
|
6876
6942
|
var DEFAULT_STARTUP_TIMEOUT_MS = 1e4;
|
|
6877
6943
|
async function runMcpStdioProxy(options = {}) {
|
|
@@ -6997,7 +7063,7 @@ function canonicalizePathList(value) {
|
|
|
6997
7063
|
function canonicalizePath(value) {
|
|
6998
7064
|
if (value === undefined || !isAbsolute6(value) || !existsSync14(value))
|
|
6999
7065
|
return value;
|
|
7000
|
-
return
|
|
7066
|
+
return realpathSync7(value);
|
|
7001
7067
|
}
|
|
7002
7068
|
function projectRootFromOpenCodeConfigPath(path) {
|
|
7003
7069
|
if (basename4(path) !== "lsp.json" && basename4(path) !== "lsp-client.json")
|
|
@@ -3474,7 +3474,7 @@ function createIdleTimer(idleTimeoutMs, log, onTimeout) {
|
|
|
3474
3474
|
};
|
|
3475
3475
|
}
|
|
3476
3476
|
// ../lsp-core/src/lsp/client-wrapper.ts
|
|
3477
|
-
import { existsSync as existsSync10, realpathSync as
|
|
3477
|
+
import { existsSync as existsSync10, realpathSync as realpathSync6, statSync as statSync3 } from "node:fs";
|
|
3478
3478
|
import { basename as basename3, dirname as dirname8, join as join5, resolve as resolve8 } from "node:path";
|
|
3479
3479
|
|
|
3480
3480
|
// ../lsp-core/src/request-context.ts
|
|
@@ -3766,10 +3766,15 @@ var LSP_LOCAL_INSTALL_HINTS = {
|
|
|
3766
3766
|
ty: "uv add --dev ty",
|
|
3767
3767
|
"ruby-lsp": "bundle add ruby-lsp --group development"
|
|
3768
3768
|
};
|
|
3769
|
+
var TYPESCRIPT_SERVER_INITIALIZATION = {
|
|
3770
|
+
tsserver: { useSyntaxServer: "never" },
|
|
3771
|
+
disableAutomaticTypingAcquisition: true
|
|
3772
|
+
};
|
|
3769
3773
|
var BUILTIN_SERVERS = {
|
|
3770
3774
|
typescript: {
|
|
3771
3775
|
command: ["typescript-language-server", "--stdio"],
|
|
3772
|
-
extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".mts", ".cts"]
|
|
3776
|
+
extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".mts", ".cts"],
|
|
3777
|
+
initialization: TYPESCRIPT_SERVER_INITIALIZATION
|
|
3773
3778
|
},
|
|
3774
3779
|
deno: { command: ["deno", "lsp"], extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs"] },
|
|
3775
3780
|
vue: { command: ["vue-language-server", "--stdio"], extensions: [".vue"] },
|
|
@@ -3987,7 +3992,8 @@ function getMergedServers() {
|
|
|
3987
3992
|
command: config.command,
|
|
3988
3993
|
extensions: config.extensions,
|
|
3989
3994
|
priority: -100,
|
|
3990
|
-
source: "builtin"
|
|
3995
|
+
source: "builtin",
|
|
3996
|
+
...config.initialization === undefined ? {} : { initialization: config.initialization }
|
|
3991
3997
|
});
|
|
3992
3998
|
}
|
|
3993
3999
|
return servers.sort((a, b) => {
|
|
@@ -4014,8 +4020,9 @@ function createServerFromEntry(id, entry, source) {
|
|
|
4014
4020
|
priority: entry.priority ?? 0,
|
|
4015
4021
|
source
|
|
4016
4022
|
});
|
|
4017
|
-
|
|
4018
|
-
|
|
4023
|
+
const initialization = mergeInitialization(builtin.initialization, entry.initialization);
|
|
4024
|
+
if (initialization !== undefined) {
|
|
4025
|
+
server.initialization = initialization;
|
|
4019
4026
|
}
|
|
4020
4027
|
return server;
|
|
4021
4028
|
}
|
|
@@ -4040,8 +4047,20 @@ function createServerFromEntry(id, entry, source) {
|
|
|
4040
4047
|
source
|
|
4041
4048
|
});
|
|
4042
4049
|
applyOptionalServerFields(server, entry);
|
|
4050
|
+
const builtinInitialization = entry.command === undefined ? builtin.initialization : undefined;
|
|
4051
|
+
const initialization = mergeInitialization(builtinInitialization, entry.initialization);
|
|
4052
|
+
if (initialization !== undefined) {
|
|
4053
|
+
server.initialization = initialization;
|
|
4054
|
+
}
|
|
4043
4055
|
return server;
|
|
4044
4056
|
}
|
|
4057
|
+
function mergeInitialization(builtin, entry) {
|
|
4058
|
+
if (builtin === undefined)
|
|
4059
|
+
return entry;
|
|
4060
|
+
if (entry === undefined)
|
|
4061
|
+
return builtin;
|
|
4062
|
+
return { ...builtin, ...entry };
|
|
4063
|
+
}
|
|
4045
4064
|
function createServer(input) {
|
|
4046
4065
|
const server = {
|
|
4047
4066
|
id: input.id,
|
|
@@ -4112,6 +4131,49 @@ function getDisabledServerIds() {
|
|
|
4112
4131
|
return disabled;
|
|
4113
4132
|
}
|
|
4114
4133
|
|
|
4134
|
+
// ../lsp-core/src/lsp/host-js-runtime.ts
|
|
4135
|
+
import { closeSync, openSync, readSync, realpathSync as realpathSync5 } from "node:fs";
|
|
4136
|
+
var HOST_RUNTIME_SERVER_IDS = new Set(["typescript"]);
|
|
4137
|
+
var JS_ENTRY = /\.[cm]?js$/;
|
|
4138
|
+
var NODE_SHEBANG = /^#![^\n]*\bnode\b/;
|
|
4139
|
+
function currentHostJsRuntime() {
|
|
4140
|
+
return { bunExecPath: process.versions["bun"] === undefined ? undefined : process.execPath };
|
|
4141
|
+
}
|
|
4142
|
+
function withHostJsRuntime(serverId, command, host = currentHostJsRuntime()) {
|
|
4143
|
+
if (host.bunExecPath === undefined || !HOST_RUNTIME_SERVER_IDS.has(serverId))
|
|
4144
|
+
return command;
|
|
4145
|
+
const [binary, ...args] = command;
|
|
4146
|
+
if (binary === undefined)
|
|
4147
|
+
return command;
|
|
4148
|
+
const script = nodeScriptPath(binary);
|
|
4149
|
+
return script === undefined ? command : [host.bunExecPath, script, ...args];
|
|
4150
|
+
}
|
|
4151
|
+
function nodeScriptPath(binary) {
|
|
4152
|
+
let real;
|
|
4153
|
+
try {
|
|
4154
|
+
real = realpathSync5(binary);
|
|
4155
|
+
} catch {
|
|
4156
|
+
return;
|
|
4157
|
+
}
|
|
4158
|
+
if (JS_ENTRY.test(real))
|
|
4159
|
+
return real;
|
|
4160
|
+
try {
|
|
4161
|
+
return NODE_SHEBANG.test(readHead(real)) ? real : undefined;
|
|
4162
|
+
} catch {
|
|
4163
|
+
return;
|
|
4164
|
+
}
|
|
4165
|
+
}
|
|
4166
|
+
function readHead(path) {
|
|
4167
|
+
const fd = openSync(path, "r");
|
|
4168
|
+
try {
|
|
4169
|
+
const buffer = Buffer.alloc(128);
|
|
4170
|
+
const bytes = readSync(fd, buffer, 0, buffer.length, 0);
|
|
4171
|
+
return buffer.toString("utf8", 0, bytes);
|
|
4172
|
+
} finally {
|
|
4173
|
+
closeSync(fd);
|
|
4174
|
+
}
|
|
4175
|
+
}
|
|
4176
|
+
|
|
4115
4177
|
// ../lsp-core/src/lsp/server-installation.ts
|
|
4116
4178
|
import { existsSync as existsSync9 } from "node:fs";
|
|
4117
4179
|
import { delimiter as delimiter3, dirname as dirname7, isAbsolute as isAbsolute3, join as join4, resolve as resolve7 } from "node:path";
|
|
@@ -4251,6 +4313,10 @@ function isServerInstalled(command, workingDirectory, options = {}) {
|
|
|
4251
4313
|
function withResolvedCommand(command, binaryPath) {
|
|
4252
4314
|
return [binaryPath, ...command.slice(1)];
|
|
4253
4315
|
}
|
|
4316
|
+
function usesBuiltinCommand(id, command) {
|
|
4317
|
+
const builtin = BUILTIN_SERVERS[id]?.command;
|
|
4318
|
+
return builtin !== undefined && builtin.length === command.length && builtin.every((part, index) => part === command[index]);
|
|
4319
|
+
}
|
|
4254
4320
|
function findServerForExtension(ext) {
|
|
4255
4321
|
const servers = getMergedServers();
|
|
4256
4322
|
const workingDirectory = contextCwd();
|
|
@@ -4261,7 +4327,7 @@ function findServerForExtension(ext) {
|
|
|
4261
4327
|
if (binaryPath !== null) {
|
|
4262
4328
|
const resolvedServer = {
|
|
4263
4329
|
id: server.id,
|
|
4264
|
-
command: withResolvedCommand(server.command, binaryPath),
|
|
4330
|
+
command: usesBuiltinCommand(server.id, server.command) ? withHostJsRuntime(server.id, withResolvedCommand(server.command, binaryPath)) : withResolvedCommand(server.command, binaryPath),
|
|
4265
4331
|
extensions: server.extensions,
|
|
4266
4332
|
priority: server.priority
|
|
4267
4333
|
};
|
|
@@ -4402,7 +4468,7 @@ function rebaseThroughCanonicalAncestor(path, cwd) {
|
|
|
4402
4468
|
const suffix = [];
|
|
4403
4469
|
while (true) {
|
|
4404
4470
|
if (existsSync10(current)) {
|
|
4405
|
-
const canonical =
|
|
4471
|
+
const canonical = realpathSync6(current);
|
|
4406
4472
|
if (isPathInside(cwd, canonical))
|
|
4407
4473
|
return suffix.length === 0 ? canonical : join5(canonical, ...suffix);
|
|
4408
4474
|
}
|
|
@@ -4416,7 +4482,7 @@ function rebaseThroughCanonicalAncestor(path, cwd) {
|
|
|
4416
4482
|
function existingDirectoryInsideContext(directory, cwd) {
|
|
4417
4483
|
if (!existsSync10(directory))
|
|
4418
4484
|
return;
|
|
4419
|
-
const canonical =
|
|
4485
|
+
const canonical = realpathSync6(directory);
|
|
4420
4486
|
if (!statSync3(canonical).isDirectory())
|
|
4421
4487
|
return;
|
|
4422
4488
|
return isPathInside(cwd, canonical) ? canonical : undefined;
|
|
@@ -311,7 +311,7 @@ function createIdleTimer(idleTimeoutMs, log, onTimeout) {
|
|
|
311
311
|
};
|
|
312
312
|
}
|
|
313
313
|
// ../lsp-core/src/lsp/client-wrapper.ts
|
|
314
|
-
import { existsSync as existsSync10, realpathSync as
|
|
314
|
+
import { existsSync as existsSync10, realpathSync as realpathSync6, statSync as statSync3 } from "node:fs";
|
|
315
315
|
import { basename as basename3, dirname as dirname8, join as join5, resolve as resolve8 } from "node:path";
|
|
316
316
|
|
|
317
317
|
// ../lsp-core/src/request-context.ts
|
|
@@ -3762,10 +3762,15 @@ var LSP_LOCAL_INSTALL_HINTS = {
|
|
|
3762
3762
|
ty: "uv add --dev ty",
|
|
3763
3763
|
"ruby-lsp": "bundle add ruby-lsp --group development"
|
|
3764
3764
|
};
|
|
3765
|
+
var TYPESCRIPT_SERVER_INITIALIZATION = {
|
|
3766
|
+
tsserver: { useSyntaxServer: "never" },
|
|
3767
|
+
disableAutomaticTypingAcquisition: true
|
|
3768
|
+
};
|
|
3765
3769
|
var BUILTIN_SERVERS = {
|
|
3766
3770
|
typescript: {
|
|
3767
3771
|
command: ["typescript-language-server", "--stdio"],
|
|
3768
|
-
extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".mts", ".cts"]
|
|
3772
|
+
extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".mts", ".cts"],
|
|
3773
|
+
initialization: TYPESCRIPT_SERVER_INITIALIZATION
|
|
3769
3774
|
},
|
|
3770
3775
|
deno: { command: ["deno", "lsp"], extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs"] },
|
|
3771
3776
|
vue: { command: ["vue-language-server", "--stdio"], extensions: [".vue"] },
|
|
@@ -3983,7 +3988,8 @@ function getMergedServers() {
|
|
|
3983
3988
|
command: config.command,
|
|
3984
3989
|
extensions: config.extensions,
|
|
3985
3990
|
priority: -100,
|
|
3986
|
-
source: "builtin"
|
|
3991
|
+
source: "builtin",
|
|
3992
|
+
...config.initialization === undefined ? {} : { initialization: config.initialization }
|
|
3987
3993
|
});
|
|
3988
3994
|
}
|
|
3989
3995
|
return servers.sort((a, b) => {
|
|
@@ -4010,8 +4016,9 @@ function createServerFromEntry(id, entry, source) {
|
|
|
4010
4016
|
priority: entry.priority ?? 0,
|
|
4011
4017
|
source
|
|
4012
4018
|
});
|
|
4013
|
-
|
|
4014
|
-
|
|
4019
|
+
const initialization = mergeInitialization(builtin.initialization, entry.initialization);
|
|
4020
|
+
if (initialization !== undefined) {
|
|
4021
|
+
server.initialization = initialization;
|
|
4015
4022
|
}
|
|
4016
4023
|
return server;
|
|
4017
4024
|
}
|
|
@@ -4036,8 +4043,20 @@ function createServerFromEntry(id, entry, source) {
|
|
|
4036
4043
|
source
|
|
4037
4044
|
});
|
|
4038
4045
|
applyOptionalServerFields(server, entry);
|
|
4046
|
+
const builtinInitialization = entry.command === undefined ? builtin.initialization : undefined;
|
|
4047
|
+
const initialization = mergeInitialization(builtinInitialization, entry.initialization);
|
|
4048
|
+
if (initialization !== undefined) {
|
|
4049
|
+
server.initialization = initialization;
|
|
4050
|
+
}
|
|
4039
4051
|
return server;
|
|
4040
4052
|
}
|
|
4053
|
+
function mergeInitialization(builtin, entry) {
|
|
4054
|
+
if (builtin === undefined)
|
|
4055
|
+
return entry;
|
|
4056
|
+
if (entry === undefined)
|
|
4057
|
+
return builtin;
|
|
4058
|
+
return { ...builtin, ...entry };
|
|
4059
|
+
}
|
|
4041
4060
|
function createServer(input) {
|
|
4042
4061
|
const server = {
|
|
4043
4062
|
id: input.id,
|
|
@@ -4108,6 +4127,49 @@ function getDisabledServerIds() {
|
|
|
4108
4127
|
return disabled;
|
|
4109
4128
|
}
|
|
4110
4129
|
|
|
4130
|
+
// ../lsp-core/src/lsp/host-js-runtime.ts
|
|
4131
|
+
import { closeSync, openSync, readSync, realpathSync as realpathSync5 } from "node:fs";
|
|
4132
|
+
var HOST_RUNTIME_SERVER_IDS = new Set(["typescript"]);
|
|
4133
|
+
var JS_ENTRY = /\.[cm]?js$/;
|
|
4134
|
+
var NODE_SHEBANG = /^#![^\n]*\bnode\b/;
|
|
4135
|
+
function currentHostJsRuntime() {
|
|
4136
|
+
return { bunExecPath: process.versions["bun"] === undefined ? undefined : process.execPath };
|
|
4137
|
+
}
|
|
4138
|
+
function withHostJsRuntime(serverId, command, host = currentHostJsRuntime()) {
|
|
4139
|
+
if (host.bunExecPath === undefined || !HOST_RUNTIME_SERVER_IDS.has(serverId))
|
|
4140
|
+
return command;
|
|
4141
|
+
const [binary, ...args] = command;
|
|
4142
|
+
if (binary === undefined)
|
|
4143
|
+
return command;
|
|
4144
|
+
const script = nodeScriptPath(binary);
|
|
4145
|
+
return script === undefined ? command : [host.bunExecPath, script, ...args];
|
|
4146
|
+
}
|
|
4147
|
+
function nodeScriptPath(binary) {
|
|
4148
|
+
let real;
|
|
4149
|
+
try {
|
|
4150
|
+
real = realpathSync5(binary);
|
|
4151
|
+
} catch {
|
|
4152
|
+
return;
|
|
4153
|
+
}
|
|
4154
|
+
if (JS_ENTRY.test(real))
|
|
4155
|
+
return real;
|
|
4156
|
+
try {
|
|
4157
|
+
return NODE_SHEBANG.test(readHead(real)) ? real : undefined;
|
|
4158
|
+
} catch {
|
|
4159
|
+
return;
|
|
4160
|
+
}
|
|
4161
|
+
}
|
|
4162
|
+
function readHead(path) {
|
|
4163
|
+
const fd = openSync(path, "r");
|
|
4164
|
+
try {
|
|
4165
|
+
const buffer = Buffer.alloc(128);
|
|
4166
|
+
const bytes = readSync(fd, buffer, 0, buffer.length, 0);
|
|
4167
|
+
return buffer.toString("utf8", 0, bytes);
|
|
4168
|
+
} finally {
|
|
4169
|
+
closeSync(fd);
|
|
4170
|
+
}
|
|
4171
|
+
}
|
|
4172
|
+
|
|
4111
4173
|
// ../lsp-core/src/lsp/server-installation.ts
|
|
4112
4174
|
import { existsSync as existsSync9 } from "node:fs";
|
|
4113
4175
|
import { delimiter as delimiter3, dirname as dirname7, isAbsolute as isAbsolute3, join as join4, resolve as resolve7 } from "node:path";
|
|
@@ -4247,6 +4309,10 @@ function isServerInstalled(command, workingDirectory, options = {}) {
|
|
|
4247
4309
|
function withResolvedCommand(command, binaryPath) {
|
|
4248
4310
|
return [binaryPath, ...command.slice(1)];
|
|
4249
4311
|
}
|
|
4312
|
+
function usesBuiltinCommand(id, command) {
|
|
4313
|
+
const builtin = BUILTIN_SERVERS[id]?.command;
|
|
4314
|
+
return builtin !== undefined && builtin.length === command.length && builtin.every((part, index) => part === command[index]);
|
|
4315
|
+
}
|
|
4250
4316
|
function findServerForExtension(ext) {
|
|
4251
4317
|
const servers = getMergedServers();
|
|
4252
4318
|
const workingDirectory = contextCwd();
|
|
@@ -4257,7 +4323,7 @@ function findServerForExtension(ext) {
|
|
|
4257
4323
|
if (binaryPath !== null) {
|
|
4258
4324
|
const resolvedServer = {
|
|
4259
4325
|
id: server.id,
|
|
4260
|
-
command: withResolvedCommand(server.command, binaryPath),
|
|
4326
|
+
command: usesBuiltinCommand(server.id, server.command) ? withHostJsRuntime(server.id, withResolvedCommand(server.command, binaryPath)) : withResolvedCommand(server.command, binaryPath),
|
|
4261
4327
|
extensions: server.extensions,
|
|
4262
4328
|
priority: server.priority
|
|
4263
4329
|
};
|
|
@@ -4398,7 +4464,7 @@ function rebaseThroughCanonicalAncestor(path, cwd) {
|
|
|
4398
4464
|
const suffix = [];
|
|
4399
4465
|
while (true) {
|
|
4400
4466
|
if (existsSync10(current)) {
|
|
4401
|
-
const canonical =
|
|
4467
|
+
const canonical = realpathSync6(current);
|
|
4402
4468
|
if (isPathInside(cwd, canonical))
|
|
4403
4469
|
return suffix.length === 0 ? canonical : join5(canonical, ...suffix);
|
|
4404
4470
|
}
|
|
@@ -4412,7 +4478,7 @@ function rebaseThroughCanonicalAncestor(path, cwd) {
|
|
|
4412
4478
|
function existingDirectoryInsideContext(directory, cwd) {
|
|
4413
4479
|
if (!existsSync10(directory))
|
|
4414
4480
|
return;
|
|
4415
|
-
const canonical =
|
|
4481
|
+
const canonical = realpathSync6(directory);
|
|
4416
4482
|
if (!statSync3(canonical).isDirectory())
|
|
4417
4483
|
return;
|
|
4418
4484
|
return isPathInside(cwd, canonical) ? canonical : undefined;
|