@opensip-cli/graph-adapter-common 0.1.10 β†’ 0.1.12

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 CHANGED
@@ -10,6 +10,8 @@ This is an **internal library** of the opensip-cli toolkit. It is published so t
10
10
 
11
11
  Part of [**opensip-cli**](https://github.com/opensip-ai/opensip-cli) β€” an open-source codebase intelligence CLI: fitness checks (`fit`), static call-graph analysis (`graph`), and simulation (`sim`).
12
12
 
13
+ **Distribution model:** the published `opensip-cli` npm package is a full-stack bundle of first-party tools, check packs, and language adapters. Third-party tools install separately via the `opensipTools` manifest and host allowlist; a slim install without bundled tools is not a current goal.
14
+
13
15
  ## Install
14
16
 
15
17
  Most users install the CLI, which bundles the first-party tools:
@@ -23,8 +25,8 @@ This package is published for the CLI and advanced plugin authors; most users sh
23
25
  ## Documentation
24
26
 
25
27
  - πŸ“š Project docs: https://opensip.ai/docs/opensip-cli/
26
- - 🧭 Package catalog (what every package does): https://github.com/opensip-ai/opensip-cli/blob/v0.1.10/docs/public/70-reference/02-package-catalog.md
27
- - πŸ“¦ Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.10/packages/graph/graph-adapter-common
28
+ - 🧭 Package catalog (what every package does): https://github.com/opensip-ai/opensip-cli/blob/v0.1.12/docs/public/70-reference/02-package-catalog.md
29
+ - πŸ“¦ Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.12/packages/graph/graph-adapter-common
28
30
 
29
31
  ## License
30
32
 
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Cross-language false-edge filter: `buildNameIndex`'s `keepFile` gate +
3
+ * `sameLanguageFileFilter`. On the single-program (exact) build the merged
4
+ * catalog holds occurrences from every language, so a tree-sitter resolver that
5
+ * links by SIMPLE NAME could otherwise pin a same-named occurrence from another
6
+ * language β€” a false edge the per-shard build never forms. These tests pin the
7
+ * filter to exactly that boundary.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=name-index-language.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name-index-language.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/name-index-language.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Cross-language false-edge filter: `buildNameIndex`'s `keepFile` gate +
3
+ * `sameLanguageFileFilter`. On the single-program (exact) build the merged
4
+ * catalog holds occurrences from every language, so a tree-sitter resolver that
5
+ * links by SIMPLE NAME could otherwise pin a same-named occurrence from another
6
+ * language β€” a false edge the per-shard build never forms. These tests pin the
7
+ * filter to exactly that boundary.
8
+ */
9
+ import { describe, expect, it } from 'vitest';
10
+ import { buildNameIndex, sameLanguageFileFilter } from '../walk.js';
11
+ const occ = (name, hash, filePath) => ({
12
+ bodyHash: hash,
13
+ bodySize: 1,
14
+ simpleName: name,
15
+ qualifiedName: name,
16
+ filePath,
17
+ line: 1,
18
+ column: 0,
19
+ endLine: 1,
20
+ kind: 'function-declaration',
21
+ params: [],
22
+ returnType: null,
23
+ enclosingClass: null,
24
+ decorators: [],
25
+ visibility: 'exported',
26
+ inTestFile: false,
27
+ definedInGenerated: false,
28
+ calls: [],
29
+ });
30
+ describe('sameLanguageFileFilter', () => {
31
+ it('keeps only the named language’s files (Go excludes TypeScript)', () => {
32
+ const keep = sameLanguageFileFilter('go');
33
+ expect(keep('pkg/foo.go')).toBe(true);
34
+ expect(keep('pkg/foo.ts')).toBe(false);
35
+ expect(keep('pkg/foo.tsx')).toBe(false);
36
+ expect(keep('pkg/foo.py')).toBe(false);
37
+ });
38
+ it('matches by LANGUAGE, not a single extension β€” Python keeps .py and .pyi', () => {
39
+ const keep = sameLanguageFileFilter('python');
40
+ expect(keep('m/foo.py')).toBe(true);
41
+ expect(keep('m/foo.pyi')).toBe(true);
42
+ expect(keep('m/foo.go')).toBe(false);
43
+ // `.pyi` must not be mistaken for `.py` truncation, and vice-versa.
44
+ expect(keep('m/foo.pyiX')).toBe(false);
45
+ });
46
+ it('single-extension languages: java=.java, rust=.rs', () => {
47
+ expect(sameLanguageFileFilter('java')('A.java')).toBe(true);
48
+ expect(sameLanguageFileFilter('java')('A.kt')).toBe(false);
49
+ expect(sameLanguageFileFilter('rust')('a.rs')).toBe(true);
50
+ expect(sameLanguageFileFilter('rust')('a.go')).toBe(false);
51
+ });
52
+ it('fails SAFE on an unknown language β€” keeps everything (no edge drops)', () => {
53
+ const keep = sameLanguageFileFilter('cobol');
54
+ expect(keep('x.cob')).toBe(true);
55
+ expect(keep('x.ts')).toBe(true);
56
+ });
57
+ });
58
+ describe('buildNameIndex with a same-language filter', () => {
59
+ // A merged exact catalog: the SAME simple name `parse` defined in a Go file and
60
+ // a TypeScript file (different bodies β†’ different hashes).
61
+ const merged = {
62
+ parse: [occ('parse', 'GO_PARSE', 'pkg/a/parse.go'), occ('parse', 'TS_PARSE', 'pkg/b/parse.ts')],
63
+ };
64
+ it('Go resolution pins only the Go occurrence, never the TypeScript twin', () => {
65
+ const byName = buildNameIndex(merged, sameLanguageFileFilter('go'));
66
+ expect(byName.get('parse')).toEqual(['GO_PARSE']);
67
+ });
68
+ it('without a filter (legacy) the cross-language match leaks through', () => {
69
+ const byName = buildNameIndex(merged);
70
+ expect([...(byName.get('parse') ?? [])].sort()).toEqual(['GO_PARSE', 'TS_PARSE']);
71
+ });
72
+ it('drops the name entirely when no same-language occurrence exists', () => {
73
+ const tsOnly = {
74
+ parse: [occ('parse', 'TS_PARSE', 'pkg/b/parse.ts')],
75
+ };
76
+ const byName = buildNameIndex(tsOnly, sameLanguageFileFilter('go'));
77
+ expect(byName.has('parse')).toBe(false);
78
+ });
79
+ it('keeps multiple same-language occurrences (real overloads/dispatch survive)', () => {
80
+ const twoGo = {
81
+ run: [occ('run', 'GO_A', 'a/run.go'), occ('run', 'GO_B', 'b/run.go')],
82
+ };
83
+ const byName = buildNameIndex(twoGo, sameLanguageFileFilter('go'));
84
+ expect([...(byName.get('run') ?? [])].sort()).toEqual(['GO_A', 'GO_B']);
85
+ });
86
+ });
87
+ //# sourceMappingURL=name-index-language.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name-index-language.test.js","sourceRoot":"","sources":["../../src/__tests__/name-index-language.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache-key.d.ts","sourceRoot":"","sources":["../src/cache-key.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAcpE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAKnC"}
1
+ {"version":3,"file":"cache-key.d.ts","sourceRoot":"","sources":["../src/cache-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAcpE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAKnC"}
package/dist/cache-key.js CHANGED
@@ -1,4 +1,3 @@
1
- // @fitness-ignore-file unbounded-memory -- reads a single language manifest (go.mod / Cargo.toml / pom.xml / pyproject.toml); bounded by standard project metadata
2
1
  /**
3
2
  * Shared config-fingerprint helpers for the tree-sitter adapters'
4
3
  * `cacheKey`.
@@ -1 +1 @@
1
- {"version":3,"file":"cache-key.js","sourceRoot":"","sources":["../src/cache-key.ts"],"names":[],"mappings":"AAAA,mKAAmK;AACnK;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAInD;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,aAAiC;IAC1D,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,OAAO,WAAW,aAAa,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,oBAAoB;QACpB,OAAO,cAAc,aAAa,EAAE,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAElC;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,OAAO,SAAS,QAAQ,CAAC,KAAoB;QAC3C,OAAO,GAAG,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cache-key.js","sourceRoot":"","sources":["../src/cache-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAInD;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,aAAiC;IAC1D,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,OAAO,WAAW,aAAa,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,oBAAoB;QACpB,OAAO,cAAc,aAAa,EAAE,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAElC;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,OAAO,SAAS,QAAQ,CAAC,KAAoB;QAC3C,OAAO,GAAG,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAExE,2DAA2D;AAC3D,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,wDAAwD;IACxD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAC5B,MAAM,EAAE,wBAAwB,GAC/B,CAAC,KAAK,EAAE,aAAa,KAAK,cAAc,CAkC1C"}
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAExE,2DAA2D;AAC3D,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,wDAAwD;IACxD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAC5B,MAAM,EAAE,wBAAwB,GAC/B,CAAC,KAAK,EAAE,aAAa,KAAK,cAAc,CAkC1C"}
package/dist/discover.js CHANGED
@@ -1,5 +1,3 @@
1
- // @fitness-ignore-file error-handling-quality -- realpathSync probe for symlink dedup; exception β†’ fall through with the original path (file might be in a symlinked dir or have been unlinked), already marked v8-ignore as effectively unreachable on real input.
2
- // @fitness-ignore-file batch-operation-limits -- iterates bounded collection (source directories within a single project root)
3
1
  /**
4
2
  * Shared file-discovery scaffolding for the tree-sitter graph adapters.
5
3
  *
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -22,5 +22,5 @@ export { createParseProjectFromAdapter } from './parse-from-adapter.js';
22
22
  export { hashConfig, makeConfigCacheKey } from './cache-key.js';
23
23
  export { skipToEndOfLine, skipBlockComment } from './body-digest.js';
24
24
  export { isReturnValueDiscarded } from './return-discarded.js';
25
- export { record, makeFileClassifier, type FileClassifier, type FileClassifierConfig, runWalk, type RunWalkParams, type WalkSinks, synthesizeModuleInit, type SynthesizeModuleInitParams, buildNameIndex, nameOf, childrenOf, namedChildrenOf, } from './walk.js';
25
+ export { record, makeFileClassifier, type FileClassifier, type FileClassifierConfig, runWalk, type RunWalkParams, type WalkSinks, synthesizeModuleInit, type SynthesizeModuleInitParams, buildNameIndex, sameLanguageFileFilter, nameOf, childrenOf, namedChildrenOf, } from './walk.js';
26
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErF,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,OAAO,EACP,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,oBAAoB,EACpB,KAAK,0BAA0B,EAC/B,cAAc,EACd,MAAM,EACN,UAAU,EACV,eAAe,GAChB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErF,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,OAAO,EACP,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,oBAAoB,EACpB,KAAK,0BAA0B,EAC/B,cAAc,EACd,sBAAsB,EACtB,MAAM,EACN,UAAU,EACV,eAAe,GAChB,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -21,5 +21,5 @@ export { createParseProjectFromAdapter } from './parse-from-adapter.js';
21
21
  export { hashConfig, makeConfigCacheKey } from './cache-key.js';
22
22
  export { skipToEndOfLine, skipBlockComment } from './body-digest.js';
23
23
  export { isReturnValueDiscarded } from './return-discarded.js';
24
- export { record, makeFileClassifier, runWalk, synthesizeModuleInit, buildNameIndex, nameOf, childrenOf, namedChildrenOf, } from './walk.js';
24
+ export { record, makeFileClassifier, runWalk, synthesizeModuleInit, buildNameIndex, sameLanguageFileFilter, nameOf, childrenOf, namedChildrenOf, } from './walk.js';
25
25
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,cAAc,EAAiC,MAAM,eAAe,CAAC;AAI9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EACL,MAAM,EACN,kBAAkB,EAGlB,OAAO,EAGP,oBAAoB,EAEpB,cAAc,EACd,MAAM,EACN,UAAU,EACV,eAAe,GAChB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,cAAc,EAAiC,MAAM,eAAe,CAAC;AAI9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EACL,MAAM,EACN,kBAAkB,EAGlB,OAAO,EAGP,oBAAoB,EAEpB,cAAc,EACd,sBAAsB,EACtB,MAAM,EACN,UAAU,EACV,eAAe,GAChB,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-from-adapter.d.ts","sourceRoot":"","sources":["../src/parse-from-adapter.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAwB,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAc,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,GACnC,CAAC,KAAK,EAAE,UAAU,KAAK,WAAW,CAAC,uBAAuB,CAAC,CA2D7D"}
1
+ {"version":3,"file":"parse-from-adapter.d.ts","sourceRoot":"","sources":["../src/parse-from-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAwB,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAc,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,GACnC,CAAC,KAAK,EAAE,UAAU,KAAK,WAAW,CAAC,uBAAuB,CAAC,CA2D7D"}
@@ -1,4 +1,3 @@
1
- // @fitness-ignore-file unbounded-memory -- reads source files one at a time; per-file memory bounded by source size (tree-sitter constraint)
2
1
  /**
3
2
  * `parseProject` driver that sources each file's parse from a
4
3
  * `LanguageAdapter` (ADR-0010) instead of an inline grammar-bound parser.
@@ -12,9 +11,9 @@
12
11
  * surfaces in `parseErrors`. The adapter's `parse` is synchronous (its grammar
13
12
  * loads at module top level), so `parseProject` stays synchronous.
14
13
  */
15
- import { readFileSync } from 'node:fs';
16
14
  import { relative } from 'node:path';
17
15
  import { logger } from '@opensip-cli/core';
16
+ import { readSourceFileGuarded } from '@opensip-cli/graph';
18
17
  /**
19
18
  * Build a graph `parseProject` from a tree-sitter-backed `LanguageAdapter`
20
19
  * (one whose `parse` returns the `{ tree, source }` `ParsedFile` shape). The
@@ -29,7 +28,7 @@ export function createParseProjectFromAdapter(adapter) {
29
28
  let source;
30
29
  /* v8 ignore start */
31
30
  try {
32
- source = readFileSync(path, 'utf8');
31
+ source = readSourceFileGuarded(path);
33
32
  }
34
33
  catch (error) {
35
34
  parseErrors.push({
@@ -1 +1 @@
1
- {"version":3,"file":"parse-from-adapter.js","sourceRoot":"","sources":["../src/parse-from-adapter.ts"],"names":[],"mappings":"AAAA,6IAA6I;AAC7I;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAO3C;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAAoC;IAEpC,MAAM,MAAM,GAAG,eAAe,OAAO,CAAC,EAAE,EAAE,CAAC;IAE3C,OAAO,SAAS,YAAY,CAAC,KAAiB;QAC5C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgC,CAAC;QACtD,MAAM,WAAW,GAAiB,EAAE,CAAC;QAErC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,MAAc,CAAC;YACnB,qBAAqB;YACrB,IAAI,CAAC;gBACH,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC;oBAC7C,OAAO,EAAE,gBAAgB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBAClF,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,oBAAoB;YACpB,IAAI,MAAyB,CAAC;YAC9B,qBAAqB;YACrB,IAAI,CAAC;gBACH,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC;oBAC7C,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAChE,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,oBAAoB;YACpB,qBAAqB;YACrB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC;oBAC7C,OAAO,EAAE,8BAA8B;iBACxC,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,oBAAoB;YACpB,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC;oBAC7C,OAAO,EAAE,2DAA2D;iBACrE,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,sBAAsB;YAC3B,MAAM;YACN,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,WAAW,EAAE,WAAW,CAAC,MAAM;SAChC,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"parse-from-adapter.js","sourceRoot":"","sources":["../src/parse-from-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAO3D;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAAoC;IAEpC,MAAM,MAAM,GAAG,eAAe,OAAO,CAAC,EAAE,EAAE,CAAC;IAE3C,OAAO,SAAS,YAAY,CAAC,KAAiB;QAC5C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgC,CAAC;QACtD,MAAM,WAAW,GAAiB,EAAE,CAAC;QAErC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,MAAc,CAAC;YACnB,qBAAqB;YACrB,IAAI,CAAC;gBACH,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC;oBAC7C,OAAO,EAAE,gBAAgB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBAClF,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,oBAAoB;YACpB,IAAI,MAAyB,CAAC;YAC9B,qBAAqB;YACrB,IAAI,CAAC;gBACH,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC;oBAC7C,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAChE,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,oBAAoB;YACpB,qBAAqB;YACrB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC;oBAC7C,OAAO,EAAE,8BAA8B;iBACxC,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,oBAAoB;YACpB,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC;oBAC7C,OAAO,EAAE,2DAA2D;iBACrE,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,sBAAsB;YAC3B,MAAM;YACN,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,WAAW,EAAE,WAAW,CAAC,MAAM;SAChC,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"return-discarded.d.ts","sourceRoot":"","sources":["../src/return-discarded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAU1D"}
1
+ {"version":3,"file":"return-discarded.d.ts","sourceRoot":"","sources":["../src/return-discarded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD;;;;GAIG;AAEH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAU1D"}
@@ -17,6 +17,7 @@
17
17
  * entire expression of an enclosing `expression_statement`.
18
18
  * `parenthesized_expression` wrappers are transparent.
19
19
  */
20
+ // @graph-ignore-next-line graph:near-duplicate-function-body -- common, Go, and Python discard checks intentionally share the base shape while adapters add grammar-specific wrappers.
20
21
  export function isReturnValueDiscarded(node) {
21
22
  let parent = node.parent;
22
23
  while (parent) {
@@ -1 +1 @@
1
- {"version":3,"file":"return-discarded.js","sourceRoot":"","sources":["../src/return-discarded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAU;IAC/C,IAAI,MAAM,GAAgB,IAAI,CAAC,MAAM,CAAC;IACtC,OAAO,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;YAC/C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACvB,SAAS;QACX,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,KAAK,sBAAsB,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"return-discarded.js","sourceRoot":"","sources":["../src/return-discarded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;;GAIG;AACH,uLAAuL;AACvL,MAAM,UAAU,sBAAsB,CAAC,IAAU;IAC/C,IAAI,MAAM,GAAgB,IAAI,CAAC,MAAM,CAAC;IACtC,OAAO,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;YAC/C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACvB,SAAS;QACX,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,KAAK,sBAAsB,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
package/dist/walk.d.ts CHANGED
@@ -103,6 +103,21 @@ export { nameOf, childrenOf, namedChildrenOf };
103
103
  * resolution targets. Language-agnostic (operates on the engine's
104
104
  * `FunctionOccurrence` record), so it is shared by every resolver that
105
105
  * needs it (go / java / python; rust resolves differently).
106
+ *
107
+ * `keepFile` (optional) gates which occurrences are indexed by their defining
108
+ * file path. The tree-sitter resolvers link by SIMPLE NAME against the merged
109
+ * catalog. On the single-program (exact) build that catalog holds occurrences
110
+ * from EVERY language, so a Go `foo()` could otherwise pin a TypeScript `foo`
111
+ * β€” a cross-language false edge that the per-shard (sharded) build, whose shards
112
+ * are single-language, never forms. Passing {@link sameLanguageFileFilter} keeps
113
+ * resolution same-language in BOTH engines (symmetric) and is the correct call
114
+ * graph regardless: a static name match across language boundaries is never a
115
+ * real in-process call. Omitted β‡’ no filtering (legacy behaviour).
116
+ */
117
+ export declare function buildNameIndex(functions: Readonly<Record<string, readonly FunctionOccurrence[]>>, keepFile?: (filePath: string) => boolean): ReadonlyMap<string, readonly string[]>;
118
+ /**
119
+ * A predicate keeping only files written in `language` (by extension), for
120
+ * {@link buildNameIndex}'s `keepFile`. Unknown language β‡’ keep everything.
106
121
  */
107
- export declare function buildNameIndex(functions: Readonly<Record<string, readonly FunctionOccurrence[]>>): ReadonlyMap<string, readonly string[]>;
122
+ export declare function sameLanguageFileFilter(language: string): (filePath: string) => boolean;
108
123
  //# sourceMappingURL=walk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"walk.d.ts","sourceRoot":"","sources":["../src/walk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"walk.d.ts","sourceRoot":"","sources":["../src/walk.ts"],"names":[],"mappings":"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"}
package/dist/walk.js CHANGED
@@ -89,6 +89,7 @@ export function synthesizeModuleInit(params) {
89
89
  return {
90
90
  bodyHash: digest.hash,
91
91
  bodySize: digest.size,
92
+ bodySignature: digest.signature,
92
93
  simpleName: `<module-init:${filePathProjectRel}>`,
93
94
  qualifiedName,
94
95
  filePath: filePathProjectRel,
@@ -122,8 +123,18 @@ export { nameOf, childrenOf, namedChildrenOf };
122
123
  * resolution targets. Language-agnostic (operates on the engine's
123
124
  * `FunctionOccurrence` record), so it is shared by every resolver that
124
125
  * needs it (go / java / python; rust resolves differently).
126
+ *
127
+ * `keepFile` (optional) gates which occurrences are indexed by their defining
128
+ * file path. The tree-sitter resolvers link by SIMPLE NAME against the merged
129
+ * catalog. On the single-program (exact) build that catalog holds occurrences
130
+ * from EVERY language, so a Go `foo()` could otherwise pin a TypeScript `foo`
131
+ * β€” a cross-language false edge that the per-shard (sharded) build, whose shards
132
+ * are single-language, never forms. Passing {@link sameLanguageFileFilter} keeps
133
+ * resolution same-language in BOTH engines (symmetric) and is the correct call
134
+ * graph regardless: a static name match across language boundaries is never a
135
+ * real in-process call. Omitted β‡’ no filtering (legacy behaviour).
125
136
  */
126
- export function buildNameIndex(functions) {
137
+ export function buildNameIndex(functions, keepFile) {
127
138
  const out = new Map();
128
139
  for (const [name, occs] of Object.entries(functions)) {
129
140
  if (!occs)
@@ -131,11 +142,38 @@ export function buildNameIndex(functions) {
131
142
  if (name.startsWith('<'))
132
143
  continue;
133
144
  const list = out.get(name) ?? [];
134
- for (const o of occs)
145
+ for (const o of occs) {
146
+ if (keepFile && !keepFile(o.filePath))
147
+ continue;
135
148
  list.push(o.bodyHash);
149
+ }
136
150
  if (list.length > 0)
137
151
  out.set(name, list);
138
152
  }
139
153
  return out;
140
154
  }
155
+ /**
156
+ * Canonical file extensions per tree-sitter resolver language. Used to keep
157
+ * name-index resolution same-language (see {@link buildNameIndex}). Matched by
158
+ * LANGUAGE, not a single literal extension, so a language with several
159
+ * extensions (Python `.py`/`.pyi`) is not split. Only the languages that build a
160
+ * name index appear here; an unrecognized language disables filtering (fails
161
+ * safe to legacy behaviour rather than dropping real edges).
162
+ */
163
+ const LANGUAGE_FILE_EXTENSIONS = {
164
+ go: ['.go'],
165
+ java: ['.java'],
166
+ python: ['.py', '.pyi'],
167
+ rust: ['.rs'],
168
+ };
169
+ /**
170
+ * A predicate keeping only files written in `language` (by extension), for
171
+ * {@link buildNameIndex}'s `keepFile`. Unknown language β‡’ keep everything.
172
+ */
173
+ export function sameLanguageFileFilter(language) {
174
+ const exts = LANGUAGE_FILE_EXTENSIONS[language];
175
+ if (exts === undefined || exts.length === 0)
176
+ return () => true;
177
+ return (filePath) => exts.some((ext) => filePath.endsWith(ext));
178
+ }
141
179
  //# sourceMappingURL=walk.js.map
package/dist/walk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"walk.js","sourceRoot":"","sources":["../src/walk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"walk.js","sourceRoot":"","sources":["../src/walk.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensip-cli/graph-adapter-common",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Shared scaffolding for the tree-sitter graph language adapters (go, java, python, rust)",
6
6
  "keywords": [
@@ -32,9 +32,9 @@
32
32
  ],
33
33
  "dependencies": {
34
34
  "glob": "^13.0.0",
35
- "@opensip-cli/graph": "0.1.10",
36
- "@opensip-cli/core": "0.1.10",
37
- "@opensip-cli/tree-sitter": "0.1.10"
35
+ "@opensip-cli/core": "0.1.12",
36
+ "@opensip-cli/tree-sitter": "0.1.12",
37
+ "@opensip-cli/graph": "0.1.12"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^24.13.2",