@nanonets/graft 0.9.0 → 0.10.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 +62 -26
- package/dist/ask/ask.d.ts.map +1 -1
- package/dist/ask/ask.js +10 -7
- package/dist/ask/ask.js.map +1 -1
- package/dist/ask/fuse.d.ts.map +1 -1
- package/dist/ask/fuse.js +32 -14
- package/dist/ask/fuse.js.map +1 -1
- package/dist/claude/format.js +1 -1
- package/dist/claude/format.js.map +1 -1
- package/dist/claude/init.d.ts.map +1 -1
- package/dist/claude/init.js +6 -3
- package/dist/claude/init.js.map +1 -1
- package/dist/claude/skill-template.d.ts.map +1 -1
- package/dist/claude/skill-template.js +11 -5
- package/dist/claude/skill-template.js.map +1 -1
- package/dist/cli.js +93 -39
- package/dist/cli.js.map +1 -1
- package/dist/context/savings.d.ts +12 -3
- package/dist/context/savings.d.ts.map +1 -1
- package/dist/context/savings.js +15 -3
- package/dist/context/savings.js.map +1 -1
- package/dist/engine.d.ts +6 -2
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +4 -1
- package/dist/engine.js.map +1 -1
- package/dist/graph/build.d.ts +5 -0
- package/dist/graph/build.d.ts.map +1 -1
- package/dist/graph/build.js +21 -2
- package/dist/graph/build.js.map +1 -1
- package/dist/graph/check.d.ts +1 -1
- package/dist/graph/check.d.ts.map +1 -1
- package/dist/graph/check.js +13 -3
- package/dist/graph/check.js.map +1 -1
- package/dist/graph/generic.d.ts +25 -0
- package/dist/graph/generic.d.ts.map +1 -0
- package/dist/graph/generic.js +320 -0
- package/dist/graph/generic.js.map +1 -0
- package/dist/graph/lsp/client.d.ts +43 -0
- package/dist/graph/lsp/client.d.ts.map +1 -0
- package/dist/graph/lsp/client.js +179 -0
- package/dist/graph/lsp/client.js.map +1 -0
- package/dist/graph/lsp/enrich.d.ts +11 -0
- package/dist/graph/lsp/enrich.d.ts.map +1 -0
- package/dist/graph/lsp/enrich.js +155 -0
- package/dist/graph/lsp/enrich.js.map +1 -0
- package/dist/graph/lsp/registry.d.ts +15 -0
- package/dist/graph/lsp/registry.d.ts.map +1 -0
- package/dist/graph/lsp/registry.js +46 -0
- package/dist/graph/lsp/registry.js.map +1 -0
- package/dist/graph/map.d.ts.map +1 -1
- package/dist/graph/map.js +2 -2
- package/dist/graph/map.js.map +1 -1
- package/dist/graph/queries/c.scm +13 -0
- package/dist/graph/queries/c_sharp.scm +19 -0
- package/dist/graph/queries/cpp.scm +23 -0
- package/dist/graph/queries/elixir.scm +54 -0
- package/dist/graph/queries/java.scm +20 -0
- package/dist/graph/queries/kotlin.scm +43 -0
- package/dist/graph/queries/php.scm +40 -0
- package/dist/graph/queries/ruby.scm +65 -0
- package/dist/graph/queries/rust.scm +41 -0
- package/dist/graph/queries/scala.scm +66 -0
- package/dist/graph/queries/solidity.scm +43 -0
- package/dist/graph/queries/swift.scm +51 -0
- package/dist/graph/resolve.d.ts.map +1 -1
- package/dist/graph/resolve.js +13 -3
- package/dist/graph/resolve.js.map +1 -1
- package/dist/graph/root.d.ts +11 -0
- package/dist/graph/root.d.ts.map +1 -0
- package/dist/graph/root.js +40 -0
- package/dist/graph/root.js.map +1 -0
- package/dist/graph/source-files.d.ts.map +1 -1
- package/dist/graph/source-files.js +5 -1
- package/dist/graph/source-files.js.map +1 -1
- package/dist/graph/traverse-cli.d.ts.map +1 -1
- package/dist/graph/traverse-cli.js +2 -2
- package/dist/graph/traverse-cli.js.map +1 -1
- package/dist/graph/types.d.ts +12 -7
- package/dist/graph/types.d.ts.map +1 -1
- package/dist/graph/types.js +2 -2
- package/dist/graph/workspace-cli.d.ts +1 -1
- package/dist/graph/workspace-cli.d.ts.map +1 -1
- package/dist/graph/workspace-cli.js +2 -2
- package/dist/graph/workspace-cli.js.map +1 -1
- package/dist/graph/workspace.d.ts +2 -2
- package/dist/graph/workspace.d.ts.map +1 -1
- package/dist/graph/workspace.js +4 -4
- package/dist/graph/workspace.js.map +1 -1
- package/dist/mcp/tools.js +8 -8
- package/dist/mcp/tools.js.map +1 -1
- package/dist/search/grep-cli.d.ts.map +1 -1
- package/dist/search/grep-cli.js +8 -9
- package/dist/search/grep-cli.js.map +1 -1
- package/package.json +6 -2
- package/scripts/build-viewer.mjs +17 -1
- package/scripts/graph-quality.mjs +117 -0
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,aAAa,EAA0C,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAoB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAuB,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAwC,MAAM,oBAAoB,CAAC;AACzG,OAAO,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAiD,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,GAAG,EAAkB,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/build.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ export interface GraphBuildOptions {
|
|
|
13
13
|
* the pre-query refresh (`graph/refresh.ts`); an explicit `graft build` never
|
|
14
14
|
* sets it. See the write block in {@link buildGraph} for why the split exists. */
|
|
15
15
|
graphOnly?: boolean;
|
|
16
|
+
/** Opt-in compiler-grade edge enrichment via a language server (`graft build
|
|
17
|
+
* --lsp`): adds `lsp_resolved` call edges the AST resolver couldn't (member
|
|
18
|
+
* calls, breadth-tier calls). Off by default — needs a server on PATH and is
|
|
19
|
+
* slower; the graph is fully functional without it. */
|
|
20
|
+
lsp?: boolean;
|
|
16
21
|
/** Run the Tier-2 LLM meaning pass. Absent → Tier-1 only (cache is still preserved). */
|
|
17
22
|
summarizer?: CruxSummarizer;
|
|
18
23
|
/** Max files summarized in parallel during the Tier-2 pass. Default is set in enrich. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/graph/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/graph/build.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAK5D,OAAO,KAAK,EAAW,IAAI,EAAU,QAAQ,EAAW,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AA2BpD,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;sEACkE;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;sFAGkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;2DAGuD;IACvD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,wFAAwF;IACxF,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf;mEAC+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AA2BD,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAwO3B"}
|
package/dist/graph/build.js
CHANGED
|
@@ -18,6 +18,7 @@ import { basename, dirname, resolve } from "node:path";
|
|
|
18
18
|
import { walkDir } from "../ingest/fs.js";
|
|
19
19
|
import { contextDirFor, ensureGitignored, ensureSearchable } from "../context/node-file.js";
|
|
20
20
|
import { extractFile, languageLabelOf, languageOf } from "./extract.js";
|
|
21
|
+
import { extractGeneric, genericLangOf, warmGenericGrammars } from "./generic.js";
|
|
21
22
|
import { contentHash } from "../util/id.js";
|
|
22
23
|
import { relPosix } from "../util/paths.js";
|
|
23
24
|
import { readSourceFile } from "../util/source.js";
|
|
@@ -116,11 +117,18 @@ export async function buildGraph(dir, opts = {}) {
|
|
|
116
117
|
const entries = {};
|
|
117
118
|
let parsed = 0;
|
|
118
119
|
let reused = 0;
|
|
120
|
+
// Breadth tier: WASM grammars load asynchronously, so warm the ones this repo
|
|
121
|
+
// needs ONCE here (buildGraph is async) before the synchronous parse loop below
|
|
122
|
+
// can call extractGeneric. Depth-tier (native) grammars need no warmup.
|
|
123
|
+
await warmGenericGrammars(new Set(files.map((f) => genericLangOf(f.abs)?.name).filter((n) => !!n)));
|
|
119
124
|
files.forEach((f, i) => {
|
|
120
125
|
const rel = f.rel;
|
|
121
126
|
opts.onProgress?.({ phase: "parse", index: i, total: files.length, file: rel });
|
|
127
|
+
// Depth tier (hand-written, native grammar) if a language claims the file;
|
|
128
|
+
// otherwise the breadth tier (generic tags.scm over a WASM grammar).
|
|
122
129
|
const lang = languageOf(f.abs);
|
|
123
|
-
const
|
|
130
|
+
const generic = lang ? null : genericLangOf(f.abs);
|
|
131
|
+
const label = languageLabelOf(f.abs) ?? generic?.name ?? "unknown";
|
|
124
132
|
const cached = priorExtract.files[rel];
|
|
125
133
|
// Every file is read and hashed, every build — only the *parse* is memoized.
|
|
126
134
|
// The tempting optimization is to trust the probe's `(size, mtimeMs)` and skip
|
|
@@ -165,7 +173,9 @@ export async function buildGraph(dir, opts = {}) {
|
|
|
165
173
|
}
|
|
166
174
|
parsed++;
|
|
167
175
|
try {
|
|
168
|
-
const { nodes: fileNodes, rawEdges: fileEdges } =
|
|
176
|
+
const { nodes: fileNodes, rawEdges: fileEdges } = lang
|
|
177
|
+
? extractFile(rel, source, lang)
|
|
178
|
+
: extractGeneric(rel, source, generic.name);
|
|
169
179
|
nodes.push(...fileNodes);
|
|
170
180
|
rawEdges.push(...fileEdges);
|
|
171
181
|
sources.set(rel, source);
|
|
@@ -213,6 +223,15 @@ export async function buildGraph(dir, opts = {}) {
|
|
|
213
223
|
nodes,
|
|
214
224
|
edges,
|
|
215
225
|
};
|
|
226
|
+
// Opt-in compiler-grade enrichment (adds lsp_resolved call edges in place).
|
|
227
|
+
// Runs on the assembled graph so callee positions map back to nodes; never
|
|
228
|
+
// touches the extraction cache (Tier-1 stays pristine, cold==incremental).
|
|
229
|
+
if (opts.lsp) {
|
|
230
|
+
const { enrichWithLsp } = await import("./lsp/enrich.js");
|
|
231
|
+
const r = await enrichWithLsp(graph, root);
|
|
232
|
+
graph.meta.edgeCount = graph.edges.length;
|
|
233
|
+
opts.onProgress?.({ phase: "enrich", index: r.added, total: r.queried, file: `lsp:${r.server ?? "none"}` });
|
|
234
|
+
}
|
|
216
235
|
const graphPath = writeGraph(graph, outDir);
|
|
217
236
|
// `ask`'s token/IDF sidecar — moves per-query corpus tokenization to build
|
|
218
237
|
// time (~45% of query time on a 32k-node graph, profiled). Lives in the
|
package/dist/graph/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/graph/build.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/graph/build.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/check.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export interface GraphCheckResult {
|
|
|
12
12
|
export interface GraphCheckOptions {
|
|
13
13
|
contextDir?: string;
|
|
14
14
|
}
|
|
15
|
-
export declare function checkGraph(dir: string, opts?: GraphCheckOptions): GraphCheckResult
|
|
15
|
+
export declare function checkGraph(dir: string, opts?: GraphCheckOptions): Promise<GraphCheckResult>;
|
|
16
16
|
/** Render a graph-check result as a human-readable report. */
|
|
17
17
|
export declare function formatGraphCheckReport(r: GraphCheckResult): string;
|
|
18
18
|
//# sourceMappingURL=check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/graph/check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/graph/check.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAkE3B;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CA+BlE"}
|
package/dist/graph/check.js
CHANGED
|
@@ -21,10 +21,15 @@ import { resolve } from "node:path";
|
|
|
21
21
|
import { relPosix } from "../util/paths.js";
|
|
22
22
|
import { contextDirFor } from "../context/node-file.js";
|
|
23
23
|
import { extractFile, languageOf } from "./extract.js";
|
|
24
|
+
import { extractGeneric, genericLangOf, warmGenericGrammars } from "./generic.js";
|
|
24
25
|
import { listSourceFiles } from "./build.js";
|
|
25
26
|
import { readGraph, wiringPath } from "./write.js";
|
|
26
27
|
import { readSourceFile } from "../util/source.js";
|
|
27
|
-
|
|
28
|
+
// async: the breadth tier's WASM grammars load asynchronously and must be warmed
|
|
29
|
+
// before the (synchronous) re-extraction below, exactly as buildGraph does — else
|
|
30
|
+
// breadth-tier files (.rs, …) would re-extract as empty here and read as `removed`
|
|
31
|
+
// against a graph that built them, so `graft check` would never report OK.
|
|
32
|
+
export async function checkGraph(dir, opts = {}) {
|
|
28
33
|
const root = resolve(dir);
|
|
29
34
|
const outDir = contextDirFor(root, opts.contextDir);
|
|
30
35
|
const result = {
|
|
@@ -42,9 +47,12 @@ export function checkGraph(dir, opts = {}) {
|
|
|
42
47
|
return result;
|
|
43
48
|
}
|
|
44
49
|
// Freshly extract Tier-1 nodes from the code on disk (same file set as build).
|
|
50
|
+
const sourceFiles = listSourceFiles(root, outDir);
|
|
51
|
+
await warmGenericGrammars(new Set(sourceFiles.map((f) => genericLangOf(f)?.name).filter((n) => !!n)));
|
|
45
52
|
const current = new Map(); // id → body_hash
|
|
46
|
-
for (const file of
|
|
53
|
+
for (const file of sourceFiles) {
|
|
47
54
|
const lang = languageOf(file);
|
|
55
|
+
const generic = lang ? null : genericLangOf(file);
|
|
48
56
|
let source;
|
|
49
57
|
try {
|
|
50
58
|
source = readSourceFile(file);
|
|
@@ -55,7 +63,9 @@ export function checkGraph(dir, opts = {}) {
|
|
|
55
63
|
if (source === null)
|
|
56
64
|
continue; // unsupported encoding (e.g. UTF-16BE)
|
|
57
65
|
try {
|
|
58
|
-
const { nodes } =
|
|
66
|
+
const { nodes } = lang
|
|
67
|
+
? extractFile(relPosix(root, file), source, lang)
|
|
68
|
+
: extractGeneric(relPosix(root, file), source, generic.name);
|
|
59
69
|
for (const n of nodes)
|
|
60
70
|
current.set(n.id, n.body_hash);
|
|
61
71
|
}
|
package/dist/graph/check.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/graph/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAkBnD,MAAM,UAAU,UAAU,
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/graph/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ExtractResult } from "./extract.js";
|
|
2
|
+
/** A breadth-tier language: graft name, file extensions, and the wasm basename
|
|
3
|
+
* in tree-sitter-wasms/out/tree-sitter-<wasm>.wasm. One row per language. */
|
|
4
|
+
export interface GenericLang {
|
|
5
|
+
name: string;
|
|
6
|
+
exts: string[];
|
|
7
|
+
wasm: string;
|
|
8
|
+
}
|
|
9
|
+
/** The breadth registry. Add a row + a queries/<name>.scm to support a language.
|
|
10
|
+
* Extensions here must NOT collide with the depth tier's EXTENSIONS (extract.ts). */
|
|
11
|
+
export declare const GENERIC_LANGS: readonly GenericLang[];
|
|
12
|
+
/** The generic language for a path, or null if no breadth grammar claims it. */
|
|
13
|
+
export declare function genericLangOf(path: string): GenericLang | null;
|
|
14
|
+
/** Warm the WASM grammars for the given graft lang names. Idempotent; must be
|
|
15
|
+
* awaited once before extractGeneric is used in a sync loop. Unknown/unavailable
|
|
16
|
+
* grammars are silently skipped (their files then extract as file-only). */
|
|
17
|
+
export declare function warmGenericGrammars(langNames: Iterable<string>): Promise<void>;
|
|
18
|
+
/** True if a grammar has been warmed for this lang (else extractGeneric is file-only). */
|
|
19
|
+
export declare function isWarm(langName: string): boolean;
|
|
20
|
+
/** Extract a single generic-tier file. Synchronous; needs the grammar pre-warmed.
|
|
21
|
+
* Uses the grammar's compiled tags.scm when present (symbols + call edges);
|
|
22
|
+
* otherwise falls back to a node-kind tree walker (symbols only) so ANY warmed
|
|
23
|
+
* grammar yields a graph even with no vendored query. */
|
|
24
|
+
export declare function extractGeneric(rel: string, source: string, langName: string): ExtractResult;
|
|
25
|
+
//# sourceMappingURL=generic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/graph/generic.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,aAAa,EAAW,MAAM,cAAc,CAAC;AAO3D;6EAC6E;AAC7E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;qFACqF;AACrF,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAkB/C,CAAC;AAKF,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAI9D;AA2CD;;4EAE4E;AAC5E,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BpF;AAED,0FAA0F;AAC1F,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhD;AAeD;;;yDAGyD;AACzD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAoD3F"}
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic "breadth" extractor tier — one language-agnostic extractor over any
|
|
3
|
+
* tree-sitter grammar + its `tags.scm` (the standard tree-sitter tags convention). This is how
|
|
4
|
+
* graft covers the long tail of languages for ~one registry row each, instead of
|
|
5
|
+
* a hand-written extractor per language (the depth tier in extract.ts).
|
|
6
|
+
*
|
|
7
|
+
* Grammars are WASM (`tree-sitter-wasms` bundle) loaded via `web-tree-sitter`, so
|
|
8
|
+
* a new language needs no native node-gyp build. Loading is async (WASM init), so
|
|
9
|
+
* callers MUST `await warmGenericGrammars([...])` once before the synchronous
|
|
10
|
+
* `extractGeneric()` is used in a build/check loop. If a grammar isn't warmed,
|
|
11
|
+
* `extractGeneric` degrades to a file node only (never throws).
|
|
12
|
+
*
|
|
13
|
+
* What it emits (signature-only): a file node + one node per `@definition.<kind>`
|
|
14
|
+
* capture, and bare-name `calls` raw edges from `@reference.call` attributed to
|
|
15
|
+
* the innermost enclosing definition. resolve.ts then resolves those calls by
|
|
16
|
+
* name for free (same-file → extracted, unique-global → inferred). Member-call
|
|
17
|
+
* receiver typing (recvType) is NOT produced here — that needs a per-language
|
|
18
|
+
* binding pass; the opt-in LSP tier fills that gap for popular languages.
|
|
19
|
+
*/
|
|
20
|
+
import { readFileSync } from "node:fs";
|
|
21
|
+
import { fileURLToPath } from "node:url";
|
|
22
|
+
import { dirname, join } from "node:path";
|
|
23
|
+
import { createRequire } from "node:module";
|
|
24
|
+
import { contentHash } from "../util/id.js";
|
|
25
|
+
const HERE = dirname(fileURLToPath(import.meta.url));
|
|
26
|
+
const require = createRequire(import.meta.url);
|
|
27
|
+
// queries/ ships beside the compiled JS (copied by the build); fall back to src.
|
|
28
|
+
const QUERY_DIRS = [join(HERE, "queries"), join(HERE, "..", "..", "src", "graph", "queries")];
|
|
29
|
+
/** The breadth registry. Add a row + a queries/<name>.scm to support a language.
|
|
30
|
+
* Extensions here must NOT collide with the depth tier's EXTENSIONS (extract.ts). */
|
|
31
|
+
export const GENERIC_LANGS = [
|
|
32
|
+
{ name: "rust", exts: [".rs"], wasm: "rust" },
|
|
33
|
+
{ name: "java", exts: [".java"], wasm: "java" },
|
|
34
|
+
{ name: "c", exts: [".c", ".h"], wasm: "c" },
|
|
35
|
+
{ name: "cpp", exts: [".cpp", ".cc", ".cxx", ".hpp", ".hh"], wasm: "cpp" },
|
|
36
|
+
{ name: "ruby", exts: [".rb"], wasm: "ruby" },
|
|
37
|
+
{ name: "php", exts: [".php"], wasm: "php" },
|
|
38
|
+
{ name: "c_sharp", exts: [".cs"], wasm: "c_sharp" },
|
|
39
|
+
// These ship a tags.scm (calls + symbols); ocaml/zig have none and use the
|
|
40
|
+
// node-kind walker fallback (symbols only) — still one row, zero query.
|
|
41
|
+
{ name: "kotlin", exts: [".kt", ".kts"], wasm: "kotlin" },
|
|
42
|
+
{ name: "scala", exts: [".scala", ".sc"], wasm: "scala" },
|
|
43
|
+
{ name: "swift", exts: [".swift"], wasm: "swift" },
|
|
44
|
+
{ name: "elixir", exts: [".ex", ".exs"], wasm: "elixir" },
|
|
45
|
+
{ name: "solidity", exts: [".sol"], wasm: "solidity" },
|
|
46
|
+
{ name: "ocaml", exts: [".ml", ".mli"], wasm: "ocaml" },
|
|
47
|
+
{ name: "zig", exts: [".zig"], wasm: "zig" },
|
|
48
|
+
{ name: "dart", exts: [".dart"], wasm: "dart" }, // surfaced by PR #38 (@muneebshere)
|
|
49
|
+
];
|
|
50
|
+
const byExt = new Map();
|
|
51
|
+
for (const l of GENERIC_LANGS)
|
|
52
|
+
for (const e of l.exts)
|
|
53
|
+
byExt.set(e, l);
|
|
54
|
+
/** The generic language for a path, or null if no breadth grammar claims it. */
|
|
55
|
+
export function genericLangOf(path) {
|
|
56
|
+
const lower = path.toLowerCase();
|
|
57
|
+
for (const [ext, l] of byExt)
|
|
58
|
+
if (lower.endsWith(ext))
|
|
59
|
+
return l;
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
// tags.scm @definition.<X> → graft Kind (types.ts). Unmapped → "function".
|
|
63
|
+
const KIND = {
|
|
64
|
+
function: "function", method: "method", class: "class", interface: "interface",
|
|
65
|
+
type: "type", struct: "struct", enum: "enum", module: "module",
|
|
66
|
+
constant: "constant", variable: "variable", field: "variable",
|
|
67
|
+
object: "class", property: "variable", // Scala object; Swift/Scala property
|
|
68
|
+
};
|
|
69
|
+
const loaded = new Map();
|
|
70
|
+
let tsMod = null;
|
|
71
|
+
let initPromise = null;
|
|
72
|
+
function requireWasm(wasm) {
|
|
73
|
+
// Resolve the grammar wasm from the tree-sitter-wasms bundle.
|
|
74
|
+
try {
|
|
75
|
+
const p = require.resolve(`tree-sitter-wasms/out/tree-sitter-${wasm}.wasm`);
|
|
76
|
+
return readFileSync(p);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function loadQuery(name) {
|
|
83
|
+
for (const dir of QUERY_DIRS) {
|
|
84
|
+
try {
|
|
85
|
+
const raw = readFileSync(join(dir, `${name}.scm`), "utf8");
|
|
86
|
+
// Sanitize editor-specific query predicates the tree-sitter Query compiler rejects.
|
|
87
|
+
return raw.replace(/\(#(?:strip!|set!|set-adjacent!|select-adjacent!|make-range!|offset!|gsub!)[^()]*\)/g, "");
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
/* try next dir */
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
/** Warm the WASM grammars for the given graft lang names. Idempotent; must be
|
|
96
|
+
* awaited once before extractGeneric is used in a sync loop. Unknown/unavailable
|
|
97
|
+
* grammars are silently skipped (their files then extract as file-only). */
|
|
98
|
+
export async function warmGenericGrammars(langNames) {
|
|
99
|
+
const want = new Set(langNames);
|
|
100
|
+
const need = [...want].filter((n) => !loaded.has(n) && GENERIC_LANGS.some((l) => l.name === n));
|
|
101
|
+
if (need.length === 0)
|
|
102
|
+
return;
|
|
103
|
+
if (!tsMod) {
|
|
104
|
+
tsMod = await import("web-tree-sitter");
|
|
105
|
+
initPromise = initPromise ?? tsMod.Parser.init();
|
|
106
|
+
}
|
|
107
|
+
await initPromise;
|
|
108
|
+
const { Language, Query } = tsMod;
|
|
109
|
+
for (const name of need) {
|
|
110
|
+
const row = GENERIC_LANGS.find((l) => l.name === name);
|
|
111
|
+
const bytes = requireWasm(row.wasm);
|
|
112
|
+
if (!bytes)
|
|
113
|
+
continue;
|
|
114
|
+
try {
|
|
115
|
+
const language = await Language.load(bytes);
|
|
116
|
+
const scm = loadQuery(name);
|
|
117
|
+
let query = null;
|
|
118
|
+
if (scm) {
|
|
119
|
+
try {
|
|
120
|
+
query = new Query(language, scm);
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
query = null;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
loaded.set(name, { language, query });
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
/* grammar failed to instantiate — skip; files extract as file-only */
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/** True if a grammar has been warmed for this lang (else extractGeneric is file-only). */
|
|
134
|
+
export function isWarm(langName) {
|
|
135
|
+
return loaded.has(langName);
|
|
136
|
+
}
|
|
137
|
+
const PARSE_CHUNK = 16384; // <32KB slices — same tree-sitter limit workaround as extract.ts
|
|
138
|
+
function fileNode(rel, source) {
|
|
139
|
+
return {
|
|
140
|
+
id: rel, name: rel.split("/").pop() ?? rel, kind: "file", path: rel,
|
|
141
|
+
span: `L1-L${Math.max(1, source.split("\n").length)}`, signature: null,
|
|
142
|
+
exported: true, origin: "generic", body_hash: contentHash(source),
|
|
143
|
+
chars: Buffer.byteLength(source), summary_state: "pending", summary: null, crux: null,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/** Extract a single generic-tier file. Synchronous; needs the grammar pre-warmed.
|
|
147
|
+
* Uses the grammar's compiled tags.scm when present (symbols + call edges);
|
|
148
|
+
* otherwise falls back to a node-kind tree walker (symbols only) so ANY warmed
|
|
149
|
+
* grammar yields a graph even with no vendored query. */
|
|
150
|
+
export function extractGeneric(rel, source, langName) {
|
|
151
|
+
const nodes = [fileNode(rel, source)];
|
|
152
|
+
const rawEdges = [];
|
|
153
|
+
const entry = loaded.get(langName);
|
|
154
|
+
if (!entry || !tsMod)
|
|
155
|
+
return { nodes, rawEdges };
|
|
156
|
+
let tree;
|
|
157
|
+
try {
|
|
158
|
+
const parser = new tsMod.Parser();
|
|
159
|
+
parser.setLanguage(entry.language);
|
|
160
|
+
tree = parser.parse((i) => source.slice(i, i + PARSE_CHUNK));
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
return { nodes, rawEdges };
|
|
164
|
+
}
|
|
165
|
+
if (!tree)
|
|
166
|
+
return { nodes, rawEdges };
|
|
167
|
+
const minted = new Set([rel]);
|
|
168
|
+
const lines = source.split("\n");
|
|
169
|
+
const defs = [];
|
|
170
|
+
// One definition per source span: a grammar's tags.scm can capture the same node
|
|
171
|
+
// under two @definition kinds (Swift `func` is method AND function), and the
|
|
172
|
+
// walker can revisit a nested match — both would emit near-duplicate nodes.
|
|
173
|
+
const spanSeen = new Set();
|
|
174
|
+
// Mint one definition node from a whole-definition tree node. Shared by both
|
|
175
|
+
// the tags.scm path and the walker fallback so id/span/signature/body_text are
|
|
176
|
+
// built identically.
|
|
177
|
+
const mkDef = (name, kind, whole) => {
|
|
178
|
+
if (spanSeen.has(whole.startIndex))
|
|
179
|
+
return;
|
|
180
|
+
spanSeen.add(whole.startIndex);
|
|
181
|
+
const idBase = `${rel}#${name}`;
|
|
182
|
+
let id = idBase, n = 2;
|
|
183
|
+
while (minted.has(id))
|
|
184
|
+
id = `${idBase}~${n++}`;
|
|
185
|
+
minted.add(id);
|
|
186
|
+
const startRow = whole.startPosition.row, endRow = whole.endPosition.row;
|
|
187
|
+
const sigLine = (lines[startRow] ?? "").trim().replace(/\s*\{?\s*$/, "");
|
|
188
|
+
nodes.push({
|
|
189
|
+
id, name, kind, path: rel,
|
|
190
|
+
span: `L${startRow + 1}-L${endRow + 1}`,
|
|
191
|
+
signature: sigLine || null, exported: true, origin: "generic",
|
|
192
|
+
body_hash: contentHash(source.slice(whole.startIndex, whole.endIndex)),
|
|
193
|
+
body_text: source.slice(whole.startIndex, whole.endIndex).replace(/\s+/g, " ").slice(0, 5000),
|
|
194
|
+
summary_state: "pending", summary: null, crux: null,
|
|
195
|
+
});
|
|
196
|
+
defs.push({ id, startIndex: whole.startIndex, endIndex: whole.endIndex });
|
|
197
|
+
};
|
|
198
|
+
if (entry.query) {
|
|
199
|
+
tagsExtract(entry.query, tree.rootNode, rel, mkDef, defs, rawEdges);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
walkExtract(tree.rootNode, mkDef); // no tags.scm → symbols only
|
|
203
|
+
}
|
|
204
|
+
return { nodes, rawEdges };
|
|
205
|
+
}
|
|
206
|
+
/** tags.scm path: @definition.<kind> → nodes, @reference.call/@reference.send →
|
|
207
|
+
* bare-name call edges attributed to the innermost enclosing definition. */
|
|
208
|
+
function tagsExtract(query, root, rel, mkDef, defs, rawEdges) {
|
|
209
|
+
const q = query;
|
|
210
|
+
const matches = q.matches(root);
|
|
211
|
+
// Some grammars' tags.scm capture a definition's own NAME token as a
|
|
212
|
+
// @reference.call too (Ruby tags `def foo`'s `foo` as both @name and a call),
|
|
213
|
+
// producing bogus self-loops (foo→foo). Skip any call at a definition's name token.
|
|
214
|
+
const defNameAt = new Set();
|
|
215
|
+
const calls = [];
|
|
216
|
+
for (const m of matches) {
|
|
217
|
+
const cap = {};
|
|
218
|
+
for (const c of m.captures)
|
|
219
|
+
cap[c.name] = c.node;
|
|
220
|
+
const defKey = Object.keys(cap).find((k) => k.startsWith("definition."));
|
|
221
|
+
if (defKey && cap.name) {
|
|
222
|
+
defNameAt.add(cap.name.startIndex);
|
|
223
|
+
mkDef(cap.name.text, KIND[defKey.slice("definition.".length)] ?? "function", defScope(cap[defKey]));
|
|
224
|
+
}
|
|
225
|
+
if (("reference.call" in cap || "reference.send" in cap) && cap.name)
|
|
226
|
+
calls.push({ name: cap.name.text, at: cap.name.startIndex });
|
|
227
|
+
}
|
|
228
|
+
for (const c of calls) {
|
|
229
|
+
if (defNameAt.has(c.at))
|
|
230
|
+
continue;
|
|
231
|
+
const enc = defs
|
|
232
|
+
.filter((d) => d.startIndex <= c.at && c.at < d.endIndex)
|
|
233
|
+
.sort((a, b) => (a.endIndex - a.startIndex) - (b.endIndex - b.startIndex))[0];
|
|
234
|
+
rawEdges.push({ source: enc ? enc.id : rel, relation: "calls", file: rel, name: c.name });
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// Node-type → Kind for the walker fallback. A node is a definition when its type
|
|
238
|
+
// ends with a declaration-ish suffix AND names a construct — matched most-specific
|
|
239
|
+
// first (method before function). Covers the common tree-sitter grammar vocab
|
|
240
|
+
// without any per-language query.
|
|
241
|
+
const DEF_SUFFIX = /(declaration|definition|_item|_specifier|_decl|_def|_binding)$/;
|
|
242
|
+
function classifyKind(type) {
|
|
243
|
+
const t = type.toLowerCase();
|
|
244
|
+
if (!DEF_SUFFIX.test(t) && !/^(class|struct|enum|interface|trait|module|namespace)/.test(t))
|
|
245
|
+
return null;
|
|
246
|
+
if (/method|constructor/.test(t))
|
|
247
|
+
return "method";
|
|
248
|
+
if (/func|function|def\b|subroutine|procedure/.test(t))
|
|
249
|
+
return "function";
|
|
250
|
+
if (/class/.test(t))
|
|
251
|
+
return "class";
|
|
252
|
+
if (/struct|record/.test(t))
|
|
253
|
+
return "struct";
|
|
254
|
+
if (/interface|trait|protocol/.test(t))
|
|
255
|
+
return "interface";
|
|
256
|
+
if (/enum/.test(t))
|
|
257
|
+
return "enum";
|
|
258
|
+
if (/module|namespace|package|mod_/.test(t))
|
|
259
|
+
return "module";
|
|
260
|
+
if (/const/.test(t))
|
|
261
|
+
return "constant";
|
|
262
|
+
if (/typedef|type_alias|type_def|alias/.test(t))
|
|
263
|
+
return "type";
|
|
264
|
+
if (/type/.test(t))
|
|
265
|
+
return "type";
|
|
266
|
+
if (/(^|_)(val|var|let|field|property)/.test(t))
|
|
267
|
+
return "variable";
|
|
268
|
+
return null;
|
|
269
|
+
}
|
|
270
|
+
/** The declared name of a node: its `name` field, else the first identifier-ish
|
|
271
|
+
* descendant within a couple of levels. */
|
|
272
|
+
function nodeName(node) {
|
|
273
|
+
const byField = node.childForFieldName?.("name");
|
|
274
|
+
if (byField?.text)
|
|
275
|
+
return byField.text;
|
|
276
|
+
const stack = [{ n: node, d: 0 }];
|
|
277
|
+
while (stack.length) {
|
|
278
|
+
const { n, d } = stack.shift();
|
|
279
|
+
if (d > 0 && /identifier|name/.test(n.type) && n.text && !n.text.includes("\n"))
|
|
280
|
+
return n.text;
|
|
281
|
+
if (d < 3)
|
|
282
|
+
for (let i = 0; i < (n.namedChildCount ?? 0); i++) {
|
|
283
|
+
const c = n.namedChild?.(i);
|
|
284
|
+
if (c)
|
|
285
|
+
stack.push({ n: c, d: d + 1 });
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return null;
|
|
289
|
+
}
|
|
290
|
+
/** Walker fallback: DFS every named node, emit a def for each classified one
|
|
291
|
+
* (symbols only — no call resolution without a query). */
|
|
292
|
+
function walkExtract(root, mkDef) {
|
|
293
|
+
const visit = (n) => {
|
|
294
|
+
const kind = classifyKind(n.type);
|
|
295
|
+
if (kind) {
|
|
296
|
+
const name = nodeName(n);
|
|
297
|
+
if (name)
|
|
298
|
+
mkDef(name, kind, n);
|
|
299
|
+
}
|
|
300
|
+
for (let i = 0; i < (n.namedChildCount ?? 0); i++) {
|
|
301
|
+
const c = n.namedChild?.(i);
|
|
302
|
+
if (c)
|
|
303
|
+
visit(c);
|
|
304
|
+
}
|
|
305
|
+
};
|
|
306
|
+
visit(root);
|
|
307
|
+
}
|
|
308
|
+
// Some grammars' tags.scm put @definition.<X> on a narrow node (C tags the
|
|
309
|
+
// `function_declarator`, not the whole `function_definition` with its body), so
|
|
310
|
+
// the capture's span stops before the body and calls inside it can't be
|
|
311
|
+
// attributed to the function. Expand up to the outermost enclosing
|
|
312
|
+
// declaration/definition node so a def's span covers its body.
|
|
313
|
+
const DEF_CONTAINER = /(definition|declaration|specifier|_item)$/;
|
|
314
|
+
function defScope(node) {
|
|
315
|
+
let n = node;
|
|
316
|
+
while (n.parent && DEF_CONTAINER.test(n.parent.type))
|
|
317
|
+
n = n.parent;
|
|
318
|
+
return n;
|
|
319
|
+
}
|
|
320
|
+
//# sourceMappingURL=generic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../src/graph/generic.ts"],"names":[],"mappings":"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"}
|