@dewtech/dare-cli 3.4.0 → 3.5.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/dist/__tests__/dag-runner/buildLocateContext.test.d.ts +2 -0
- package/dist/__tests__/dag-runner/buildLocateContext.test.d.ts.map +1 -0
- package/dist/__tests__/dag-runner/buildLocateContext.test.js +53 -0
- package/dist/__tests__/dag-runner/buildLocateContext.test.js.map +1 -0
- package/dist/__tests__/dual-graph.test.d.ts +2 -0
- package/dist/__tests__/dual-graph.test.d.ts.map +1 -0
- package/dist/__tests__/dual-graph.test.js +141 -0
- package/dist/__tests__/dual-graph.test.js.map +1 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.d.ts +9 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.d.ts.map +1 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.js +58 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.js.map +1 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.test.d.ts +2 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.test.d.ts.map +1 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.test.js +100 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.test.js.map +1 -0
- package/dist/__tests__/graphrag/factory.test.js +10 -1
- package/dist/__tests__/graphrag/factory.test.js.map +1 -1
- package/dist/__tests__/graphrag/fixtures/dual-graph/build-fixture-graph.d.ts +11 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/build-fixture-graph.d.ts.map +1 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/build-fixture-graph.js +34 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/build-fixture-graph.js.map +1 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/fixtures.test.d.ts +2 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/fixtures.test.d.ts.map +1 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/fixtures.test.js +46 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/fixtures.test.js.map +1 -0
- package/dist/__tests__/graphrag/graph-rag.test.js +31 -0
- package/dist/__tests__/graphrag/graph-rag.test.js.map +1 -1
- package/dist/__tests__/graphrag/json-graph.test.js +57 -0
- package/dist/__tests__/graphrag/json-graph.test.js.map +1 -1
- package/dist/__tests__/graphrag/neo4j-graph.test.d.ts +2 -0
- package/dist/__tests__/graphrag/neo4j-graph.test.d.ts.map +1 -0
- package/dist/__tests__/graphrag/neo4j-graph.test.js +104 -0
- package/dist/__tests__/graphrag/neo4j-graph.test.js.map +1 -0
- package/dist/__tests__/graphrag/neo4j-persistence.test.d.ts +2 -0
- package/dist/__tests__/graphrag/neo4j-persistence.test.d.ts.map +1 -0
- package/dist/__tests__/graphrag/neo4j-persistence.test.js +110 -0
- package/dist/__tests__/graphrag/neo4j-persistence.test.js.map +1 -0
- package/dist/commands/__tests__/execute.telemetry.spec.js +9 -0
- package/dist/commands/__tests__/execute.telemetry.spec.js.map +1 -1
- package/dist/commands/__tests__/graph-viz-layers.test.d.ts +2 -0
- package/dist/commands/__tests__/graph-viz-layers.test.d.ts.map +1 -0
- package/dist/commands/__tests__/graph-viz-layers.test.js +36 -0
- package/dist/commands/__tests__/graph-viz-layers.test.js.map +1 -0
- package/dist/commands/__tests__/impact.test.d.ts +2 -0
- package/dist/commands/__tests__/impact.test.d.ts.map +1 -0
- package/dist/commands/__tests__/impact.test.js +26 -0
- package/dist/commands/__tests__/impact.test.js.map +1 -0
- package/dist/commands/__tests__/locate.test.d.ts +2 -0
- package/dist/commands/__tests__/locate.test.d.ts.map +1 -0
- package/dist/commands/__tests__/locate.test.js +35 -0
- package/dist/commands/__tests__/locate.test.js.map +1 -0
- package/dist/commands/__tests__/owners.test.d.ts +2 -0
- package/dist/commands/__tests__/owners.test.d.ts.map +1 -0
- package/dist/commands/__tests__/owners.test.js +34 -0
- package/dist/commands/__tests__/owners.test.js.map +1 -0
- package/dist/commands/__tests__/trace.test.d.ts +2 -0
- package/dist/commands/__tests__/trace.test.d.ts.map +1 -0
- package/dist/commands/__tests__/trace.test.js +29 -0
- package/dist/commands/__tests__/trace.test.js.map +1 -0
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +11 -6
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/graph-queries.d.ts +48 -0
- package/dist/commands/graph-queries.d.ts.map +1 -0
- package/dist/commands/graph-queries.js +204 -0
- package/dist/commands/graph-queries.js.map +1 -0
- package/dist/commands/graph.d.ts +13 -0
- package/dist/commands/graph.d.ts.map +1 -1
- package/dist/commands/graph.js +212 -8
- package/dist/commands/graph.js.map +1 -1
- package/dist/dag-runner/__tests__/fixtures/src/math.d.ts +3 -0
- package/dist/dag-runner/__tests__/fixtures/src/math.d.ts.map +1 -0
- package/dist/dag-runner/__tests__/fixtures/src/math.js +7 -0
- package/dist/dag-runner/__tests__/fixtures/src/math.js.map +1 -0
- package/dist/dag-runner/__tests__/graph-ingest-symbols.test.d.ts +2 -0
- package/dist/dag-runner/__tests__/graph-ingest-symbols.test.d.ts.map +1 -0
- package/dist/dag-runner/__tests__/graph-ingest-symbols.test.js +81 -0
- package/dist/dag-runner/__tests__/graph-ingest-symbols.test.js.map +1 -0
- package/dist/dag-runner/graph-ingest.d.ts.map +1 -1
- package/dist/dag-runner/graph-ingest.js +46 -0
- package/dist/dag-runner/graph-ingest.js.map +1 -1
- package/dist/dag-runner/graph-locate.d.ts +11 -0
- package/dist/dag-runner/graph-locate.d.ts.map +1 -0
- package/dist/dag-runner/graph-locate.js +74 -0
- package/dist/dag-runner/graph-locate.js.map +1 -0
- package/dist/dag-runner/run_dag.d.ts +3 -1
- package/dist/dag-runner/run_dag.d.ts.map +1 -1
- package/dist/dag-runner/run_dag.js +2 -1
- package/dist/dag-runner/run_dag.js.map +1 -1
- package/dist/dag-runner/utils/stitch-context.d.ts +3 -1
- package/dist/dag-runner/utils/stitch-context.d.ts.map +1 -1
- package/dist/dag-runner/utils/stitch-context.js +8 -2
- package/dist/dag-runner/utils/stitch-context.js.map +1 -1
- package/dist/graphrag/__tests__/code-index.test.d.ts +2 -0
- package/dist/graphrag/__tests__/code-index.test.d.ts.map +1 -0
- package/dist/graphrag/__tests__/code-index.test.js +75 -0
- package/dist/graphrag/__tests__/code-index.test.js.map +1 -0
- package/dist/graphrag/__tests__/fixtures/code-index/sample.d.ts +5 -0
- package/dist/graphrag/__tests__/fixtures/code-index/sample.d.ts.map +1 -0
- package/dist/graphrag/__tests__/fixtures/code-index/sample.js +10 -0
- package/dist/graphrag/__tests__/fixtures/code-index/sample.js.map +1 -0
- package/dist/graphrag/__tests__/locate.test.d.ts +2 -0
- package/dist/graphrag/__tests__/locate.test.d.ts.map +1 -0
- package/dist/graphrag/__tests__/locate.test.js +43 -0
- package/dist/graphrag/__tests__/locate.test.js.map +1 -0
- package/dist/graphrag/__tests__/requirement-ingest.test.d.ts +2 -0
- package/dist/graphrag/__tests__/requirement-ingest.test.d.ts.map +1 -0
- package/dist/graphrag/__tests__/requirement-ingest.test.js +66 -0
- package/dist/graphrag/__tests__/requirement-ingest.test.js.map +1 -0
- package/dist/graphrag/__tests__/traverse.test.d.ts +2 -0
- package/dist/graphrag/__tests__/traverse.test.d.ts.map +1 -0
- package/dist/graphrag/__tests__/traverse.test.js +71 -0
- package/dist/graphrag/__tests__/traverse.test.js.map +1 -0
- package/dist/graphrag/__tests__/types.test.d.ts +2 -0
- package/dist/graphrag/__tests__/types.test.d.ts.map +1 -0
- package/dist/graphrag/__tests__/types.test.js +52 -0
- package/dist/graphrag/__tests__/types.test.js.map +1 -0
- package/dist/graphrag/code-index.d.ts +15 -0
- package/dist/graphrag/code-index.d.ts.map +1 -0
- package/dist/graphrag/code-index.js +205 -0
- package/dist/graphrag/code-index.js.map +1 -0
- package/dist/graphrag/factory.d.ts.map +1 -1
- package/dist/graphrag/factory.js +5 -0
- package/dist/graphrag/factory.js.map +1 -1
- package/dist/graphrag/graph-rag.d.ts +6 -2
- package/dist/graphrag/graph-rag.d.ts.map +1 -1
- package/dist/graphrag/graph-rag.js +40 -2
- package/dist/graphrag/graph-rag.js.map +1 -1
- package/dist/graphrag/index.d.ts +8 -2
- package/dist/graphrag/index.d.ts.map +1 -1
- package/dist/graphrag/index.js +5 -1
- package/dist/graphrag/index.js.map +1 -1
- package/dist/graphrag/json-graph.d.ts +8 -0
- package/dist/graphrag/json-graph.d.ts.map +1 -1
- package/dist/graphrag/json-graph.js +50 -4
- package/dist/graphrag/json-graph.js.map +1 -1
- package/dist/graphrag/knowledge-graph.d.ts +8 -3
- package/dist/graphrag/knowledge-graph.d.ts.map +1 -1
- package/dist/graphrag/neo4j-graph.d.ts +19 -18
- package/dist/graphrag/neo4j-graph.d.ts.map +1 -1
- package/dist/graphrag/neo4j-graph.js +164 -38
- package/dist/graphrag/neo4j-graph.js.map +1 -1
- package/dist/graphrag/requirement-ingest.d.ts +15 -0
- package/dist/graphrag/requirement-ingest.d.ts.map +1 -0
- package/dist/graphrag/requirement-ingest.js +158 -0
- package/dist/graphrag/requirement-ingest.js.map +1 -0
- package/dist/graphrag/traverse.d.ts +5 -0
- package/dist/graphrag/traverse.d.ts.map +1 -0
- package/dist/graphrag/traverse.js +139 -0
- package/dist/graphrag/traverse.js.map +1 -0
- package/dist/graphrag/types.d.ts +60 -2
- package/dist/graphrag/types.d.ts.map +1 -1
- package/dist/graphrag/types.js +34 -1
- package/dist/graphrag/types.js.map +1 -1
- package/dist/mcp-server/__tests__/mcp-graph.test.d.ts +2 -0
- package/dist/mcp-server/__tests__/mcp-graph.test.d.ts.map +1 -0
- package/dist/mcp-server/__tests__/mcp-graph.test.js +85 -0
- package/dist/mcp-server/__tests__/mcp-graph.test.js.map +1 -0
- package/dist/mcp-server/server.d.ts.map +1 -1
- package/dist/mcp-server/server.js +106 -1
- package/dist/mcp-server/server.js.map +1 -1
- package/dist/utils/__tests__/static-analyzer-exports.test.d.ts +2 -0
- package/dist/utils/__tests__/static-analyzer-exports.test.d.ts.map +1 -0
- package/dist/utils/__tests__/static-analyzer-exports.test.js +21 -0
- package/dist/utils/__tests__/static-analyzer-exports.test.js.map +1 -0
- package/dist/utils/project-generator.js +12 -0
- package/dist/utils/project-generator.js.map +1 -1
- package/dist/utils/static-analyzer.d.ts +9 -0
- package/dist/utils/static-analyzer.d.ts.map +1 -1
- package/dist/utils/static-analyzer.js +2 -2
- package/dist/utils/static-analyzer.js.map +1 -1
- package/dist/verification/__tests__/telemetry.test.js +9 -0
- package/dist/verification/__tests__/telemetry.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { ALL_EDGE_TYPES, ALL_NODE_TYPES, emptyEdgesByType, emptyNodesByType, } from '../types.js';
|
|
3
|
+
describe('dual-graph types', () => {
|
|
4
|
+
it('NodeType union includes code_symbol and requirement', () => {
|
|
5
|
+
expect(ALL_NODE_TYPES).toContain('code_symbol');
|
|
6
|
+
expect(ALL_NODE_TYPES).toContain('requirement');
|
|
7
|
+
expect(ALL_NODE_TYPES).toContain('gate');
|
|
8
|
+
});
|
|
9
|
+
it('EdgeType union includes affects and derives_from', () => {
|
|
10
|
+
expect(ALL_EDGE_TYPES).toContain('affects');
|
|
11
|
+
expect(ALL_EDGE_TYPES).toContain('derives_from');
|
|
12
|
+
expect(ALL_EDGE_TYPES).toContain('verified_by');
|
|
13
|
+
});
|
|
14
|
+
it('emptyNodesByType initializes every NodeType to 0 without NaN', () => {
|
|
15
|
+
const counts = emptyNodesByType();
|
|
16
|
+
for (const t of ALL_NODE_TYPES) {
|
|
17
|
+
expect(counts[t]).toBe(0);
|
|
18
|
+
expect(Number.isNaN(counts[t])).toBe(false);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
it('emptyEdgesByType initializes every EdgeType to 0 without NaN', () => {
|
|
22
|
+
const counts = emptyEdgesByType();
|
|
23
|
+
for (const t of ALL_EDGE_TYPES) {
|
|
24
|
+
expect(counts[t]).toBe(0);
|
|
25
|
+
expect(Number.isNaN(counts[t])).toBe(false);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
it('CodeSymbolNode and RequirementNode satisfy extended GraphNode shapes', () => {
|
|
29
|
+
const symbol = {
|
|
30
|
+
id: 'code_symbol:src/math.ts::add',
|
|
31
|
+
type: 'code_symbol',
|
|
32
|
+
label: 'add',
|
|
33
|
+
path: 'src/math.ts',
|
|
34
|
+
symbol: 'add',
|
|
35
|
+
kind: 'function',
|
|
36
|
+
qualifiedName: 'src/math.ts::add',
|
|
37
|
+
line: 1,
|
|
38
|
+
};
|
|
39
|
+
const req = {
|
|
40
|
+
id: 'requirement:RF-01',
|
|
41
|
+
type: 'requirement',
|
|
42
|
+
label: 'RF-01',
|
|
43
|
+
reqId: 'RF-01',
|
|
44
|
+
source: 'blueprint',
|
|
45
|
+
title: 'Dual graph',
|
|
46
|
+
priority: 'MUST',
|
|
47
|
+
};
|
|
48
|
+
const opts = { seedNodeIds: [symbol.id, req.id] };
|
|
49
|
+
expect(opts.seedNodeIds).toHaveLength(2);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=types.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../../src/graphrag/__tests__/types.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,GAIjB,MAAM,aAAa,CAAC;AAErB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,MAAM,GAAmB;YAC7B,EAAE,EAAE,8BAA8B;YAClC,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,UAAU;YAChB,aAAa,EAAE,kBAAkB;YACjC,IAAI,EAAE,CAAC;SACR,CAAC;QACF,MAAM,GAAG,GAAoB;YAC3B,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,MAAM;SACjB,CAAC;QACF,MAAM,IAAI,GAAoB,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CodeSymbolKind } from './types.js';
|
|
2
|
+
export interface ExtractedSymbol {
|
|
3
|
+
readonly path: string;
|
|
4
|
+
readonly symbol: string;
|
|
5
|
+
readonly kind: CodeSymbolKind;
|
|
6
|
+
readonly qualifiedName: string;
|
|
7
|
+
readonly line: number;
|
|
8
|
+
}
|
|
9
|
+
/** Normaliza path para qualifiedName (posix, lowercase drive no win32). */
|
|
10
|
+
export declare function toQualifiedName(filePath: string, symbol: string): string;
|
|
11
|
+
/** Lê arquivo do disco; retorna [] se extensão não suportada ou isTestFile. */
|
|
12
|
+
export declare function extractSymbolsFromFile(absPath: string, projectRoot: string): ExtractedSymbol[];
|
|
13
|
+
/** Batch incremental — só paths listados. */
|
|
14
|
+
export declare function extractSymbolsFromPaths(paths: readonly string[], projectRoot: string): ExtractedSymbol[];
|
|
15
|
+
//# sourceMappingURL=code-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-index.d.ts","sourceRoot":"","sources":["../../src/graphrag/code-index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMxE;AAyKD,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,EAAE,CAe9F;AAED,6CAA6C;AAC7C,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,WAAW,EAAE,MAAM,GAClB,eAAe,EAAE,CAYnB"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { SUPPORTED_EXTENSIONS, inString, isTestFile } from '../utils/static-analyzer.js';
|
|
4
|
+
/** Normaliza path para qualifiedName (posix, lowercase drive no win32). */
|
|
5
|
+
export function toQualifiedName(filePath, symbol) {
|
|
6
|
+
let posix = filePath.replace(/\\/g, '/');
|
|
7
|
+
if (/^[A-Za-z]:/.test(posix)) {
|
|
8
|
+
posix = posix[0].toLowerCase() + posix.slice(1);
|
|
9
|
+
}
|
|
10
|
+
return `${posix}::${symbol}`;
|
|
11
|
+
}
|
|
12
|
+
function sortSymbols(symbols) {
|
|
13
|
+
return [...symbols].sort((a, b) => {
|
|
14
|
+
if (a.path !== b.path)
|
|
15
|
+
return a.path.localeCompare(b.path);
|
|
16
|
+
if (a.line !== b.line)
|
|
17
|
+
return a.line - b.line;
|
|
18
|
+
return a.symbol.localeCompare(b.symbol);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function pushSymbol(out, relPath, symbol, kind, line) {
|
|
22
|
+
out.push({
|
|
23
|
+
path: relPath,
|
|
24
|
+
symbol,
|
|
25
|
+
kind,
|
|
26
|
+
qualifiedName: toQualifiedName(relPath, symbol),
|
|
27
|
+
line,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function matchNameCol(line, re) {
|
|
31
|
+
const m = re.exec(line);
|
|
32
|
+
if (!m)
|
|
33
|
+
return null;
|
|
34
|
+
const symbol = [...m].reverse().find((g) => typeof g === 'string' && /^\w+$/.test(g));
|
|
35
|
+
if (!symbol)
|
|
36
|
+
return null;
|
|
37
|
+
const col = m.index + m[0].indexOf(symbol);
|
|
38
|
+
if (inString(line, col))
|
|
39
|
+
return null;
|
|
40
|
+
return { symbol, col };
|
|
41
|
+
}
|
|
42
|
+
function extractTsJs(lines, relPath, out) {
|
|
43
|
+
const fnRe = /^(export\s+)?(async\s+)?function\s+(\w+)\s*\(/;
|
|
44
|
+
const classRe = /^(export\s+)?(abstract\s+)?class\s+(\w+)/;
|
|
45
|
+
const methodRe = /^\s+(\w+)\s*\(/;
|
|
46
|
+
let braceDepth = 0;
|
|
47
|
+
let inClassBody = false;
|
|
48
|
+
for (let i = 0; i < lines.length; i++) {
|
|
49
|
+
const line = lines[i];
|
|
50
|
+
if (!inClassBody) {
|
|
51
|
+
const fnMatch = matchNameCol(line, fnRe);
|
|
52
|
+
if (fnMatch) {
|
|
53
|
+
pushSymbol(out, relPath, fnMatch.symbol, 'function', i + 1);
|
|
54
|
+
}
|
|
55
|
+
const classMatch = matchNameCol(line, classRe);
|
|
56
|
+
if (classMatch) {
|
|
57
|
+
pushSymbol(out, relPath, classMatch.symbol, 'class', i + 1);
|
|
58
|
+
if (line.includes('{')) {
|
|
59
|
+
inClassBody = true;
|
|
60
|
+
braceDepth =
|
|
61
|
+
(line.match(/\{/g) ?? []).length - (line.match(/\}/g) ?? []).length;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const methodMatch = matchNameCol(line, methodRe);
|
|
67
|
+
if (methodMatch && !/^(if|for|while|switch|catch|return)\b/.test(methodMatch.symbol)) {
|
|
68
|
+
pushSymbol(out, relPath, methodMatch.symbol, 'method', i + 1);
|
|
69
|
+
}
|
|
70
|
+
braceDepth += (line.match(/\{/g) ?? []).length;
|
|
71
|
+
braceDepth -= (line.match(/\}/g) ?? []).length;
|
|
72
|
+
if (braceDepth <= 0) {
|
|
73
|
+
inClassBody = false;
|
|
74
|
+
braceDepth = 0;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function extractPython(lines, relPath, out) {
|
|
79
|
+
const defRe = /^def\s+(\w+)\s*\(/;
|
|
80
|
+
const classRe = /^class\s+(\w+)/;
|
|
81
|
+
let inClass = false;
|
|
82
|
+
for (let i = 0; i < lines.length; i++) {
|
|
83
|
+
const line = lines[i];
|
|
84
|
+
if (!inClass) {
|
|
85
|
+
const classMatch = matchNameCol(line, classRe);
|
|
86
|
+
if (classMatch) {
|
|
87
|
+
pushSymbol(out, relPath, classMatch.symbol, 'class', i + 1);
|
|
88
|
+
inClass = true;
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
const defMatch = matchNameCol(line, defRe);
|
|
92
|
+
if (defMatch) {
|
|
93
|
+
pushSymbol(out, relPath, defMatch.symbol, 'function', i + 1);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
if (line.trim() === '' || /^\s/.test(line)) {
|
|
98
|
+
if (/^class\s/.test(line.trim()))
|
|
99
|
+
inClass = false;
|
|
100
|
+
const indentedDef = /^\s+def\s+(\w+)\s*\(/.exec(line);
|
|
101
|
+
if (indentedDef?.[1]) {
|
|
102
|
+
const col = line.indexOf(indentedDef[1]);
|
|
103
|
+
if (!inString(line, col)) {
|
|
104
|
+
pushSymbol(out, relPath, indentedDef[1], 'method', i + 1);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
inClass = false;
|
|
110
|
+
const defMatch = matchNameCol(line, defRe);
|
|
111
|
+
if (defMatch) {
|
|
112
|
+
pushSymbol(out, relPath, defMatch.symbol, 'function', i + 1);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function extractGo(lines, relPath, out) {
|
|
119
|
+
const fnRe = /^func\s+(\w+)\s*\(/;
|
|
120
|
+
const methodRe = /^func\s+\([^)]*\)\s+(\w+)\s*\(/;
|
|
121
|
+
for (let i = 0; i < lines.length; i++) {
|
|
122
|
+
const line = lines[i];
|
|
123
|
+
const methodMatch = matchNameCol(line, methodRe);
|
|
124
|
+
if (methodMatch) {
|
|
125
|
+
pushSymbol(out, relPath, methodMatch.symbol, 'method', i + 1);
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
const fnMatch = matchNameCol(line, fnRe);
|
|
129
|
+
if (fnMatch) {
|
|
130
|
+
pushSymbol(out, relPath, fnMatch.symbol, 'function', i + 1);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function extractRust(lines, relPath, out) {
|
|
135
|
+
const fnRe = /^(pub\s+)?(async\s+)?fn\s+(\w+)\s*\(/;
|
|
136
|
+
for (let i = 0; i < lines.length; i++) {
|
|
137
|
+
const fnMatch = matchNameCol(lines[i], fnRe);
|
|
138
|
+
if (fnMatch) {
|
|
139
|
+
pushSymbol(out, relPath, fnMatch.symbol, 'function', i + 1);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function extractPhp(lines, relPath, out) {
|
|
144
|
+
const fnRe = /^\s*(?:public|private|protected)?\s*function\s+(\w+)\s*\(/;
|
|
145
|
+
for (let i = 0; i < lines.length; i++) {
|
|
146
|
+
const m = matchNameCol(lines[i], fnRe);
|
|
147
|
+
if (!m)
|
|
148
|
+
continue;
|
|
149
|
+
const kind = /^\s+/.test(lines[i]) ? 'method' : 'function';
|
|
150
|
+
pushSymbol(out, relPath, m.symbol, kind, i + 1);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function extractByExtension(ext, lines, relPath) {
|
|
154
|
+
const out = [];
|
|
155
|
+
if (['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs'].includes(ext)) {
|
|
156
|
+
extractTsJs(lines, relPath, out);
|
|
157
|
+
}
|
|
158
|
+
else if (ext === '.py') {
|
|
159
|
+
extractPython(lines, relPath, out);
|
|
160
|
+
}
|
|
161
|
+
else if (ext === '.go') {
|
|
162
|
+
extractGo(lines, relPath, out);
|
|
163
|
+
}
|
|
164
|
+
else if (ext === '.rs') {
|
|
165
|
+
extractRust(lines, relPath, out);
|
|
166
|
+
}
|
|
167
|
+
else if (ext === '.php') {
|
|
168
|
+
extractPhp(lines, relPath, out);
|
|
169
|
+
}
|
|
170
|
+
return out;
|
|
171
|
+
}
|
|
172
|
+
/** Lê arquivo do disco; retorna [] se extensão não suportada ou isTestFile. */
|
|
173
|
+
export function extractSymbolsFromFile(absPath, projectRoot) {
|
|
174
|
+
const ext = path.extname(absPath);
|
|
175
|
+
if (!SUPPORTED_EXTENSIONS.has(ext))
|
|
176
|
+
return [];
|
|
177
|
+
if (isTestFile(absPath))
|
|
178
|
+
return [];
|
|
179
|
+
const relPath = path.relative(projectRoot, absPath).replace(/\\/g, '/');
|
|
180
|
+
let content;
|
|
181
|
+
try {
|
|
182
|
+
content = fs.readFileSync(absPath, 'utf-8');
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
return [];
|
|
186
|
+
}
|
|
187
|
+
const lines = content.split(/\r?\n/);
|
|
188
|
+
return sortSymbols(extractByExtension(ext, lines, relPath));
|
|
189
|
+
}
|
|
190
|
+
/** Batch incremental — só paths listados. */
|
|
191
|
+
export function extractSymbolsFromPaths(paths, projectRoot) {
|
|
192
|
+
const seen = new Set();
|
|
193
|
+
const out = [];
|
|
194
|
+
for (const p of paths) {
|
|
195
|
+
const abs = path.isAbsolute(p) ? p : path.resolve(projectRoot, p);
|
|
196
|
+
for (const sym of extractSymbolsFromFile(abs, projectRoot)) {
|
|
197
|
+
if (seen.has(sym.qualifiedName))
|
|
198
|
+
continue;
|
|
199
|
+
seen.add(sym.qualifiedName);
|
|
200
|
+
out.push(sym);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return sortSymbols(out);
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=code-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-index.js","sourceRoot":"","sources":["../../src/graphrag/code-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/graphrag/factory.ts"],"names":[],"mappings":"AAcA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAQD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,IAAI,GAAE;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,WAAW,CAAC;CACnB,GAAG,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/graphrag/factory.ts"],"names":[],"mappings":"AAcA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAQD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,IAAI,GAAE;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,WAAW,CAAC;CACnB,GAAG,OAAO,CAAC,WAAW,CAAC,CAiC5B;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1B,OAAO,CAAC,cAAc,CAAC,CAgCzB"}
|
package/dist/graphrag/factory.js
CHANGED
|
@@ -44,6 +44,7 @@ export async function loadGraphConfig(opts = {}) {
|
|
|
44
44
|
username: typeof subBlock.username === 'string' ? subBlock.username : undefined,
|
|
45
45
|
password: typeof subBlock.password === 'string' ? subBlock.password : undefined,
|
|
46
46
|
auth: typeof subBlock.auth === 'string' ? subBlock.auth : undefined,
|
|
47
|
+
experimental: subBlock.experimental === true,
|
|
47
48
|
};
|
|
48
49
|
return { backend, neo4j };
|
|
49
50
|
}
|
|
@@ -57,6 +58,10 @@ export async function loadGraphConfig(opts = {}) {
|
|
|
57
58
|
export async function createGraph(config, opts = {}) {
|
|
58
59
|
const cwd = opts.cwd ?? process.cwd();
|
|
59
60
|
if (config.backend === 'neo4j') {
|
|
61
|
+
if (config.neo4j?.experimental !== true) {
|
|
62
|
+
throw new Error('Neo4j backend requires `neo4j.experimental: true` in dare-graph.yml until C1 is verified. ' +
|
|
63
|
+
'Use sqlite or json (recommended).');
|
|
64
|
+
}
|
|
60
65
|
if (!config.neo4j?.url) {
|
|
61
66
|
throw new Error('dare-graph.yml `neo4j.url` is required for the neo4j backend (e.g. http://localhost:7474).');
|
|
62
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/graphrag/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AAahE,MAAM,QAAQ,GAA6C;IACzD,MAAM,EAAE,gBAAgB;IACxB,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAGlC,EAAE;IACJ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAEjD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IACtD,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7D,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;IACjE,MAAM,OAAO,GAAI,MAAM,CAAC,OAAwB,IAAI,QAAQ,CAAC;IAC7D,MAAM,QAAQ,GAAI,MAAM,CAAC,OAAO,CAAyC,IAAI,EAAE,CAAC;IAEhF,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAgB;YACzB,GAAG,EAAE,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB;YAC9E,QAAQ,EAAE,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;YAC7E,QAAQ,EAAE,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAC/E,QAAQ,EAAE,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAC/E,IAAI,EAAE,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/graphrag/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { KnowledgeGraph } from './knowledge-graph.js';
|
|
2
|
+
import type { GraphNode, GraphEdge, NodeType, SearchResult, GraphStatistics, CodeSymbolNode, TraverseOptions, TraverseResult, LocateOptions, LocateResult } from './types.js';
|
|
3
|
+
export declare class GraphRAG implements KnowledgeGraph {
|
|
3
4
|
private db;
|
|
4
5
|
private dbPath;
|
|
5
6
|
private SQL;
|
|
@@ -17,6 +18,9 @@ export declare class GraphRAG {
|
|
|
17
18
|
addEdge(edge: GraphEdge): void;
|
|
18
19
|
getEdges(nodeId: string, direction?: 'out' | 'in' | 'both'): GraphEdge[];
|
|
19
20
|
getNodeDependencies(nodeId: string, depth?: number): GraphNode[];
|
|
21
|
+
traverse(opts: TraverseOptions): TraverseResult;
|
|
22
|
+
locate(seedQuery: string, opts?: LocateOptions): LocateResult;
|
|
23
|
+
findByQualifiedName(qn: string): CodeSymbolNode | null;
|
|
20
24
|
getStatistics(): GraphStatistics;
|
|
21
25
|
exportToJson(): {
|
|
22
26
|
nodes: GraphNode[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-rag.d.ts","sourceRoot":"","sources":["../../src/graphrag/graph-rag.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EAAE,SAAS,EAAE,QAAQ,EAC9B,YAAY,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"graph-rag.d.ts","sourceRoot":"","sources":["../../src/graphrag/graph-rag.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EACV,SAAS,EAAE,SAAS,EAAE,QAAQ,EAC9B,YAAY,EAAE,eAAe,EAC7B,cAAc,EAAE,eAAe,EAAE,cAAc,EAC/C,aAAa,EAAE,YAAY,EAC5B,MAAM,YAAY,CAAC;AA8BpB,qBAAa,QAAS,YAAW,cAAc;IAC7C,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAe;gBAEd,MAAM,EAAE,MAAM;IAIpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,GAAG;IAKX,OAAO,CAAC,KAAK;IAWb,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAe9B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAMrC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,SAAK,GAAG,SAAS,EAAE;IAOpD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,YAAY,EAAE;IAczD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAO5B,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAe9B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,KAAK,GAAG,IAAI,GAAG,MAAe,GAAG,SAAS,EAAE;IAWhF,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,SAAS,EAAE;IA6B3D,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc;IAI/C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY;IAI7D,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAsBtD,aAAa,IAAI,eAAe;IAuBhC,YAAY,IAAI;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,EAAE,SAAS,EAAE,CAAA;KAAE;IAM1D,cAAc,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,IAAI;IAKtE,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,SAAS;CAUlB"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import initSqlJs from 'sql.js';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import fs from 'fs-extra';
|
|
4
|
+
import { emptyEdgesByType, emptyNodesByType } from './types.js';
|
|
5
|
+
import { traverse as traverseFn, locate as locateFn } from './traverse.js';
|
|
4
6
|
const SCHEMA_SQL = `
|
|
5
7
|
CREATE TABLE IF NOT EXISTS nodes (
|
|
6
8
|
id TEXT PRIMARY KEY,
|
|
@@ -150,6 +152,32 @@ export class GraphRAG {
|
|
|
150
152
|
return result;
|
|
151
153
|
}
|
|
152
154
|
// ─── Utilities ─────────────────────────────────────────────────────────────
|
|
155
|
+
traverse(opts) {
|
|
156
|
+
return traverseFn(this, opts);
|
|
157
|
+
}
|
|
158
|
+
locate(seedQuery, opts) {
|
|
159
|
+
return locateFn(this, seedQuery, opts);
|
|
160
|
+
}
|
|
161
|
+
findByQualifiedName(qn) {
|
|
162
|
+
const normalized = qn.startsWith('code_symbol:') ? qn.slice('code_symbol:'.length) : qn;
|
|
163
|
+
const directId = `code_symbol:${normalized}`;
|
|
164
|
+
const direct = this.getNode(directId);
|
|
165
|
+
if (direct?.type === 'code_symbol')
|
|
166
|
+
return direct;
|
|
167
|
+
try {
|
|
168
|
+
const row = this.queryOne(`SELECT * FROM nodes WHERE type = 'code_symbol' AND json_extract(metadata, '$.qualifiedName') = ? LIMIT 1`, [normalized]);
|
|
169
|
+
if (row)
|
|
170
|
+
return this.rowToNode(row);
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
// json_extract unavailable — fall through to scan
|
|
174
|
+
}
|
|
175
|
+
for (const node of this.queryNodes('code_symbol', 10000)) {
|
|
176
|
+
if (node.metadata?.qualifiedName === normalized)
|
|
177
|
+
return node;
|
|
178
|
+
}
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
153
181
|
getStatistics() {
|
|
154
182
|
const totalNodesRow = this.queryOne('SELECT COUNT(*) as count FROM nodes');
|
|
155
183
|
const totalEdgesRow = this.queryOne('SELECT COUNT(*) as count FROM edges');
|
|
@@ -157,8 +185,18 @@ export class GraphRAG {
|
|
|
157
185
|
const totalEdges = totalEdgesRow?.count ?? 0;
|
|
158
186
|
const nodeRows = this.query('SELECT type, COUNT(*) as count FROM nodes GROUP BY type');
|
|
159
187
|
const edgeRows = this.query('SELECT type, COUNT(*) as count FROM edges GROUP BY type');
|
|
160
|
-
const nodesByType =
|
|
161
|
-
const edgesByType =
|
|
188
|
+
const nodesByType = emptyNodesByType();
|
|
189
|
+
const edgesByType = emptyEdgesByType();
|
|
190
|
+
for (const r of nodeRows) {
|
|
191
|
+
const t = r.type;
|
|
192
|
+
if (t in nodesByType)
|
|
193
|
+
nodesByType[t] = r.count;
|
|
194
|
+
}
|
|
195
|
+
for (const r of edgeRows) {
|
|
196
|
+
const t = r.type;
|
|
197
|
+
if (t in edgesByType)
|
|
198
|
+
edgesByType[t] = r.count;
|
|
199
|
+
}
|
|
162
200
|
return { totalNodes, totalEdges, nodesByType, edgesByType };
|
|
163
201
|
}
|
|
164
202
|
exportToJson() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-rag.js","sourceRoot":"","sources":["../../src/graphrag/graph-rag.ts"],"names":[],"mappings":"AAAA,OAAO,SAAoC,MAAM,QAAQ,CAAC;AAC1D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-rag.js","sourceRoot":"","sources":["../../src/graphrag/graph-rag.ts"],"names":[],"mappings":"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"}
|
package/dist/graphrag/index.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
export { GraphRAG } from './graph-rag.js';
|
|
2
2
|
export { JsonGraph } from './json-graph.js';
|
|
3
|
-
export { Neo4jGraph } from './neo4j-graph.js';
|
|
3
|
+
export { Neo4jGraph, Neo4jQueryError, parseNodeFromRecord, parseEdgeFromRecord } from './neo4j-graph.js';
|
|
4
4
|
export type { Neo4jConfig } from './neo4j-graph.js';
|
|
5
|
+
export { traverse, locate } from './traverse.js';
|
|
5
6
|
export { createGraph, loadGraphConfig } from './factory.js';
|
|
6
7
|
export type { KnowledgeGraph } from './knowledge-graph.js';
|
|
7
8
|
export type { GraphConfig, GraphBackend } from './factory.js';
|
|
8
|
-
export type { GraphNode, GraphEdge, NodeType, EdgeType, TaskNode, FileNode, SchemaNode, EndpointNode, ComponentNode, SearchResult, GraphStatistics, } from './types.js';
|
|
9
|
+
export type { GraphNode, GraphEdge, NodeType, EdgeType, TaskNode, FileNode, SchemaNode, EndpointNode, ComponentNode, CodeSymbolKind, CodeSymbolNode, RequirementNode, TraverseOptions, TraverseResult, LocateOptions, LocateResult, LocateCandidate, SearchResult, GraphStatistics, } from './types.js';
|
|
10
|
+
export { ALL_NODE_TYPES, ALL_EDGE_TYPES, emptyNodesByType, emptyEdgesByType } from './types.js';
|
|
11
|
+
export { extractSymbolsFromFile, extractSymbolsFromPaths, toQualifiedName, } from './code-index.js';
|
|
12
|
+
export type { ExtractedSymbol } from './code-index.js';
|
|
13
|
+
export { parseRequirementsFromMarkdown, ingestRequirements } from './requirement-ingest.js';
|
|
14
|
+
export type { ParsedRequirement } from './requirement-ingest.js';
|
|
9
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graphrag/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graphrag/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzG,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5D,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9D,YAAY,EACV,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC5F,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/graphrag/index.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export { GraphRAG } from './graph-rag.js';
|
|
2
2
|
export { JsonGraph } from './json-graph.js';
|
|
3
|
-
export { Neo4jGraph } from './neo4j-graph.js';
|
|
3
|
+
export { Neo4jGraph, Neo4jQueryError, parseNodeFromRecord, parseEdgeFromRecord } from './neo4j-graph.js';
|
|
4
|
+
export { traverse, locate } from './traverse.js';
|
|
4
5
|
export { createGraph, loadGraphConfig } from './factory.js';
|
|
6
|
+
export { ALL_NODE_TYPES, ALL_EDGE_TYPES, emptyNodesByType, emptyEdgesByType } from './types.js';
|
|
7
|
+
export { extractSymbolsFromFile, extractSymbolsFromPaths, toQualifiedName, } from './code-index.js';
|
|
8
|
+
export { parseRequirementsFromMarkdown, ingestRequirements } from './requirement-ingest.js';
|
|
5
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graphrag/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graphrag/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEzG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAwB5D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { KnowledgeGraph, GraphNode, GraphEdge, NodeType, SearchResult, GraphStatistics } from './knowledge-graph.js';
|
|
2
|
+
import type { CodeSymbolNode, TraverseOptions, TraverseResult, LocateOptions, LocateResult } from './types.js';
|
|
2
3
|
export declare class JsonGraph implements KnowledgeGraph {
|
|
3
4
|
private readonly filePath;
|
|
4
5
|
private nodes;
|
|
5
6
|
private edges;
|
|
7
|
+
/** qualifiedName → node id (code_symbol only) */
|
|
8
|
+
private qnIndex;
|
|
6
9
|
constructor(filePath: string);
|
|
7
10
|
init(): Promise<void>;
|
|
8
11
|
addNode(node: GraphNode): void;
|
|
@@ -22,7 +25,12 @@ export declare class JsonGraph implements KnowledgeGraph {
|
|
|
22
25
|
nodes: GraphNode[];
|
|
23
26
|
edges: GraphEdge[];
|
|
24
27
|
}): void;
|
|
28
|
+
traverse(opts: TraverseOptions): TraverseResult;
|
|
29
|
+
locate(seedQuery: string, opts?: LocateOptions): LocateResult;
|
|
30
|
+
findByQualifiedName(qn: string): CodeSymbolNode | null;
|
|
25
31
|
close(): void;
|
|
32
|
+
private indexCodeSymbol;
|
|
33
|
+
private rebuildQnIndex;
|
|
26
34
|
private flushSync;
|
|
27
35
|
}
|
|
28
36
|
//# sourceMappingURL=json-graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-graph.d.ts","sourceRoot":"","sources":["../../src/graphrag/json-graph.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,QAAQ,EAER,YAAY,EACZ,eAAe,EAChB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"json-graph.d.ts","sourceRoot":"","sources":["../../src/graphrag/json-graph.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,QAAQ,EAER,YAAY,EACZ,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAQpB,qBAAa,SAAU,YAAW,cAAc;IAMlC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IALrC,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,KAAK,CAAgC;IAC7C,iDAAiD;IACjD,OAAO,CAAC,OAAO,CAA6B;gBAEf,QAAQ,EAAE,MAAM;IAEvC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3B,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAsB9B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIrC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,SAAK,GAAG,SAAS,EAAE;IAOpD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,YAAY,EAAE;IAiBtD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAe5B,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAS9B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,KAAK,GAAG,IAAI,GAAG,MAAe,GAAG,SAAS,EAAE;IAQhF,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,SAAS,EAAE;IAqB3D,aAAa,IAAI,eAAe;IAiBhC,YAAY,IAAI;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,EAAE,SAAS,EAAE,CAAA;KAAE;IAI1D,cAAc,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,IAAI;IAMtE,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc;IAI/C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY;IAI7D,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAatD,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,SAAS;CAWlB"}
|