codegraph-java 0.1.0
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/README.md +131 -0
- package/dist/base-graph/index.d.ts +57 -0
- package/dist/base-graph/index.d.ts.map +1 -0
- package/dist/base-graph/index.js +175 -0
- package/dist/base-graph/index.js.map +1 -0
- package/dist/bin/codegraph.d.ts +28 -0
- package/dist/bin/codegraph.d.ts.map +1 -0
- package/dist/bin/codegraph.js +2615 -0
- package/dist/bin/codegraph.js.map +1 -0
- package/dist/bin/command-supervision.d.ts +49 -0
- package/dist/bin/command-supervision.d.ts.map +1 -0
- package/dist/bin/command-supervision.js +95 -0
- package/dist/bin/command-supervision.js.map +1 -0
- package/dist/bin/fatal-handler.d.ts +20 -0
- package/dist/bin/fatal-handler.d.ts.map +1 -0
- package/dist/bin/fatal-handler.js +118 -0
- package/dist/bin/fatal-handler.js.map +1 -0
- package/dist/bin/node-version-check.d.ts +45 -0
- package/dist/bin/node-version-check.d.ts.map +1 -0
- package/dist/bin/node-version-check.js +98 -0
- package/dist/bin/node-version-check.js.map +1 -0
- package/dist/bin/uninstall.d.ts +14 -0
- package/dist/bin/uninstall.d.ts.map +1 -0
- package/dist/bin/uninstall.js +36 -0
- package/dist/bin/uninstall.js.map +1 -0
- package/dist/context/formatter.d.ts +36 -0
- package/dist/context/formatter.d.ts.map +1 -0
- package/dist/context/formatter.js +269 -0
- package/dist/context/formatter.js.map +1 -0
- package/dist/context/index.d.ts +131 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +1378 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/markers.d.ts +19 -0
- package/dist/context/markers.d.ts.map +1 -0
- package/dist/context/markers.js +22 -0
- package/dist/context/markers.js.map +1 -0
- package/dist/db/index.d.ts +380 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +854 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrations.d.ts +44 -0
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/migrations.js +255 -0
- package/dist/db/migrations.js.map +1 -0
- package/dist/db/queries.d.ts +1060 -0
- package/dist/db/queries.d.ts.map +1 -0
- package/dist/db/queries.js +3191 -0
- package/dist/db/queries.js.map +1 -0
- package/dist/db/schema.sql +209 -0
- package/dist/db/sqlite-adapter.d.ts +55 -0
- package/dist/db/sqlite-adapter.d.ts.map +1 -0
- package/dist/db/sqlite-adapter.js +135 -0
- package/dist/db/sqlite-adapter.js.map +1 -0
- package/dist/db/wal-valve.d.ts +119 -0
- package/dist/db/wal-valve.d.ts.map +1 -0
- package/dist/db/wal-valve.js +290 -0
- package/dist/db/wal-valve.js.map +1 -0
- package/dist/directory.d.ts +213 -0
- package/dist/directory.d.ts.map +1 -0
- package/dist/directory.js +781 -0
- package/dist/directory.js.map +1 -0
- package/dist/errors.d.ts +150 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +234 -0
- package/dist/errors.js.map +1 -0
- package/dist/extraction/extraction-version.d.ts +25 -0
- package/dist/extraction/extraction-version.d.ts.map +1 -0
- package/dist/extraction/extraction-version.js +28 -0
- package/dist/extraction/extraction-version.js.map +1 -0
- package/dist/extraction/function-ref.d.ts +118 -0
- package/dist/extraction/function-ref.d.ts.map +1 -0
- package/dist/extraction/function-ref.js +746 -0
- package/dist/extraction/function-ref.js.map +1 -0
- package/dist/extraction/generated-detection.d.ts +66 -0
- package/dist/extraction/generated-detection.d.ts.map +1 -0
- package/dist/extraction/generated-detection.js +248 -0
- package/dist/extraction/generated-detection.js.map +1 -0
- package/dist/extraction/grammars.d.ts +148 -0
- package/dist/extraction/grammars.d.ts.map +1 -0
- package/dist/extraction/grammars.js +558 -0
- package/dist/extraction/grammars.js.map +1 -0
- package/dist/extraction/index.d.ts +367 -0
- package/dist/extraction/index.d.ts.map +1 -0
- package/dist/extraction/index.js +2833 -0
- package/dist/extraction/index.js.map +1 -0
- package/dist/extraction/kernel/decode.d.ts +9 -0
- package/dist/extraction/kernel/decode.d.ts.map +1 -0
- package/dist/extraction/kernel/decode.js +162 -0
- package/dist/extraction/kernel/decode.js.map +1 -0
- package/dist/extraction/kernel/index.d.ts +64 -0
- package/dist/extraction/kernel/index.d.ts.map +1 -0
- package/dist/extraction/kernel/index.js +204 -0
- package/dist/extraction/kernel/index.js.map +1 -0
- package/dist/extraction/kernel/layout.d.ts +101 -0
- package/dist/extraction/kernel/layout.d.ts.map +1 -0
- package/dist/extraction/kernel/layout.js +104 -0
- package/dist/extraction/kernel/layout.js.map +1 -0
- package/dist/extraction/kernel/loader.d.ts +103 -0
- package/dist/extraction/kernel/loader.d.ts.map +1 -0
- package/dist/extraction/kernel/loader.js +146 -0
- package/dist/extraction/kernel/loader.js.map +1 -0
- package/dist/extraction/languages/c-cpp.d.ts +124 -0
- package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
- package/dist/extraction/languages/c-cpp.js +1689 -0
- package/dist/extraction/languages/c-cpp.js.map +1 -0
- package/dist/extraction/languages/index.d.ts +11 -0
- package/dist/extraction/languages/index.d.ts.map +1 -0
- package/dist/extraction/languages/index.js +15 -0
- package/dist/extraction/languages/index.js.map +1 -0
- package/dist/extraction/languages/java.d.ts +3 -0
- package/dist/extraction/languages/java.d.ts.map +1 -0
- package/dist/extraction/languages/java.js +315 -0
- package/dist/extraction/languages/java.js.map +1 -0
- package/dist/extraction/languages/rust.d.ts +23 -0
- package/dist/extraction/languages/rust.d.ts.map +1 -0
- package/dist/extraction/languages/rust.js +169 -0
- package/dist/extraction/languages/rust.js.map +1 -0
- package/dist/extraction/parse-pool.d.ts +167 -0
- package/dist/extraction/parse-pool.d.ts.map +1 -0
- package/dist/extraction/parse-pool.js +421 -0
- package/dist/extraction/parse-pool.js.map +1 -0
- package/dist/extraction/parse-worker.d.ts +8 -0
- package/dist/extraction/parse-worker.d.ts.map +1 -0
- package/dist/extraction/parse-worker.js +138 -0
- package/dist/extraction/parse-worker.js.map +1 -0
- package/dist/extraction/store-worker.d.ts +24 -0
- package/dist/extraction/store-worker.d.ts.map +1 -0
- package/dist/extraction/store-worker.js +139 -0
- package/dist/extraction/store-worker.js.map +1 -0
- package/dist/extraction/store-writer.d.ts +63 -0
- package/dist/extraction/store-writer.d.ts.map +1 -0
- package/dist/extraction/store-writer.js +174 -0
- package/dist/extraction/store-writer.js.map +1 -0
- package/dist/extraction/syntax-tokens.d.ts +103 -0
- package/dist/extraction/syntax-tokens.d.ts.map +1 -0
- package/dist/extraction/syntax-tokens.js +381 -0
- package/dist/extraction/syntax-tokens.js.map +1 -0
- package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
- package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
- package/dist/extraction/tree-sitter-helpers.js +153 -0
- package/dist/extraction/tree-sitter-helpers.js.map +1 -0
- package/dist/extraction/tree-sitter-types.d.ts +260 -0
- package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
- package/dist/extraction/tree-sitter-types.js +10 -0
- package/dist/extraction/tree-sitter-types.js.map +1 -0
- package/dist/extraction/tree-sitter.d.ts +745 -0
- package/dist/extraction/tree-sitter.d.ts.map +1 -0
- package/dist/extraction/tree-sitter.js +6725 -0
- package/dist/extraction/tree-sitter.js.map +1 -0
- package/dist/extraction/wasm/tree-sitter-java.wasm +0 -0
- package/dist/extraction/wasm-runtime-flags.d.ts +53 -0
- package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
- package/dist/extraction/wasm-runtime-flags.js +130 -0
- package/dist/extraction/wasm-runtime-flags.js.map +1 -0
- package/dist/graph/branch-guards.d.ts +248 -0
- package/dist/graph/branch-guards.d.ts.map +1 -0
- package/dist/graph/branch-guards.js +2231 -0
- package/dist/graph/branch-guards.js.map +1 -0
- package/dist/graph/dead-code.d.ts +251 -0
- package/dist/graph/dead-code.d.ts.map +1 -0
- package/dist/graph/dead-code.js +756 -0
- package/dist/graph/dead-code.js.map +1 -0
- package/dist/graph/dynamic-boundary-report.d.ts +121 -0
- package/dist/graph/dynamic-boundary-report.d.ts.map +1 -0
- package/dist/graph/dynamic-boundary-report.js +283 -0
- package/dist/graph/dynamic-boundary-report.js.map +1 -0
- package/dist/graph/index.d.ts +12 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +28 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/named-symbol-flow.d.ts +153 -0
- package/dist/graph/named-symbol-flow.d.ts.map +1 -0
- package/dist/graph/named-symbol-flow.js +609 -0
- package/dist/graph/named-symbol-flow.js.map +1 -0
- package/dist/graph/queries.d.ts +106 -0
- package/dist/graph/queries.d.ts.map +1 -0
- package/dist/graph/queries.js +341 -0
- package/dist/graph/queries.js.map +1 -0
- package/dist/graph/traversal.d.ts +127 -0
- package/dist/graph/traversal.d.ts.map +1 -0
- package/dist/graph/traversal.js +599 -0
- package/dist/graph/traversal.js.map +1 -0
- package/dist/graph/type-hierarchy.d.ts +155 -0
- package/dist/graph/type-hierarchy.d.ts.map +1 -0
- package/dist/graph/type-hierarchy.js +382 -0
- package/dist/graph/type-hierarchy.js.map +1 -0
- package/dist/index.d.ts +886 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2019 -0
- package/dist/index.js.map +1 -0
- package/dist/installer/beta-signup.d.ts +54 -0
- package/dist/installer/beta-signup.d.ts.map +1 -0
- package/dist/installer/beta-signup.js +178 -0
- package/dist/installer/beta-signup.js.map +1 -0
- package/dist/installer/config-writer.d.ts +28 -0
- package/dist/installer/config-writer.d.ts.map +1 -0
- package/dist/installer/config-writer.js +91 -0
- package/dist/installer/config-writer.js.map +1 -0
- package/dist/installer/index.d.ts +143 -0
- package/dist/installer/index.d.ts.map +1 -0
- package/dist/installer/index.js +632 -0
- package/dist/installer/index.js.map +1 -0
- package/dist/installer/instructions-template.d.ts +41 -0
- package/dist/installer/instructions-template.d.ts.map +1 -0
- package/dist/installer/instructions-template.js +53 -0
- package/dist/installer/instructions-template.js.map +1 -0
- package/dist/installer/targets/antigravity.d.ts +57 -0
- package/dist/installer/targets/antigravity.d.ts.map +1 -0
- package/dist/installer/targets/antigravity.js +308 -0
- package/dist/installer/targets/antigravity.js.map +1 -0
- package/dist/installer/targets/claude.d.ts +62 -0
- package/dist/installer/targets/claude.d.ts.map +1 -0
- package/dist/installer/targets/claude.js +486 -0
- package/dist/installer/targets/claude.js.map +1 -0
- package/dist/installer/targets/codex.d.ts +32 -0
- package/dist/installer/targets/codex.d.ts.map +1 -0
- package/dist/installer/targets/codex.js +202 -0
- package/dist/installer/targets/codex.js.map +1 -0
- package/dist/installer/targets/copilot-cli.d.ts +32 -0
- package/dist/installer/targets/copilot-cli.d.ts.map +1 -0
- package/dist/installer/targets/copilot-cli.js +209 -0
- package/dist/installer/targets/copilot-cli.js.map +1 -0
- package/dist/installer/targets/copilot-jetbrains.d.ts +42 -0
- package/dist/installer/targets/copilot-jetbrains.d.ts.map +1 -0
- package/dist/installer/targets/copilot-jetbrains.js +238 -0
- package/dist/installer/targets/copilot-jetbrains.js.map +1 -0
- package/dist/installer/targets/copilot-vscode.d.ts +47 -0
- package/dist/installer/targets/copilot-vscode.d.ts.map +1 -0
- package/dist/installer/targets/copilot-vscode.js +219 -0
- package/dist/installer/targets/copilot-vscode.js.map +1 -0
- package/dist/installer/targets/cursor.d.ts +35 -0
- package/dist/installer/targets/cursor.d.ts.map +1 -0
- package/dist/installer/targets/cursor.js +254 -0
- package/dist/installer/targets/cursor.js.map +1 -0
- package/dist/installer/targets/gemini.d.ts +26 -0
- package/dist/installer/targets/gemini.d.ts.map +1 -0
- package/dist/installer/targets/gemini.js +165 -0
- package/dist/installer/targets/gemini.js.map +1 -0
- package/dist/installer/targets/hermes.d.ts +18 -0
- package/dist/installer/targets/hermes.d.ts.map +1 -0
- package/dist/installer/targets/hermes.js +359 -0
- package/dist/installer/targets/hermes.js.map +1 -0
- package/dist/installer/targets/kiro.d.ts +27 -0
- package/dist/installer/targets/kiro.d.ts.map +1 -0
- package/dist/installer/targets/kiro.js +178 -0
- package/dist/installer/targets/kiro.js.map +1 -0
- package/dist/installer/targets/opencode.d.ts +38 -0
- package/dist/installer/targets/opencode.d.ts.map +1 -0
- package/dist/installer/targets/opencode.js +288 -0
- package/dist/installer/targets/opencode.js.map +1 -0
- package/dist/installer/targets/registry.d.ts +35 -0
- package/dist/installer/targets/registry.d.ts.map +1 -0
- package/dist/installer/targets/registry.js +101 -0
- package/dist/installer/targets/registry.js.map +1 -0
- package/dist/installer/targets/shared.d.ts +101 -0
- package/dist/installer/targets/shared.d.ts.map +1 -0
- package/dist/installer/targets/shared.js +264 -0
- package/dist/installer/targets/shared.js.map +1 -0
- package/dist/installer/targets/toml.d.ts +53 -0
- package/dist/installer/targets/toml.d.ts.map +1 -0
- package/dist/installer/targets/toml.js +226 -0
- package/dist/installer/targets/toml.js.map +1 -0
- package/dist/installer/targets/trae.d.ts +30 -0
- package/dist/installer/targets/trae.d.ts.map +1 -0
- package/dist/installer/targets/trae.js +164 -0
- package/dist/installer/targets/trae.js.map +1 -0
- package/dist/installer/targets/types.d.ts +108 -0
- package/dist/installer/targets/types.d.ts.map +1 -0
- package/dist/installer/targets/types.js +16 -0
- package/dist/installer/targets/types.js.map +1 -0
- package/dist/installer/targets/workbuddy.d.ts +29 -0
- package/dist/installer/targets/workbuddy.d.ts.map +1 -0
- package/dist/installer/targets/workbuddy.js +163 -0
- package/dist/installer/targets/workbuddy.js.map +1 -0
- package/dist/mcp/daemon-manager.d.ts +42 -0
- package/dist/mcp/daemon-manager.d.ts.map +1 -0
- package/dist/mcp/daemon-manager.js +129 -0
- package/dist/mcp/daemon-manager.js.map +1 -0
- package/dist/mcp/daemon-paths.d.ts +79 -0
- package/dist/mcp/daemon-paths.d.ts.map +1 -0
- package/dist/mcp/daemon-paths.js +219 -0
- package/dist/mcp/daemon-paths.js.map +1 -0
- package/dist/mcp/daemon-registry.d.ts +57 -0
- package/dist/mcp/daemon-registry.d.ts.map +1 -0
- package/dist/mcp/daemon-registry.js +281 -0
- package/dist/mcp/daemon-registry.js.map +1 -0
- package/dist/mcp/daemon.d.ts +293 -0
- package/dist/mcp/daemon.d.ts.map +1 -0
- package/dist/mcp/daemon.js +864 -0
- package/dist/mcp/daemon.js.map +1 -0
- package/dist/mcp/dynamic-boundaries.d.ts +41 -0
- package/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
- package/dist/mcp/dynamic-boundaries.js +360 -0
- package/dist/mcp/dynamic-boundaries.js.map +1 -0
- package/dist/mcp/early-ppid.d.ts +26 -0
- package/dist/mcp/early-ppid.d.ts.map +1 -0
- package/dist/mcp/early-ppid.js +29 -0
- package/dist/mcp/early-ppid.js.map +1 -0
- package/dist/mcp/engine.d.ts +125 -0
- package/dist/mcp/engine.d.ts.map +1 -0
- package/dist/mcp/engine.js +392 -0
- package/dist/mcp/engine.js.map +1 -0
- package/dist/mcp/explore-dedup.d.ts +137 -0
- package/dist/mcp/explore-dedup.d.ts.map +1 -0
- package/dist/mcp/explore-dedup.js +236 -0
- package/dist/mcp/explore-dedup.js.map +1 -0
- package/dist/mcp/explore-diagnostics.d.ts +289 -0
- package/dist/mcp/explore-diagnostics.d.ts.map +1 -0
- package/dist/mcp/explore-diagnostics.js +558 -0
- package/dist/mcp/explore-diagnostics.js.map +1 -0
- package/dist/mcp/explore-session-state.d.ts +217 -0
- package/dist/mcp/explore-session-state.d.ts.map +1 -0
- package/dist/mcp/explore-session-state.js +322 -0
- package/dist/mcp/explore-session-state.js.map +1 -0
- package/dist/mcp/index.d.ts +137 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +567 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/liveness-watchdog.d.ts +35 -0
- package/dist/mcp/liveness-watchdog.d.ts.map +1 -0
- package/dist/mcp/liveness-watchdog.js +269 -0
- package/dist/mcp/liveness-watchdog.js.map +1 -0
- package/dist/mcp/ppid-watchdog.d.ts +62 -0
- package/dist/mcp/ppid-watchdog.d.ts.map +1 -0
- package/dist/mcp/ppid-watchdog.js +64 -0
- package/dist/mcp/ppid-watchdog.js.map +1 -0
- package/dist/mcp/proxy.d.ts +87 -0
- package/dist/mcp/proxy.d.ts.map +1 -0
- package/dist/mcp/proxy.js +672 -0
- package/dist/mcp/proxy.js.map +1 -0
- package/dist/mcp/query-pool.d.ts +108 -0
- package/dist/mcp/query-pool.d.ts.map +1 -0
- package/dist/mcp/query-pool.js +315 -0
- package/dist/mcp/query-pool.js.map +1 -0
- package/dist/mcp/query-worker.d.ts +24 -0
- package/dist/mcp/query-worker.d.ts.map +1 -0
- package/dist/mcp/query-worker.js +87 -0
- package/dist/mcp/query-worker.js.map +1 -0
- package/dist/mcp/server-instructions.d.ts +34 -0
- package/dist/mcp/server-instructions.d.ts.map +1 -0
- package/dist/mcp/server-instructions.js +111 -0
- package/dist/mcp/server-instructions.js.map +1 -0
- package/dist/mcp/session.d.ts +109 -0
- package/dist/mcp/session.d.ts.map +1 -0
- package/dist/mcp/session.js +380 -0
- package/dist/mcp/session.js.map +1 -0
- package/dist/mcp/startup-handshake.d.ts +44 -0
- package/dist/mcp/startup-handshake.d.ts.map +1 -0
- package/dist/mcp/startup-handshake.js +73 -0
- package/dist/mcp/startup-handshake.js.map +1 -0
- package/dist/mcp/stdin-teardown.d.ts +27 -0
- package/dist/mcp/stdin-teardown.d.ts.map +1 -0
- package/dist/mcp/stdin-teardown.js +49 -0
- package/dist/mcp/stdin-teardown.js.map +1 -0
- package/dist/mcp/tools.d.ts +877 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +6371 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/transport.d.ts +188 -0
- package/dist/mcp/transport.d.ts.map +1 -0
- package/dist/mcp/transport.js +377 -0
- package/dist/mcp/transport.js.map +1 -0
- package/dist/mcp/version.d.ts +19 -0
- package/dist/mcp/version.d.ts.map +1 -0
- package/dist/mcp/version.js +71 -0
- package/dist/mcp/version.js.map +1 -0
- package/dist/project-config.d.ts +158 -0
- package/dist/project-config.d.ts.map +1 -0
- package/dist/project-config.js +489 -0
- package/dist/project-config.js.map +1 -0
- package/dist/resolution/c-fnptr-synthesizer.d.ts +6 -0
- package/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -0
- package/dist/resolution/c-fnptr-synthesizer.js +1506 -0
- package/dist/resolution/c-fnptr-synthesizer.js.map +1 -0
- package/dist/resolution/callback-synthesizer.d.ts +59 -0
- package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
- package/dist/resolution/callback-synthesizer.js +4066 -0
- package/dist/resolution/callback-synthesizer.js.map +1 -0
- package/dist/resolution/cooperative-yield.d.ts +40 -0
- package/dist/resolution/cooperative-yield.d.ts.map +1 -0
- package/dist/resolution/cooperative-yield.js +44 -0
- package/dist/resolution/cooperative-yield.js.map +1 -0
- package/dist/resolution/expo-router-synthesizer.d.ts +32 -0
- package/dist/resolution/expo-router-synthesizer.d.ts.map +1 -0
- package/dist/resolution/expo-router-synthesizer.js +189 -0
- package/dist/resolution/expo-router-synthesizer.js.map +1 -0
- package/dist/resolution/frameworks/astro.d.ts +9 -0
- package/dist/resolution/frameworks/astro.d.ts.map +1 -0
- package/dist/resolution/frameworks/astro.js +169 -0
- package/dist/resolution/frameworks/astro.js.map +1 -0
- package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
- package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
- package/dist/resolution/frameworks/cargo-workspace.js +225 -0
- package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
- package/dist/resolution/frameworks/cics.d.ts +20 -0
- package/dist/resolution/frameworks/cics.d.ts.map +1 -0
- package/dist/resolution/frameworks/cics.js +90 -0
- package/dist/resolution/frameworks/cics.js.map +1 -0
- package/dist/resolution/frameworks/csharp.d.ts +8 -0
- package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
- package/dist/resolution/frameworks/csharp.js +335 -0
- package/dist/resolution/frameworks/csharp.js.map +1 -0
- package/dist/resolution/frameworks/drupal.d.ts +51 -0
- package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
- package/dist/resolution/frameworks/drupal.js +367 -0
- package/dist/resolution/frameworks/drupal.js.map +1 -0
- package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
- package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
- package/dist/resolution/frameworks/expo-modules.js +148 -0
- package/dist/resolution/frameworks/expo-modules.js.map +1 -0
- package/dist/resolution/frameworks/expo-router.d.ts +189 -0
- package/dist/resolution/frameworks/expo-router.d.ts.map +1 -0
- package/dist/resolution/frameworks/expo-router.js +785 -0
- package/dist/resolution/frameworks/expo-router.js.map +1 -0
- package/dist/resolution/frameworks/express.d.ts +8 -0
- package/dist/resolution/frameworks/express.d.ts.map +1 -0
- package/dist/resolution/frameworks/express.js +540 -0
- package/dist/resolution/frameworks/express.js.map +1 -0
- package/dist/resolution/frameworks/fabric.d.ts +3 -0
- package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
- package/dist/resolution/frameworks/fabric.js +354 -0
- package/dist/resolution/frameworks/fabric.js.map +1 -0
- package/dist/resolution/frameworks/go.d.ts +8 -0
- package/dist/resolution/frameworks/go.d.ts.map +1 -0
- package/dist/resolution/frameworks/go.js +184 -0
- package/dist/resolution/frameworks/go.js.map +1 -0
- package/dist/resolution/frameworks/goframe.d.ts +41 -0
- package/dist/resolution/frameworks/goframe.d.ts.map +1 -0
- package/dist/resolution/frameworks/goframe.js +112 -0
- package/dist/resolution/frameworks/goframe.js.map +1 -0
- package/dist/resolution/frameworks/index.d.ts +30 -0
- package/dist/resolution/frameworks/index.d.ts.map +1 -0
- package/dist/resolution/frameworks/index.js +72 -0
- package/dist/resolution/frameworks/index.js.map +1 -0
- package/dist/resolution/frameworks/java.d.ts +8 -0
- package/dist/resolution/frameworks/java.d.ts.map +1 -0
- package/dist/resolution/frameworks/java.js +517 -0
- package/dist/resolution/frameworks/java.js.map +1 -0
- package/dist/resolution/frameworks/laravel.d.ts +13 -0
- package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
- package/dist/resolution/frameworks/laravel.js +257 -0
- package/dist/resolution/frameworks/laravel.js.map +1 -0
- package/dist/resolution/frameworks/nestjs.d.ts +26 -0
- package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
- package/dist/resolution/frameworks/nestjs.js +690 -0
- package/dist/resolution/frameworks/nestjs.js.map +1 -0
- package/dist/resolution/frameworks/nextjs.d.ts +76 -0
- package/dist/resolution/frameworks/nextjs.d.ts.map +1 -0
- package/dist/resolution/frameworks/nextjs.js +328 -0
- package/dist/resolution/frameworks/nextjs.js.map +1 -0
- package/dist/resolution/frameworks/object-literal.d.ts +32 -0
- package/dist/resolution/frameworks/object-literal.d.ts.map +1 -0
- package/dist/resolution/frameworks/object-literal.js +139 -0
- package/dist/resolution/frameworks/object-literal.js.map +1 -0
- package/dist/resolution/frameworks/package-deps.d.ts +14 -0
- package/dist/resolution/frameworks/package-deps.d.ts.map +1 -0
- package/dist/resolution/frameworks/package-deps.js +78 -0
- package/dist/resolution/frameworks/package-deps.js.map +1 -0
- package/dist/resolution/frameworks/play.d.ts +19 -0
- package/dist/resolution/frameworks/play.d.ts.map +1 -0
- package/dist/resolution/frameworks/play.js +111 -0
- package/dist/resolution/frameworks/play.js.map +1 -0
- package/dist/resolution/frameworks/python.d.ts +10 -0
- package/dist/resolution/frameworks/python.d.ts.map +1 -0
- package/dist/resolution/frameworks/python.js +566 -0
- package/dist/resolution/frameworks/python.js.map +1 -0
- package/dist/resolution/frameworks/react-native.d.ts +29 -0
- package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
- package/dist/resolution/frameworks/react-native.js +549 -0
- package/dist/resolution/frameworks/react-native.js.map +1 -0
- package/dist/resolution/frameworks/react-router.d.ts +46 -0
- package/dist/resolution/frameworks/react-router.d.ts.map +1 -0
- package/dist/resolution/frameworks/react-router.js +187 -0
- package/dist/resolution/frameworks/react-router.js.map +1 -0
- package/dist/resolution/frameworks/react.d.ts +9 -0
- package/dist/resolution/frameworks/react.d.ts.map +1 -0
- package/dist/resolution/frameworks/react.js +257 -0
- package/dist/resolution/frameworks/react.js.map +1 -0
- package/dist/resolution/frameworks/ruby.d.ts +8 -0
- package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
- package/dist/resolution/frameworks/ruby.js +302 -0
- package/dist/resolution/frameworks/ruby.js.map +1 -0
- package/dist/resolution/frameworks/rust.d.ts +8 -0
- package/dist/resolution/frameworks/rust.d.ts.map +1 -0
- package/dist/resolution/frameworks/rust.js +304 -0
- package/dist/resolution/frameworks/rust.js.map +1 -0
- package/dist/resolution/frameworks/svelte.d.ts +9 -0
- package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
- package/dist/resolution/frameworks/svelte.js +258 -0
- package/dist/resolution/frameworks/svelte.js.map +1 -0
- package/dist/resolution/frameworks/sveltekit-router.d.ts +36 -0
- package/dist/resolution/frameworks/sveltekit-router.d.ts.map +1 -0
- package/dist/resolution/frameworks/sveltekit-router.js +156 -0
- package/dist/resolution/frameworks/sveltekit-router.js.map +1 -0
- package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
- package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
- package/dist/resolution/frameworks/swift-objc.js +252 -0
- package/dist/resolution/frameworks/swift-objc.js.map +1 -0
- package/dist/resolution/frameworks/swift.d.ts +10 -0
- package/dist/resolution/frameworks/swift.d.ts.map +1 -0
- package/dist/resolution/frameworks/swift.js +410 -0
- package/dist/resolution/frameworks/swift.js.map +1 -0
- package/dist/resolution/frameworks/tanstack-router.d.ts +84 -0
- package/dist/resolution/frameworks/tanstack-router.d.ts.map +1 -0
- package/dist/resolution/frameworks/tanstack-router.js +437 -0
- package/dist/resolution/frameworks/tanstack-router.js.map +1 -0
- package/dist/resolution/frameworks/terraform.d.ts +38 -0
- package/dist/resolution/frameworks/terraform.d.ts.map +1 -0
- package/dist/resolution/frameworks/terraform.js +277 -0
- package/dist/resolution/frameworks/terraform.js.map +1 -0
- package/dist/resolution/frameworks/vue-router.d.ts +82 -0
- package/dist/resolution/frameworks/vue-router.d.ts.map +1 -0
- package/dist/resolution/frameworks/vue-router.js +377 -0
- package/dist/resolution/frameworks/vue-router.js.map +1 -0
- package/dist/resolution/frameworks/vue.d.ts +9 -0
- package/dist/resolution/frameworks/vue.d.ts.map +1 -0
- package/dist/resolution/frameworks/vue.js +303 -0
- package/dist/resolution/frameworks/vue.js.map +1 -0
- package/dist/resolution/go-module.d.ts +26 -0
- package/dist/resolution/go-module.d.ts.map +1 -0
- package/dist/resolution/go-module.js +78 -0
- package/dist/resolution/go-module.js.map +1 -0
- package/dist/resolution/goframe-synthesizer.d.ts +29 -0
- package/dist/resolution/goframe-synthesizer.d.ts.map +1 -0
- package/dist/resolution/goframe-synthesizer.js +163 -0
- package/dist/resolution/goframe-synthesizer.js.map +1 -0
- package/dist/resolution/import-resolver.d.ts +84 -0
- package/dist/resolution/import-resolver.d.ts.map +1 -0
- package/dist/resolution/import-resolver.js +2240 -0
- package/dist/resolution/import-resolver.js.map +1 -0
- package/dist/resolution/index.d.ts +343 -0
- package/dist/resolution/index.d.ts.map +1 -0
- package/dist/resolution/index.js +2352 -0
- package/dist/resolution/index.js.map +1 -0
- package/dist/resolution/lru-cache.d.ts +24 -0
- package/dist/resolution/lru-cache.d.ts.map +1 -0
- package/dist/resolution/lru-cache.js +62 -0
- package/dist/resolution/lru-cache.js.map +1 -0
- package/dist/resolution/memory-budget.d.ts +48 -0
- package/dist/resolution/memory-budget.d.ts.map +1 -0
- package/dist/resolution/memory-budget.js +162 -0
- package/dist/resolution/memory-budget.js.map +1 -0
- package/dist/resolution/name-matcher.d.ts +153 -0
- package/dist/resolution/name-matcher.d.ts.map +1 -0
- package/dist/resolution/name-matcher.js +2412 -0
- package/dist/resolution/name-matcher.js.map +1 -0
- package/dist/resolution/next-router-synthesizer.d.ts +27 -0
- package/dist/resolution/next-router-synthesizer.d.ts.map +1 -0
- package/dist/resolution/next-router-synthesizer.js +113 -0
- package/dist/resolution/next-router-synthesizer.js.map +1 -0
- package/dist/resolution/path-aliases.d.ts +70 -0
- package/dist/resolution/path-aliases.d.ts.map +1 -0
- package/dist/resolution/path-aliases.js +346 -0
- package/dist/resolution/path-aliases.js.map +1 -0
- package/dist/resolution/react-router-synthesizer.d.ts +33 -0
- package/dist/resolution/react-router-synthesizer.d.ts.map +1 -0
- package/dist/resolution/react-router-synthesizer.js +126 -0
- package/dist/resolution/react-router-synthesizer.js.map +1 -0
- package/dist/resolution/resolver-pool.d.ts +106 -0
- package/dist/resolution/resolver-pool.d.ts.map +1 -0
- package/dist/resolution/resolver-pool.js +344 -0
- package/dist/resolution/resolver-pool.js.map +1 -0
- package/dist/resolution/resolver-worker.d.ts +17 -0
- package/dist/resolution/resolver-worker.d.ts.map +1 -0
- package/dist/resolution/resolver-worker.js +141 -0
- package/dist/resolution/resolver-worker.js.map +1 -0
- package/dist/resolution/strip-comments.d.ts +27 -0
- package/dist/resolution/strip-comments.d.ts.map +1 -0
- package/dist/resolution/strip-comments.js +492 -0
- package/dist/resolution/strip-comments.js.map +1 -0
- package/dist/resolution/sveltekit-synthesizer.d.ts +58 -0
- package/dist/resolution/sveltekit-synthesizer.d.ts.map +1 -0
- package/dist/resolution/sveltekit-synthesizer.js +173 -0
- package/dist/resolution/sveltekit-synthesizer.js.map +1 -0
- package/dist/resolution/swift-objc-bridge.d.ts +134 -0
- package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
- package/dist/resolution/swift-objc-bridge.js +256 -0
- package/dist/resolution/swift-objc-bridge.js.map +1 -0
- package/dist/resolution/synth-utils.d.ts +26 -0
- package/dist/resolution/synth-utils.d.ts.map +1 -0
- package/dist/resolution/synth-utils.js +75 -0
- package/dist/resolution/synth-utils.js.map +1 -0
- package/dist/resolution/tanstack-router-synthesizer.d.ts +31 -0
- package/dist/resolution/tanstack-router-synthesizer.d.ts.map +1 -0
- package/dist/resolution/tanstack-router-synthesizer.js +114 -0
- package/dist/resolution/tanstack-router-synthesizer.js.map +1 -0
- package/dist/resolution/tier-synthesizer.d.ts +48 -0
- package/dist/resolution/tier-synthesizer.d.ts.map +1 -0
- package/dist/resolution/tier-synthesizer.js +907 -0
- package/dist/resolution/tier-synthesizer.js.map +1 -0
- package/dist/resolution/types.d.ts +290 -0
- package/dist/resolution/types.d.ts.map +1 -0
- package/dist/resolution/types.js +8 -0
- package/dist/resolution/types.js.map +1 -0
- package/dist/resolution/vue-router-synthesizer.d.ts +30 -0
- package/dist/resolution/vue-router-synthesizer.d.ts.map +1 -0
- package/dist/resolution/vue-router-synthesizer.js +115 -0
- package/dist/resolution/vue-router-synthesizer.js.map +1 -0
- package/dist/resolution/workspace-packages.d.ts +58 -0
- package/dist/resolution/workspace-packages.d.ts.map +1 -0
- package/dist/resolution/workspace-packages.js +346 -0
- package/dist/resolution/workspace-packages.js.map +1 -0
- package/dist/search/identifier-segments.d.ts +70 -0
- package/dist/search/identifier-segments.d.ts.map +1 -0
- package/dist/search/identifier-segments.js +205 -0
- package/dist/search/identifier-segments.js.map +1 -0
- package/dist/search/query-parser.d.ts +57 -0
- package/dist/search/query-parser.d.ts.map +1 -0
- package/dist/search/query-parser.js +177 -0
- package/dist/search/query-parser.js.map +1 -0
- package/dist/search/query-paths.d.ts +57 -0
- package/dist/search/query-paths.d.ts.map +1 -0
- package/dist/search/query-paths.js +298 -0
- package/dist/search/query-paths.js.map +1 -0
- package/dist/search/query-utils.d.ts +102 -0
- package/dist/search/query-utils.d.ts.map +1 -0
- package/dist/search/query-utils.js +487 -0
- package/dist/search/query-utils.js.map +1 -0
- package/dist/sync/git-hooks.d.ts +45 -0
- package/dist/sync/git-hooks.d.ts.map +1 -0
- package/dist/sync/git-hooks.js +227 -0
- package/dist/sync/git-hooks.js.map +1 -0
- package/dist/sync/index.d.ts +19 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +35 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/watch-policy.d.ts +48 -0
- package/dist/sync/watch-policy.d.ts.map +1 -0
- package/dist/sync/watch-policy.js +124 -0
- package/dist/sync/watch-policy.js.map +1 -0
- package/dist/sync/watcher.d.ts +401 -0
- package/dist/sync/watcher.d.ts.map +1 -0
- package/dist/sync/watcher.js +967 -0
- package/dist/sync/watcher.js.map +1 -0
- package/dist/sync/worktree.d.ts +63 -0
- package/dist/sync/worktree.d.ts.map +1 -0
- package/dist/sync/worktree.js +182 -0
- package/dist/sync/worktree.js.map +1 -0
- package/dist/telemetry/index.d.ts +143 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +541 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/types.d.ts +486 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +118 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/color.d.ts +21 -0
- package/dist/ui/color.d.ts.map +1 -0
- package/dist/ui/color.js +42 -0
- package/dist/ui/color.js.map +1 -0
- package/dist/ui/glyphs.d.ts +67 -0
- package/dist/ui/glyphs.d.ts.map +1 -0
- package/dist/ui/glyphs.js +125 -0
- package/dist/ui/glyphs.js.map +1 -0
- package/dist/ui/shimmer-progress.d.ts +11 -0
- package/dist/ui/shimmer-progress.d.ts.map +1 -0
- package/dist/ui/shimmer-progress.js +164 -0
- package/dist/ui/shimmer-progress.js.map +1 -0
- package/dist/ui/shimmer-worker.d.ts +2 -0
- package/dist/ui/shimmer-worker.d.ts.map +1 -0
- package/dist/ui/shimmer-worker.js +126 -0
- package/dist/ui/shimmer-worker.js.map +1 -0
- package/dist/ui/types.d.ts +15 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +3 -0
- package/dist/ui/types.js.map +1 -0
- package/dist/ui-server/api/deadcode.d.ts +84 -0
- package/dist/ui-server/api/deadcode.d.ts.map +1 -0
- package/dist/ui-server/api/deadcode.js +136 -0
- package/dist/ui-server/api/deadcode.js.map +1 -0
- package/dist/ui-server/api/effects.d.ts +87 -0
- package/dist/ui-server/api/effects.d.ts.map +1 -0
- package/dist/ui-server/api/effects.js +499 -0
- package/dist/ui-server/api/effects.js.map +1 -0
- package/dist/ui-server/api/entrypoints.d.ts +86 -0
- package/dist/ui-server/api/entrypoints.d.ts.map +1 -0
- package/dist/ui-server/api/entrypoints.js +279 -0
- package/dist/ui-server/api/entrypoints.js.map +1 -0
- package/dist/ui-server/api/events.d.ts +183 -0
- package/dist/ui-server/api/events.d.ts.map +1 -0
- package/dist/ui-server/api/events.js +430 -0
- package/dist/ui-server/api/events.js.map +1 -0
- package/dist/ui-server/api/file.d.ts +66 -0
- package/dist/ui-server/api/file.d.ts.map +1 -0
- package/dist/ui-server/api/file.js +222 -0
- package/dist/ui-server/api/file.js.map +1 -0
- package/dist/ui-server/api/filecode.d.ts +126 -0
- package/dist/ui-server/api/filecode.d.ts.map +1 -0
- package/dist/ui-server/api/filecode.js +205 -0
- package/dist/ui-server/api/filecode.js.map +1 -0
- package/dist/ui-server/api/flow.d.ts +226 -0
- package/dist/ui-server/api/flow.d.ts.map +1 -0
- package/dist/ui-server/api/flow.js +611 -0
- package/dist/ui-server/api/flow.js.map +1 -0
- package/dist/ui-server/api/hierarchy.d.ts +81 -0
- package/dist/ui-server/api/hierarchy.d.ts.map +1 -0
- package/dist/ui-server/api/hierarchy.js +92 -0
- package/dist/ui-server/api/hierarchy.js.map +1 -0
- package/dist/ui-server/api/index.d.ts +90 -0
- package/dist/ui-server/api/index.d.ts.map +1 -0
- package/dist/ui-server/api/index.js +332 -0
- package/dist/ui-server/api/index.js.map +1 -0
- package/dist/ui-server/api/map.d.ts +187 -0
- package/dist/ui-server/api/map.d.ts.map +1 -0
- package/dist/ui-server/api/map.js +498 -0
- package/dist/ui-server/api/map.js.map +1 -0
- package/dist/ui-server/api/node.d.ts +81 -0
- package/dist/ui-server/api/node.d.ts.map +1 -0
- package/dist/ui-server/api/node.js +388 -0
- package/dist/ui-server/api/node.js.map +1 -0
- package/dist/ui-server/api/nodes.d.ts +25 -0
- package/dist/ui-server/api/nodes.d.ts.map +1 -0
- package/dist/ui-server/api/nodes.js +45 -0
- package/dist/ui-server/api/nodes.js.map +1 -0
- package/dist/ui-server/api/program.d.ts +139 -0
- package/dist/ui-server/api/program.d.ts.map +1 -0
- package/dist/ui-server/api/program.js +315 -0
- package/dist/ui-server/api/program.js.map +1 -0
- package/dist/ui-server/api/respond.d.ts +76 -0
- package/dist/ui-server/api/respond.d.ts.map +1 -0
- package/dist/ui-server/api/respond.js +186 -0
- package/dist/ui-server/api/respond.js.map +1 -0
- package/dist/ui-server/api/route-roots.d.ts +39 -0
- package/dist/ui-server/api/route-roots.d.ts.map +1 -0
- package/dist/ui-server/api/route-roots.js +96 -0
- package/dist/ui-server/api/route-roots.js.map +1 -0
- package/dist/ui-server/api/routes.d.ts +59 -0
- package/dist/ui-server/api/routes.d.ts.map +1 -0
- package/dist/ui-server/api/routes.js +112 -0
- package/dist/ui-server/api/routes.js.map +1 -0
- package/dist/ui-server/api/screens.d.ts +117 -0
- package/dist/ui-server/api/screens.d.ts.map +1 -0
- package/dist/ui-server/api/screens.js +611 -0
- package/dist/ui-server/api/screens.js.map +1 -0
- package/dist/ui-server/api/search.d.ts +29 -0
- package/dist/ui-server/api/search.d.ts.map +1 -0
- package/dist/ui-server/api/search.js +232 -0
- package/dist/ui-server/api/search.js.map +1 -0
- package/dist/ui-server/api/session.d.ts +52 -0
- package/dist/ui-server/api/session.d.ts.map +1 -0
- package/dist/ui-server/api/session.js +196 -0
- package/dist/ui-server/api/session.js.map +1 -0
- package/dist/ui-server/api/source.d.ts +200 -0
- package/dist/ui-server/api/source.d.ts.map +1 -0
- package/dist/ui-server/api/source.js +419 -0
- package/dist/ui-server/api/source.js.map +1 -0
- package/dist/ui-server/api/stats.d.ts +27 -0
- package/dist/ui-server/api/stats.d.ts.map +1 -0
- package/dist/ui-server/api/stats.js +164 -0
- package/dist/ui-server/api/stats.js.map +1 -0
- package/dist/ui-server/api/steps.d.ts +274 -0
- package/dist/ui-server/api/steps.d.ts.map +1 -0
- package/dist/ui-server/api/steps.js +1446 -0
- package/dist/ui-server/api/steps.js.map +1 -0
- package/dist/ui-server/api/trail-store.d.ts +142 -0
- package/dist/ui-server/api/trail-store.d.ts.map +1 -0
- package/dist/ui-server/api/trail-store.js +323 -0
- package/dist/ui-server/api/trail-store.js.map +1 -0
- package/dist/ui-server/api/trails.d.ts +163 -0
- package/dist/ui-server/api/trails.d.ts.map +1 -0
- package/dist/ui-server/api/trails.js +369 -0
- package/dist/ui-server/api/trails.js.map +1 -0
- package/dist/ui-server/api/when.d.ts +125 -0
- package/dist/ui-server/api/when.d.ts.map +1 -0
- package/dist/ui-server/api/when.js +251 -0
- package/dist/ui-server/api/when.js.map +1 -0
- package/dist/ui-server/api/wire.d.ts +179 -0
- package/dist/ui-server/api/wire.d.ts.map +1 -0
- package/dist/ui-server/api/wire.js +231 -0
- package/dist/ui-server/api/wire.js.map +1 -0
- package/dist/ui-server/assets.d.ts +40 -0
- package/dist/ui-server/assets.d.ts.map +1 -0
- package/dist/ui-server/assets.js +110 -0
- package/dist/ui-server/assets.js.map +1 -0
- package/dist/ui-server/constants.d.ts +32 -0
- package/dist/ui-server/constants.d.ts.map +1 -0
- package/dist/ui-server/constants.js +35 -0
- package/dist/ui-server/constants.js.map +1 -0
- package/dist/ui-server/highlight/index.d.ts +113 -0
- package/dist/ui-server/highlight/index.d.ts.map +1 -0
- package/dist/ui-server/highlight/index.js +307 -0
- package/dist/ui-server/highlight/index.js.map +1 -0
- package/dist/ui-server/highlight/languages.d.ts +36 -0
- package/dist/ui-server/highlight/languages.d.ts.map +1 -0
- package/dist/ui-server/highlight/languages.js +50 -0
- package/dist/ui-server/highlight/languages.js.map +1 -0
- package/dist/ui-server/index.d.ts +92 -0
- package/dist/ui-server/index.d.ts.map +1 -0
- package/dist/ui-server/index.js +399 -0
- package/dist/ui-server/index.js.map +1 -0
- package/dist/ui-server/open-browser.d.ts +31 -0
- package/dist/ui-server/open-browser.d.ts.map +1 -0
- package/dist/ui-server/open-browser.js +79 -0
- package/dist/ui-server/open-browser.js.map +1 -0
- package/dist/ui-server/security.d.ts +127 -0
- package/dist/ui-server/security.d.ts.map +1 -0
- package/dist/ui-server/security.js +332 -0
- package/dist/ui-server/security.js.map +1 -0
- package/dist/ui-server/static.d.ts +45 -0
- package/dist/ui-server/static.d.ts.map +1 -0
- package/dist/ui-server/static.js +165 -0
- package/dist/ui-server/static.js.map +1 -0
- package/dist/upgrade/index.d.ts +177 -0
- package/dist/upgrade/index.d.ts.map +1 -0
- package/dist/upgrade/index.js +665 -0
- package/dist/upgrade/index.js.map +1 -0
- package/dist/upgrade/remove-binary.d.ts +87 -0
- package/dist/upgrade/remove-binary.d.ts.map +1 -0
- package/dist/upgrade/remove-binary.js +289 -0
- package/dist/upgrade/remove-binary.js.map +1 -0
- package/dist/upgrade/update-check.d.ts +92 -0
- package/dist/upgrade/update-check.d.ts.map +1 -0
- package/dist/upgrade/update-check.js +258 -0
- package/dist/upgrade/update-check.js.map +1 -0
- package/dist/utils.d.ts +224 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +583 -0
- package/dist/utils.js.map +1 -0
- package/dist/viewer/assets/archivo-latin-ext-wght-normal-C4zznr8T.woff2 +0 -0
- package/dist/viewer/assets/archivo-latin-wght-normal-E0tuGl4L.woff2 +0 -0
- package/dist/viewer/assets/archivo-vietnamese-wght-normal-XAtsl5Q_.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-italic-2syK4fUT.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-italic-CBJ8pzag.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-italic-B4oTjJdl.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-italic-CBjNughH.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-400-italic-66oory27.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-400-italic-BqAiT5Ww.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-italic-B7_fu1kp.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-italic-Bg0ZHwF4.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-italic-D6eaYXMU.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-italic-DRuN92E5.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff +0 -0
- package/dist/viewer/assets/index-2IPslW5t.js +13 -0
- package/dist/viewer/assets/index-DSwi2Seu.css +1 -0
- package/dist/viewer/index.html +16 -0
- package/package.json +67 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field-qualified search query parser.
|
|
3
|
+
*
|
|
4
|
+
* Splits a raw query like
|
|
5
|
+
*
|
|
6
|
+
* kind:function name:auth path:src/api authenticate
|
|
7
|
+
*
|
|
8
|
+
* into structured filters (kind=function, name="auth", path prefix
|
|
9
|
+
* "src/api") plus the free-text portion ("authenticate") that goes
|
|
10
|
+
* to FTS. Free-text and filters compose: filters narrow the result
|
|
11
|
+
* set, FTS scores within the narrowed set.
|
|
12
|
+
*
|
|
13
|
+
* Recognised fields (case-insensitive, value is the rest until
|
|
14
|
+
* whitespace):
|
|
15
|
+
*
|
|
16
|
+
* kind: one of function|method|class|interface|struct|...
|
|
17
|
+
* lang: one of typescript|python|go|... (alias: language:)
|
|
18
|
+
* path: case-insensitive substring of file_path
|
|
19
|
+
* name: case-insensitive substring of the symbol's name
|
|
20
|
+
*
|
|
21
|
+
* Unknown field prefixes (e.g. `foo:bar`) are passed through to FTS
|
|
22
|
+
* as plain text — that's how someone searching for `TODO:` gets a
|
|
23
|
+
* result instead of a parse error.
|
|
24
|
+
*
|
|
25
|
+
* Quoting:
|
|
26
|
+
* kind:function path:"src/some path/with spaces" → handled by stripping
|
|
27
|
+
* the surrounding double quotes from the value (single token only,
|
|
28
|
+
* no nested escapes).
|
|
29
|
+
*/
|
|
30
|
+
import type { NodeKind, Language } from '../types';
|
|
31
|
+
export interface ParsedQuery {
|
|
32
|
+
/** Free-text portion to feed to FTS / LIKE. May be empty. */
|
|
33
|
+
text: string;
|
|
34
|
+
/** kind: filters (OR'd). Empty when none specified. */
|
|
35
|
+
kinds: NodeKind[];
|
|
36
|
+
/** lang:/language: filters (OR'd). Empty when none specified. */
|
|
37
|
+
languages: Language[];
|
|
38
|
+
/** path: filters (OR'd, case-insensitive substring of file_path). Empty when none. */
|
|
39
|
+
pathFilters: string[];
|
|
40
|
+
/** name: filters (OR'd, case-insensitive substring of node.name). */
|
|
41
|
+
nameFilters: string[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Parse a raw query into structured filters + remaining text.
|
|
45
|
+
* Always returns a value; never throws.
|
|
46
|
+
*/
|
|
47
|
+
export declare function parseQuery(raw: string): ParsedQuery;
|
|
48
|
+
/**
|
|
49
|
+
* Damerau-Levenshtein-ish bounded edit distance. Returns `maxDist + 1`
|
|
50
|
+
* as soon as the distance is known to exceed `maxDist`; that early-exit
|
|
51
|
+
* makes the fuzzy fallback cheap even over tens of thousands of names.
|
|
52
|
+
*
|
|
53
|
+
* Pure DP, O(min(len(a), len(b))) memory. Compares case-folded inputs;
|
|
54
|
+
* callers should pass `lowercase(name)` strings.
|
|
55
|
+
*/
|
|
56
|
+
export declare function boundedEditDistance(a: string, b: string, maxDist: number): number;
|
|
57
|
+
//# sourceMappingURL=query-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-parser.d.ts","sourceRoot":"","sources":["../../src/search/query-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,iEAAiE;IACjE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,sFAAsF;IACtF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qEAAqE;IACrE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAiBD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAiFnD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA2BjF"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Field-qualified search query parser.
|
|
4
|
+
*
|
|
5
|
+
* Splits a raw query like
|
|
6
|
+
*
|
|
7
|
+
* kind:function name:auth path:src/api authenticate
|
|
8
|
+
*
|
|
9
|
+
* into structured filters (kind=function, name="auth", path prefix
|
|
10
|
+
* "src/api") plus the free-text portion ("authenticate") that goes
|
|
11
|
+
* to FTS. Free-text and filters compose: filters narrow the result
|
|
12
|
+
* set, FTS scores within the narrowed set.
|
|
13
|
+
*
|
|
14
|
+
* Recognised fields (case-insensitive, value is the rest until
|
|
15
|
+
* whitespace):
|
|
16
|
+
*
|
|
17
|
+
* kind: one of function|method|class|interface|struct|...
|
|
18
|
+
* lang: one of typescript|python|go|... (alias: language:)
|
|
19
|
+
* path: case-insensitive substring of file_path
|
|
20
|
+
* name: case-insensitive substring of the symbol's name
|
|
21
|
+
*
|
|
22
|
+
* Unknown field prefixes (e.g. `foo:bar`) are passed through to FTS
|
|
23
|
+
* as plain text — that's how someone searching for `TODO:` gets a
|
|
24
|
+
* result instead of a parse error.
|
|
25
|
+
*
|
|
26
|
+
* Quoting:
|
|
27
|
+
* kind:function path:"src/some path/with spaces" → handled by stripping
|
|
28
|
+
* the surrounding double quotes from the value (single token only,
|
|
29
|
+
* no nested escapes).
|
|
30
|
+
*/
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.parseQuery = parseQuery;
|
|
33
|
+
exports.boundedEditDistance = boundedEditDistance;
|
|
34
|
+
const types_1 = require("../types");
|
|
35
|
+
// Derived from the canonical `NODE_KINDS` / `LANGUAGES` arrays in
|
|
36
|
+
// types.ts so adding a new kind or language doesn't silently fall
|
|
37
|
+
// through to plain text here.
|
|
38
|
+
const KIND_VALUES = new Set(types_1.NODE_KINDS);
|
|
39
|
+
const LANGUAGE_VALUES = new Set(types_1.LANGUAGES);
|
|
40
|
+
/**
|
|
41
|
+
* Strip a surrounding pair of double quotes from `s`. Allows users to
|
|
42
|
+
* keep whitespace in path filters: `path:"my dir/file"`.
|
|
43
|
+
*/
|
|
44
|
+
function unquote(s) {
|
|
45
|
+
if (s.length >= 2 && s.startsWith('"') && s.endsWith('"'))
|
|
46
|
+
return s.slice(1, -1);
|
|
47
|
+
return s;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Parse a raw query into structured filters + remaining text.
|
|
51
|
+
* Always returns a value; never throws.
|
|
52
|
+
*/
|
|
53
|
+
function parseQuery(raw) {
|
|
54
|
+
const out = {
|
|
55
|
+
text: '',
|
|
56
|
+
kinds: [],
|
|
57
|
+
languages: [],
|
|
58
|
+
pathFilters: [],
|
|
59
|
+
nameFilters: [],
|
|
60
|
+
};
|
|
61
|
+
// Tokenise on whitespace, preserving quoted spans as part of the
|
|
62
|
+
// current token. Quotes can appear at the start (`"…"`) OR mid-token
|
|
63
|
+
// (`path:"…"`); in both cases everything from the opening `"` to the
|
|
64
|
+
// matching `"` is included in the token, whitespace and all.
|
|
65
|
+
const tokens = [];
|
|
66
|
+
let i = 0;
|
|
67
|
+
while (i < raw.length) {
|
|
68
|
+
while (i < raw.length && /\s/.test(raw[i]))
|
|
69
|
+
i++;
|
|
70
|
+
if (i >= raw.length)
|
|
71
|
+
break;
|
|
72
|
+
const start = i;
|
|
73
|
+
while (i < raw.length && !/\s/.test(raw[i])) {
|
|
74
|
+
if (raw[i] === '"') {
|
|
75
|
+
const end = raw.indexOf('"', i + 1);
|
|
76
|
+
if (end === -1) {
|
|
77
|
+
// Unterminated quote — swallow the rest of the input as
|
|
78
|
+
// one token. Forgiving rather than throwing.
|
|
79
|
+
i = raw.length;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
i = end + 1;
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
i++;
|
|
86
|
+
}
|
|
87
|
+
tokens.push(raw.slice(start, i));
|
|
88
|
+
}
|
|
89
|
+
const textParts = [];
|
|
90
|
+
for (const tok of tokens) {
|
|
91
|
+
const colon = tok.indexOf(':');
|
|
92
|
+
if (colon <= 0 || colon === tok.length - 1) {
|
|
93
|
+
textParts.push(tok);
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
const key = tok.slice(0, colon).toLowerCase();
|
|
97
|
+
const valueRaw = unquote(tok.slice(colon + 1));
|
|
98
|
+
if (!valueRaw) {
|
|
99
|
+
textParts.push(tok);
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
switch (key) {
|
|
103
|
+
case 'kind': {
|
|
104
|
+
if (KIND_VALUES.has(valueRaw)) {
|
|
105
|
+
out.kinds.push(valueRaw);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
textParts.push(tok);
|
|
109
|
+
}
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
case 'lang':
|
|
113
|
+
case 'language': {
|
|
114
|
+
const lower = valueRaw.toLowerCase();
|
|
115
|
+
if (LANGUAGE_VALUES.has(lower)) {
|
|
116
|
+
out.languages.push(lower);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
textParts.push(tok);
|
|
120
|
+
}
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
case 'path':
|
|
124
|
+
out.pathFilters.push(valueRaw);
|
|
125
|
+
break;
|
|
126
|
+
case 'name':
|
|
127
|
+
out.nameFilters.push(valueRaw);
|
|
128
|
+
break;
|
|
129
|
+
default:
|
|
130
|
+
textParts.push(tok);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
out.text = textParts.join(' ').trim();
|
|
134
|
+
return out;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Damerau-Levenshtein-ish bounded edit distance. Returns `maxDist + 1`
|
|
138
|
+
* as soon as the distance is known to exceed `maxDist`; that early-exit
|
|
139
|
+
* makes the fuzzy fallback cheap even over tens of thousands of names.
|
|
140
|
+
*
|
|
141
|
+
* Pure DP, O(min(len(a), len(b))) memory. Compares case-folded inputs;
|
|
142
|
+
* callers should pass `lowercase(name)` strings.
|
|
143
|
+
*/
|
|
144
|
+
function boundedEditDistance(a, b, maxDist) {
|
|
145
|
+
if (a === b)
|
|
146
|
+
return 0;
|
|
147
|
+
const al = a.length;
|
|
148
|
+
const bl = b.length;
|
|
149
|
+
if (Math.abs(al - bl) > maxDist)
|
|
150
|
+
return maxDist + 1;
|
|
151
|
+
if (al === 0)
|
|
152
|
+
return bl;
|
|
153
|
+
if (bl === 0)
|
|
154
|
+
return al;
|
|
155
|
+
let prev = new Array(bl + 1);
|
|
156
|
+
let cur = new Array(bl + 1);
|
|
157
|
+
for (let j = 0; j <= bl; j++)
|
|
158
|
+
prev[j] = j;
|
|
159
|
+
for (let i = 1; i <= al; i++) {
|
|
160
|
+
cur[0] = i;
|
|
161
|
+
let rowMin = cur[0];
|
|
162
|
+
for (let j = 1; j <= bl; j++) {
|
|
163
|
+
const cost = a.charCodeAt(i - 1) === b.charCodeAt(j - 1) ? 0 : 1;
|
|
164
|
+
const insertion = cur[j - 1] + 1;
|
|
165
|
+
const deletion = prev[j] + 1;
|
|
166
|
+
const substitution = prev[j - 1] + cost;
|
|
167
|
+
cur[j] = Math.min(insertion, deletion, substitution);
|
|
168
|
+
if (cur[j] < rowMin)
|
|
169
|
+
rowMin = cur[j];
|
|
170
|
+
}
|
|
171
|
+
if (rowMin > maxDist)
|
|
172
|
+
return maxDist + 1;
|
|
173
|
+
[prev, cur] = [cur, prev];
|
|
174
|
+
}
|
|
175
|
+
return prev[bl];
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=query-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-parser.js","sourceRoot":"","sources":["../../src/search/query-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File-path recognition for explore queries.
|
|
3
|
+
*
|
|
4
|
+
* Agents routinely name files by path in a `codegraph_explore` query —
|
|
5
|
+
* "the scroll logic in src/routes/m/projects/[id]/runs/[runId]/+page.svelte" —
|
|
6
|
+
* and until this module existed those spans were SHREDDED by the downstream
|
|
7
|
+
* tokenizers instead of being read as file references:
|
|
8
|
+
*
|
|
9
|
+
* - the named-symbol seeder splits on `[\s,()[\]]+`, so SvelteKit/Next
|
|
10
|
+
* bracketed segments (`[id]`, `[runId]`) and route groups (`(protected)`)
|
|
11
|
+
* exploded the path into fragments; the identifier-shaped survivors
|
|
12
|
+
* (`runId`, `scope`) then seeded as "symbols the agent named" and
|
|
13
|
+
* headlined the blast radius;
|
|
14
|
+
* - FTS saw the fragments (`page`, `chat`, `runs`) and admitted every
|
|
15
|
+
* sibling `+page.svelte` in the repo, which ate the output envelope and
|
|
16
|
+
* truncated the files the agent actually asked for.
|
|
17
|
+
*
|
|
18
|
+
* `extractQueryPaths` finds path-like spans — slashed paths, dotted basenames,
|
|
19
|
+
* and extension-less kebab basenames (`background-image-table`, the spelling
|
|
20
|
+
* import paths and prose actually use) — resolves them against the INDEXED
|
|
21
|
+
* file list (resolution IS the detector — `and/or`, `gen_server:call/2`,
|
|
22
|
+
* `non-blocking` and other path-shaped non-paths match nothing and are left
|
|
23
|
+
* alone), and returns the matches as pinned files plus the query with those
|
|
24
|
+
* spans removed.
|
|
25
|
+
* Callers treat pinned files as first-class: guaranteed admission, top rank,
|
|
26
|
+
* funded first. Pure string work — no DB, no fs — so it is trivially testable
|
|
27
|
+
* and safe inside the query-pool workers.
|
|
28
|
+
*/
|
|
29
|
+
export interface QueryPathExtraction {
|
|
30
|
+
/** The query with resolved/clearly-path spans removed, whitespace-joined. */
|
|
31
|
+
strippedQuery: string;
|
|
32
|
+
/** Indexed file paths the query named, appearance-ordered, deduped. */
|
|
33
|
+
pinnedFiles: string[];
|
|
34
|
+
/**
|
|
35
|
+
* Spans that are unambiguously path-shaped but resolved to nothing (stale
|
|
36
|
+
* path, unindexed file) or to too many files (bare `+page.svelte`). Stripped
|
|
37
|
+
* from the query — their fragments could only mint junk matches — and
|
|
38
|
+
* surfaced to the agent so the miss is visible instead of silent.
|
|
39
|
+
*/
|
|
40
|
+
unresolvedPathSpans: string[];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Cheap pre-gate so callers only fetch the indexed file list when the query
|
|
44
|
+
* could possibly contain a path: a slash, a dot-extension-shaped tail
|
|
45
|
+
* (`chat-manager.ts`), or a hyphen-joined word (`background-image-table` —
|
|
46
|
+
* kebab files are named WITHOUT their extension more often than with, so the
|
|
47
|
+
* shape must open the gate on its own). Extensions cap at 8 chars, which
|
|
48
|
+
* keeps `Class.method` spans (`app.isPackaged`) from qualifying; the kebab
|
|
49
|
+
* alternative requires clean non-word boundaries, which keeps `--flags` and
|
|
50
|
+
* snake_case-with-a-dash hybrids from firing it.
|
|
51
|
+
*/
|
|
52
|
+
export declare function queryMightContainPaths(query: string): boolean;
|
|
53
|
+
export declare function extractQueryPaths(query: string, indexedPaths: readonly string[], opts?: {
|
|
54
|
+
maxPins?: number;
|
|
55
|
+
maxMatchesPerSpan?: number;
|
|
56
|
+
}): QueryPathExtraction;
|
|
57
|
+
//# sourceMappingURL=query-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-paths.d.ts","sourceRoot":"","sources":["../../src/search/query-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;OAKG;IACH,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAI7D;AAmID,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,mBAAmB,CA8FrB"}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* File-path recognition for explore queries.
|
|
4
|
+
*
|
|
5
|
+
* Agents routinely name files by path in a `codegraph_explore` query —
|
|
6
|
+
* "the scroll logic in src/routes/m/projects/[id]/runs/[runId]/+page.svelte" —
|
|
7
|
+
* and until this module existed those spans were SHREDDED by the downstream
|
|
8
|
+
* tokenizers instead of being read as file references:
|
|
9
|
+
*
|
|
10
|
+
* - the named-symbol seeder splits on `[\s,()[\]]+`, so SvelteKit/Next
|
|
11
|
+
* bracketed segments (`[id]`, `[runId]`) and route groups (`(protected)`)
|
|
12
|
+
* exploded the path into fragments; the identifier-shaped survivors
|
|
13
|
+
* (`runId`, `scope`) then seeded as "symbols the agent named" and
|
|
14
|
+
* headlined the blast radius;
|
|
15
|
+
* - FTS saw the fragments (`page`, `chat`, `runs`) and admitted every
|
|
16
|
+
* sibling `+page.svelte` in the repo, which ate the output envelope and
|
|
17
|
+
* truncated the files the agent actually asked for.
|
|
18
|
+
*
|
|
19
|
+
* `extractQueryPaths` finds path-like spans — slashed paths, dotted basenames,
|
|
20
|
+
* and extension-less kebab basenames (`background-image-table`, the spelling
|
|
21
|
+
* import paths and prose actually use) — resolves them against the INDEXED
|
|
22
|
+
* file list (resolution IS the detector — `and/or`, `gen_server:call/2`,
|
|
23
|
+
* `non-blocking` and other path-shaped non-paths match nothing and are left
|
|
24
|
+
* alone), and returns the matches as pinned files plus the query with those
|
|
25
|
+
* spans removed.
|
|
26
|
+
* Callers treat pinned files as first-class: guaranteed admission, top rank,
|
|
27
|
+
* funded first. Pure string work — no DB, no fs — so it is trivially testable
|
|
28
|
+
* and safe inside the query-pool workers.
|
|
29
|
+
*/
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.queryMightContainPaths = queryMightContainPaths;
|
|
32
|
+
exports.extractQueryPaths = extractQueryPaths;
|
|
33
|
+
/**
|
|
34
|
+
* Cheap pre-gate so callers only fetch the indexed file list when the query
|
|
35
|
+
* could possibly contain a path: a slash, a dot-extension-shaped tail
|
|
36
|
+
* (`chat-manager.ts`), or a hyphen-joined word (`background-image-table` —
|
|
37
|
+
* kebab files are named WITHOUT their extension more often than with, so the
|
|
38
|
+
* shape must open the gate on its own). Extensions cap at 8 chars, which
|
|
39
|
+
* keeps `Class.method` spans (`app.isPackaged`) from qualifying; the kebab
|
|
40
|
+
* alternative requires clean non-word boundaries, which keeps `--flags` and
|
|
41
|
+
* snake_case-with-a-dash hybrids from firing it.
|
|
42
|
+
*/
|
|
43
|
+
function queryMightContainPaths(query) {
|
|
44
|
+
return /[/\\]/.test(query)
|
|
45
|
+
|| /\.[A-Za-z][A-Za-z0-9]{0,7}(?=[\s,;:)\]'"`]|$)/.test(query)
|
|
46
|
+
|| /(?:^|[^-\w])[A-Za-z0-9]+(?:-[A-Za-z0-9]+)+(?=[^-\w]|$)/.test(query);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Longest span→suffix walk tried per span. 8 covers an absolute macOS path
|
|
50
|
+
* (`/Users/<user>/dev/<repo>/…`) over a deeply nested repo-relative file;
|
|
51
|
+
* deeper prefixes buy nothing.
|
|
52
|
+
*/
|
|
53
|
+
const MAX_SUFFIX_TRIES = 8;
|
|
54
|
+
/** Spans examined per query — a prose sentence is not 50 paths. */
|
|
55
|
+
const MAX_CANDIDATE_SPANS = 8;
|
|
56
|
+
/** `name.ext` shape with a plausible source extension (no slash required). */
|
|
57
|
+
const DOTTED_BASENAME = /^[^\s/\\]+\.[A-Za-z][A-Za-z0-9]{0,7}$/;
|
|
58
|
+
/**
|
|
59
|
+
* Extension-less kebab basename (`background-image-table`). Hyphens are
|
|
60
|
+
* illegal in identifiers, so consuming these tokens can never steal one from
|
|
61
|
+
* the named-symbol seeder; ≥2 segments keeps single words out.
|
|
62
|
+
*/
|
|
63
|
+
const KEBAB_BASENAME = /^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)+$/;
|
|
64
|
+
/** A basename's last dot-extension, same shape DOTTED_BASENAME accepts. */
|
|
65
|
+
const LAST_EXTENSION = /\.[A-Za-z][A-Za-z0-9]{0,7}$/;
|
|
66
|
+
/**
|
|
67
|
+
* Lowercased basename stems of the hyphen-named indexed files, stem → paths.
|
|
68
|
+
* A stem drops only the LAST extension (`a-b.module.scss` → `a-b.module`), so
|
|
69
|
+
* a bare kebab token can't accidentally pin a same-named stylesheet or
|
|
70
|
+
* `.d.ts` sibling of the source file it names; an extension-less basename
|
|
71
|
+
* (`pre-commit`) is its own stem. Hyphen-free basenames are skipped — a
|
|
72
|
+
* KEBAB_BASENAME token can never equal one, and the filter keeps the map
|
|
73
|
+
* near-empty in repos that don't name files this way.
|
|
74
|
+
*/
|
|
75
|
+
function buildBasenameStems(indexedPaths) {
|
|
76
|
+
const stems = new Map();
|
|
77
|
+
for (const p of indexedPaths) {
|
|
78
|
+
const basename = p.slice(Math.max(p.lastIndexOf('/'), p.lastIndexOf('\\')) + 1);
|
|
79
|
+
if (!basename.includes('-'))
|
|
80
|
+
continue;
|
|
81
|
+
const stem = basename.replace(LAST_EXTENSION, '').toLowerCase();
|
|
82
|
+
if (!stem)
|
|
83
|
+
continue;
|
|
84
|
+
const existing = stems.get(stem);
|
|
85
|
+
if (existing)
|
|
86
|
+
existing.push(p);
|
|
87
|
+
else
|
|
88
|
+
stems.set(stem, [p]);
|
|
89
|
+
}
|
|
90
|
+
return stems;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Strip prose punctuation wrapped around a token without eating punctuation
|
|
94
|
+
* that is PART of the path: quotes/backticks always strip; a trailing `)`/`]`
|
|
95
|
+
* strips only when the token has no matching opener (so `(protected)` and
|
|
96
|
+
* `[id]` segments survive, while "…(see src/foo.ts)" loses its parenthesis);
|
|
97
|
+
* a leading `(`/`[` mirrors that. Trailing sentence punctuation strips last,
|
|
98
|
+
* so "src/foo.ts." resolves.
|
|
99
|
+
*/
|
|
100
|
+
function stripWrapping(token) {
|
|
101
|
+
let s = token;
|
|
102
|
+
for (;;) {
|
|
103
|
+
const first = s[0];
|
|
104
|
+
if (!first)
|
|
105
|
+
break;
|
|
106
|
+
if ('\'"`<'.includes(first)) {
|
|
107
|
+
s = s.slice(1);
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (first === '(' && !s.includes(')')) {
|
|
111
|
+
s = s.slice(1);
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if (first === '[' && !s.includes(']')) {
|
|
115
|
+
s = s.slice(1);
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
if (first === '{' && !s.includes('}')) {
|
|
119
|
+
s = s.slice(1);
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
for (;;) {
|
|
125
|
+
const last = s[s.length - 1];
|
|
126
|
+
if (!last)
|
|
127
|
+
break;
|
|
128
|
+
if ('\'"`>.,;!?'.includes(last)) {
|
|
129
|
+
s = s.slice(0, -1);
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (last === ')' && !s.includes('(')) {
|
|
133
|
+
s = s.slice(0, -1);
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
if (last === ']' && !s.includes('[')) {
|
|
137
|
+
s = s.slice(0, -1);
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
if (last === '}' && !s.includes('{')) {
|
|
141
|
+
s = s.slice(0, -1);
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
// Line references ride along in agent-written paths: `foo.ts:123`,
|
|
147
|
+
// `foo.ts:12-40`, `foo.ts#L88`. The file is what gets pinned.
|
|
148
|
+
s = s.replace(/(?::\d+(?:-\d+)?|#L\d+(?:-L?\d+)?)$/, '');
|
|
149
|
+
return s;
|
|
150
|
+
}
|
|
151
|
+
/** Normalize a span into the repo-relative shape the files table stores. */
|
|
152
|
+
function normalizeSpan(span) {
|
|
153
|
+
return span
|
|
154
|
+
.replace(/\\/g, '/')
|
|
155
|
+
.replace(/^(?:\.\/)+/, '')
|
|
156
|
+
.replace(/\/{2,}/g, '/')
|
|
157
|
+
.replace(/\/+$/, '');
|
|
158
|
+
}
|
|
159
|
+
/** Path-shaped beyond doubt: ≥2 segments and a dot-extension on the last. */
|
|
160
|
+
function isClearlyPathShaped(normalized) {
|
|
161
|
+
const slash = normalized.lastIndexOf('/');
|
|
162
|
+
if (slash <= 0)
|
|
163
|
+
return false;
|
|
164
|
+
return DOTTED_BASENAME.test(normalized.slice(slash + 1));
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Resolve one normalized span against the indexed paths: exact match first,
|
|
168
|
+
* then segment-aligned suffix matches, dropping leading segments one at a
|
|
169
|
+
* time (so an absolute path, or one prefixed with the repo directory name,
|
|
170
|
+
* still lands on the indexed repo-relative file). Suffixes only get shorter —
|
|
171
|
+
* and therefore only match MORE — so the walk stops at the first suffix that
|
|
172
|
+
* matches anything: within budget it resolves, over budget it is ambiguous.
|
|
173
|
+
*/
|
|
174
|
+
function resolveSpan(normalizedLower, lowerToOriginal, maxMatches) {
|
|
175
|
+
const exact = lowerToOriginal.get(normalizedLower);
|
|
176
|
+
if (exact)
|
|
177
|
+
return { matches: [exact], ambiguous: false };
|
|
178
|
+
const segments = normalizedLower.split('/').filter(Boolean);
|
|
179
|
+
const tries = Math.min(segments.length, MAX_SUFFIX_TRIES);
|
|
180
|
+
for (let drop = 0; drop < tries; drop++) {
|
|
181
|
+
const suffix = segments.slice(drop).join('/');
|
|
182
|
+
if (!suffix)
|
|
183
|
+
break;
|
|
184
|
+
const withSlash = '/' + suffix;
|
|
185
|
+
const matches = [];
|
|
186
|
+
for (const [lower, original] of lowerToOriginal) {
|
|
187
|
+
if (lower === suffix || lower.endsWith(withSlash)) {
|
|
188
|
+
matches.push(original);
|
|
189
|
+
if (matches.length > maxMatches)
|
|
190
|
+
return { matches: [], ambiguous: true };
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if (matches.length > 0)
|
|
194
|
+
return { matches, ambiguous: false };
|
|
195
|
+
}
|
|
196
|
+
return { matches: [], ambiguous: false };
|
|
197
|
+
}
|
|
198
|
+
function extractQueryPaths(query, indexedPaths, opts = {}) {
|
|
199
|
+
const maxPins = Math.max(1, opts.maxPins ?? 8);
|
|
200
|
+
const maxMatchesPerSpan = Math.max(1, opts.maxMatchesPerSpan ?? 3);
|
|
201
|
+
const passthrough = {
|
|
202
|
+
strippedQuery: query,
|
|
203
|
+
pinnedFiles: [],
|
|
204
|
+
unresolvedPathSpans: [],
|
|
205
|
+
};
|
|
206
|
+
if (!query.trim() || indexedPaths.length === 0)
|
|
207
|
+
return passthrough;
|
|
208
|
+
// Lowercase view of the index, built once per call. Last writer wins on a
|
|
209
|
+
// case-colliding pair, which is the existing file-view behavior too.
|
|
210
|
+
const lowerToOriginal = new Map();
|
|
211
|
+
for (const p of indexedPaths)
|
|
212
|
+
lowerToOriginal.set(p.toLowerCase(), p);
|
|
213
|
+
const tokens = query.split(/\s+/).filter(Boolean);
|
|
214
|
+
const consumed = new Set();
|
|
215
|
+
const pinned = [];
|
|
216
|
+
const pinnedSeen = new Set();
|
|
217
|
+
const unresolved = [];
|
|
218
|
+
let candidatesExamined = 0;
|
|
219
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
220
|
+
if (pinned.length >= maxPins)
|
|
221
|
+
break;
|
|
222
|
+
if (candidatesExamined >= MAX_CANDIDATE_SPANS)
|
|
223
|
+
break;
|
|
224
|
+
const stripped = stripWrapping(tokens[i]);
|
|
225
|
+
if (stripped.length < 4)
|
|
226
|
+
continue;
|
|
227
|
+
const hasSlash = /[/\\]/.test(stripped);
|
|
228
|
+
if (!hasSlash && !DOTTED_BASENAME.test(stripped))
|
|
229
|
+
continue;
|
|
230
|
+
const normalized = normalizeSpan(stripped);
|
|
231
|
+
if (!normalized)
|
|
232
|
+
continue;
|
|
233
|
+
candidatesExamined++;
|
|
234
|
+
const { matches, ambiguous } = resolveSpan(normalized.toLowerCase(), lowerToOriginal, maxMatchesPerSpan);
|
|
235
|
+
if (matches.length > 0) {
|
|
236
|
+
consumed.add(i);
|
|
237
|
+
for (const m of matches) {
|
|
238
|
+
if (pinnedSeen.has(m) || pinned.length >= maxPins)
|
|
239
|
+
continue;
|
|
240
|
+
pinnedSeen.add(m);
|
|
241
|
+
pinned.push(m);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
else if (ambiguous || isClearlyPathShaped(normalized)) {
|
|
245
|
+
// A real path that didn't resolve to a usable set. Keeping it in the
|
|
246
|
+
// query is strictly worse — its fragments are what minted the junk
|
|
247
|
+
// matches this module exists to stop — so strip it and say so.
|
|
248
|
+
consumed.add(i);
|
|
249
|
+
if (unresolved.length < 4)
|
|
250
|
+
unresolved.push(normalized);
|
|
251
|
+
}
|
|
252
|
+
// Anything else (`and/or`, `call/2`, `foo.Bar`) is not a path reference:
|
|
253
|
+
// leave the token for the normal matching pipeline.
|
|
254
|
+
}
|
|
255
|
+
// Second pass — extension-less kebab basenames. `background-image-table`
|
|
256
|
+
// opens no door above (no slash, no dotted tail), the hyphens disqualify it
|
|
257
|
+
// from the named-symbol seeder downstream, and FTS shreds it into the most
|
|
258
|
+
// common words in a kebab-cased repo (`background`, `image`, `table`) —
|
|
259
|
+
// which admit look-alike SIBLINGS that crowd out the named file. Resolution
|
|
260
|
+
// stays the detector: a token pins only when its whole lowercased form is
|
|
261
|
+
// the stem of an indexed basename. Two deliberate asymmetries vs the first
|
|
262
|
+
// pass: prose that resolves to nothing (`non-blocking`, `cross-call`) is
|
|
263
|
+
// LEFT IN the query — unlike a slashed span it may be legitimate wording,
|
|
264
|
+
// so it keeps feeding FTS and is not reported as an unresolved path — and a
|
|
265
|
+
// stem hotter than maxMatchesPerSpan is likewise left alone (pinning half a
|
|
266
|
+
// monorepo off one hot name trades precision the wrong way; a directory
|
|
267
|
+
// segment, which the first pass handles, disambiguates). Runs after the
|
|
268
|
+
// slashed/dotted pass so explicit paths win the shared maxPins budget, and
|
|
269
|
+
// examines every remaining token: lookups are O(1) map hits, so the
|
|
270
|
+
// scan-cost rationale behind MAX_CANDIDATE_SPANS doesn't apply.
|
|
271
|
+
let basenameStems = null;
|
|
272
|
+
for (let i = 0; i < tokens.length && pinned.length < maxPins; i++) {
|
|
273
|
+
if (consumed.has(i))
|
|
274
|
+
continue;
|
|
275
|
+
const stripped = stripWrapping(tokens[i]);
|
|
276
|
+
if (stripped.length < 4 || !KEBAB_BASENAME.test(stripped))
|
|
277
|
+
continue;
|
|
278
|
+
basenameStems ??= buildBasenameStems(indexedPaths);
|
|
279
|
+
const matches = basenameStems.get(stripped.toLowerCase());
|
|
280
|
+
if (!matches || matches.length > maxMatchesPerSpan)
|
|
281
|
+
continue;
|
|
282
|
+
consumed.add(i);
|
|
283
|
+
for (const m of matches) {
|
|
284
|
+
if (pinnedSeen.has(m) || pinned.length >= maxPins)
|
|
285
|
+
continue;
|
|
286
|
+
pinnedSeen.add(m);
|
|
287
|
+
pinned.push(m);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
if (consumed.size === 0)
|
|
291
|
+
return passthrough;
|
|
292
|
+
return {
|
|
293
|
+
strippedQuery: tokens.filter((_, i) => !consumed.has(i)).join(' '),
|
|
294
|
+
pinnedFiles: pinned,
|
|
295
|
+
unresolvedPathSpans: unresolved,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=query-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-paths.js","sourceRoot":"","sources":["../../src/search/query-paths.ts"],"names":[],"mappings":"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"}
|