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,609 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The call path among a bag of named symbols — the one path finder.
|
|
4
|
+
*
|
|
5
|
+
* `codegraph_explore` leads its answer with a "Flow" section: the longest call
|
|
6
|
+
* chain among the symbols an agent named, riding synthesized dynamic-dispatch
|
|
7
|
+
* edges so a controller reaches its implementation through the interface. The
|
|
8
|
+
* viewer's Flow strip (`/api/flow`, design spec §3.5) draws the same thing as
|
|
9
|
+
* cards. They must never disagree, so the search lives here once and both
|
|
10
|
+
* callers ride it: same token parsing, same overload disambiguation, same
|
|
11
|
+
* bridge budget, same edges.
|
|
12
|
+
*
|
|
13
|
+
* What differs between the two callers is expressed as OPTIONS, not as a second
|
|
14
|
+
* implementation:
|
|
15
|
+
*
|
|
16
|
+
* - **`mode: 'named'`** is exactly what explore does. Every resolved symbol is
|
|
17
|
+
* both a possible start and a possible end, at most ONE unnamed symbol may
|
|
18
|
+
* bridge two named ones ({@link DEFAULT_MAX_BRIDGE}), and the LONGEST chain
|
|
19
|
+
* wins. The bridge cap is what stops the search wandering a god-function's
|
|
20
|
+
* fan-out: the agent's own naming is the evidence that a hop is on-topic.
|
|
21
|
+
* - **`mode: 'directed'`** is "how does X reach Y", which the agent has no way
|
|
22
|
+
* to ask and the viewer's search box does. Both ends are pinned, so the
|
|
23
|
+
* evidence the bridge cap was standing in for is already there and the search
|
|
24
|
+
* bridges freely — a two-token query under the named rules could never return
|
|
25
|
+
* more than three cards. The SHORTEST path wins, because with both ends fixed
|
|
26
|
+
* a longer route is a detour rather than a fuller answer.
|
|
27
|
+
*
|
|
28
|
+
* Overloads are handled differently for the same reason. A bare ambiguous name
|
|
29
|
+
* in `named` mode is filtered by CO-NAMING (keep `list` only where the agent
|
|
30
|
+
* also named its class); in `directed` mode every candidate for both endpoints
|
|
31
|
+
* is tried and the pair that actually connects is the answer — which is a
|
|
32
|
+
* better disambiguator than co-naming and the only one available when the
|
|
33
|
+
* whole query is two words.
|
|
34
|
+
*/
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.DEFAULT_MAX_BRIDGE = exports.DIRECTED_MAX_HOPS = exports.DEFAULT_MAX_HOPS = exports.FLOW_EDGE_KINDS = exports.FLOW_CALLABLE_KINDS = exports.RUST_PATH_PREFIXES = void 0;
|
|
37
|
+
exports.lastQualifierPart = lastQualifierPart;
|
|
38
|
+
exports.matchesSymbol = matchesSymbol;
|
|
39
|
+
exports.findAllSymbols = findAllSymbols;
|
|
40
|
+
exports.flowTokens = flowTokens;
|
|
41
|
+
exports.resolveNamedTokens = resolveNamedTokens;
|
|
42
|
+
exports.resolveNamedSymbolFlow = resolveNamedSymbolFlow;
|
|
43
|
+
exports.normalizeToken = normalizeToken;
|
|
44
|
+
const query_utils_1 = require("../search/query-utils");
|
|
45
|
+
/**
|
|
46
|
+
* Rust path roots that have no file-system equivalent — `crate` is the
|
|
47
|
+
* current crate, `super` is the parent module, `self` is the current
|
|
48
|
+
* module. Used by `matchesSymbol` to strip these before file-path
|
|
49
|
+
* matching so `crate::configurator::stage_apply::run` resolves the
|
|
50
|
+
* same as `configurator::stage_apply::run`.
|
|
51
|
+
*/
|
|
52
|
+
exports.RUST_PATH_PREFIXES = new Set(['crate', 'super', 'self']);
|
|
53
|
+
/**
|
|
54
|
+
* Last `::` / `.` / `/`-separated segment of a qualified symbol. An Erlang
|
|
55
|
+
* arity tail (`mod::fn/3`, `fn/3`) is stripped first — the useful last segment
|
|
56
|
+
* is the function name, never the digits (#1610).
|
|
57
|
+
*/
|
|
58
|
+
function lastQualifierPart(symbol) {
|
|
59
|
+
const noArity = symbol.replace(/\/\d{1,3}$/, '') || symbol;
|
|
60
|
+
const parts = noArity.split(/::|[./]/).filter((p) => p.length > 0);
|
|
61
|
+
return parts[parts.length - 1] ?? symbol;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Check if a node matches a symbol query.
|
|
65
|
+
*
|
|
66
|
+
* Accepts simple names (`run`) and three flavors of qualifier:
|
|
67
|
+
* - dotted `Session.request` (TS/JS/Python)
|
|
68
|
+
* - colon-pair `stage_apply::run` (Rust, C++, Ruby)
|
|
69
|
+
* - slash `configurator/stage_apply` (path-ish)
|
|
70
|
+
*
|
|
71
|
+
* Multi-level qualifiers compose: `crate::configurator::stage_apply::run`
|
|
72
|
+
* works. Rust path prefixes (`crate`, `super`, `self`) are stripped so
|
|
73
|
+
* the canonical `crate::module::symbol` form resolves.
|
|
74
|
+
*
|
|
75
|
+
* Resolution order, last part must always equal `node.name`:
|
|
76
|
+
* 1. Suffix-match against `qualifiedName` (handles class-scoped methods
|
|
77
|
+
* where the extractor builds the qualified name from the AST stack)
|
|
78
|
+
* 2. File-path containment (handles file-derived modules in Rust/
|
|
79
|
+
* Python — `stage_apply::run` matches a `run` in `stage_apply.rs`)
|
|
80
|
+
*/
|
|
81
|
+
function matchesSymbol(node, symbol) {
|
|
82
|
+
// Erlang arity spelling (`fn/3`, `mod:fn/3` → normalized `mod.fn/3`): when
|
|
83
|
+
// the node's qualifiedName carries an arity (`mod::fn/3`, #1610), the
|
|
84
|
+
// written arity must match it exactly; the remaining comparison then runs
|
|
85
|
+
// on the arity-less spelling. A node with no arity in its qualifiedName
|
|
86
|
+
// keeps the original symbol (a `/` there means a path-ish name instead).
|
|
87
|
+
const aritySpelling = /^(.+)\/(\d{1,3})$/.exec(symbol);
|
|
88
|
+
if (aritySpelling) {
|
|
89
|
+
const nodeArity = /\/(\d{1,3})$/.exec(node.qualifiedName ?? '')?.[1];
|
|
90
|
+
if (nodeArity !== undefined) {
|
|
91
|
+
if (nodeArity !== aritySpelling[2])
|
|
92
|
+
return false;
|
|
93
|
+
symbol = aritySpelling[1];
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// Simple name match
|
|
97
|
+
if (node.name === symbol)
|
|
98
|
+
return true;
|
|
99
|
+
// File basename match (e.g., "product-card" matches "product-card.liquid")
|
|
100
|
+
if (node.kind === 'file' && node.name.replace(/\.[^.]+$/, '') === symbol)
|
|
101
|
+
return true;
|
|
102
|
+
// Qualified-name lookups: split on any supported separator. `\w` keeps
|
|
103
|
+
// identifier chars (incl. `_`) intact; everything else is treated as
|
|
104
|
+
// a separator we tolerate.
|
|
105
|
+
if (!/[.\/]|::/.test(symbol))
|
|
106
|
+
return false;
|
|
107
|
+
const parts = symbol.split(/::|[./]/).filter((p) => p.length > 0);
|
|
108
|
+
if (parts.length < 2)
|
|
109
|
+
return false;
|
|
110
|
+
const lastPart = parts[parts.length - 1];
|
|
111
|
+
if (node.name !== lastPart)
|
|
112
|
+
return false;
|
|
113
|
+
// Stage 1: qualified-name suffix match. The extractor joins the
|
|
114
|
+
// semantic hierarchy with `::`, so `Session.request` and
|
|
115
|
+
// `Session::request` both become `Session::request` here.
|
|
116
|
+
const colonSuffix = parts.join('::');
|
|
117
|
+
if (node.qualifiedName.includes(colonSuffix))
|
|
118
|
+
return true;
|
|
119
|
+
// Stage 2: file-path containment. Rust modules and Python packages
|
|
120
|
+
// are not in `qualifiedName` — they're encoded in the file path. So
|
|
121
|
+
// `stage_apply::run` matches a `run` in any file whose path
|
|
122
|
+
// contains a `stage_apply` segment (with or without an extension).
|
|
123
|
+
//
|
|
124
|
+
// Filter out Rust path prefixes that have no file-system equivalent.
|
|
125
|
+
const containerHints = parts.slice(0, -1).filter((p) => !exports.RUST_PATH_PREFIXES.has(p));
|
|
126
|
+
if (containerHints.length === 0)
|
|
127
|
+
return false;
|
|
128
|
+
const segments = node.filePath.split('/').filter((s) => s.length > 0);
|
|
129
|
+
return containerHints.every((hint) => segments.some((seg) => seg === hint || seg.replace(/\.[^.]+$/, '') === hint));
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Find ALL symbols matching a name. Used by callers/callees/impact to aggregate
|
|
133
|
+
* results across all matching symbols (e.g., multiple classes with an `execute` method).
|
|
134
|
+
*/
|
|
135
|
+
function findAllSymbols(cg, symbol) {
|
|
136
|
+
// Nix option paths: the declaration is stored as `options.<path>` and
|
|
137
|
+
// config writes carry longer/quoted tails (`<path>."git/config".text`),
|
|
138
|
+
// so a dotted option token (`xdg.configFile`, `launchd.user.agents`) has
|
|
139
|
+
// no exact-name node and would degrade to bare-tail FTS soup — burying
|
|
140
|
+
// the declaration hub the nix-option-path edges hang off. Resolve the
|
|
141
|
+
// convention directly: declaration first, then the exact write, then a
|
|
142
|
+
// capped prefix scan of write sites. Three index hits; non-nix graphs
|
|
143
|
+
// fall straight through.
|
|
144
|
+
if (/^[a-z][\w'-]*(?:\.[\w'-]+)+$/.test(symbol)) {
|
|
145
|
+
const optionHits = [
|
|
146
|
+
...cg.getNodesByName(`options.${symbol}`),
|
|
147
|
+
...cg.getNodesByName(symbol),
|
|
148
|
+
...cg.getNodesByNamePrefix(`${symbol}.`, 12),
|
|
149
|
+
].filter((n) => n.language === 'nix');
|
|
150
|
+
if (optionHits.length > 0) {
|
|
151
|
+
const seen = new Set();
|
|
152
|
+
const nodes = optionHits.filter((n) => !seen.has(n.id) && !!seen.add(n.id)).slice(0, 10);
|
|
153
|
+
return { nodes, note: '' };
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
let results = cg.searchNodes(symbol, { limit: 50 });
|
|
157
|
+
// Mirror the fallback in `findSymbol` for qualified queries — FTS
|
|
158
|
+
// strips colons, so a module-qualified lookup needs a second pass
|
|
159
|
+
// by the bare last part.
|
|
160
|
+
if (results.length === 0 && /[.\/]|::/.test(symbol)) {
|
|
161
|
+
const tail = lastQualifierPart(symbol);
|
|
162
|
+
if (tail && tail !== symbol)
|
|
163
|
+
results = cg.searchNodes(tail, { limit: 50 });
|
|
164
|
+
}
|
|
165
|
+
if (results.length === 0) {
|
|
166
|
+
return { nodes: [], note: '' };
|
|
167
|
+
}
|
|
168
|
+
const exactMatches = results.filter(r => matchesSymbol(r.node, symbol));
|
|
169
|
+
if (exactMatches.length <= 1) {
|
|
170
|
+
const node = exactMatches[0]?.node ?? results[0].node;
|
|
171
|
+
return { nodes: [node], note: '' };
|
|
172
|
+
}
|
|
173
|
+
// Same generated-file down-rank as findSymbol — keeps callers/callees
|
|
174
|
+
// /impact aggregation aligned (a query against "Send" returns the
|
|
175
|
+
// hand-written implementations before the protobuf scaffold).
|
|
176
|
+
const isGen = cg.generatedFilePredicate(exactMatches.map((r) => r.node.filePath));
|
|
177
|
+
const ranked = [...exactMatches].sort((a, b) => {
|
|
178
|
+
const aGen = isGen(a.node.filePath) ? 1 : 0;
|
|
179
|
+
const bGen = isGen(b.node.filePath) ? 1 : 0;
|
|
180
|
+
return aGen - bGen;
|
|
181
|
+
});
|
|
182
|
+
const locations = ranked.map(r => `${r.node.kind} at ${r.node.filePath}:${r.node.startLine}`);
|
|
183
|
+
const note = `\n\n> **Note:** Aggregated results across ${ranked.length} symbols named "${symbol}": ${locations.join(', ')}`;
|
|
184
|
+
return { nodes: ranked.map(r => r.node), note };
|
|
185
|
+
}
|
|
186
|
+
/** Node kinds that can sit on a call chain. */
|
|
187
|
+
exports.FLOW_CALLABLE_KINDS = new Set([
|
|
188
|
+
'method',
|
|
189
|
+
'function',
|
|
190
|
+
'component',
|
|
191
|
+
'constructor',
|
|
192
|
+
'route',
|
|
193
|
+
]);
|
|
194
|
+
/**
|
|
195
|
+
* Edge kinds a flow may ride. `navigates` is a screen transition (Expo Router
|
|
196
|
+
* `router.push('/x')` → the route node) — a hop in the user's flow exactly as
|
|
197
|
+
* a call is a hop in the program's.
|
|
198
|
+
*/
|
|
199
|
+
exports.FLOW_EDGE_KINDS = new Set(['calls', 'navigates']);
|
|
200
|
+
/**
|
|
201
|
+
* Node kinds that can be an endpoint of a SYNTHESIZED edge without being
|
|
202
|
+
* callable. An RTK thunk is `const X = createAsyncThunk(...)`, so a thunk →
|
|
203
|
+
* thunk hop is constant → constant and the callable-only set cannot hold it.
|
|
204
|
+
*/
|
|
205
|
+
const DYN_KINDS = new Set(['constant', 'variable', 'field', 'property']);
|
|
206
|
+
/** Only a REAL file extension is stripped from a token — `Class.method` is kept. */
|
|
207
|
+
const FILE_EXT = /\.(?:java|kt|kts|ts|tsx|js|jsx|mjs|cjs|cs|py|go|rb|php|swift|rs|cpp|cc|cxx|c|h|hpp|scala|lua|dart|vue|svelte|astro|erl|hrl)$/i;
|
|
208
|
+
/** Chain length ceiling, in NODES. Explore's Flow section has always used 7. */
|
|
209
|
+
exports.DEFAULT_MAX_HOPS = 7;
|
|
210
|
+
/**
|
|
211
|
+
* Longer ceiling for a directed question.
|
|
212
|
+
*
|
|
213
|
+
* "How does X reach Y" is asked about two symbols that a reader believes are
|
|
214
|
+
* connected, and a real call path between a CLI entry point and a storage
|
|
215
|
+
* primitive runs deeper than seven frames. Explore's ceiling stays where it is:
|
|
216
|
+
* there, a longer chain is a bigger guess, because nothing pins the far end.
|
|
217
|
+
*/
|
|
218
|
+
exports.DIRECTED_MAX_HOPS = 12;
|
|
219
|
+
/** At most one consecutive UNNAMED hop may bridge two named symbols. */
|
|
220
|
+
exports.DEFAULT_MAX_BRIDGE = 1;
|
|
221
|
+
/** Seeds a `named` search starts from, and candidates an ambiguous token keeps. */
|
|
222
|
+
const MAX_SEEDS = 8;
|
|
223
|
+
const MAX_CANDIDATES_PER_TOKEN = 6;
|
|
224
|
+
/**
|
|
225
|
+
* Candidates a DIRECTED endpoint keeps, and the seeds it therefore walks from.
|
|
226
|
+
*
|
|
227
|
+
* Higher than the `named` cap, and the reason is a real failure: `main` has ten
|
|
228
|
+
* definitions in this repository — a Python asset script, a Rust build script,
|
|
229
|
+
* four `scripts/*.mjs` one-offs, a Go fixture — and the CLI's own `main`, the
|
|
230
|
+
* one anybody asking "how does main reach X" means, sorts SEVENTH. A cap of six
|
|
231
|
+
* silently answered "these two symbols are not connected". Both endpoints are
|
|
232
|
+
* pinned here, so an extra candidate costs one bounded walk that ends the
|
|
233
|
+
* moment it reaches the destination, and the pair that connects is the answer.
|
|
234
|
+
*/
|
|
235
|
+
const MAX_CANDIDATES_DIRECTED = 12;
|
|
236
|
+
const MAX_TOKENS = 16;
|
|
237
|
+
const MAX_NAMED = 40;
|
|
238
|
+
const EMPTY_FLOW = () => ({
|
|
239
|
+
tokens: [],
|
|
240
|
+
named: new Map(),
|
|
241
|
+
dynNamed: new Map(),
|
|
242
|
+
tokenNodes: new Map(),
|
|
243
|
+
tokenFamily: new Map(),
|
|
244
|
+
uniqueNamedNodeIds: new Set(),
|
|
245
|
+
preciseNamedIds: new Set(),
|
|
246
|
+
chains: [],
|
|
247
|
+
});
|
|
248
|
+
/**
|
|
249
|
+
* Production code before test and fixture code, otherwise the order the index
|
|
250
|
+
* ranked them in.
|
|
251
|
+
*
|
|
252
|
+
* Only used for a directed question, where the candidates are the two ends of
|
|
253
|
+
* "how does X reach Y" and a fixture's `main` is never what was meant. In
|
|
254
|
+
* `named` mode the agent's own co-naming does this job and re-ranking would
|
|
255
|
+
* change what `codegraph_explore` answers.
|
|
256
|
+
*/
|
|
257
|
+
function rankForDirected(nodes) {
|
|
258
|
+
return [...nodes].sort((a, b) => ((0, query_utils_1.isTestFile)(a.filePath) ? 1 : 0) - ((0, query_utils_1.isTestFile)(b.filePath) ? 1 : 0));
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* A token is shape-precise when it looks like a symbol reference rather than an
|
|
262
|
+
* English word that happened to exact-match a callable.
|
|
263
|
+
*/
|
|
264
|
+
function isPreciseToken(token) {
|
|
265
|
+
return /[._$]|::|\//.test(token) || /[a-z][A-Z]/.test(token) || /^[A-Z]/.test(token);
|
|
266
|
+
}
|
|
267
|
+
/** The symbol-shaped tokens of a query, deduped and capped. */
|
|
268
|
+
function flowTokens(query) {
|
|
269
|
+
return [
|
|
270
|
+
...new Set(query
|
|
271
|
+
.split(/[\s,()[\]]+/)
|
|
272
|
+
.map((t) => t.replace(FILE_EXT, '').trim())
|
|
273
|
+
.filter((t) => t.length >= 3 && /^[A-Za-z_$][\w$]*(?:(?:::|\.)[\w$]+)*$/.test(t))),
|
|
274
|
+
].slice(0, MAX_TOKENS);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Resolve a query's tokens to nodes, with the overload rules described in the
|
|
278
|
+
* module header. No graph traversal happens here.
|
|
279
|
+
*/
|
|
280
|
+
function resolveNamedTokens(cg, query, opts = {}) {
|
|
281
|
+
const directed = opts.mode === 'directed';
|
|
282
|
+
const out = EMPTY_FLOW();
|
|
283
|
+
const tokens = flowTokens(query);
|
|
284
|
+
out.tokens = tokens;
|
|
285
|
+
if (tokens.length < 2)
|
|
286
|
+
return out;
|
|
287
|
+
// Pool of name SEGMENTS (Class + method from every token), used to keep an
|
|
288
|
+
// ambiguous simple name only where its CONTAINER class is itself named.
|
|
289
|
+
const segPool = new Set();
|
|
290
|
+
for (const t of tokens)
|
|
291
|
+
for (const s of t.toLowerCase().split(/::|\./))
|
|
292
|
+
if (s)
|
|
293
|
+
segPool.add(s);
|
|
294
|
+
const hasHeuristicEdge = (id) => [...cg.getCallers(id), ...cg.getCallees(id)].some(({ edge }) => edge.provenance === 'heuristic');
|
|
295
|
+
for (const t of tokens) {
|
|
296
|
+
const hits = findAllSymbols(cg, t).nodes;
|
|
297
|
+
const cands = hits.filter((n) => exports.FLOW_CALLABLE_KINDS.has(n.kind));
|
|
298
|
+
out.tokenFamily.set(t, cands);
|
|
299
|
+
// A qualified or otherwise-specific name (<=3 hits) keeps all of them.
|
|
300
|
+
const specific = cands.length <= 3;
|
|
301
|
+
// In directed mode every candidate is kept and the search decides: the pair
|
|
302
|
+
// of overloads that actually connects IS the disambiguation, and co-naming
|
|
303
|
+
// has nothing to work with when the whole query is two words.
|
|
304
|
+
const pick = specific || directed
|
|
305
|
+
? cands
|
|
306
|
+
: cands.filter((n) => {
|
|
307
|
+
const segs = (n.qualifiedName || '').toLowerCase().split(/::|\./).filter(Boolean);
|
|
308
|
+
const container = segs.length >= 2 ? segs[segs.length - 2] : '';
|
|
309
|
+
return !!container && segPool.has(container);
|
|
310
|
+
});
|
|
311
|
+
const kept = directed
|
|
312
|
+
? rankForDirected(pick).slice(0, MAX_CANDIDATES_DIRECTED)
|
|
313
|
+
: pick.slice(0, MAX_CANDIDATES_PER_TOKEN);
|
|
314
|
+
out.tokenNodes.set(t, kept.map((n) => n.id));
|
|
315
|
+
const precise = isPreciseToken(t);
|
|
316
|
+
for (const n of kept) {
|
|
317
|
+
out.named.set(n.id, n);
|
|
318
|
+
if (specific)
|
|
319
|
+
out.uniqueNamedNodeIds.add(n.id);
|
|
320
|
+
if (precise)
|
|
321
|
+
out.preciseNamedIds.add(n.id);
|
|
322
|
+
}
|
|
323
|
+
// Same token, non-callable synthesized endpoints. Capped per token so one
|
|
324
|
+
// token's many endpoints cannot fill the pool before later tokens get a slot,
|
|
325
|
+
// and gated on an actual heuristic edge so plain constants never qualify.
|
|
326
|
+
if (out.dynNamed.size < 12) {
|
|
327
|
+
let tokenDyn = 0;
|
|
328
|
+
for (const n of hits) {
|
|
329
|
+
if (exports.FLOW_CALLABLE_KINDS.has(n.kind) || !DYN_KINDS.has(n.kind) || out.dynNamed.has(n.id)) {
|
|
330
|
+
continue;
|
|
331
|
+
}
|
|
332
|
+
if (hasHeuristicEdge(n.id)) {
|
|
333
|
+
out.dynNamed.set(n.id, n);
|
|
334
|
+
if (precise)
|
|
335
|
+
out.preciseNamedIds.add(n.id);
|
|
336
|
+
tokenDyn++;
|
|
337
|
+
}
|
|
338
|
+
if (out.dynNamed.size >= 12 || tokenDyn >= 4)
|
|
339
|
+
break;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
if (out.named.size > MAX_NAMED)
|
|
343
|
+
break;
|
|
344
|
+
}
|
|
345
|
+
return out;
|
|
346
|
+
}
|
|
347
|
+
/** Where each node on a chain calls the next one. */
|
|
348
|
+
function callSitesOf(steps) {
|
|
349
|
+
const sites = new Map();
|
|
350
|
+
for (let i = 0; i < steps.length - 1; i++) {
|
|
351
|
+
const line = steps[i + 1]?.edge?.line;
|
|
352
|
+
const id = steps[i]?.node.id;
|
|
353
|
+
if (id && line && line > 0 && !sites.has(id))
|
|
354
|
+
sites.set(id, line);
|
|
355
|
+
}
|
|
356
|
+
return sites;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Nodes one side of a search may visit before it gives up.
|
|
360
|
+
*
|
|
361
|
+
* The `named` cap is explore's own, unchanged: with at most one unnamed bridge
|
|
362
|
+
* between named symbols the frontier cannot run away, so 1 500 is generous.
|
|
363
|
+
* A directed search bridges freely and needs far more room — but it spends it
|
|
364
|
+
* from two ends at once, so a side that blows past this has genuinely fanned
|
|
365
|
+
* out rather than merely gone deep.
|
|
366
|
+
*/
|
|
367
|
+
const NAMED_VISIT_CAP = 1500;
|
|
368
|
+
const DIRECTED_VISIT_CAP = 12_000;
|
|
369
|
+
/**
|
|
370
|
+
* Breadth-first over `calls` edges — synthesized ones included, which is what
|
|
371
|
+
* carries a flow across a callback, a re-render or a JSX child.
|
|
372
|
+
*
|
|
373
|
+
* This is the `named` walk: every named symbol is a possible destination, and
|
|
374
|
+
* at most `maxBridge` unnamed symbols may sit between two of them. That cap is
|
|
375
|
+
* what bounds the frontier, so {@link NAMED_VISIT_CAP} is generous.
|
|
376
|
+
*
|
|
377
|
+
* Returns the parent map, so a caller can reconstruct any reached node's path.
|
|
378
|
+
*/
|
|
379
|
+
function walkCalls(cg, seed, named, maxHops, maxBridge) {
|
|
380
|
+
const parent = new Map();
|
|
381
|
+
parent.set(seed.id, { prev: null, edge: null, node: seed });
|
|
382
|
+
const queue = [
|
|
383
|
+
{ id: seed.id, depth: 0, streak: 0 },
|
|
384
|
+
];
|
|
385
|
+
const reached = [];
|
|
386
|
+
for (let head = 0; head < queue.length && parent.size < NAMED_VISIT_CAP; head++) {
|
|
387
|
+
const { id, depth, streak } = queue[head];
|
|
388
|
+
if (id !== seed.id && named.has(id))
|
|
389
|
+
reached.push(id);
|
|
390
|
+
if (depth >= maxHops - 1)
|
|
391
|
+
continue;
|
|
392
|
+
for (const c of cg.getCallees(id)) {
|
|
393
|
+
if (!exports.FLOW_EDGE_KINDS.has(c.edge.kind) || parent.has(c.node.id))
|
|
394
|
+
continue;
|
|
395
|
+
// A route node is a connector, not a symbol the reader would have named:
|
|
396
|
+
// crossing one costs no bridge budget.
|
|
397
|
+
const newStreak = named.has(c.node.id) ? 0 : c.node.kind === 'route' ? streak : streak + 1;
|
|
398
|
+
if (newStreak > maxBridge)
|
|
399
|
+
continue;
|
|
400
|
+
parent.set(c.node.id, { prev: id, edge: c.edge, node: c.node });
|
|
401
|
+
queue.push({ id: c.node.id, depth: depth + 1, streak: newStreak });
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
return { parent, reached };
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* A short call path from `seed` to any of `sinks`, searched from BOTH ends.
|
|
408
|
+
*
|
|
409
|
+
* A directed question bridges freely — nothing in the middle is "named" to keep
|
|
410
|
+
* the frontier small — so a one-way walk from an entry point balloons: `main`
|
|
411
|
+
* on this repository touches hundreds of symbols within four hops of a
|
|
412
|
+
* twelve-hop budget. Coming in from both ends halves the depth each side has to
|
|
413
|
+
* cover, and the destination end is nearly always the cheap one: a leaf has a
|
|
414
|
+
* handful of callers where an entry point has an enormous fan-out.
|
|
415
|
+
*
|
|
416
|
+
* Measured against the one-way walk on twelve pairs from this repository's own
|
|
417
|
+
* index: **identical paths, 3–6× faster** (`main -> resolveOne` 40 ms → 11 ms,
|
|
418
|
+
* `main -> scanDynamicDispatch` 33 ms → 7 ms). The one-way search never
|
|
419
|
+
* actually exhausted its visit cap here, so the reachability headroom below is
|
|
420
|
+
* insurance for a graph much larger than this one, not a fix for a bug that was
|
|
421
|
+
* observed.
|
|
422
|
+
*
|
|
423
|
+
* It alternates a level at a time, always expanding the SMALLER frontier, and
|
|
424
|
+
* stops the moment the two sides share a node. Alternating levels this way can
|
|
425
|
+
* return a path one hop longer than the true shortest — which is why nothing in
|
|
426
|
+
* the payload claims to be shortest, only to be a path the graph records.
|
|
427
|
+
*/
|
|
428
|
+
function walkBidirectional(cg, seed, sinks, maxHops) {
|
|
429
|
+
if (sinks.has(seed.id))
|
|
430
|
+
return null;
|
|
431
|
+
const forward = new Map();
|
|
432
|
+
/** id → the edge OUT of it towards the destination; null AT the destination. */
|
|
433
|
+
const backward = new Map();
|
|
434
|
+
const backNodes = new Map();
|
|
435
|
+
forward.set(seed.id, { prev: null, edge: null, node: seed });
|
|
436
|
+
let frontF = [seed];
|
|
437
|
+
let frontB = [];
|
|
438
|
+
for (const id of sinks) {
|
|
439
|
+
const node = cg.getNode(id);
|
|
440
|
+
if (!node)
|
|
441
|
+
continue;
|
|
442
|
+
backward.set(id, null);
|
|
443
|
+
backNodes.set(id, node);
|
|
444
|
+
frontB.push(node);
|
|
445
|
+
}
|
|
446
|
+
if (frontB.length === 0)
|
|
447
|
+
return null;
|
|
448
|
+
const meetAt = () => {
|
|
449
|
+
// The forward side is the one that is walked in full, so scanning it is the
|
|
450
|
+
// cheaper direction of the check.
|
|
451
|
+
for (const id of forward.keys())
|
|
452
|
+
if (backward.has(id))
|
|
453
|
+
return id;
|
|
454
|
+
return null;
|
|
455
|
+
};
|
|
456
|
+
const maxEdges = Math.max(1, maxHops - 1);
|
|
457
|
+
for (let laid = 0; laid < maxEdges; laid++) {
|
|
458
|
+
if (frontF.length <= frontB.length) {
|
|
459
|
+
if (forward.size > DIRECTED_VISIT_CAP)
|
|
460
|
+
break;
|
|
461
|
+
const next = [];
|
|
462
|
+
for (const node of frontF) {
|
|
463
|
+
for (const c of cg.getCallees(node.id)) {
|
|
464
|
+
if (!exports.FLOW_EDGE_KINDS.has(c.edge.kind) || forward.has(c.node.id))
|
|
465
|
+
continue;
|
|
466
|
+
forward.set(c.node.id, { prev: node.id, edge: c.edge, node: c.node });
|
|
467
|
+
next.push(c.node);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
if (next.length === 0)
|
|
471
|
+
break;
|
|
472
|
+
frontF = next;
|
|
473
|
+
}
|
|
474
|
+
else {
|
|
475
|
+
if (backward.size > DIRECTED_VISIT_CAP)
|
|
476
|
+
break;
|
|
477
|
+
const next = [];
|
|
478
|
+
for (const node of frontB) {
|
|
479
|
+
for (const c of cg.getCallers(node.id)) {
|
|
480
|
+
if (!exports.FLOW_EDGE_KINDS.has(c.edge.kind) || backward.has(c.node.id))
|
|
481
|
+
continue;
|
|
482
|
+
backward.set(c.node.id, { next: node.id, edge: c.edge });
|
|
483
|
+
backNodes.set(c.node.id, c.node);
|
|
484
|
+
next.push(c.node);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
if (next.length === 0)
|
|
488
|
+
break;
|
|
489
|
+
frontB = next;
|
|
490
|
+
}
|
|
491
|
+
const meet = meetAt();
|
|
492
|
+
if (meet === null)
|
|
493
|
+
continue;
|
|
494
|
+
// Forward half: seed → meet, walking the forward parents back.
|
|
495
|
+
const steps = [];
|
|
496
|
+
let cur = meet;
|
|
497
|
+
while (cur) {
|
|
498
|
+
const at = forward.get(cur);
|
|
499
|
+
if (!at)
|
|
500
|
+
break;
|
|
501
|
+
steps.push({ node: at.node, edge: at.edge });
|
|
502
|
+
cur = at.prev;
|
|
503
|
+
}
|
|
504
|
+
steps.reverse();
|
|
505
|
+
// Backward half: meet → sink. An entry holds the edge OUT of its node, so
|
|
506
|
+
// it is the edge INTO the step after it, which is the shape a step wants.
|
|
507
|
+
let link = backward.get(meet);
|
|
508
|
+
while (link) {
|
|
509
|
+
const node = backNodes.get(link.next);
|
|
510
|
+
if (!node)
|
|
511
|
+
break;
|
|
512
|
+
steps.push({ node, edge: link.edge });
|
|
513
|
+
link = backward.get(link.next);
|
|
514
|
+
}
|
|
515
|
+
const last = steps[steps.length - 1];
|
|
516
|
+
if (steps.length < 2 || !last || !sinks.has(last.node.id))
|
|
517
|
+
return null;
|
|
518
|
+
return steps.length <= maxHops ? steps : null;
|
|
519
|
+
}
|
|
520
|
+
return null;
|
|
521
|
+
}
|
|
522
|
+
function chainTo(parent, target) {
|
|
523
|
+
const steps = [];
|
|
524
|
+
let cur = target;
|
|
525
|
+
while (cur) {
|
|
526
|
+
const at = parent.get(cur);
|
|
527
|
+
if (!at)
|
|
528
|
+
break;
|
|
529
|
+
steps.push({ node: at.node, edge: at.edge });
|
|
530
|
+
cur = at.prev;
|
|
531
|
+
}
|
|
532
|
+
steps.reverse();
|
|
533
|
+
return steps;
|
|
534
|
+
}
|
|
535
|
+
/**
|
|
536
|
+
* The call path among a query's named symbols. See the module header for what
|
|
537
|
+
* the two modes mean and why they differ.
|
|
538
|
+
*/
|
|
539
|
+
function resolveNamedSymbolFlow(cg, query, opts = {}) {
|
|
540
|
+
try {
|
|
541
|
+
const directed = opts.mode === 'directed';
|
|
542
|
+
const flow = resolveNamedTokens(cg, query, opts);
|
|
543
|
+
if (flow.named.size < 2)
|
|
544
|
+
return flow;
|
|
545
|
+
const maxHops = opts.maxHops ?? (directed ? exports.DIRECTED_MAX_HOPS : exports.DEFAULT_MAX_HOPS);
|
|
546
|
+
const maxBridge = opts.maxBridge ?? (directed ? Number.POSITIVE_INFINITY : exports.DEFAULT_MAX_BRIDGE);
|
|
547
|
+
const maxChains = Math.max(1, opts.maxChains ?? 1);
|
|
548
|
+
const namedIds = new Set(flow.named.keys());
|
|
549
|
+
const found = [];
|
|
550
|
+
if (directed) {
|
|
551
|
+
const fromIds = flow.tokenNodes.get(normalizeToken(opts.from ?? '')) ?? [];
|
|
552
|
+
const toIds = flow.tokenNodes.get(normalizeToken(opts.to ?? '')) ?? [];
|
|
553
|
+
if (fromIds.length === 0 || toIds.length === 0)
|
|
554
|
+
return flow;
|
|
555
|
+
const sinks = new Set(toIds);
|
|
556
|
+
// Every candidate start is searched: each is a bounded two-ended walk that
|
|
557
|
+
// ends the moment the frontiers meet, and the start that actually connects
|
|
558
|
+
// IS the answer to which overload was meant.
|
|
559
|
+
for (const id of fromIds) {
|
|
560
|
+
const seed = flow.named.get(id);
|
|
561
|
+
if (!seed)
|
|
562
|
+
continue;
|
|
563
|
+
const steps = walkBidirectional(cg, seed, sinks, maxHops);
|
|
564
|
+
if (steps)
|
|
565
|
+
found.push(steps);
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
else {
|
|
569
|
+
for (const seed of [...flow.named.values()].slice(0, MAX_SEEDS)) {
|
|
570
|
+
const { parent, reached } = walkCalls(cg, seed, namedIds, maxHops, maxBridge);
|
|
571
|
+
// Explore's rule: the DEEPEST named sink this seed can reach.
|
|
572
|
+
let deepest = null;
|
|
573
|
+
for (const id of reached) {
|
|
574
|
+
const steps = chainTo(parent, id);
|
|
575
|
+
if (!deepest || steps.length > deepest.length)
|
|
576
|
+
deepest = steps;
|
|
577
|
+
}
|
|
578
|
+
if (deepest)
|
|
579
|
+
found.push(deepest);
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
if (found.length === 0)
|
|
583
|
+
return flow;
|
|
584
|
+
found.sort((a, b) => (directed ? a.length - b.length : b.length - a.length));
|
|
585
|
+
// Identical chains, and chains that are just a shorter run along one
|
|
586
|
+
// already kept, are the same answer twice: `a → b → c` and `b → c` differ
|
|
587
|
+
// only in where the seed happened to be. Alternatives are for genuinely
|
|
588
|
+
// different routes — a second overload, a different intermediate.
|
|
589
|
+
const kept = [];
|
|
590
|
+
for (const steps of found) {
|
|
591
|
+
const key = steps.map((s) => s.node.id).join('>');
|
|
592
|
+
if (kept.some((other) => other === key || other.includes(key)))
|
|
593
|
+
continue;
|
|
594
|
+
kept.push(key);
|
|
595
|
+
flow.chains.push({ steps, callSites: callSitesOf(steps) });
|
|
596
|
+
if (flow.chains.length >= maxChains)
|
|
597
|
+
break;
|
|
598
|
+
}
|
|
599
|
+
return flow;
|
|
600
|
+
}
|
|
601
|
+
catch {
|
|
602
|
+
return EMPTY_FLOW();
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
/** The token spelling {@link flowTokens} would have produced for one word. */
|
|
606
|
+
function normalizeToken(token) {
|
|
607
|
+
return token.replace(FILE_EXT, '').trim();
|
|
608
|
+
}
|
|
609
|
+
//# sourceMappingURL=named-symbol-flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"named-symbol-flow.js","sourceRoot":"","sources":["../../src/graph/named-symbol-flow.ts"],"names":[],"mappings":"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"}
|