@quolu/lattice 0.70.0 → 0.71.1
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/bin/lattice.mjs +21 -0
- package/package.json +1 -1
- package/sensor/dist/bin/lattice-sensor.js +746 -323
- package/sensor/dist/bin/viewer-gate.d.ts +17 -0
- package/sensor/dist/bin/viewer-gate.d.ts.map +1 -0
- package/sensor/dist/bin/viewer-gate.js +31 -0
- package/sensor/dist/bin/viewer-gate.js.map +1 -0
- package/sensor/dist/context/formatter.d.ts +7 -1
- package/sensor/dist/context/formatter.d.ts.map +1 -1
- package/sensor/dist/context/formatter.js +12 -6
- package/sensor/dist/context/formatter.js.map +1 -1
- package/sensor/dist/context/index.d.ts +12 -0
- package/sensor/dist/context/index.d.ts.map +1 -1
- package/sensor/dist/context/index.js +103 -16
- package/sensor/dist/context/index.js.map +1 -1
- package/sensor/dist/db/index.d.ts +23 -2
- package/sensor/dist/db/index.d.ts.map +1 -1
- package/sensor/dist/db/index.js +109 -31
- package/sensor/dist/db/index.js.map +1 -1
- package/sensor/dist/db/migrations.d.ts +1 -1
- package/sensor/dist/db/migrations.d.ts.map +1 -1
- package/sensor/dist/db/migrations.js +68 -1
- package/sensor/dist/db/migrations.js.map +1 -1
- package/sensor/dist/db/queries.d.ts +583 -6
- package/sensor/dist/db/queries.d.ts.map +1 -1
- package/sensor/dist/db/queries.js +1425 -57
- package/sensor/dist/db/queries.js.map +1 -1
- package/sensor/dist/db/schema.sql +27 -4
- package/sensor/dist/db/sqlite-adapter.d.ts +2 -0
- package/sensor/dist/db/sqlite-adapter.d.ts.map +1 -1
- package/sensor/dist/db/sqlite-adapter.js +56 -7
- package/sensor/dist/db/sqlite-adapter.js.map +1 -1
- package/sensor/dist/db/synthesis-stage.d.ts +12 -0
- package/sensor/dist/db/synthesis-stage.d.ts.map +1 -0
- package/sensor/dist/db/synthesis-stage.js +93 -0
- package/sensor/dist/db/synthesis-stage.js.map +1 -0
- package/sensor/dist/db/wal-valve.d.ts +32 -12
- package/sensor/dist/db/wal-valve.d.ts.map +1 -1
- package/sensor/dist/db/wal-valve.js +65 -22
- package/sensor/dist/db/wal-valve.js.map +1 -1
- package/sensor/dist/db/wsl-shared-index.d.ts +53 -0
- package/sensor/dist/db/wsl-shared-index.d.ts.map +1 -0
- package/sensor/dist/db/wsl-shared-index.js +121 -0
- package/sensor/dist/db/wsl-shared-index.js.map +1 -0
- package/sensor/dist/directory.d.ts +126 -2
- package/sensor/dist/directory.d.ts.map +1 -1
- package/sensor/dist/directory.js +285 -16
- package/sensor/dist/directory.js.map +1 -1
- package/sensor/dist/errors.d.ts +14 -0
- package/sensor/dist/errors.d.ts.map +1 -1
- package/sensor/dist/errors.js +16 -1
- package/sensor/dist/errors.js.map +1 -1
- package/sensor/dist/extraction/cfml-extractor.d.ts +1 -0
- package/sensor/dist/extraction/cfml-extractor.d.ts.map +1 -1
- package/sensor/dist/extraction/cfml-extractor.js +15 -3
- package/sensor/dist/extraction/cfml-extractor.js.map +1 -1
- package/sensor/dist/extraction/dfm-extractor.d.ts.map +1 -1
- package/sensor/dist/extraction/dfm-extractor.js +14 -10
- package/sensor/dist/extraction/dfm-extractor.js.map +1 -1
- package/sensor/dist/extraction/extraction-version.d.ts +1 -1
- package/sensor/dist/extraction/extraction-version.d.ts.map +1 -1
- package/sensor/dist/extraction/extraction-version.js +3 -1
- package/sensor/dist/extraction/extraction-version.js.map +1 -1
- package/sensor/dist/extraction/function-ref.d.ts +6 -4
- package/sensor/dist/extraction/function-ref.d.ts.map +1 -1
- package/sensor/dist/extraction/function-ref.js +35 -14
- package/sensor/dist/extraction/function-ref.js.map +1 -1
- package/sensor/dist/extraction/generated-detection.d.ts +48 -12
- package/sensor/dist/extraction/generated-detection.d.ts.map +1 -1
- package/sensor/dist/extraction/generated-detection.js +176 -11
- package/sensor/dist/extraction/generated-detection.js.map +1 -1
- package/sensor/dist/extraction/grammars.d.ts +38 -0
- package/sensor/dist/extraction/grammars.d.ts.map +1 -1
- package/sensor/dist/extraction/grammars.js +115 -3
- package/sensor/dist/extraction/grammars.js.map +1 -1
- package/sensor/dist/extraction/index.d.ts +218 -14
- package/sensor/dist/extraction/index.d.ts.map +1 -1
- package/sensor/dist/extraction/index.js +887 -175
- package/sensor/dist/extraction/index.js.map +1 -1
- package/sensor/dist/extraction/languages/c-cpp.d.ts +58 -0
- package/sensor/dist/extraction/languages/c-cpp.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/c-cpp.js +310 -19
- package/sensor/dist/extraction/languages/c-cpp.js.map +1 -1
- package/sensor/dist/extraction/languages/dart.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/dart.js +8 -3
- package/sensor/dist/extraction/languages/dart.js.map +1 -1
- package/sensor/dist/extraction/languages/erlang.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/erlang.js +58 -22
- package/sensor/dist/extraction/languages/erlang.js.map +1 -1
- package/sensor/dist/extraction/languages/javascript.js +1 -1
- package/sensor/dist/extraction/languages/javascript.js.map +1 -1
- package/sensor/dist/extraction/languages/kotlin.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/kotlin.js +169 -36
- package/sensor/dist/extraction/languages/kotlin.js.map +1 -1
- package/sensor/dist/extraction/languages/lua.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/lua.js +4 -1
- package/sensor/dist/extraction/languages/lua.js.map +1 -1
- package/sensor/dist/extraction/languages/objc.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/objc.js +4 -0
- package/sensor/dist/extraction/languages/objc.js.map +1 -1
- package/sensor/dist/extraction/languages/python.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/python.js +71 -0
- package/sensor/dist/extraction/languages/python.js.map +1 -1
- package/sensor/dist/extraction/languages/rust.d.ts +20 -0
- package/sensor/dist/extraction/languages/rust.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/rust.js +50 -20
- package/sensor/dist/extraction/languages/rust.js.map +1 -1
- package/sensor/dist/extraction/languages/scala.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/scala.js +18 -3
- package/sensor/dist/extraction/languages/scala.js.map +1 -1
- package/sensor/dist/extraction/languages/swift.d.ts +15 -0
- package/sensor/dist/extraction/languages/swift.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/swift.js +50 -0
- package/sensor/dist/extraction/languages/swift.js.map +1 -1
- package/sensor/dist/extraction/languages/typescript.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/typescript.js +9 -2
- package/sensor/dist/extraction/languages/typescript.js.map +1 -1
- package/sensor/dist/extraction/liquid-extractor.d.ts +18 -0
- package/sensor/dist/extraction/liquid-extractor.d.ts.map +1 -1
- package/sensor/dist/extraction/liquid-extractor.js +98 -22
- package/sensor/dist/extraction/liquid-extractor.js.map +1 -1
- package/sensor/dist/extraction/mybatis-extractor.d.ts.map +1 -1
- package/sensor/dist/extraction/mybatis-extractor.js +6 -4
- package/sensor/dist/extraction/mybatis-extractor.js.map +1 -1
- package/sensor/dist/extraction/parse-pool.d.ts +7 -0
- package/sensor/dist/extraction/parse-pool.d.ts.map +1 -1
- package/sensor/dist/extraction/parse-pool.js +20 -1
- package/sensor/dist/extraction/parse-pool.js.map +1 -1
- package/sensor/dist/extraction/syntax-tokens.d.ts +103 -0
- package/sensor/dist/extraction/syntax-tokens.d.ts.map +1 -0
- package/sensor/dist/extraction/syntax-tokens.js +381 -0
- package/sensor/dist/extraction/syntax-tokens.js.map +1 -0
- package/sensor/dist/extraction/tree-sitter-helpers.d.ts +5 -0
- package/sensor/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
- package/sensor/dist/extraction/tree-sitter-helpers.js +17 -0
- package/sensor/dist/extraction/tree-sitter-helpers.js.map +1 -1
- package/sensor/dist/extraction/tree-sitter-types.d.ts +31 -3
- package/sensor/dist/extraction/tree-sitter-types.d.ts.map +1 -1
- package/sensor/dist/extraction/tree-sitter.d.ts +101 -18
- package/sensor/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/sensor/dist/extraction/tree-sitter.js +928 -134
- package/sensor/dist/extraction/tree-sitter.js.map +1 -1
- package/sensor/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
- package/sensor/dist/file-limits.d.ts +40 -0
- package/sensor/dist/file-limits.d.ts.map +1 -0
- package/sensor/dist/file-limits.js +147 -0
- package/sensor/dist/file-limits.js.map +1 -0
- package/sensor/dist/graph/branch-guards.d.ts +265 -0
- package/sensor/dist/graph/branch-guards.d.ts.map +1 -0
- package/sensor/dist/graph/branch-guards.js +2325 -0
- package/sensor/dist/graph/branch-guards.js.map +1 -0
- package/sensor/dist/graph/dead-code.d.ts +251 -0
- package/sensor/dist/graph/dead-code.d.ts.map +1 -0
- package/sensor/dist/graph/dead-code.js +776 -0
- package/sensor/dist/graph/dead-code.js.map +1 -0
- package/sensor/dist/graph/dynamic-boundary-report.d.ts +121 -0
- package/sensor/dist/graph/dynamic-boundary-report.d.ts.map +1 -0
- package/sensor/dist/graph/dynamic-boundary-report.js +283 -0
- package/sensor/dist/graph/dynamic-boundary-report.js.map +1 -0
- package/sensor/dist/graph/index.d.ts +4 -0
- package/sensor/dist/graph/index.d.ts.map +1 -1
- package/sensor/dist/graph/index.js +16 -1
- package/sensor/dist/graph/index.js.map +1 -1
- package/sensor/dist/graph/named-symbol-flow.d.ts +125 -0
- package/sensor/dist/graph/named-symbol-flow.d.ts.map +1 -0
- package/sensor/dist/graph/named-symbol-flow.js +552 -0
- package/sensor/dist/graph/named-symbol-flow.js.map +1 -0
- package/sensor/dist/graph/queries.d.ts.map +1 -1
- package/sensor/dist/graph/queries.js +2 -0
- package/sensor/dist/graph/queries.js.map +1 -1
- package/sensor/dist/graph/symbol-lookup.d.ts +83 -0
- package/sensor/dist/graph/symbol-lookup.d.ts.map +1 -0
- package/sensor/dist/graph/symbol-lookup.js +181 -0
- package/sensor/dist/graph/symbol-lookup.js.map +1 -0
- package/sensor/dist/graph/traversal.d.ts +9 -0
- package/sensor/dist/graph/traversal.d.ts.map +1 -1
- package/sensor/dist/graph/traversal.js +62 -36
- package/sensor/dist/graph/traversal.js.map +1 -1
- package/sensor/dist/graph/type-hierarchy.d.ts +155 -0
- package/sensor/dist/graph/type-hierarchy.d.ts.map +1 -0
- package/sensor/dist/graph/type-hierarchy.js +382 -0
- package/sensor/dist/graph/type-hierarchy.js.map +1 -0
- package/sensor/dist/index.d.ts +272 -10
- package/sensor/dist/index.d.ts.map +1 -1
- package/sensor/dist/index.js +510 -34
- package/sensor/dist/index.js.map +1 -1
- package/sensor/dist/mcp/answer-freshness.d.ts +10 -0
- package/sensor/dist/mcp/answer-freshness.d.ts.map +1 -0
- package/sensor/dist/mcp/answer-freshness.js +68 -0
- package/sensor/dist/mcp/answer-freshness.js.map +1 -0
- package/sensor/dist/mcp/daemon-manager.d.ts +1 -1
- package/sensor/dist/mcp/daemon-manager.d.ts.map +1 -1
- package/sensor/dist/mcp/daemon-manager.js +17 -1
- package/sensor/dist/mcp/daemon-manager.js.map +1 -1
- package/sensor/dist/mcp/daemon-paths.d.ts +8 -0
- package/sensor/dist/mcp/daemon-paths.d.ts.map +1 -1
- package/sensor/dist/mcp/daemon-paths.js +65 -2
- package/sensor/dist/mcp/daemon-paths.js.map +1 -1
- package/sensor/dist/mcp/daemon-registry.d.ts +17 -4
- package/sensor/dist/mcp/daemon-registry.d.ts.map +1 -1
- package/sensor/dist/mcp/daemon-registry.js +133 -23
- package/sensor/dist/mcp/daemon-registry.js.map +1 -1
- package/sensor/dist/mcp/daemon.d.ts +26 -13
- package/sensor/dist/mcp/daemon.d.ts.map +1 -1
- package/sensor/dist/mcp/daemon.js +126 -32
- package/sensor/dist/mcp/daemon.js.map +1 -1
- package/sensor/dist/mcp/dynamic-boundaries.d.ts +1 -10
- package/sensor/dist/mcp/dynamic-boundaries.d.ts.map +1 -1
- package/sensor/dist/mcp/dynamic-boundaries.js +46 -42
- package/sensor/dist/mcp/dynamic-boundaries.js.map +1 -1
- package/sensor/dist/mcp/engine.d.ts +31 -9
- package/sensor/dist/mcp/engine.d.ts.map +1 -1
- package/sensor/dist/mcp/engine.js +190 -79
- package/sensor/dist/mcp/engine.js.map +1 -1
- package/sensor/dist/mcp/explore-dedup.d.ts +140 -0
- package/sensor/dist/mcp/explore-dedup.d.ts.map +1 -0
- package/sensor/dist/mcp/explore-dedup.js +239 -0
- package/sensor/dist/mcp/explore-dedup.js.map +1 -0
- package/sensor/dist/mcp/explore-diagnostics.d.ts +289 -0
- package/sensor/dist/mcp/explore-diagnostics.d.ts.map +1 -0
- package/sensor/dist/mcp/explore-diagnostics.js +558 -0
- package/sensor/dist/mcp/explore-diagnostics.js.map +1 -0
- package/sensor/dist/mcp/explore-session-state.d.ts +217 -0
- package/sensor/dist/mcp/explore-session-state.d.ts.map +1 -0
- package/sensor/dist/mcp/explore-session-state.js +322 -0
- package/sensor/dist/mcp/explore-session-state.js.map +1 -0
- package/sensor/dist/mcp/index-freshness-worker.d.ts +2 -0
- package/sensor/dist/mcp/index-freshness-worker.d.ts.map +1 -0
- package/sensor/dist/mcp/index-freshness-worker.js +30 -0
- package/sensor/dist/mcp/index-freshness-worker.js.map +1 -0
- package/sensor/dist/mcp/index-freshness.d.ts +7 -0
- package/sensor/dist/mcp/index-freshness.d.ts.map +1 -0
- package/sensor/dist/mcp/index-freshness.js +94 -0
- package/sensor/dist/mcp/index-freshness.js.map +1 -0
- package/sensor/dist/mcp/index.d.ts +3 -1
- package/sensor/dist/mcp/index.d.ts.map +1 -1
- package/sensor/dist/mcp/index.js +109 -12
- package/sensor/dist/mcp/index.js.map +1 -1
- package/sensor/dist/mcp/liveness-watchdog.d.ts +4 -1
- package/sensor/dist/mcp/liveness-watchdog.d.ts.map +1 -1
- package/sensor/dist/mcp/liveness-watchdog.js +11 -2
- package/sensor/dist/mcp/liveness-watchdog.js.map +1 -1
- package/sensor/dist/mcp/project-lifecycle.d.ts +9 -0
- package/sensor/dist/mcp/project-lifecycle.d.ts.map +1 -0
- package/sensor/dist/mcp/project-lifecycle.js +182 -0
- package/sensor/dist/mcp/project-lifecycle.js.map +1 -0
- package/sensor/dist/mcp/proxy.d.ts.map +1 -1
- package/sensor/dist/mcp/proxy.js +15 -1
- package/sensor/dist/mcp/proxy.js.map +1 -1
- package/sensor/dist/mcp/query-pool.d.ts +2 -2
- package/sensor/dist/mcp/query-pool.d.ts.map +1 -1
- package/sensor/dist/mcp/query-pool.js +9 -7
- package/sensor/dist/mcp/query-pool.js.map +1 -1
- package/sensor/dist/mcp/query-worker.js +2 -2
- package/sensor/dist/mcp/query-worker.js.map +1 -1
- package/sensor/dist/mcp/server-instructions.d.ts +2 -2
- package/sensor/dist/mcp/server-instructions.d.ts.map +1 -1
- package/sensor/dist/mcp/server-instructions.js +13 -6
- package/sensor/dist/mcp/server-instructions.js.map +1 -1
- package/sensor/dist/mcp/session.d.ts +16 -0
- package/sensor/dist/mcp/session.d.ts.map +1 -1
- package/sensor/dist/mcp/session.js +36 -13
- package/sensor/dist/mcp/session.js.map +1 -1
- package/sensor/dist/mcp/startup-handshake.d.ts +3 -1
- package/sensor/dist/mcp/startup-handshake.d.ts.map +1 -1
- package/sensor/dist/mcp/startup-handshake.js +10 -2
- package/sensor/dist/mcp/startup-handshake.js.map +1 -1
- package/sensor/dist/mcp/tools.d.ts +496 -38
- package/sensor/dist/mcp/tools.d.ts.map +1 -1
- package/sensor/dist/mcp/tools.js +4021 -772
- package/sensor/dist/mcp/tools.js.map +1 -1
- package/sensor/dist/mcp/writer-lock.d.ts +61 -0
- package/sensor/dist/mcp/writer-lock.d.ts.map +1 -0
- package/sensor/dist/mcp/writer-lock.js +260 -0
- package/sensor/dist/mcp/writer-lock.js.map +1 -0
- package/sensor/dist/project-config.d.ts +23 -0
- package/sensor/dist/project-config.d.ts.map +1 -1
- package/sensor/dist/project-config.js +39 -2
- package/sensor/dist/project-config.js.map +1 -1
- package/sensor/dist/resolution/alias-binding.d.ts +56 -0
- package/sensor/dist/resolution/alias-binding.d.ts.map +1 -0
- package/sensor/dist/resolution/alias-binding.js +127 -0
- package/sensor/dist/resolution/alias-binding.js.map +1 -0
- package/sensor/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -1
- package/sensor/dist/resolution/c-fnptr-synthesizer.js +21 -19
- package/sensor/dist/resolution/c-fnptr-synthesizer.js.map +1 -1
- package/sensor/dist/resolution/callback-synthesizer.d.ts +23 -1
- package/sensor/dist/resolution/callback-synthesizer.d.ts.map +1 -1
- package/sensor/dist/resolution/callback-synthesizer.js +356 -155
- package/sensor/dist/resolution/callback-synthesizer.js.map +1 -1
- package/sensor/dist/resolution/cpp-constructor.d.ts +4 -0
- package/sensor/dist/resolution/cpp-constructor.d.ts.map +1 -0
- package/sensor/dist/resolution/cpp-constructor.js +123 -0
- package/sensor/dist/resolution/cpp-constructor.js.map +1 -0
- package/sensor/dist/resolution/cpp-macro-visibility.d.ts +12 -0
- package/sensor/dist/resolution/cpp-macro-visibility.d.ts.map +1 -0
- package/sensor/dist/resolution/cpp-macro-visibility.js +342 -0
- package/sensor/dist/resolution/cpp-macro-visibility.js.map +1 -0
- package/sensor/dist/resolution/expo-router-synthesizer.d.ts +32 -0
- package/sensor/dist/resolution/expo-router-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/expo-router-synthesizer.js +189 -0
- package/sensor/dist/resolution/expo-router-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/frameworks/csharp.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/csharp.js +96 -2
- package/sensor/dist/resolution/frameworks/csharp.js.map +1 -1
- package/sensor/dist/resolution/frameworks/expo-router.d.ts +189 -0
- package/sensor/dist/resolution/frameworks/expo-router.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/expo-router.js +785 -0
- package/sensor/dist/resolution/frameworks/expo-router.js.map +1 -0
- package/sensor/dist/resolution/frameworks/express.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/express.js +251 -16
- package/sensor/dist/resolution/frameworks/express.js.map +1 -1
- package/sensor/dist/resolution/frameworks/index.d.ts +5 -0
- package/sensor/dist/resolution/frameworks/index.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/index.js +29 -1
- package/sensor/dist/resolution/frameworks/index.js.map +1 -1
- package/sensor/dist/resolution/frameworks/java.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/java.js +79 -47
- package/sensor/dist/resolution/frameworks/java.js.map +1 -1
- package/sensor/dist/resolution/frameworks/laravel.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/laravel.js +294 -4
- package/sensor/dist/resolution/frameworks/laravel.js.map +1 -1
- package/sensor/dist/resolution/frameworks/nestjs.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/nestjs.js +6 -14
- package/sensor/dist/resolution/frameworks/nestjs.js.map +1 -1
- package/sensor/dist/resolution/frameworks/nextjs.d.ts +76 -0
- package/sensor/dist/resolution/frameworks/nextjs.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/nextjs.js +328 -0
- package/sensor/dist/resolution/frameworks/nextjs.js.map +1 -0
- package/sensor/dist/resolution/frameworks/object-literal.d.ts +32 -0
- package/sensor/dist/resolution/frameworks/object-literal.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/object-literal.js +139 -0
- package/sensor/dist/resolution/frameworks/object-literal.js.map +1 -0
- package/sensor/dist/resolution/frameworks/package-deps.d.ts +14 -0
- package/sensor/dist/resolution/frameworks/package-deps.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/package-deps.js +78 -0
- package/sensor/dist/resolution/frameworks/package-deps.js.map +1 -0
- package/sensor/dist/resolution/frameworks/python.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/python.js +166 -0
- package/sensor/dist/resolution/frameworks/python.js.map +1 -1
- package/sensor/dist/resolution/frameworks/react-native.d.ts +26 -0
- package/sensor/dist/resolution/frameworks/react-native.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/react-native.js +153 -14
- package/sensor/dist/resolution/frameworks/react-native.js.map +1 -1
- package/sensor/dist/resolution/frameworks/react-router.d.ts +46 -0
- package/sensor/dist/resolution/frameworks/react-router.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/react-router.js +187 -0
- package/sensor/dist/resolution/frameworks/react-router.js.map +1 -0
- package/sensor/dist/resolution/frameworks/react.d.ts +2 -1
- package/sensor/dist/resolution/frameworks/react.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/react.js +188 -139
- package/sensor/dist/resolution/frameworks/react.js.map +1 -1
- package/sensor/dist/resolution/frameworks/svelte.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/svelte.js +6 -1
- package/sensor/dist/resolution/frameworks/svelte.js.map +1 -1
- package/sensor/dist/resolution/frameworks/sveltekit-router.d.ts +36 -0
- package/sensor/dist/resolution/frameworks/sveltekit-router.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/sveltekit-router.js +156 -0
- package/sensor/dist/resolution/frameworks/sveltekit-router.js.map +1 -0
- package/sensor/dist/resolution/frameworks/swift.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/swift.js +140 -99
- package/sensor/dist/resolution/frameworks/swift.js.map +1 -1
- package/sensor/dist/resolution/frameworks/tanstack-router.d.ts +84 -0
- package/sensor/dist/resolution/frameworks/tanstack-router.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/tanstack-router.js +437 -0
- package/sensor/dist/resolution/frameworks/tanstack-router.js.map +1 -0
- package/sensor/dist/resolution/frameworks/vue-router.d.ts +82 -0
- package/sensor/dist/resolution/frameworks/vue-router.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/vue-router.js +377 -0
- package/sensor/dist/resolution/frameworks/vue-router.js.map +1 -0
- package/sensor/dist/resolution/import-resolver.d.ts +38 -0
- package/sensor/dist/resolution/import-resolver.d.ts.map +1 -1
- package/sensor/dist/resolution/import-resolver.js +394 -28
- package/sensor/dist/resolution/import-resolver.js.map +1 -1
- package/sensor/dist/resolution/index.d.ts +89 -25
- package/sensor/dist/resolution/index.d.ts.map +1 -1
- package/sensor/dist/resolution/index.js +573 -148
- package/sensor/dist/resolution/index.js.map +1 -1
- package/sensor/dist/resolution/js-builtins.d.ts +13 -0
- package/sensor/dist/resolution/js-builtins.d.ts.map +1 -0
- package/sensor/dist/resolution/js-builtins.js +46 -0
- package/sensor/dist/resolution/js-builtins.js.map +1 -0
- package/sensor/dist/resolution/name-matcher.d.ts +99 -22
- package/sensor/dist/resolution/name-matcher.d.ts.map +1 -1
- package/sensor/dist/resolution/name-matcher.js +2220 -86
- package/sensor/dist/resolution/name-matcher.js.map +1 -1
- package/sensor/dist/resolution/next-router-synthesizer.d.ts +27 -0
- package/sensor/dist/resolution/next-router-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/next-router-synthesizer.js +113 -0
- package/sensor/dist/resolution/next-router-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/path-aliases.d.ts +6 -4
- package/sensor/dist/resolution/path-aliases.d.ts.map +1 -1
- package/sensor/dist/resolution/path-aliases.js +125 -17
- package/sensor/dist/resolution/path-aliases.js.map +1 -1
- package/sensor/dist/resolution/react-router-synthesizer.d.ts +33 -0
- package/sensor/dist/resolution/react-router-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/react-router-synthesizer.js +126 -0
- package/sensor/dist/resolution/react-router-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/resolver-pool.d.ts +2 -0
- package/sensor/dist/resolution/resolver-pool.d.ts.map +1 -1
- package/sensor/dist/resolution/resolver-pool.js +4 -0
- package/sensor/dist/resolution/resolver-pool.js.map +1 -1
- package/sensor/dist/resolution/strip-comments.d.ts +6 -0
- package/sensor/dist/resolution/strip-comments.d.ts.map +1 -1
- package/sensor/dist/resolution/strip-comments.js +58 -0
- package/sensor/dist/resolution/strip-comments.js.map +1 -1
- package/sensor/dist/resolution/sveltekit-synthesizer.d.ts +58 -0
- package/sensor/dist/resolution/sveltekit-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/sveltekit-synthesizer.js +173 -0
- package/sensor/dist/resolution/sveltekit-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/swift-type-visibility.d.ts +52 -0
- package/sensor/dist/resolution/swift-type-visibility.d.ts.map +1 -0
- package/sensor/dist/resolution/swift-type-visibility.js +328 -0
- package/sensor/dist/resolution/swift-type-visibility.js.map +1 -0
- package/sensor/dist/resolution/synth-utils.d.ts +26 -0
- package/sensor/dist/resolution/synth-utils.d.ts.map +1 -0
- package/sensor/dist/resolution/synth-utils.js +75 -0
- package/sensor/dist/resolution/synth-utils.js.map +1 -0
- package/sensor/dist/resolution/tanstack-router-synthesizer.d.ts +31 -0
- package/sensor/dist/resolution/tanstack-router-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/tanstack-router-synthesizer.js +114 -0
- package/sensor/dist/resolution/tanstack-router-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/tier-synthesizer.d.ts +54 -0
- package/sensor/dist/resolution/tier-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/tier-synthesizer.js +1294 -0
- package/sensor/dist/resolution/tier-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/types.d.ts +78 -2
- package/sensor/dist/resolution/types.d.ts.map +1 -1
- package/sensor/dist/resolution/types.js +64 -0
- package/sensor/dist/resolution/types.js.map +1 -1
- package/sensor/dist/resolution/vue-router-synthesizer.d.ts +30 -0
- package/sensor/dist/resolution/vue-router-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/vue-router-synthesizer.js +115 -0
- package/sensor/dist/resolution/vue-router-synthesizer.js.map +1 -0
- package/sensor/dist/search/identifier-segments.d.ts +10 -0
- package/sensor/dist/search/identifier-segments.d.ts.map +1 -1
- package/sensor/dist/search/identifier-segments.js +29 -0
- package/sensor/dist/search/identifier-segments.js.map +1 -1
- package/sensor/dist/search/query-paths.d.ts +106 -0
- package/sensor/dist/search/query-paths.d.ts.map +1 -0
- package/sensor/dist/search/query-paths.js +513 -0
- package/sensor/dist/search/query-paths.js.map +1 -0
- package/sensor/dist/search/query-utils.d.ts +22 -2
- package/sensor/dist/search/query-utils.d.ts.map +1 -1
- package/sensor/dist/search/query-utils.js +56 -16
- package/sensor/dist/search/query-utils.js.map +1 -1
- package/sensor/dist/sync/watch-policy.d.ts +14 -0
- package/sensor/dist/sync/watch-policy.d.ts.map +1 -1
- package/sensor/dist/sync/watch-policy.js +19 -0
- package/sensor/dist/sync/watch-policy.js.map +1 -1
- package/sensor/dist/sync/watcher.d.ts +74 -35
- package/sensor/dist/sync/watcher.d.ts.map +1 -1
- package/sensor/dist/sync/watcher.js +281 -99
- package/sensor/dist/sync/watcher.js.map +1 -1
- package/sensor/dist/telemetry/index.d.ts +4 -2
- package/sensor/dist/telemetry/index.d.ts.map +1 -1
- package/sensor/dist/telemetry/index.js +92 -41
- package/sensor/dist/telemetry/index.js.map +1 -1
- package/sensor/dist/types.d.ts +18 -2
- package/sensor/dist/types.d.ts.map +1 -1
- package/sensor/dist/types.js +2 -0
- package/sensor/dist/types.js.map +1 -1
- package/sensor/dist/ui-server/api/deadcode.d.ts +84 -0
- package/sensor/dist/ui-server/api/deadcode.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/deadcode.js +136 -0
- package/sensor/dist/ui-server/api/deadcode.js.map +1 -0
- package/sensor/dist/ui-server/api/effects.d.ts +94 -0
- package/sensor/dist/ui-server/api/effects.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/effects.js +527 -0
- package/sensor/dist/ui-server/api/effects.js.map +1 -0
- package/sensor/dist/ui-server/api/entrypoints.d.ts +92 -0
- package/sensor/dist/ui-server/api/entrypoints.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/entrypoints.js +361 -0
- package/sensor/dist/ui-server/api/entrypoints.js.map +1 -0
- package/sensor/dist/ui-server/api/events.d.ts +183 -0
- package/sensor/dist/ui-server/api/events.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/events.js +430 -0
- package/sensor/dist/ui-server/api/events.js.map +1 -0
- package/sensor/dist/ui-server/api/file.d.ts +66 -0
- package/sensor/dist/ui-server/api/file.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/file.js +235 -0
- package/sensor/dist/ui-server/api/file.js.map +1 -0
- package/sensor/dist/ui-server/api/filecode.d.ts +126 -0
- package/sensor/dist/ui-server/api/filecode.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/filecode.js +205 -0
- package/sensor/dist/ui-server/api/filecode.js.map +1 -0
- package/sensor/dist/ui-server/api/flow.d.ts +226 -0
- package/sensor/dist/ui-server/api/flow.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/flow.js +612 -0
- package/sensor/dist/ui-server/api/flow.js.map +1 -0
- package/sensor/dist/ui-server/api/hierarchy.d.ts +81 -0
- package/sensor/dist/ui-server/api/hierarchy.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/hierarchy.js +92 -0
- package/sensor/dist/ui-server/api/hierarchy.js.map +1 -0
- package/sensor/dist/ui-server/api/index.d.ts +90 -0
- package/sensor/dist/ui-server/api/index.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/index.js +332 -0
- package/sensor/dist/ui-server/api/index.js.map +1 -0
- package/sensor/dist/ui-server/api/map.d.ts +256 -0
- package/sensor/dist/ui-server/api/map.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/map.js +760 -0
- package/sensor/dist/ui-server/api/map.js.map +1 -0
- package/sensor/dist/ui-server/api/node.d.ts +81 -0
- package/sensor/dist/ui-server/api/node.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/node.js +388 -0
- package/sensor/dist/ui-server/api/node.js.map +1 -0
- package/sensor/dist/ui-server/api/nodes.d.ts +25 -0
- package/sensor/dist/ui-server/api/nodes.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/nodes.js +45 -0
- package/sensor/dist/ui-server/api/nodes.js.map +1 -0
- package/sensor/dist/ui-server/api/program.d.ts +139 -0
- package/sensor/dist/ui-server/api/program.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/program.js +315 -0
- package/sensor/dist/ui-server/api/program.js.map +1 -0
- package/sensor/dist/ui-server/api/respond.d.ts +76 -0
- package/sensor/dist/ui-server/api/respond.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/respond.js +186 -0
- package/sensor/dist/ui-server/api/respond.js.map +1 -0
- package/sensor/dist/ui-server/api/route-roots.d.ts +39 -0
- package/sensor/dist/ui-server/api/route-roots.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/route-roots.js +96 -0
- package/sensor/dist/ui-server/api/route-roots.js.map +1 -0
- package/sensor/dist/ui-server/api/routes.d.ts +59 -0
- package/sensor/dist/ui-server/api/routes.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/routes.js +108 -0
- package/sensor/dist/ui-server/api/routes.js.map +1 -0
- package/sensor/dist/ui-server/api/screens.d.ts +117 -0
- package/sensor/dist/ui-server/api/screens.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/screens.js +611 -0
- package/sensor/dist/ui-server/api/screens.js.map +1 -0
- package/sensor/dist/ui-server/api/search.d.ts +29 -0
- package/sensor/dist/ui-server/api/search.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/search.js +232 -0
- package/sensor/dist/ui-server/api/search.js.map +1 -0
- package/sensor/dist/ui-server/api/session.d.ts +52 -0
- package/sensor/dist/ui-server/api/session.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/session.js +196 -0
- package/sensor/dist/ui-server/api/session.js.map +1 -0
- package/sensor/dist/ui-server/api/source.d.ts +200 -0
- package/sensor/dist/ui-server/api/source.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/source.js +422 -0
- package/sensor/dist/ui-server/api/source.js.map +1 -0
- package/sensor/dist/ui-server/api/stats.d.ts +27 -0
- package/sensor/dist/ui-server/api/stats.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/stats.js +164 -0
- package/sensor/dist/ui-server/api/stats.js.map +1 -0
- package/sensor/dist/ui-server/api/steps.d.ts +274 -0
- package/sensor/dist/ui-server/api/steps.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/steps.js +1544 -0
- package/sensor/dist/ui-server/api/steps.js.map +1 -0
- package/sensor/dist/ui-server/api/trail-store.d.ts +142 -0
- package/sensor/dist/ui-server/api/trail-store.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/trail-store.js +325 -0
- package/sensor/dist/ui-server/api/trail-store.js.map +1 -0
- package/sensor/dist/ui-server/api/trails.d.ts +163 -0
- package/sensor/dist/ui-server/api/trails.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/trails.js +369 -0
- package/sensor/dist/ui-server/api/trails.js.map +1 -0
- package/sensor/dist/ui-server/api/when.d.ts +133 -0
- package/sensor/dist/ui-server/api/when.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/when.js +275 -0
- package/sensor/dist/ui-server/api/when.js.map +1 -0
- package/sensor/dist/ui-server/api/wire.d.ts +179 -0
- package/sensor/dist/ui-server/api/wire.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/wire.js +231 -0
- package/sensor/dist/ui-server/api/wire.js.map +1 -0
- package/sensor/dist/ui-server/assets.d.ts +40 -0
- package/sensor/dist/ui-server/assets.d.ts.map +1 -0
- package/sensor/dist/ui-server/assets.js +110 -0
- package/sensor/dist/ui-server/assets.js.map +1 -0
- package/sensor/dist/ui-server/constants.d.ts +32 -0
- package/sensor/dist/ui-server/constants.d.ts.map +1 -0
- package/sensor/dist/ui-server/constants.js +35 -0
- package/sensor/dist/ui-server/constants.js.map +1 -0
- package/sensor/dist/ui-server/highlight/index.d.ts +113 -0
- package/sensor/dist/ui-server/highlight/index.d.ts.map +1 -0
- package/sensor/dist/ui-server/highlight/index.js +307 -0
- package/sensor/dist/ui-server/highlight/index.js.map +1 -0
- package/sensor/dist/ui-server/highlight/languages.d.ts +36 -0
- package/sensor/dist/ui-server/highlight/languages.d.ts.map +1 -0
- package/sensor/dist/ui-server/highlight/languages.js +50 -0
- package/sensor/dist/ui-server/highlight/languages.js.map +1 -0
- package/sensor/dist/ui-server/index.d.ts +92 -0
- package/sensor/dist/ui-server/index.d.ts.map +1 -0
- package/sensor/dist/ui-server/index.js +399 -0
- package/sensor/dist/ui-server/index.js.map +1 -0
- package/sensor/dist/ui-server/open-browser.d.ts +31 -0
- package/sensor/dist/ui-server/open-browser.d.ts.map +1 -0
- package/sensor/dist/ui-server/open-browser.js +79 -0
- package/sensor/dist/ui-server/open-browser.js.map +1 -0
- package/sensor/dist/ui-server/security.d.ts +127 -0
- package/sensor/dist/ui-server/security.d.ts.map +1 -0
- package/sensor/dist/ui-server/security.js +332 -0
- package/sensor/dist/ui-server/security.js.map +1 -0
- package/sensor/dist/ui-server/static.d.ts +45 -0
- package/sensor/dist/ui-server/static.d.ts.map +1 -0
- package/sensor/dist/ui-server/static.js +165 -0
- package/sensor/dist/ui-server/static.js.map +1 -0
- package/sensor/dist/utils.d.ts +14 -2
- package/sensor/dist/utils.d.ts.map +1 -1
- package/sensor/dist/utils.js +25 -10
- package/sensor/dist/utils.js.map +1 -1
- package/src/sensor-adapter.mjs +5 -1
|
@@ -47,10 +47,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
47
47
|
exports.MCPEngine = void 0;
|
|
48
48
|
exports.parseDebounceEnv = parseDebounceEnv;
|
|
49
49
|
const os = __importStar(require("os"));
|
|
50
|
+
const path = __importStar(require("path"));
|
|
50
51
|
const directory_1 = require("../directory");
|
|
51
|
-
const sync_1 = require("../sync");
|
|
52
52
|
const tools_1 = require("./tools");
|
|
53
|
+
const wsl_shared_index_1 = require("../db/wsl-shared-index");
|
|
54
|
+
const writer_lock_1 = require("./writer-lock");
|
|
53
55
|
const query_pool_1 = require("./query-pool");
|
|
56
|
+
const project_lifecycle_1 = require("./project-lifecycle");
|
|
54
57
|
// Lazy-load the heavy LatticeSensor chain (sqlite + query/graph/context layers) OFF
|
|
55
58
|
// the MCP startup path. It's only needed once a tool actually opens a project —
|
|
56
59
|
// not to answer initialize/tools-list — so deferring it lets `serve --mcp` (and
|
|
@@ -58,6 +61,8 @@ const query_pool_1 = require("./query-pool");
|
|
|
58
61
|
// ~800ms, closing the "No such tool available" cold-start race that made headless
|
|
59
62
|
// agents flounder. require() is sync + cached on the CommonJS build.
|
|
60
63
|
const loadLatticeSensor = () => require('../index').default;
|
|
64
|
+
/** How often the per-tool-call retry may re-run the sub-project down-scan. */
|
|
65
|
+
const RETRY_SUBSCAN_TTL_MS = 5_000;
|
|
61
66
|
/**
|
|
62
67
|
* Shared MCP engine. Thread-safe in the sense that multiple sessions can
|
|
63
68
|
* call its methods concurrently — internally it serializes initialization
|
|
@@ -73,26 +78,73 @@ class MCPEngine {
|
|
|
73
78
|
projectPath = null;
|
|
74
79
|
// Set on first `ensureInitialized` so subsequent sessions don't redo work.
|
|
75
80
|
initPromise = null;
|
|
81
|
+
// Throttle for the retry path's sub-project down-scan (#1606) — the scan is
|
|
82
|
+
// bounded but shouldn't run on every tool call in the no-default state.
|
|
83
|
+
lastRetrySubScanAt = 0;
|
|
76
84
|
watcherStarted = false;
|
|
85
|
+
/** Set when this engine holds writer.pid (#1740). */
|
|
86
|
+
writerLockRoot = null;
|
|
87
|
+
// Retained synchronization ownership for each cached explicit project.
|
|
88
|
+
explicitProjects = new Map();
|
|
89
|
+
defaultLease = null;
|
|
77
90
|
opts;
|
|
78
91
|
closed = false;
|
|
79
|
-
|
|
80
|
-
//
|
|
92
|
+
stopPromise = null;
|
|
93
|
+
// Off-loop read-tool pool. Workers each hold their own WAL read connections;
|
|
94
|
+
// sessions without a default index open projects lazily via projectPath.
|
|
81
95
|
queryPool = null;
|
|
82
96
|
constructor(opts = {}) {
|
|
83
|
-
this.opts = { watch: opts.watch ?? true, queryPool: opts.queryPool ?? false };
|
|
97
|
+
this.opts = { readOnly: opts.readOnly ?? false, watch: opts.watch ?? true, queryPool: opts.queryPool ?? false, queryPoolDefaultMax: opts.queryPoolDefaultMax };
|
|
84
98
|
this.toolHandler = new tools_1.ToolHandler(null);
|
|
99
|
+
this.toolHandler.setProjectLifecycle({
|
|
100
|
+
open: (root, open) => {
|
|
101
|
+
// Explicit projects and read-only fallbacks also hold SQLite handles.
|
|
102
|
+
// Fence them before opening, just like the default daemon project.
|
|
103
|
+
(0, writer_lock_1.assertNoRebuild)(root);
|
|
104
|
+
if (this.opts.readOnly)
|
|
105
|
+
return loadLatticeSensor().openSync(root, { readOnly: true });
|
|
106
|
+
if (!this.opts.watch)
|
|
107
|
+
return open();
|
|
108
|
+
const lease = (0, project_lifecycle_1.acquireProject)(root, open, this.watchOptions());
|
|
109
|
+
this.explicitProjects.set(lease.cg, lease);
|
|
110
|
+
return lease.cg;
|
|
111
|
+
},
|
|
112
|
+
activate: (cg) => this.explicitProjects.get(cg)?.ready() ?? Promise.resolve(),
|
|
113
|
+
release: (cg) => this.releaseExplicitProject(cg),
|
|
114
|
+
});
|
|
115
|
+
// A tool call found the default project's database replaced on disk (a
|
|
116
|
+
// `lattice sensor index` rebuild) and reopened it (#1902). Reconcile the new
|
|
117
|
+
// file with the usual catch-up — `sync()` serializes on the index mutex,
|
|
118
|
+
// so it never overlaps an in-flight watcher sync. Only when this engine is
|
|
119
|
+
// watching, i.e. it is the project's writer: a read-only engine (writer
|
|
120
|
+
// lock held elsewhere, watching disabled) must not start writing.
|
|
121
|
+
this.toolHandler.setOnDatabaseReopened((cg) => {
|
|
122
|
+
if (cg === this.cg && cg.isWatching())
|
|
123
|
+
this.catchUpSync(true);
|
|
124
|
+
});
|
|
125
|
+
if (opts.writerLockRoot && !this.opts.readOnly) {
|
|
126
|
+
(0, writer_lock_1.assertNoRebuild)(opts.writerLockRoot);
|
|
127
|
+
const writer = (0, writer_lock_1.tryAcquireWriterLock)(opts.writerLockRoot, 'fallback');
|
|
128
|
+
if (writer.kind === 'taken') {
|
|
129
|
+
throw new Error((0, writer_lock_1.writerLockHeldMessage)(writer.existing, writer.pidPath));
|
|
130
|
+
}
|
|
131
|
+
this.writerLockRoot = opts.writerLockRoot;
|
|
132
|
+
}
|
|
85
133
|
}
|
|
86
134
|
/**
|
|
87
|
-
* Start the worker-thread query pool
|
|
88
|
-
*
|
|
135
|
+
* Start the worker-thread query pool after resolving the default project
|
|
136
|
+
* (which may be absent). Honors `LATTICE_SENSOR_QUERY_POOL_SIZE`; best-effort:
|
|
89
137
|
* if workers can't spawn on this platform the ToolHandler keeps serving reads
|
|
90
138
|
* in-process, so the pool can only help, never break, tool calls.
|
|
91
139
|
*/
|
|
92
140
|
maybeStartPool(root) {
|
|
93
|
-
if (!this.opts.queryPool || this.queryPool || this.closed)
|
|
141
|
+
if (this.opts.readOnly || !this.opts.queryPool || this.queryPool || this.closed)
|
|
94
142
|
return;
|
|
95
|
-
const
|
|
143
|
+
const envSize = process.env.LATTICE_SENSOR_QUERY_POOL_SIZE;
|
|
144
|
+
let size = (0, query_pool_1.resolvePoolSize)(envSize, os.cpus().length);
|
|
145
|
+
if ((envSize === undefined || envSize === '') && this.opts.queryPoolDefaultMax !== undefined) {
|
|
146
|
+
size = Math.min(size, this.opts.queryPoolDefaultMax);
|
|
147
|
+
}
|
|
96
148
|
if (size <= 0) {
|
|
97
149
|
process.stderr.write('[LatticeSensor MCP] Query pool disabled (LATTICE_SENSOR_QUERY_POOL_SIZE=0); serving reads in-process.\n');
|
|
98
150
|
return;
|
|
@@ -183,9 +235,23 @@ class MCPEngine {
|
|
|
183
235
|
if (this.toolHandler.hasDefaultLatticeSensor())
|
|
184
236
|
return;
|
|
185
237
|
this.toolHandler.setDefaultProjectHint(searchFrom);
|
|
186
|
-
|
|
238
|
+
// Same resolution `doInitialize` used: up-walk, then the bounded workspace
|
|
239
|
+
// down-scan (#1606) — this retry is exactly the path that picks up a
|
|
240
|
+
// project (root or child) `lattice sensor init`'d after the server started. The
|
|
241
|
+
// down-scan is throttled so the persistent no-default state doesn't pay a
|
|
242
|
+
// directory walk on every tool call; the up-walk always runs.
|
|
243
|
+
const scanDue = Date.now() - this.lastRetrySubScanAt >= RETRY_SUBSCAN_TTL_MS;
|
|
244
|
+
const res = (0, directory_1.resolveServerRoot)(searchFrom, { subprojectScan: scanDue });
|
|
245
|
+
if (scanDue) {
|
|
246
|
+
this.lastRetrySubScanAt = Date.now();
|
|
247
|
+
if (!res.root)
|
|
248
|
+
this.toolHandler.setKnownSubprojects(res.candidates, searchFrom);
|
|
249
|
+
}
|
|
250
|
+
const resolvedRoot = res.root;
|
|
187
251
|
if (!resolvedRoot)
|
|
188
252
|
return;
|
|
253
|
+
if (res.viaSubScan)
|
|
254
|
+
this.logSubprojectAdoption(searchFrom, resolvedRoot);
|
|
189
255
|
try {
|
|
190
256
|
// Close any previously failed instance to avoid leaking resources.
|
|
191
257
|
if (this.cg) {
|
|
@@ -195,7 +261,8 @@ class MCPEngine {
|
|
|
195
261
|
catch { /* ignore */ }
|
|
196
262
|
this.cg = null;
|
|
197
263
|
}
|
|
198
|
-
|
|
264
|
+
(0, writer_lock_1.assertNoRebuild)(resolvedRoot);
|
|
265
|
+
this.cg = loadLatticeSensor().openSync(resolvedRoot, { readOnly: this.opts.readOnly });
|
|
199
266
|
this.projectPath = resolvedRoot;
|
|
200
267
|
this.toolHandler.setDefaultLatticeSensor(this.cg);
|
|
201
268
|
this.startWatching();
|
|
@@ -203,15 +270,8 @@ class MCPEngine {
|
|
|
203
270
|
this.maybeStartPool(resolvedRoot);
|
|
204
271
|
}
|
|
205
272
|
catch (err) {
|
|
206
|
-
//
|
|
207
|
-
|
|
208
|
-
// succeeded above) but opening it failed — a genuine malfunction (DB
|
|
209
|
-
// open error, schema mismatch, integrity error, lock contention), not
|
|
210
|
-
// "no index". Record it so the next tool call fails closed instead of
|
|
211
|
-
// silently reading as NotIndexedError's success-shaped "run lattice sensor
|
|
212
|
-
// init" guidance. Still failing — caller will try again on the next
|
|
213
|
-
// tool call, which re-attempts the open (clearing this on success).
|
|
214
|
-
this.toolHandler.setOpenFailure(err instanceof Error ? err : new Error(String(err)));
|
|
273
|
+
// Still failing — caller will try again on the next tool call.
|
|
274
|
+
this.toolHandler.setDefaultOpenFailure(err instanceof wsl_shared_index_1.WslSharedIndexError ? err : null);
|
|
215
275
|
}
|
|
216
276
|
}
|
|
217
277
|
/**
|
|
@@ -219,9 +279,13 @@ class MCPEngine {
|
|
|
219
279
|
* and on direct-mode stop. Idempotent.
|
|
220
280
|
*/
|
|
221
281
|
stop() {
|
|
222
|
-
if (this.
|
|
223
|
-
return;
|
|
282
|
+
if (this.stopPromise)
|
|
283
|
+
return this.stopPromise;
|
|
224
284
|
this.closed = true;
|
|
285
|
+
if (!this.cg && !this.initPromise && this.explicitProjects.size === 0 && this.writerLockRoot) {
|
|
286
|
+
(0, writer_lock_1.releaseWriterLock)(this.writerLockRoot);
|
|
287
|
+
this.writerLockRoot = null;
|
|
288
|
+
}
|
|
225
289
|
// Detach + terminate the worker pool first so no tool call routes to a
|
|
226
290
|
// worker mid-teardown; outstanding pool calls resolve with graceful guidance.
|
|
227
291
|
this.toolHandler.setQueryPool(null);
|
|
@@ -229,60 +293,38 @@ class MCPEngine {
|
|
|
229
293
|
void this.queryPool.destroy();
|
|
230
294
|
this.queryPool = null;
|
|
231
295
|
}
|
|
232
|
-
this.toolHandler.closeAll();
|
|
233
|
-
|
|
234
|
-
|
|
296
|
+
const drained = this.toolHandler.closeAll();
|
|
297
|
+
this.stopPromise = drained.then(async () => {
|
|
298
|
+
if (this.initPromise)
|
|
299
|
+
await this.initPromise;
|
|
300
|
+
if (this.defaultLease) {
|
|
301
|
+
await this.defaultLease.release();
|
|
302
|
+
this.defaultLease = null;
|
|
303
|
+
this.writerLockRoot = null;
|
|
304
|
+
}
|
|
305
|
+
else if (this.cg) {
|
|
306
|
+
this.cg.unwatch();
|
|
307
|
+
while (this.cg.isIndexing())
|
|
308
|
+
await new Promise((resolve) => setTimeout(resolve, 25));
|
|
235
309
|
this.cg.close();
|
|
236
310
|
}
|
|
237
|
-
catch { /* ignore */ }
|
|
238
311
|
this.cg = null;
|
|
239
|
-
|
|
312
|
+
if (this.writerLockRoot)
|
|
313
|
+
(0, writer_lock_1.releaseWriterLock)(this.writerLockRoot);
|
|
314
|
+
this.writerLockRoot = null;
|
|
315
|
+
});
|
|
316
|
+
return this.stopPromise;
|
|
240
317
|
}
|
|
241
|
-
|
|
242
|
-
this.
|
|
243
|
-
|
|
244
|
-
if (
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
}
|
|
249
|
-
this.projectPath = resolvedRoot;
|
|
250
|
-
try {
|
|
251
|
-
this.cg = await loadLatticeSensor().open(resolvedRoot);
|
|
252
|
-
this.toolHandler.setDefaultLatticeSensor(this.cg);
|
|
253
|
-
this.startWatching();
|
|
254
|
-
this.catchUpSync();
|
|
255
|
-
this.maybeStartPool(resolvedRoot);
|
|
256
|
-
}
|
|
257
|
-
catch (err) {
|
|
258
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
259
|
-
process.stderr.write(`[LatticeSensor MCP] Failed to open project at ${resolvedRoot}: ${msg}\n`);
|
|
260
|
-
// ADR 0049 Decision 5②: `.lattice/sensor/` WAS found (findNearestLatticeSensorRoot
|
|
261
|
-
// succeeded above) but opening it threw — fail closed on the next tool
|
|
262
|
-
// call instead of letting `getLatticeSensor()`'s default-not-loaded branch
|
|
263
|
-
// read this as "no index" and hand back success-shaped guidance. The
|
|
264
|
-
// stderr line above stays for operators tailing logs; this is the
|
|
265
|
-
// machine-readable half, consumed by ToolHandler.getLatticeSensor().
|
|
266
|
-
this.toolHandler.setOpenFailure(err instanceof Error ? err : new Error(msg));
|
|
267
|
-
}
|
|
318
|
+
releaseExplicitProject(cg) {
|
|
319
|
+
const lease = this.explicitProjects.get(cg);
|
|
320
|
+
this.explicitProjects.delete(cg);
|
|
321
|
+
if (lease)
|
|
322
|
+
return lease.release();
|
|
323
|
+
else
|
|
324
|
+
cg.close();
|
|
268
325
|
}
|
|
269
|
-
/**
|
|
270
|
-
|
|
271
|
-
* watcher is per-engine, not per-session, which is why the daemon path
|
|
272
|
-
* collapses N inotify sets to one. The wording of the disabled-reason log
|
|
273
|
-
* exactly matches the prior in-tree implementation so log-driven dashboards
|
|
274
|
-
* keep working.
|
|
275
|
-
*/
|
|
276
|
-
startWatching() {
|
|
277
|
-
if (!this.cg || this.watcherStarted || !this.opts.watch)
|
|
278
|
-
return;
|
|
279
|
-
const disabledReason = (0, sync_1.watchDisabledReason)(this.projectPath ?? process.cwd());
|
|
280
|
-
if (disabledReason) {
|
|
281
|
-
process.stderr.write(`[LatticeSensor MCP] File watcher disabled — ${disabledReason}. ` +
|
|
282
|
-
`The graph will not auto-update; run \`lattice sensor sync . --json\` (or initialize via \`lattice sensor init . --json\`) to refresh.\n`);
|
|
283
|
-
this.watcherStarted = true;
|
|
284
|
-
return;
|
|
285
|
-
}
|
|
326
|
+
/** Watch options shared by the default project and explicit projects. */
|
|
327
|
+
watchOptions() {
|
|
286
328
|
// Optional override for the debounce window via env var (issue #403).
|
|
287
329
|
// Useful for workspaces with bursty writes (formatter-on-save chains,
|
|
288
330
|
// large generated outputs) where the 2s default fires too often. Clamped
|
|
@@ -292,7 +334,7 @@ class MCPEngine {
|
|
|
292
334
|
if (debounceMs !== undefined) {
|
|
293
335
|
process.stderr.write(`[LatticeSensor MCP] File watcher debounce: ${debounceMs}ms (LATTICE_SENSOR_WATCH_DEBOUNCE_MS)\n`);
|
|
294
336
|
}
|
|
295
|
-
|
|
337
|
+
return {
|
|
296
338
|
debounceMs,
|
|
297
339
|
onSyncComplete: (result) => {
|
|
298
340
|
if (result.filesChanged > 0) {
|
|
@@ -310,15 +352,78 @@ class MCPEngine {
|
|
|
310
352
|
// (`lattice sensor sync . --json` / git sync hooks).
|
|
311
353
|
process.stderr.write(`[LatticeSensor MCP] File watcher degraded — ${reason}\n`);
|
|
312
354
|
},
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
async doInitialize(searchFrom) {
|
|
358
|
+
this.toolHandler.setDefaultProjectHint(searchFrom);
|
|
359
|
+
// Up-walk first; when nothing is indexed at or above searchFrom, a bounded
|
|
360
|
+
// down-scan may adopt a SINGLE indexed sub-project as the default (#1606 —
|
|
361
|
+
// the workspace-container shape where only children are indexed). Zero or
|
|
362
|
+
// several candidates → no default project, but SAY so (#1607): the silent
|
|
363
|
+
// variant of this state read as "LatticeSensor is broken" and was diagnosable
|
|
364
|
+
// only by knowing to look for a missing ~/.lattice/sensor/daemons/ entry.
|
|
365
|
+
const res = (0, directory_1.resolveServerRoot)(searchFrom);
|
|
366
|
+
const resolvedRoot = res.root;
|
|
367
|
+
if (!resolvedRoot) {
|
|
368
|
+
// Sessions may still discover a project later via roots/list, and the
|
|
369
|
+
// per-call retry re-resolves — this state is recoverable, hence stderr
|
|
370
|
+
// (not a failure) + candidates surfaced through the tool-call error.
|
|
371
|
+
this.projectPath = searchFrom;
|
|
372
|
+
this.toolHandler.setKnownSubprojects(res.candidates, searchFrom);
|
|
373
|
+
process.stderr.write(`[LatticeSensor MCP] No .lattice/sensor/ at or above ${searchFrom}: no default project, live sync disabled until an indexed project is accessed via projectPath.\n`);
|
|
374
|
+
if (res.candidates.length > 0) {
|
|
375
|
+
const rels = res.candidates.map((c) => path.relative(searchFrom, c) || '.');
|
|
376
|
+
process.stderr.write(`[LatticeSensor MCP] Indexed sub-projects found: ${rels.join(', ')}. Pass \`projectPath\` per call, or launch with --path.\n`);
|
|
377
|
+
}
|
|
378
|
+
this.maybeStartPool(null);
|
|
379
|
+
return;
|
|
317
380
|
}
|
|
318
|
-
|
|
319
|
-
|
|
381
|
+
if (res.viaSubScan)
|
|
382
|
+
this.logSubprojectAdoption(searchFrom, resolvedRoot);
|
|
383
|
+
this.projectPath = resolvedRoot;
|
|
384
|
+
try {
|
|
385
|
+
(0, writer_lock_1.assertNoRebuild)(resolvedRoot);
|
|
386
|
+
const opened = await loadLatticeSensor().open(resolvedRoot, { readOnly: this.opts.readOnly });
|
|
387
|
+
if (this.closed) {
|
|
388
|
+
opened.close();
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
this.cg = opened;
|
|
392
|
+
this.toolHandler.setDefaultLatticeSensor(this.cg);
|
|
393
|
+
this.startWatching();
|
|
394
|
+
this.catchUpSync();
|
|
395
|
+
this.maybeStartPool(resolvedRoot);
|
|
396
|
+
}
|
|
397
|
+
catch (err) {
|
|
398
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
399
|
+
process.stderr.write(`[LatticeSensor MCP] Failed to open project at ${resolvedRoot}: ${msg}\n`);
|
|
400
|
+
// The agent otherwise hears only "no project loaded" (#995).
|
|
401
|
+
this.toolHandler.setDefaultOpenFailure(err instanceof wsl_shared_index_1.WslSharedIndexError ? err : null);
|
|
320
402
|
}
|
|
321
403
|
}
|
|
404
|
+
/** One stderr line when the default project came from the down-scan (#1606). */
|
|
405
|
+
logSubprojectAdoption(searchFrom, root) {
|
|
406
|
+
const rel = path.relative(searchFrom, root) || root;
|
|
407
|
+
process.stderr.write(`[LatticeSensor MCP] No .lattice/sensor/ at ${searchFrom}; adopted the single indexed sub-project ${rel} as the default project.\n`);
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Start file watching on the active LatticeSensor instance. Idempotent — the
|
|
411
|
+
* watcher is per-engine, not per-session, which is why the daemon path
|
|
412
|
+
* collapses N inotify sets to one. The wording of the disabled-reason log
|
|
413
|
+
* exactly matches the prior in-tree implementation so log-driven dashboards
|
|
414
|
+
* keep working.
|
|
415
|
+
*/
|
|
416
|
+
startWatching() {
|
|
417
|
+
if (this.opts.readOnly || !this.cg || this.watcherStarted || !this.opts.watch)
|
|
418
|
+
return;
|
|
419
|
+
const opened = this.cg;
|
|
420
|
+
this.defaultLease = (0, project_lifecycle_1.acquireProject)(opened.getProjectRoot(), () => opened, this.watchOptions());
|
|
421
|
+
this.cg = this.defaultLease.cg;
|
|
422
|
+
if (this.cg !== opened)
|
|
423
|
+
opened.close();
|
|
424
|
+
this.toolHandler.setDefaultLatticeSensor(this.cg);
|
|
425
|
+
this.watcherStarted = true;
|
|
426
|
+
}
|
|
322
427
|
/**
|
|
323
428
|
* Reconcile the index with the current filesystem once, right after open —
|
|
324
429
|
* catches edits, adds, deletes, and `git pull`/`checkout` changes made while
|
|
@@ -329,10 +434,16 @@ class MCPEngine {
|
|
|
329
434
|
* and the per-file staleness banner can't help because `getPendingFiles()`
|
|
330
435
|
* is populated by the watcher, not by catch-up).
|
|
331
436
|
*/
|
|
332
|
-
catchUpSync() {
|
|
437
|
+
catchUpSync(afterReopen = false) {
|
|
333
438
|
const cg = this.cg;
|
|
334
|
-
if (!cg)
|
|
439
|
+
if (!cg || this.opts.readOnly)
|
|
335
440
|
return;
|
|
441
|
+
// The lease's gate is the startup reconcile and stays settled once caught
|
|
442
|
+
// up; a database reopened after a rebuild (#1902) needs a sync of its own.
|
|
443
|
+
if (this.defaultLease && !afterReopen) {
|
|
444
|
+
this.toolHandler.setCatchUpGate(this.defaultLease.ready());
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
336
447
|
const p = cg
|
|
337
448
|
.sync()
|
|
338
449
|
.then((result) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/mcp/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/mcp/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-call source dedup for `lattice_sensor_explore` (CG-18).
|
|
3
|
+
*
|
|
4
|
+
* The session record (CG-17) knows what earlier calls already sent. This module
|
|
5
|
+
* is the algebra that turns that record into a decision for the call being
|
|
6
|
+
* rendered: of the line ranges this call WOULD emit, which does the agent
|
|
7
|
+
* already hold, and what is genuinely new.
|
|
8
|
+
*
|
|
9
|
+
* Three rules shape everything here, and all three come from the same place —
|
|
10
|
+
* an insufficient-feeling response is what sends an agent to Read, and one or
|
|
11
|
+
* two of those early in a session teach it to abandon lattice sensor entirely
|
|
12
|
+
* (CLAUDE.md):
|
|
13
|
+
*
|
|
14
|
+
* 1. **A pointer, never a bare omission.** Removed source is replaced by a
|
|
15
|
+
* back-reference naming the file, the symbols, and the line span, worded so
|
|
16
|
+
* it is unmistakable that the source was already delivered IN THIS
|
|
17
|
+
* CONVERSATION and is still current. Silence reads as "lattice sensor didn't
|
|
18
|
+
* find it".
|
|
19
|
+
* 2. **Only prove-it dedup.** A span is withheld only when the file's bytes
|
|
20
|
+
* are byte-identical to what was served (a content fingerprint, not an
|
|
21
|
+
* mtime and not the index's drift flag). An edit between calls means the
|
|
22
|
+
* agent's copy is wrong, so the source is re-emitted in full.
|
|
23
|
+
* 3. **Cut chunks, not slivers.** Only a covered run of at least
|
|
24
|
+
* {@link EXPLORE_DEDUP.MIN_COVERED_LINES} lines is worth replacing. Below
|
|
25
|
+
* that the pointer costs more than the source, and shattering a block into
|
|
26
|
+
* one-line fragments produces exactly the ragged output that reads as a
|
|
27
|
+
* failure. Everything not withheld is emitted — where the algebra is
|
|
28
|
+
* unsure, it re-serves.
|
|
29
|
+
*
|
|
30
|
+
* Which way to be wrong, restated for this layer: re-serving something the agent
|
|
31
|
+
* has is a few hundred wasted chars; withholding something it never saw is a
|
|
32
|
+
* Read. Every threshold below leans to the first.
|
|
33
|
+
*/
|
|
34
|
+
import type { ExploreLineRange, ExploreProjectState } from './explore-session-state';
|
|
35
|
+
export declare const EXPLORE_DEDUP: {
|
|
36
|
+
/**
|
|
37
|
+
* Shortest already-served run that may be replaced by a back-reference.
|
|
38
|
+
*
|
|
39
|
+
* Sized against what dedup is actually FOR — a later call re-serving a whole
|
|
40
|
+
* method or file it already sent. A shorter covered run is either a signature
|
|
41
|
+
* line in a skeleton render or the ±3 lines of context padding around a
|
|
42
|
+
* cluster, and swapping either for a pointer trades bytes for noise: the
|
|
43
|
+
* pointer sentence is itself ~140 chars, so under this length dedup would
|
|
44
|
+
* make the response BIGGER while making it read as full of holes.
|
|
45
|
+
*/
|
|
46
|
+
readonly MIN_COVERED_LINES: 8;
|
|
47
|
+
/**
|
|
48
|
+
* Below this many chars of NEW source, a file's remainder is folded into its
|
|
49
|
+
* back-reference instead of being fenced on its own.
|
|
50
|
+
*
|
|
51
|
+
* The shape this exists for, seen on the CG-17 fixture: a third call whose
|
|
52
|
+
* only unheld line was the file's trailing blank one, rendered as a code fence
|
|
53
|
+
* containing `228\t`. A fence holding two lines of nothing reads as a broken
|
|
54
|
+
* response, and reading as broken is the expensive failure — it is the thing
|
|
55
|
+
* that sends an agent to Read and keeps it there. So a remainder this small is
|
|
56
|
+
* dropped rather than shown. It is the one place this module withholds
|
|
57
|
+
* something the agent has not seen, and it is bounded to ~two lines that sit
|
|
58
|
+
* directly against source the agent does hold; the file is still named, with
|
|
59
|
+
* its symbols, so one follow-up explore fetches it whole.
|
|
60
|
+
*/
|
|
61
|
+
readonly MIN_DELTA_CHARS: 160;
|
|
62
|
+
/** Line spans named in one pointer before it summarises the rest. */
|
|
63
|
+
readonly MAX_SPANS_IN_POINTER: 4;
|
|
64
|
+
/** Symbols named in one pointer before it summarises the rest. */
|
|
65
|
+
readonly MAX_SYMBOLS_IN_POINTER: 5;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Cross-call source suppression is opt-in. An MCP connection is not a reliable
|
|
69
|
+
* conversation boundary: some hosts reuse it for subagents, and compaction can
|
|
70
|
+
* discard source while keeping the connection alive (#1620). Without a host-
|
|
71
|
+
* supplied context lifecycle, re-serving source is the only always-correct
|
|
72
|
+
* default. Read per call (not memoized) so tests and launchers can toggle it.
|
|
73
|
+
*/
|
|
74
|
+
export declare function exploreDedupEnabled(): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Identity of the bytes a call served for one file.
|
|
77
|
+
*
|
|
78
|
+
* This — not the index's drift flag — is what gates dedup. `isFileStaleOnDisk`
|
|
79
|
+
* answers "did the file change since the last INDEX SYNC", which is a different
|
|
80
|
+
* question with a different answer: two calls inside one drift window served the
|
|
81
|
+
* same current bytes (dedup is correct), while a file edited and re-synced
|
|
82
|
+
* between two calls is never "stale" and yet the agent's copy is now wrong
|
|
83
|
+
* (dedup would be actively harmful). Length is prefixed so a hash prefix
|
|
84
|
+
* collision cannot alias two files of different size.
|
|
85
|
+
*/
|
|
86
|
+
export declare function fileFingerprint(content: string): string;
|
|
87
|
+
/** Sort + merge overlapping/adjacent spans into the smallest equivalent set. */
|
|
88
|
+
export declare function mergeRanges(ranges: ReadonlyArray<ExploreLineRange>): ExploreLineRange[];
|
|
89
|
+
/** The parts of `range` that `served` covers. */
|
|
90
|
+
export declare function intersectRange(range: ExploreLineRange, served: ReadonlyArray<ExploreLineRange>): ExploreLineRange[];
|
|
91
|
+
/** The parts of `range` that `cut` does NOT cover. */
|
|
92
|
+
export declare function subtractRange(range: ExploreLineRange, cut: ReadonlyArray<ExploreLineRange>): ExploreLineRange[];
|
|
93
|
+
/** What one intended span becomes once the session's history is applied. */
|
|
94
|
+
export interface RangeDedup {
|
|
95
|
+
/** Spans to render now — everything not proven-already-held. */
|
|
96
|
+
emit: ExploreLineRange[];
|
|
97
|
+
/** Spans replaced by a back-reference. */
|
|
98
|
+
covered: ExploreLineRange[];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Split one intended span into what to emit and what to point back at.
|
|
102
|
+
*
|
|
103
|
+
* Covered runs shorter than {@link EXPLORE_DEDUP.MIN_COVERED_LINES} are left in
|
|
104
|
+
* the emit set on purpose (rule 3 above) — so a span the agent holds "almost
|
|
105
|
+
* all of" still comes back whole rather than as a stutter of fragments around
|
|
106
|
+
* pointers.
|
|
107
|
+
*/
|
|
108
|
+
export declare function dedupeRange(range: ExploreLineRange, served: ReadonlyArray<ExploreLineRange>, minCovered?: number): RangeDedup;
|
|
109
|
+
/**
|
|
110
|
+
* Every line span this session has already served for one file, but ONLY from
|
|
111
|
+
* calls that served the SAME BYTES.
|
|
112
|
+
*
|
|
113
|
+
* A record with no fingerprint is ignored rather than trusted: it cannot prove
|
|
114
|
+
* the agent's copy matches the file on disk now, and an unprovable match is
|
|
115
|
+
* exactly the case where re-serving is right.
|
|
116
|
+
*/
|
|
117
|
+
export declare function servedRangesForFile(prior: ExploreProjectState | null, filePath: string, fingerprint: string): ExploreLineRange[];
|
|
118
|
+
/** `L12`, `L12-40`, capped with a `+N more` tail. */
|
|
119
|
+
export declare function formatSpans(spans: ReadonlyArray<ExploreLineRange>): string;
|
|
120
|
+
/**
|
|
121
|
+
* The line that replaces withheld source.
|
|
122
|
+
*
|
|
123
|
+
* It has one job: make the agent reach into its own context instead of into
|
|
124
|
+
* Read. So it carries the three things needed to find the source it already has
|
|
125
|
+
* — path, symbols, line spans — plus the two facts that make using it safe:
|
|
126
|
+
* that it came from THIS conversation, and that the file has not changed since
|
|
127
|
+
* (which is checked, not asserted — see {@link fileFingerprint}). It never says
|
|
128
|
+
* "omitted", and it never steers to Read.
|
|
129
|
+
*/
|
|
130
|
+
export declare function formatBackReference(filePath: string, covered: ReadonlyArray<ExploreLineRange>, symbols: ReadonlyArray<string>, opts: {
|
|
131
|
+
partial: boolean;
|
|
132
|
+
}): string;
|
|
133
|
+
/** Symbol names whose definitions fall inside the withheld spans. */
|
|
134
|
+
export declare function symbolsInSpans(nodes: ReadonlyArray<{
|
|
135
|
+
name: string;
|
|
136
|
+
kind: string;
|
|
137
|
+
startLine: number;
|
|
138
|
+
endLine: number;
|
|
139
|
+
}>, spans: ReadonlyArray<ExploreLineRange>): string[];
|
|
140
|
+
//# sourceMappingURL=explore-dedup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explore-dedup.d.ts","sourceRoot":"","sources":["../../src/mcp/explore-dedup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAErF,eAAO,MAAM,aAAa;IACxB;;;;;;;;;OASG;;IAEH;;;;;;;;;;;;;OAaG;;IAEH,qEAAqE;;IAErE,kEAAkE;;CAE1D,CAAC;AAIX;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,EAAE,CAYvF;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,GACtC,gBAAgB,EAAE,CAQpB;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,aAAa,CAAC,gBAAgB,CAAC,GACnC,gBAAgB,EAAE,CAYpB;AAED,4EAA4E;AAC5E,MAAM,WAAW,UAAU;IACzB,gEAAgE;IAChE,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,0CAA0C;IAC1C,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,EACvC,UAAU,GAAE,MAAwC,GACnD,UAAU,CAKZ;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,mBAAmB,GAAG,IAAI,EACjC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,gBAAgB,EAAE,CAWpB;AAED,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAM1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,EACxC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAC9B,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACzB,MAAM,CAWR;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EACxF,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC,GACrC,MAAM,EAAE,CAWV"}
|