@lzehrung/codegraph 2.1.2 → 2.2.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 +2 -2
- package/codegraph-skill/codegraph/SKILL.md +21 -2
- package/dist/agent/explore.d.ts.map +1 -1
- package/dist/agent/explore.js +6 -1
- package/dist/agent/explore.js.map +1 -1
- package/dist/agent/handles.d.ts.map +1 -1
- package/dist/agent/handles.js +2 -8
- package/dist/agent/handles.js.map +1 -1
- package/dist/agent/orient.js +0 -16
- package/dist/agent/orient.js.map +1 -1
- package/dist/agent/query-index/store.d.ts +2 -0
- package/dist/agent/query-index/store.d.ts.map +1 -1
- package/dist/agent/query-index/store.js +4 -0
- package/dist/agent/query-index/store.js.map +1 -1
- package/dist/agent/session.js +3 -3
- package/dist/agent/session.js.map +1 -1
- package/dist/bin/cli.js +7303 -5659
- package/dist/bin/queryIndexWorker.js +357 -54
- package/dist/chunking/chunkSplit.js +0 -15
- package/dist/chunking/chunkSplit.js.map +1 -1
- package/dist/cli/commandCatalog.d.ts.map +1 -1
- package/dist/cli/commandCatalog.js +1 -0
- package/dist/cli/commandCatalog.js.map +1 -1
- package/dist/cli/commandTable.d.ts.map +1 -1
- package/dist/cli/commandTable.js +17 -0
- package/dist/cli/commandTable.js.map +1 -1
- package/dist/cli/compileCache.d.ts +5 -0
- package/dist/cli/compileCache.d.ts.map +1 -1
- package/dist/cli/compileCache.js +18 -0
- package/dist/cli/compileCache.js.map +1 -1
- package/dist/cli/context.d.ts.map +1 -1
- package/dist/cli/context.js +0 -1
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/help.d.ts +2 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +23 -2
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/indexPolicy.d.ts.map +1 -1
- package/dist/cli/indexPolicy.js +1 -0
- package/dist/cli/indexPolicy.js.map +1 -1
- package/dist/cli/inspect.d.ts.map +1 -1
- package/dist/cli/inspect.js +5 -2
- package/dist/cli/inspect.js.map +1 -1
- package/dist/cli/options.d.ts +1 -1
- package/dist/cli/options.d.ts.map +1 -1
- package/dist/cli/options.js +31 -1
- package/dist/cli/options.js.map +1 -1
- package/dist/cli/server.d.ts +59 -0
- package/dist/cli/server.d.ts.map +1 -0
- package/dist/cli/server.js +906 -0
- package/dist/cli/server.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/documentLinks.d.ts.map +1 -1
- package/dist/documentLinks.js +0 -1
- package/dist/documentLinks.js.map +1 -1
- package/dist/drift/snapshot.js +1 -1
- package/dist/drift/snapshot.js.map +1 -1
- package/dist/duplicates/scoring.d.ts.map +1 -1
- package/dist/duplicates/scoring.js.map +1 -1
- package/dist/duplicates/unitCache.d.ts.map +1 -1
- package/dist/duplicates/unitCache.js +1 -1
- package/dist/duplicates/unitCache.js.map +1 -1
- package/dist/duplicates/units.d.ts.map +1 -1
- package/dist/duplicates/units.js +2 -3
- package/dist/duplicates/units.js.map +1 -1
- package/dist/duplicates.d.ts.map +1 -1
- package/dist/duplicates.js +0 -6
- package/dist/duplicates.js.map +1 -1
- package/dist/graph-edge-collector.d.ts +0 -2
- package/dist/graph-edge-collector.d.ts.map +1 -1
- package/dist/graph-edge-collector.js +2 -4
- package/dist/graph-edge-collector.js.map +1 -1
- package/dist/graphs/edgeResolution.d.ts.map +1 -1
- package/dist/graphs/specifiers.d.ts +1 -1
- package/dist/graphs/specifiers.d.ts.map +1 -1
- package/dist/graphs/specifiers.js +1 -1
- package/dist/graphs/specifiers.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed.js +0 -1
- package/dist/graphs/symbol-graph-detailed.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/indexer/build-cache/module-cache.d.ts.map +1 -1
- package/dist/indexer/build-cache/module-cache.js +1 -1
- package/dist/indexer/build-cache/module-cache.js.map +1 -1
- package/dist/indexer/build-cache/options.d.ts.map +1 -1
- package/dist/indexer/build-cache/options.js +0 -2
- package/dist/indexer/build-cache/options.js.map +1 -1
- package/dist/indexer/build-cache/project-snapshot.d.ts +9 -1
- package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
- package/dist/indexer/build-cache/project-snapshot.js +1 -5
- package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
- package/dist/indexer/build-index.d.ts.map +1 -1
- package/dist/indexer/build-index.js +59 -44
- package/dist/indexer/build-index.js.map +1 -1
- package/dist/indexer/build-workers.d.ts +29 -2
- package/dist/indexer/build-workers.d.ts.map +1 -1
- package/dist/indexer/build-workers.js +54 -3
- package/dist/indexer/build-workers.js.map +1 -1
- package/dist/indexer/call-hierarchy.d.ts.map +1 -1
- package/dist/indexer/imports.d.ts +0 -3
- package/dist/indexer/imports.d.ts.map +1 -1
- package/dist/indexer/imports.js +1 -1
- package/dist/indexer/imports.js.map +1 -1
- package/dist/indexer/locals-and-exports.d.ts +2 -2
- package/dist/indexer/locals-and-exports.d.ts.map +1 -1
- package/dist/indexer/locals-and-exports.js +2 -3
- package/dist/indexer/locals-and-exports.js.map +1 -1
- package/dist/indexer/navigation-local.d.ts +2 -2
- package/dist/indexer/navigation-local.d.ts.map +1 -1
- package/dist/indexer/navigation-local.js +2 -2
- package/dist/indexer/navigation-local.js.map +1 -1
- package/dist/indexer/navigation-references.d.ts +1 -2
- package/dist/indexer/navigation-references.d.ts.map +1 -1
- package/dist/indexer/navigation-references.js +1 -1
- package/dist/indexer/navigation-references.js.map +1 -1
- package/dist/indexer/navigation.d.ts.map +1 -1
- package/dist/indexer/navigation.js +2 -4
- package/dist/indexer/navigation.js.map +1 -1
- package/dist/indexer/parse-context.d.ts +1 -4
- package/dist/indexer/parse-context.d.ts.map +1 -1
- package/dist/indexer/parse-context.js +11 -6
- package/dist/indexer/parse-context.js.map +1 -1
- package/dist/indexer/scope.d.ts +2 -2
- package/dist/indexer/scope.d.ts.map +1 -1
- package/dist/indexer/scope.js +1 -1
- package/dist/indexer/scope.js.map +1 -1
- package/dist/indexer.d.ts +3 -6
- package/dist/indexer.d.ts.map +1 -1
- package/dist/indexer.js +5 -8
- package/dist/indexer.js.map +1 -1
- package/dist/installer/registry.js +1 -27
- package/dist/installer/registry.js.map +1 -1
- package/dist/languages/definitions/c.d.ts.map +1 -1
- package/dist/languages/definitions/c.js +0 -1
- package/dist/languages/definitions/c.js.map +1 -1
- package/dist/languages/definitions/cFamily.d.ts +0 -1
- package/dist/languages/definitions/cFamily.d.ts.map +1 -1
- package/dist/languages/definitions/cFamily.js +0 -2
- package/dist/languages/definitions/cFamily.js.map +1 -1
- package/dist/languages/definitions/cpp.d.ts.map +1 -1
- package/dist/languages/definitions/cpp.js +0 -1
- package/dist/languages/definitions/cpp.js.map +1 -1
- package/dist/languages/definitions/csharp.d.ts.map +1 -1
- package/dist/languages/definitions/csharp.js +0 -2
- package/dist/languages/definitions/csharp.js.map +1 -1
- package/dist/languages/definitions/css.d.ts.map +1 -1
- package/dist/languages/definitions/css.js +0 -2
- package/dist/languages/definitions/css.js.map +1 -1
- package/dist/languages/definitions/go.d.ts.map +1 -1
- package/dist/languages/definitions/go.js +0 -2
- package/dist/languages/definitions/go.js.map +1 -1
- package/dist/languages/definitions/html.d.ts.map +1 -1
- package/dist/languages/definitions/html.js +0 -2
- package/dist/languages/definitions/html.js.map +1 -1
- package/dist/languages/definitions/htmlStub.d.ts.map +1 -1
- package/dist/languages/definitions/htmlStub.js +0 -2
- package/dist/languages/definitions/htmlStub.js.map +1 -1
- package/dist/languages/definitions/java.d.ts.map +1 -1
- package/dist/languages/definitions/java.js +0 -2
- package/dist/languages/definitions/java.js.map +1 -1
- package/dist/languages/definitions/javascript.d.ts.map +1 -1
- package/dist/languages/definitions/javascript.js +0 -2
- package/dist/languages/definitions/javascript.js.map +1 -1
- package/dist/languages/definitions/kotlin.d.ts.map +1 -1
- package/dist/languages/definitions/kotlin.js +0 -2
- package/dist/languages/definitions/kotlin.js.map +1 -1
- package/dist/languages/definitions/less.d.ts.map +1 -1
- package/dist/languages/definitions/less.js +0 -2
- package/dist/languages/definitions/less.js.map +1 -1
- package/dist/languages/definitions/php.d.ts.map +1 -1
- package/dist/languages/definitions/php.js +0 -2
- package/dist/languages/definitions/php.js.map +1 -1
- package/dist/languages/definitions/python.d.ts.map +1 -1
- package/dist/languages/definitions/python.js +0 -2
- package/dist/languages/definitions/python.js.map +1 -1
- package/dist/languages/definitions/ruby.d.ts.map +1 -1
- package/dist/languages/definitions/ruby.js +0 -2
- package/dist/languages/definitions/ruby.js.map +1 -1
- package/dist/languages/definitions/rust.d.ts.map +1 -1
- package/dist/languages/definitions/rust.js +0 -2
- package/dist/languages/definitions/rust.js.map +1 -1
- package/dist/languages/definitions/scss.d.ts.map +1 -1
- package/dist/languages/definitions/scss.js +0 -2
- package/dist/languages/definitions/scss.js.map +1 -1
- package/dist/languages/definitions/sql.d.ts.map +1 -1
- package/dist/languages/definitions/sql.js +0 -2
- package/dist/languages/definitions/sql.js.map +1 -1
- package/dist/languages/definitions/svelte.d.ts.map +1 -1
- package/dist/languages/definitions/svelte.js +0 -2
- package/dist/languages/definitions/svelte.js.map +1 -1
- package/dist/languages/definitions/swift.d.ts.map +1 -1
- package/dist/languages/definitions/swift.js +0 -2
- package/dist/languages/definitions/swift.js.map +1 -1
- package/dist/languages/definitions/typescript.d.ts.map +1 -1
- package/dist/languages/definitions/typescript.js +0 -3
- package/dist/languages/definitions/typescript.js.map +1 -1
- package/dist/languages/definitions/vue.d.ts.map +1 -1
- package/dist/languages/definitions/vue.js +0 -2
- package/dist/languages/definitions/vue.js.map +1 -1
- package/dist/languages/definitions/zig.d.ts.map +1 -1
- package/dist/languages/definitions/zig.js +0 -2
- package/dist/languages/definitions/zig.js.map +1 -1
- package/dist/languages/filePrep.d.ts +0 -2
- package/dist/languages/filePrep.d.ts.map +1 -1
- package/dist/languages/filePrep.js +0 -1
- package/dist/languages/filePrep.js.map +1 -1
- package/dist/languages/types.d.ts +19 -5
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages.d.ts +1 -3
- package/dist/languages.d.ts.map +1 -1
- package/dist/languages.js +0 -7
- package/dist/languages.js.map +1 -1
- package/dist/lifecycle/manifest.d.ts.map +1 -1
- package/dist/lifecycle/manifest.js +21 -4
- package/dist/lifecycle/manifest.js.map +1 -1
- package/dist/mcp/handlers.d.ts +275 -0
- package/dist/mcp/handlers.d.ts.map +1 -0
- package/dist/mcp/handlers.js +657 -0
- package/dist/mcp/handlers.js.map +1 -0
- package/dist/mcp/httpTransport.d.ts +14 -0
- package/dist/mcp/httpTransport.d.ts.map +1 -0
- package/dist/mcp/httpTransport.js +185 -0
- package/dist/mcp/httpTransport.js.map +1 -0
- package/dist/mcp/legacySessions.d.ts +38 -0
- package/dist/mcp/legacySessions.d.ts.map +1 -0
- package/dist/mcp/legacySessions.js +264 -0
- package/dist/mcp/legacySessions.js.map +1 -0
- package/dist/mcp/lifecycleHealth.d.ts +12 -0
- package/dist/mcp/lifecycleHealth.d.ts.map +1 -0
- package/dist/mcp/lifecycleHealth.js +37 -0
- package/dist/mcp/lifecycleHealth.js.map +1 -0
- package/dist/mcp/protocol.d.ts +35 -0
- package/dist/mcp/protocol.d.ts.map +1 -0
- package/dist/mcp/protocol.js +577 -0
- package/dist/mcp/protocol.js.map +1 -0
- package/dist/mcp/server.d.ts +9 -306
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +13 -1609
- package/dist/mcp/server.js.map +1 -1
- package/dist/native/bindingLoader.d.ts +27 -0
- package/dist/native/bindingLoader.d.ts.map +1 -1
- package/dist/native/bindingLoader.js +18 -1
- package/dist/native/bindingLoader.js.map +1 -1
- package/dist/native/contracts.d.ts +59 -12
- package/dist/native/contracts.d.ts.map +1 -1
- package/dist/native/execution.d.ts +10 -1
- package/dist/native/execution.d.ts.map +1 -1
- package/dist/native/execution.js +59 -3
- package/dist/native/execution.js.map +1 -1
- package/dist/native/projectedTree.d.ts +20 -5
- package/dist/native/projectedTree.d.ts.map +1 -1
- package/dist/native/projectedTree.js +100 -48
- package/dist/native/projectedTree.js.map +1 -1
- package/dist/native/runtime.d.ts +47 -1
- package/dist/native/runtime.d.ts.map +1 -1
- package/dist/native/runtime.js +151 -8
- package/dist/native/runtime.js.map +1 -1
- package/dist/native/runtimeCache.d.ts +92 -0
- package/dist/native/runtimeCache.d.ts.map +1 -1
- package/dist/native/runtimeCache.js +443 -13
- package/dist/native/runtimeCache.js.map +1 -1
- package/dist/native/treeShape.d.ts +21 -0
- package/dist/native/treeShape.d.ts.map +1 -0
- package/dist/native/treeShape.js +28 -0
- package/dist/native/treeShape.js.map +1 -0
- package/dist/native/treeSitterNative.d.ts +3 -3
- package/dist/native/treeSitterNative.d.ts.map +1 -1
- package/dist/native/treeSitterNative.js +2 -2
- package/dist/native/treeSitterNative.js.map +1 -1
- package/dist/presets.d.ts +7 -1
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +4 -0
- package/dist/presets.js.map +1 -1
- package/dist/review/deleted.js +2 -2
- package/dist/review/deleted.js.map +1 -1
- package/dist/review.js.map +1 -1
- package/dist/sql/extractFacts.d.ts.map +1 -1
- package/dist/sql/extractFacts.js +1 -1
- package/dist/sql/extractFacts.js.map +1 -1
- package/dist/util/lazySymbols.js +1 -1
- package/dist/util/lazySymbols.js.map +1 -1
- package/dist/util/resolution/jvm.js +1 -1
- package/dist/util/resolution/jvm.js.map +1 -1
- package/dist/util/resolution/php.d.ts.map +1 -1
- package/dist/util/resolution/php.js +0 -1
- package/dist/util/resolution/php.js.map +1 -1
- package/dist/util/resolution.d.ts.map +1 -1
- package/dist/util/resolution.js +5 -5
- package/dist/util/resolution.js.map +1 -1
- package/dist/worker/nativeExtractWorker.d.ts +10 -4
- package/dist/worker/nativeExtractWorker.d.ts.map +1 -1
- package/dist/worker/nativeExtractWorker.js +55 -3
- package/dist/worker/nativeExtractWorker.js.map +1 -1
- package/dist/worker/nativeWorkerPool.d.ts +4 -0
- package/dist/worker/nativeWorkerPool.d.ts.map +1 -1
- package/dist/worker/nativeWorkerPool.js +6 -1
- package/dist/worker/nativeWorkerPool.js.map +1 -1
- package/docs/mcp.md +16 -2
- package/package.json +3 -3
- package/dist/languages/definitions/loadLanguage.d.ts +0 -2
- package/dist/languages/definitions/loadLanguage.d.ts.map +0 -1
- package/dist/languages/definitions/loadLanguage.js +0 -2
- package/dist/languages/definitions/loadLanguage.js.map +0 -1
- package/dist/parserBackend.d.ts +0 -57
- package/dist/parserBackend.d.ts.map +0 -1
- package/dist/parserBackend.js +0 -33
- package/dist/parserBackend.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectedTree.d.ts","sourceRoot":"","sources":["../../src/native/projectedTree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"projectedTree.d.ts","sourceRoot":"","sources":["../../src/native/projectedTree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2FAA2F;IAC3F,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAC/D,OAAO,CAAC,YAAY,CAAkC;gBAE1C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB;IAYlD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IASrD,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI7C,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,iBAAiB;IAIvD,gGAAgG;IAChG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAMnD;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM;IAKjD,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,aAAa,IAAI,iBAAiB,CAOrC;IAED,IAAI,WAAW,IAAI,iBAAiB,CAOnC;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,MAAM,IAAI,mBAAmB,GAAG,IAAI,CAIvC;IAED,IAAI,aAAa,IAAI,mBAAmB,EAAE,CAGzC;IAED,IAAI,oBAAoB,IAAI,mBAAmB,GAAG,IAAI,CAGrD;IAED,IAAI,eAAe,IAAI,mBAAmB,GAAG,IAAI,CAGhD;IAED,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAQhD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAchE,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,mBAAmB;IAS7E,qBAAqB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,GAAG,mBAAmB;IAS5F,OAAO,CAAC,OAAO;IAWf,+FAA+F;IAC/F,OAAO,CAAC,UAAU;CAYnB"}
|
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
import { buildByteToStringIndexMap, stringIndexForByte, stringPositionForBytePoint, } from "./byteIndex.js";
|
|
2
|
+
/**
|
|
3
|
+
* Reads the native columnar projection (see `NativeSyntaxTree`) through the ordinary
|
|
4
|
+
* `SyntaxNodeLike` node API.
|
|
5
|
+
*
|
|
6
|
+
* Nodes are materialized lazily and memoized by id, so a walk that touches a handful
|
|
7
|
+
* of nodes allocates a handful of wrappers rather than one per node in the file, and
|
|
8
|
+
* repeated lookups of the same id return the same instance.
|
|
9
|
+
*/
|
|
2
10
|
export class ProjectedSyntaxTree {
|
|
3
11
|
source;
|
|
4
|
-
nodesById;
|
|
5
12
|
/** Shared byte-offset -> UTF-16 string-index map; reuse this instead of rebuilding one. */
|
|
6
13
|
byteIndexMap;
|
|
7
14
|
rootNode;
|
|
15
|
+
/** @internal Column storage; read through `ProjectedSyntaxNode`. */
|
|
16
|
+
columns;
|
|
17
|
+
nodes;
|
|
18
|
+
fieldNameIds;
|
|
8
19
|
constructor(source, tree) {
|
|
9
20
|
this.source = source;
|
|
10
21
|
this.byteIndexMap = buildByteToStringIndexMap(source);
|
|
11
|
-
this.
|
|
12
|
-
|
|
13
|
-
this.nodesById.set(node.id, new ProjectedSyntaxNode(this, node));
|
|
14
|
-
}
|
|
22
|
+
this.columns = tree;
|
|
23
|
+
this.nodes = new Array(tree.nodeCount);
|
|
15
24
|
const rootNode = this.nodeById(tree.rootId);
|
|
16
25
|
if (!rootNode) {
|
|
17
26
|
throw new Error("Projected syntax tree is missing the root node");
|
|
@@ -19,7 +28,14 @@ export class ProjectedSyntaxTree {
|
|
|
19
28
|
this.rootNode = rootNode;
|
|
20
29
|
}
|
|
21
30
|
nodeById(id) {
|
|
22
|
-
|
|
31
|
+
if (id < 0 || id >= this.columns.nodeCount)
|
|
32
|
+
return undefined;
|
|
33
|
+
const existing = this.nodes[id];
|
|
34
|
+
if (existing)
|
|
35
|
+
return existing;
|
|
36
|
+
const created = new ProjectedSyntaxNode(this, id);
|
|
37
|
+
this.nodes[id] = created;
|
|
38
|
+
return created;
|
|
23
39
|
}
|
|
24
40
|
stringIndexForByte(byteIndex) {
|
|
25
41
|
return stringIndexForByte(this.byteIndexMap, byteIndex);
|
|
@@ -27,80 +43,89 @@ export class ProjectedSyntaxTree {
|
|
|
27
43
|
positionForPoint(point) {
|
|
28
44
|
return stringPositionForBytePoint(this.byteIndexMap, point);
|
|
29
45
|
}
|
|
46
|
+
/** @internal Resolve an interned field name, or `undefined` when the grammar never emits it. */
|
|
47
|
+
fieldNameId(fieldName) {
|
|
48
|
+
if (!this.fieldNameIds) {
|
|
49
|
+
this.fieldNameIds = new Map(this.columns.fieldNames.map((name, index) => [name, index]));
|
|
50
|
+
}
|
|
51
|
+
return this.fieldNameIds.get(fieldName);
|
|
52
|
+
}
|
|
30
53
|
}
|
|
31
54
|
export class ProjectedSyntaxNode {
|
|
32
55
|
tree;
|
|
33
|
-
|
|
34
|
-
constructor(tree,
|
|
56
|
+
id;
|
|
57
|
+
constructor(tree, id) {
|
|
35
58
|
this.tree = tree;
|
|
36
|
-
this.
|
|
37
|
-
}
|
|
38
|
-
get id() {
|
|
39
|
-
return this.raw.id;
|
|
59
|
+
this.id = id;
|
|
40
60
|
}
|
|
41
61
|
get type() {
|
|
42
|
-
|
|
62
|
+
const columns = this.tree.columns;
|
|
63
|
+
return columns.kinds[columns.kindIds[this.id]];
|
|
43
64
|
}
|
|
44
65
|
get startIndex() {
|
|
45
|
-
return this.tree.stringIndexForByte(this.
|
|
66
|
+
return this.tree.stringIndexForByte(this.tree.columns.startIndex[this.id]);
|
|
46
67
|
}
|
|
47
68
|
get endIndex() {
|
|
48
|
-
return this.tree.stringIndexForByte(this.
|
|
69
|
+
return this.tree.stringIndexForByte(this.tree.columns.endIndex[this.id]);
|
|
49
70
|
}
|
|
50
71
|
get startPosition() {
|
|
51
|
-
|
|
72
|
+
const columns = this.tree.columns;
|
|
73
|
+
return this.tree.positionForPoint({
|
|
74
|
+
row: columns.startRow[this.id],
|
|
75
|
+
column: columns.startColumn[this.id],
|
|
76
|
+
index: columns.startIndex[this.id],
|
|
77
|
+
});
|
|
52
78
|
}
|
|
53
79
|
get endPosition() {
|
|
54
|
-
|
|
80
|
+
const columns = this.tree.columns;
|
|
81
|
+
return this.tree.positionForPoint({
|
|
82
|
+
row: columns.endRow[this.id],
|
|
83
|
+
column: columns.endColumn[this.id],
|
|
84
|
+
index: columns.endIndex[this.id],
|
|
85
|
+
});
|
|
55
86
|
}
|
|
56
87
|
get text() {
|
|
57
88
|
return this.tree.source.slice(this.startIndex, this.endIndex);
|
|
58
89
|
}
|
|
59
90
|
get parent() {
|
|
60
|
-
|
|
91
|
+
const parentId = this.tree.columns.parentIds[this.id];
|
|
92
|
+
if (parentId < 0)
|
|
61
93
|
return null;
|
|
62
|
-
return this.tree.nodeById(
|
|
94
|
+
return this.tree.nodeById(parentId) ?? null;
|
|
63
95
|
}
|
|
64
96
|
get namedChildren() {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return child ? [child] : [];
|
|
68
|
-
});
|
|
97
|
+
const columns = this.tree.columns;
|
|
98
|
+
return this.collect(columns.namedChildIds, columns.namedChildOffsets);
|
|
69
99
|
}
|
|
70
100
|
get previousNamedSibling() {
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
return null;
|
|
74
|
-
const siblings = parent.namedChildren;
|
|
75
|
-
const currentIndex = siblings.findIndex((node) => node.id === this.id);
|
|
76
|
-
if (currentIndex <= 0)
|
|
77
|
-
return null;
|
|
78
|
-
return siblings[currentIndex - 1] ?? null;
|
|
101
|
+
const columns = this.tree.columns;
|
|
102
|
+
return this.previousIn(columns.namedChildIds, columns.namedChildOffsets);
|
|
79
103
|
}
|
|
80
104
|
get previousSibling() {
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
return null;
|
|
84
|
-
const siblings = parent.raw.childIds.flatMap((id) => {
|
|
85
|
-
const sibling = this.tree.nodeById(id);
|
|
86
|
-
return sibling ? [sibling] : [];
|
|
87
|
-
});
|
|
88
|
-
const currentIndex = siblings.findIndex((node) => node.id === this.id);
|
|
89
|
-
if (currentIndex <= 0)
|
|
90
|
-
return null;
|
|
91
|
-
return siblings[currentIndex - 1] ?? null;
|
|
105
|
+
const columns = this.tree.columns;
|
|
106
|
+
return this.previousIn(columns.childIds, columns.childOffsets);
|
|
92
107
|
}
|
|
93
108
|
child(index) {
|
|
94
|
-
const
|
|
95
|
-
|
|
109
|
+
const columns = this.tree.columns;
|
|
110
|
+
const start = columns.childOffsets[this.id];
|
|
111
|
+
const end = columns.childOffsets[this.id + 1];
|
|
112
|
+
if (index < 0 || index >= end - start)
|
|
96
113
|
return null;
|
|
97
|
-
return this.tree.nodeById(
|
|
114
|
+
return this.tree.nodeById(columns.childIds[start + index]) ?? null;
|
|
98
115
|
}
|
|
99
116
|
childForFieldName(fieldName) {
|
|
100
|
-
const
|
|
101
|
-
if (
|
|
117
|
+
const fieldNameId = this.tree.fieldNameId(fieldName);
|
|
118
|
+
if (fieldNameId === undefined)
|
|
102
119
|
return null;
|
|
103
|
-
|
|
120
|
+
const columns = this.tree.columns;
|
|
121
|
+
const start = columns.childOffsets[this.id];
|
|
122
|
+
const end = columns.childOffsets[this.id + 1];
|
|
123
|
+
for (let slot = start; slot < end; slot += 1) {
|
|
124
|
+
if (columns.childFieldNameIds[slot] === fieldNameId) {
|
|
125
|
+
return this.tree.nodeById(columns.childIds[slot]) ?? null;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return null;
|
|
104
129
|
}
|
|
105
130
|
descendantForIndex(startIndex, endIndex) {
|
|
106
131
|
for (const child of this.namedChildren) {
|
|
@@ -118,6 +143,33 @@ export class ProjectedSyntaxNode {
|
|
|
118
143
|
}
|
|
119
144
|
return this;
|
|
120
145
|
}
|
|
146
|
+
collect(ids, offsets) {
|
|
147
|
+
const start = offsets[this.id];
|
|
148
|
+
const end = offsets[this.id + 1];
|
|
149
|
+
const out = [];
|
|
150
|
+
for (let slot = start; slot < end; slot += 1) {
|
|
151
|
+
const node = this.tree.nodeById(ids[slot]);
|
|
152
|
+
if (node)
|
|
153
|
+
out.push(node);
|
|
154
|
+
}
|
|
155
|
+
return out;
|
|
156
|
+
}
|
|
157
|
+
/** Find the previous sibling in the parent's child list without materializing the siblings. */
|
|
158
|
+
previousIn(ids, offsets) {
|
|
159
|
+
const parentId = this.tree.columns.parentIds[this.id];
|
|
160
|
+
if (parentId < 0)
|
|
161
|
+
return null;
|
|
162
|
+
const start = offsets[parentId];
|
|
163
|
+
const end = offsets[parentId + 1];
|
|
164
|
+
for (let slot = start; slot < end; slot += 1) {
|
|
165
|
+
if (ids[slot] !== this.id)
|
|
166
|
+
continue;
|
|
167
|
+
if (slot === start)
|
|
168
|
+
return null;
|
|
169
|
+
return this.tree.nodeById(ids[slot - 1]) ?? null;
|
|
170
|
+
}
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
121
173
|
}
|
|
122
174
|
function comparePosition(left, right) {
|
|
123
175
|
if (left.row !== right.row) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectedTree.js","sourceRoot":"","sources":["../../src/native/projectedTree.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,0BAA0B,GAE3B,MAAM,gBAAgB,CAAC;AAOxB,MAAM,OAAO,mBAAmB;IACrB,MAAM,CAAS;
|
|
1
|
+
{"version":3,"file":"projectedTree.js","sourceRoot":"","sources":["../../src/native/projectedTree.ts"],"names":[],"mappings":"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"}
|
package/dist/native/runtime.d.ts
CHANGED
|
@@ -1,14 +1,60 @@
|
|
|
1
|
-
import type { NativeBindingOrigin, NativeBindingState, NativeRuntimeMode } from "./contracts.js";
|
|
1
|
+
import type { NativeBindingOrigin, NativeBindingState, NativeRuntimeMode, NativeWorkerBindingHandoff } from "./contracts.js";
|
|
2
2
|
export declare function __resetNativeTreeSitterBindingForTests(): void;
|
|
3
3
|
export declare function isNativeTreeSitterDisabledByEnv(env?: NodeJS.ProcessEnv): boolean;
|
|
4
4
|
export declare function normalizeNativeRuntimeMode(mode?: NativeRuntimeMode): NativeRuntimeMode;
|
|
5
5
|
export declare function loadBinding(): NativeBindingState;
|
|
6
6
|
export declare function resolveNativeBindingState(mode?: NativeRuntimeMode, env?: NodeJS.ProcessEnv): NativeBindingState;
|
|
7
|
+
/**
|
|
8
|
+
* The binding-derived half of the runtime fingerprint: everything the serializer reads that a
|
|
9
|
+
* full addon load would otherwise be needed to obtain.
|
|
10
|
+
*/
|
|
11
|
+
export type NativeRuntimeIdentity = {
|
|
12
|
+
available: boolean;
|
|
13
|
+
supportedLanguageIds: string[];
|
|
14
|
+
origin: NativeBindingOrigin | undefined;
|
|
15
|
+
/** Cache-only deadline; omitted for identities obtained from a loaded binding. */
|
|
16
|
+
cacheIdentityRevalidateAt?: number | undefined;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Takes the binding-derived facts rather than a NativeBindingState, because the cache fast path
|
|
20
|
+
* below reconstructs those facts from a recorded identity and has no binding to hand.
|
|
21
|
+
*/
|
|
22
|
+
export declare function serializeNativeRuntimeFingerprint(requestedMode: NativeRuntimeMode, envDisabled: boolean, identity: NativeRuntimeIdentity): string;
|
|
23
|
+
/**
|
|
24
|
+
* Rebuild the binding-derived half of the fingerprint from a recorded cache identity, without
|
|
25
|
+
* mapping the addon.
|
|
26
|
+
*
|
|
27
|
+
* Every caller of getNativeRuntimeFingerprint reaches it to decide whether an on-disk index is
|
|
28
|
+
* still valid, which is why a command that only reads a warm cache used to pay a full native
|
|
29
|
+
* load to prove it did not need one. A recorded identity supplies the two things the load was
|
|
30
|
+
* for - the supported language list and the binding origin - and stores the origin whole, so
|
|
31
|
+
* the string produced here is the same one a load produces.
|
|
32
|
+
*
|
|
33
|
+
* Returns undefined whenever anything is unproven: a workspace checkout (which resolves its own
|
|
34
|
+
* binary and never populates the cache), a platform without the runtime cache, an unresolvable
|
|
35
|
+
* platform package, or no identity record that still matches the files on disk.
|
|
36
|
+
*/
|
|
37
|
+
export type CachedRuntimeIdentityOptions = {
|
|
38
|
+
/** Injected in tests; the runtime cache exists only on Windows. */
|
|
39
|
+
platform?: NodeJS.Platform | undefined;
|
|
40
|
+
arch?: string | undefined;
|
|
41
|
+
localPackageRoot?: string | undefined;
|
|
42
|
+
resolveFn?: ((specifier: string) => string) | undefined;
|
|
43
|
+
cacheRoot?: string | undefined;
|
|
44
|
+
now?: number | undefined;
|
|
45
|
+
};
|
|
46
|
+
export declare function resolveCachedRuntimeIdentity(options?: CachedRuntimeIdentityOptions): NativeRuntimeIdentity | undefined;
|
|
7
47
|
export declare function getNativeRuntimeFingerprint(mode?: NativeRuntimeMode, env?: NodeJS.ProcessEnv): string;
|
|
8
48
|
export declare function isNativeTreeSitterAvailable(mode?: NativeRuntimeMode): boolean;
|
|
9
49
|
export declare function getNativeTreeSitterLoadError(mode?: NativeRuntimeMode): unknown;
|
|
10
50
|
export declare function getNativeBindingOrigin(): NativeBindingOrigin | undefined;
|
|
11
51
|
export declare function getCurrentNativeBindingOrigin(): NativeBindingOrigin | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* The resolved addon path for a binding this process has already loaded, for handing to worker
|
|
54
|
+
* threads. Undefined unless a load succeeded, so a worker is never pointed at a path that did
|
|
55
|
+
* not work here.
|
|
56
|
+
*/
|
|
57
|
+
export declare function getNativeWorkerBindingHandoff(): NativeWorkerBindingHandoff | undefined;
|
|
12
58
|
export declare function getNativeTreeSitterSupportedLanguageIds(mode?: NativeRuntimeMode): string[];
|
|
13
59
|
export declare function isNativeRequiredUnavailableError(error: unknown): boolean;
|
|
14
60
|
export declare function throwIfNativeRequiredUnavailable(mode: NativeRuntimeMode | undefined, state: NativeBindingState): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/native/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/native/runtime.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAEV,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC3B,MAAM,gBAAgB,CAAC;AAsCxB,wBAAgB,sCAAsC,IAAI,IAAI,CAI7D;AAED,wBAAgB,+BAA+B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAO7F;AAED,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAEtF;AAED,wBAAgB,WAAW,IAAI,kBAAkB,CA2ChD;AAED,wBAAgB,yBAAyB,CACvC,IAAI,CAAC,EAAE,iBAAiB,EACxB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,kBAAkB,CAepB;AACD;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACxC,kFAAkF;IAClF,yBAAyB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD,CAAC;AAqCF;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,aAAa,EAAE,iBAAiB,EAChC,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,CAuBR;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IACxD,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,4BAAiC,GACzC,qBAAqB,GAAG,SAAS,CA8CnC;AAED,wBAAgB,2BAA2B,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAyDlH;AAED,wBAAgB,2BAA2B,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAE7E;AAED,wBAAgB,4BAA4B,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAG9E;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,GAAG,SAAS,CAExE;AAED,wBAAgB,6BAA6B,IAAI,mBAAmB,GAAG,SAAS,CAE/E;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,0BAA0B,GAAG,SAAS,CAKtF;AAED,wBAAgB,uCAAuC,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAG1F;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAExE;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAIrH;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAIvF;AAED,wBAAgB,gCAAgC,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAGtG"}
|
package/dist/native/runtime.js
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
1
2
|
import path from "node:path";
|
|
2
3
|
import { createRequire } from "node:module";
|
|
3
4
|
import { fileURLToPath } from "node:url";
|
|
4
5
|
import { stringifyUnknown } from "../util/ast.js";
|
|
5
|
-
import { loadNativeBinding } from "./bindingLoader.js";
|
|
6
|
+
import { currentNativeTargetSuffix, findLocalNativeBinary, loadNativeBinding, nativeTargetSuffixFor, readPlatformPackage, } from "./bindingLoader.js";
|
|
7
|
+
import { lookupNativeRuntimeCacheEntry, recordNativeRuntimeCacheIdentity } from "./runtimeCache.js";
|
|
6
8
|
const require = createRequire(import.meta.url);
|
|
7
9
|
const localNativePackageRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../packages/codegraph-native");
|
|
8
10
|
const NATIVE_REQUIRED_ERROR_PREFIX = "native tree-sitter required by explicit option but unavailable";
|
|
9
11
|
let bindingState;
|
|
10
12
|
let loadedRuntimeFingerprint;
|
|
11
13
|
const disabledRuntimeFingerprints = new Map();
|
|
14
|
+
const cachedRuntimeFingerprints = new Map();
|
|
15
|
+
const cachedRuntimeIdentityValidations = new WeakMap();
|
|
12
16
|
export function __resetNativeTreeSitterBindingForTests() {
|
|
13
17
|
bindingState = undefined;
|
|
14
18
|
loadedRuntimeFingerprint = undefined;
|
|
19
|
+
cachedRuntimeFingerprints.clear();
|
|
15
20
|
}
|
|
16
21
|
export function isNativeTreeSitterDisabledByEnv(env = process.env) {
|
|
17
22
|
const rawValue = env.CODEGRAPH_DISABLE_NATIVE;
|
|
@@ -27,6 +32,7 @@ export function normalizeNativeRuntimeMode(mode) {
|
|
|
27
32
|
export function loadBinding() {
|
|
28
33
|
if (bindingState)
|
|
29
34
|
return bindingState;
|
|
35
|
+
cachedRuntimeFingerprints.clear();
|
|
30
36
|
const loaded = loadNativeBinding({
|
|
31
37
|
packageName: "@lzehrung/codegraph-native",
|
|
32
38
|
localPackageRoot: localNativePackageRoot,
|
|
@@ -34,12 +40,31 @@ export function loadBinding() {
|
|
|
34
40
|
resolveFn: require.resolve,
|
|
35
41
|
});
|
|
36
42
|
if (loaded.binding) {
|
|
43
|
+
const supportedLanguageIds = new Set(loaded.binding.supportedLanguageIds());
|
|
37
44
|
bindingState = {
|
|
38
45
|
loaded: true,
|
|
39
46
|
binding: loaded.binding,
|
|
40
|
-
supportedLanguageIds
|
|
47
|
+
supportedLanguageIds,
|
|
41
48
|
origin: loaded.origin,
|
|
42
49
|
};
|
|
50
|
+
// Now, and only now, every fact a later process needs to skip this work is known: the files
|
|
51
|
+
// were hashed and verified, the addon loaded, and it reported its languages. Recording only
|
|
52
|
+
// a verified load keeps the re-verification TTL honest - a fast-path hit must not renew it.
|
|
53
|
+
if (loaded.cacheEntry?.verified) {
|
|
54
|
+
recordNativeRuntimeCacheIdentity({
|
|
55
|
+
sourcePath: loaded.cacheEntry.sourcePath,
|
|
56
|
+
loadedPath: loaded.cacheEntry.loadedPath,
|
|
57
|
+
cacheKey: loaded.cacheEntry.cacheKey,
|
|
58
|
+
sha256: loaded.cacheEntry.sha256,
|
|
59
|
+
sourceSize: loaded.cacheEntry.sourceSize,
|
|
60
|
+
sourceMtimeMs: loaded.cacheEntry.sourceMtimeMs,
|
|
61
|
+
cachedSize: loaded.cacheEntry.cachedSize,
|
|
62
|
+
cachedMtimeMs: loaded.cacheEntry.cachedMtimeMs,
|
|
63
|
+
verifiedAt: new Date().toISOString(),
|
|
64
|
+
supportedLanguageIds: Array.from(supportedLanguageIds).sort(),
|
|
65
|
+
origin: loaded.origin,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
43
68
|
return bindingState;
|
|
44
69
|
}
|
|
45
70
|
bindingState = {
|
|
@@ -65,14 +90,48 @@ export function resolveNativeBindingState(mode, env = process.env) {
|
|
|
65
90
|
}
|
|
66
91
|
return loadBinding();
|
|
67
92
|
}
|
|
68
|
-
function
|
|
69
|
-
|
|
70
|
-
|
|
93
|
+
function identityFromState(state) {
|
|
94
|
+
return {
|
|
95
|
+
available: state.loaded,
|
|
96
|
+
supportedLanguageIds: state.loaded ? Array.from(state.supportedLanguageIds).sort() : [],
|
|
97
|
+
origin: state.origin,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
function cacheFingerprintFilesMatch(validation) {
|
|
101
|
+
try {
|
|
102
|
+
const sourcePath = fs.realpathSync.native(validation.sourcePath);
|
|
103
|
+
if (sourcePath !== validation.sourcePath)
|
|
104
|
+
return false;
|
|
105
|
+
const sourceStats = fs.statSync(sourcePath);
|
|
106
|
+
if (!sourceStats.isFile() ||
|
|
107
|
+
sourceStats.size !== validation.sourceSize ||
|
|
108
|
+
sourceStats.mtimeMs !== validation.sourceMtimeMs) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
const loadedPath = fs.realpathSync.native(validation.loadedPath);
|
|
112
|
+
if (loadedPath !== validation.loadedPath)
|
|
113
|
+
return false;
|
|
114
|
+
const cachedStats = fs.lstatSync(loadedPath);
|
|
115
|
+
return (cachedStats.isFile() &&
|
|
116
|
+
!cachedStats.isSymbolicLink() &&
|
|
117
|
+
cachedStats.size === validation.cachedSize &&
|
|
118
|
+
cachedStats.mtimeMs === validation.cachedMtimeMs);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Takes the binding-derived facts rather than a NativeBindingState, because the cache fast path
|
|
126
|
+
* below reconstructs those facts from a recorded identity and has no binding to hand.
|
|
127
|
+
*/
|
|
128
|
+
export function serializeNativeRuntimeFingerprint(requestedMode, envDisabled, identity) {
|
|
129
|
+
const { available, supportedLanguageIds, origin } = identity;
|
|
71
130
|
return JSON.stringify({
|
|
72
131
|
version: 1,
|
|
73
132
|
requestedMode,
|
|
74
133
|
envDisabled,
|
|
75
|
-
available
|
|
134
|
+
available,
|
|
76
135
|
supportedLanguageIds,
|
|
77
136
|
...(origin
|
|
78
137
|
? {
|
|
@@ -90,6 +149,52 @@ function serializeNativeRuntimeFingerprint(requestedMode, envDisabled, state) {
|
|
|
90
149
|
: {}),
|
|
91
150
|
});
|
|
92
151
|
}
|
|
152
|
+
export function resolveCachedRuntimeIdentity(options = {}) {
|
|
153
|
+
// A workspace binary wins in loadNativeBinding, so its fingerprint must not be answered from
|
|
154
|
+
// a cache entry describing the installed package.
|
|
155
|
+
if (findLocalNativeBinary(options.localPackageRoot ?? localNativePackageRoot))
|
|
156
|
+
return undefined;
|
|
157
|
+
if ((options.platform ?? process.platform) !== "win32")
|
|
158
|
+
return undefined;
|
|
159
|
+
// currentNativeTargetSuffix reads the real process; when a platform is injected the suffix has
|
|
160
|
+
// to be derived from it, or a Linux test box would look for its own target under a win32 root.
|
|
161
|
+
const target = options.platform
|
|
162
|
+
? nativeTargetSuffixFor(options.platform, options.arch ?? process.arch)
|
|
163
|
+
: currentNativeTargetSuffix();
|
|
164
|
+
if (!target)
|
|
165
|
+
return undefined;
|
|
166
|
+
try {
|
|
167
|
+
const platformPackage = readPlatformPackage("@lzehrung/codegraph-native", target, options.resolveFn ?? require.resolve);
|
|
168
|
+
const hit = lookupNativeRuntimeCacheEntry({
|
|
169
|
+
sourcePath: platformPackage.sourcePath,
|
|
170
|
+
packageName: `@lzehrung/codegraph-native-${target}`,
|
|
171
|
+
packageVersion: platformPackage.packageVersion,
|
|
172
|
+
target,
|
|
173
|
+
...(options.cacheRoot !== undefined ? { cacheRoot: options.cacheRoot } : {}),
|
|
174
|
+
...(options.now !== undefined ? { now: options.now } : {}),
|
|
175
|
+
});
|
|
176
|
+
if (!hit)
|
|
177
|
+
return undefined;
|
|
178
|
+
const identity = {
|
|
179
|
+
available: true,
|
|
180
|
+
supportedLanguageIds: hit.identity.supportedLanguageIds,
|
|
181
|
+
origin: hit.identity.origin,
|
|
182
|
+
cacheIdentityRevalidateAt: hit.revalidateAt,
|
|
183
|
+
};
|
|
184
|
+
cachedRuntimeIdentityValidations.set(identity, {
|
|
185
|
+
sourcePath: hit.identity.sourcePath,
|
|
186
|
+
sourceSize: hit.identity.sourceSize,
|
|
187
|
+
sourceMtimeMs: hit.identity.sourceMtimeMs,
|
|
188
|
+
loadedPath: hit.identity.loadedPath,
|
|
189
|
+
cachedSize: hit.identity.cachedSize,
|
|
190
|
+
cachedMtimeMs: hit.identity.cachedMtimeMs,
|
|
191
|
+
});
|
|
192
|
+
return identity;
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
return undefined;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
93
198
|
export function getNativeRuntimeFingerprint(mode, env = process.env) {
|
|
94
199
|
const requestedMode = normalizeNativeRuntimeMode(mode);
|
|
95
200
|
const envDisabled = isNativeTreeSitterDisabledByEnv(env);
|
|
@@ -99,17 +204,42 @@ export function getNativeRuntimeFingerprint(mode, env = process.env) {
|
|
|
99
204
|
const cached = disabledRuntimeFingerprints.get(key);
|
|
100
205
|
if (cached)
|
|
101
206
|
return cached;
|
|
102
|
-
const fingerprint = serializeNativeRuntimeFingerprint(requestedMode, envDisabled, resolveNativeBindingState(mode, env));
|
|
207
|
+
const fingerprint = serializeNativeRuntimeFingerprint(requestedMode, envDisabled, identityFromState(resolveNativeBindingState(mode, env)));
|
|
103
208
|
disabledRuntimeFingerprints.set(key, fingerprint);
|
|
104
209
|
return fingerprint;
|
|
105
210
|
}
|
|
211
|
+
// A cached identity is valid only while its current source and cache stats match and its
|
|
212
|
+
// re-verification window has not elapsed. Recheck it on every fingerprint request; the probe
|
|
213
|
+
// stays cheap (one directory read and two stats) and avoids extending stat-only trust.
|
|
214
|
+
if (!bindingState) {
|
|
215
|
+
const cacheKey = `${requestedMode}:${envDisabled}`;
|
|
216
|
+
const now = Date.now();
|
|
217
|
+
const memoized = cachedRuntimeFingerprints.get(cacheKey);
|
|
218
|
+
if (memoized && now < memoized.revalidateAt && cacheFingerprintFilesMatch(memoized.validation)) {
|
|
219
|
+
return memoized.value;
|
|
220
|
+
}
|
|
221
|
+
const cachedIdentity = resolveCachedRuntimeIdentity();
|
|
222
|
+
const validation = cachedIdentity ? cachedRuntimeIdentityValidations.get(cachedIdentity) : undefined;
|
|
223
|
+
if (cachedIdentity?.cacheIdentityRevalidateAt !== undefined &&
|
|
224
|
+
validation &&
|
|
225
|
+
cacheFingerprintFilesMatch(validation)) {
|
|
226
|
+
const value = serializeNativeRuntimeFingerprint(requestedMode, envDisabled, cachedIdentity);
|
|
227
|
+
cachedRuntimeFingerprints.set(cacheKey, {
|
|
228
|
+
value,
|
|
229
|
+
revalidateAt: cachedIdentity.cacheIdentityRevalidateAt,
|
|
230
|
+
validation,
|
|
231
|
+
});
|
|
232
|
+
return value;
|
|
233
|
+
}
|
|
234
|
+
cachedRuntimeFingerprints.delete(cacheKey);
|
|
235
|
+
}
|
|
106
236
|
const state = loadBinding();
|
|
107
237
|
if (loadedRuntimeFingerprint?.state === state &&
|
|
108
238
|
loadedRuntimeFingerprint.requestedMode === requestedMode &&
|
|
109
239
|
loadedRuntimeFingerprint.envDisabled === envDisabled) {
|
|
110
240
|
return loadedRuntimeFingerprint.value;
|
|
111
241
|
}
|
|
112
|
-
const value = serializeNativeRuntimeFingerprint(requestedMode, envDisabled, state);
|
|
242
|
+
const value = serializeNativeRuntimeFingerprint(requestedMode, envDisabled, identityFromState(state));
|
|
113
243
|
loadedRuntimeFingerprint = { state, requestedMode, envDisabled, value };
|
|
114
244
|
return value;
|
|
115
245
|
}
|
|
@@ -126,6 +256,19 @@ export function getNativeBindingOrigin() {
|
|
|
126
256
|
export function getCurrentNativeBindingOrigin() {
|
|
127
257
|
return bindingState?.origin;
|
|
128
258
|
}
|
|
259
|
+
/**
|
|
260
|
+
* The resolved addon path for a binding this process has already loaded, for handing to worker
|
|
261
|
+
* threads. Undefined unless a load succeeded, so a worker is never pointed at a path that did
|
|
262
|
+
* not work here.
|
|
263
|
+
*/
|
|
264
|
+
export function getNativeWorkerBindingHandoff() {
|
|
265
|
+
if (!bindingState?.loaded)
|
|
266
|
+
return undefined;
|
|
267
|
+
const loadedPath = bindingState.origin.loadedPath;
|
|
268
|
+
if (!loadedPath)
|
|
269
|
+
return undefined;
|
|
270
|
+
return { loadedPath, origin: bindingState.origin };
|
|
271
|
+
}
|
|
129
272
|
export function getNativeTreeSitterSupportedLanguageIds(mode) {
|
|
130
273
|
const state = resolveNativeBindingState(mode);
|
|
131
274
|
return state.loaded ? Array.from(state.supportedLanguageIds).sort() : [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/native/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/native/runtime.ts"],"names":[],"mappings":"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"}
|