@roarpeng/graphflow 0.6.15 → 1.0.4

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.
Files changed (181) hide show
  1. package/AGENTS.md +1 -1
  2. package/CHANGELOG.md +54 -1
  3. package/README.md +149 -44
  4. package/dist/agents/insight.d.ts +83 -0
  5. package/dist/agents/insight.d.ts.map +1 -0
  6. package/dist/agents/insight.js +381 -0
  7. package/dist/agents/insight.js.map +1 -0
  8. package/dist/agents/validator.d.ts.map +1 -1
  9. package/dist/agents/validator.js +19 -8
  10. package/dist/agents/validator.js.map +1 -1
  11. package/dist/agents/worker.d.ts.map +1 -1
  12. package/dist/agents/worker.js +3 -2
  13. package/dist/agents/worker.js.map +1 -1
  14. package/dist/config/defaults.js +1 -1
  15. package/dist/config/defaults.js.map +1 -1
  16. package/dist/config/discover-workspace.d.ts +16 -0
  17. package/dist/config/discover-workspace.d.ts.map +1 -0
  18. package/dist/config/discover-workspace.js +112 -0
  19. package/dist/config/discover-workspace.js.map +1 -0
  20. package/dist/config/resolve.d.ts.map +1 -1
  21. package/dist/config/resolve.js +22 -8
  22. package/dist/config/resolve.js.map +1 -1
  23. package/dist/config/scaffold.d.ts.map +1 -1
  24. package/dist/config/scaffold.js +2 -1
  25. package/dist/config/scaffold.js.map +1 -1
  26. package/dist/config/schema.d.ts +31 -0
  27. package/dist/config/schema.d.ts.map +1 -1
  28. package/dist/config/workspace-root.d.ts +24 -0
  29. package/dist/config/workspace-root.d.ts.map +1 -0
  30. package/dist/config/workspace-root.js +59 -0
  31. package/dist/config/workspace-root.js.map +1 -0
  32. package/dist/core/orchestrator.d.ts +7 -0
  33. package/dist/core/orchestrator.d.ts.map +1 -1
  34. package/dist/core/orchestrator.js +54 -3
  35. package/dist/core/orchestrator.js.map +1 -1
  36. package/dist/core/state-machine.d.ts +1 -0
  37. package/dist/core/state-machine.d.ts.map +1 -1
  38. package/dist/core/state-machine.js +20 -0
  39. package/dist/core/state-machine.js.map +1 -1
  40. package/dist/core/types.d.ts +9 -3
  41. package/dist/core/types.d.ts.map +1 -1
  42. package/dist/graph/adaptive-budget.d.ts +18 -0
  43. package/dist/graph/adaptive-budget.d.ts.map +1 -0
  44. package/dist/graph/adaptive-budget.js +50 -0
  45. package/dist/graph/adaptive-budget.js.map +1 -0
  46. package/dist/graph/artifact-manager.d.ts +72 -0
  47. package/dist/graph/artifact-manager.d.ts.map +1 -0
  48. package/dist/graph/artifact-manager.js +215 -0
  49. package/dist/graph/artifact-manager.js.map +1 -0
  50. package/dist/graph/compression-model.d.ts +52 -0
  51. package/dist/graph/compression-model.d.ts.map +1 -0
  52. package/dist/graph/compression-model.js +125 -0
  53. package/dist/graph/compression-model.js.map +1 -0
  54. package/dist/graph/context-slicer.d.ts +32 -0
  55. package/dist/graph/context-slicer.d.ts.map +1 -1
  56. package/dist/graph/context-slicer.js +159 -1
  57. package/dist/graph/context-slicer.js.map +1 -1
  58. package/dist/graph/file-indexer.d.ts +31 -0
  59. package/dist/graph/file-indexer.d.ts.map +1 -1
  60. package/dist/graph/file-indexer.js +332 -3
  61. package/dist/graph/file-indexer.js.map +1 -1
  62. package/dist/graph/graph-compression.d.ts +44 -0
  63. package/dist/graph/graph-compression.d.ts.map +1 -0
  64. package/dist/graph/graph-compression.js +155 -0
  65. package/dist/graph/graph-compression.js.map +1 -0
  66. package/dist/graph/graph-utils.d.ts +4 -1
  67. package/dist/graph/graph-utils.d.ts.map +1 -1
  68. package/dist/graph/graph-utils.js +62 -0
  69. package/dist/graph/graph-utils.js.map +1 -1
  70. package/dist/graph/graphify-file-client.d.ts.map +1 -1
  71. package/dist/graph/graphify-file-client.js +30 -8
  72. package/dist/graph/graphify-file-client.js.map +1 -1
  73. package/dist/graph/language-indexers/c-cpp.d.ts +9 -1
  74. package/dist/graph/language-indexers/c-cpp.d.ts.map +1 -1
  75. package/dist/graph/language-indexers/c-cpp.js +328 -103
  76. package/dist/graph/language-indexers/c-cpp.js.map +1 -1
  77. package/dist/graph/language-indexers/index.d.ts +20 -0
  78. package/dist/graph/language-indexers/index.d.ts.map +1 -1
  79. package/dist/graph/language-indexers/index.js +4 -0
  80. package/dist/graph/language-indexers/index.js.map +1 -1
  81. package/dist/graph/language-indexers/java.d.ts +12 -0
  82. package/dist/graph/language-indexers/java.d.ts.map +1 -0
  83. package/dist/graph/language-indexers/java.js +273 -0
  84. package/dist/graph/language-indexers/java.js.map +1 -0
  85. package/dist/graph/language-indexers/python.d.ts.map +1 -1
  86. package/dist/graph/language-indexers/python.js +47 -4
  87. package/dist/graph/language-indexers/python.js.map +1 -1
  88. package/dist/graph/language-indexers/ruby.d.ts +14 -0
  89. package/dist/graph/language-indexers/ruby.d.ts.map +1 -0
  90. package/dist/graph/language-indexers/ruby.js +245 -0
  91. package/dist/graph/language-indexers/ruby.js.map +1 -0
  92. package/dist/graph/language-indexers/rust.d.ts +10 -1
  93. package/dist/graph/language-indexers/rust.d.ts.map +1 -1
  94. package/dist/graph/language-indexers/rust.js +254 -80
  95. package/dist/graph/language-indexers/rust.js.map +1 -1
  96. package/dist/graph/language-indexers/tree-sitter-loader.d.ts +8 -1
  97. package/dist/graph/language-indexers/tree-sitter-loader.d.ts.map +1 -1
  98. package/dist/graph/language-indexers/tree-sitter-loader.js +64 -13
  99. package/dist/graph/language-indexers/tree-sitter-loader.js.map +1 -1
  100. package/dist/graph/language-indexers/typescript.d.ts.map +1 -1
  101. package/dist/graph/language-indexers/typescript.js +72 -8
  102. package/dist/graph/language-indexers/typescript.js.map +1 -1
  103. package/dist/graph/metrics.d.ts +33 -0
  104. package/dist/graph/metrics.d.ts.map +1 -0
  105. package/dist/graph/metrics.js +117 -0
  106. package/dist/graph/metrics.js.map +1 -0
  107. package/dist/graph/repo-map.d.ts +25 -0
  108. package/dist/graph/repo-map.d.ts.map +1 -0
  109. package/dist/graph/repo-map.js +80 -0
  110. package/dist/graph/repo-map.js.map +1 -0
  111. package/dist/graph/semantic-compression.d.ts +65 -0
  112. package/dist/graph/semantic-compression.d.ts.map +1 -0
  113. package/dist/graph/semantic-compression.js +173 -0
  114. package/dist/graph/semantic-compression.js.map +1 -0
  115. package/dist/graph/token-savings.d.ts +52 -0
  116. package/dist/graph/token-savings.d.ts.map +1 -0
  117. package/dist/graph/token-savings.js +113 -0
  118. package/dist/graph/token-savings.js.map +1 -0
  119. package/dist/index.d.ts +2 -1
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +7 -1
  122. package/dist/index.js.map +1 -1
  123. package/dist/integrations/agent-mcp-installer.d.ts +13 -0
  124. package/dist/integrations/agent-mcp-installer.d.ts.map +1 -1
  125. package/dist/integrations/agent-mcp-installer.js +287 -29
  126. package/dist/integrations/agent-mcp-installer.js.map +1 -1
  127. package/dist/learning/episodic-memory.d.ts +8 -1
  128. package/dist/learning/episodic-memory.d.ts.map +1 -1
  129. package/dist/learning/episodic-memory.js +33 -0
  130. package/dist/learning/episodic-memory.js.map +1 -1
  131. package/dist/learning/hnsw-index.d.ts +46 -0
  132. package/dist/learning/hnsw-index.d.ts.map +1 -0
  133. package/dist/learning/hnsw-index.js +138 -0
  134. package/dist/learning/hnsw-index.js.map +1 -0
  135. package/dist/routing/model-router.d.ts +7 -0
  136. package/dist/routing/model-router.d.ts.map +1 -1
  137. package/dist/routing/model-router.js +36 -0
  138. package/dist/routing/model-router.js.map +1 -1
  139. package/dist/skills/index.d.ts +157 -0
  140. package/dist/skills/index.d.ts.map +1 -0
  141. package/dist/skills/index.js +157 -0
  142. package/dist/skills/index.js.map +1 -0
  143. package/dist/surfaces/cli/index.js +119 -0
  144. package/dist/surfaces/cli/index.js.map +1 -1
  145. package/dist/surfaces/cli/output.d.ts.map +1 -1
  146. package/dist/surfaces/cli/output.js +7 -0
  147. package/dist/surfaces/cli/output.js.map +1 -1
  148. package/dist/surfaces/cli/runtime/graph.d.ts +77 -3
  149. package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
  150. package/dist/surfaces/cli/runtime/graph.js +170 -10
  151. package/dist/surfaces/cli/runtime/graph.js.map +1 -1
  152. package/dist/surfaces/cli/runtime/panel.d.ts.map +1 -1
  153. package/dist/surfaces/cli/runtime/panel.js +2 -0
  154. package/dist/surfaces/cli/runtime/panel.js.map +1 -1
  155. package/dist/surfaces/cli/runtime/routing.d.ts +24 -1
  156. package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
  157. package/dist/surfaces/cli/runtime/routing.js +72 -0
  158. package/dist/surfaces/cli/runtime/routing.js.map +1 -1
  159. package/dist/surfaces/cli/runtime/settings.d.ts.map +1 -1
  160. package/dist/surfaces/cli/runtime/settings.js +4 -1
  161. package/dist/surfaces/cli/runtime/settings.js.map +1 -1
  162. package/dist/surfaces/cli/runtime/types.d.ts +36 -0
  163. package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
  164. package/dist/surfaces/cli/runtime.d.ts +2 -2
  165. package/dist/surfaces/cli/runtime.d.ts.map +1 -1
  166. package/dist/surfaces/cli/runtime.js +11 -1
  167. package/dist/surfaces/cli/runtime.js.map +1 -1
  168. package/dist/surfaces/mcp/server.d.ts.map +1 -1
  169. package/dist/surfaces/mcp/server.js +145 -4
  170. package/dist/surfaces/mcp/server.js.map +1 -1
  171. package/dist/utils/logger.js +1 -1
  172. package/dist/utils/logger.js.map +1 -1
  173. package/package.json +6 -2
  174. package/scripts/safe-postinstall.cjs +167 -12
  175. package/src/surfaces/trae-skill/graphflow/SKILL.md +535 -0
  176. package/wasm/tree-sitter-c.wasm +0 -0
  177. package/wasm/tree-sitter-go.wasm +0 -0
  178. package/wasm/tree-sitter-java.wasm +0 -0
  179. package/wasm/tree-sitter-python.wasm +0 -0
  180. package/wasm/tree-sitter-ruby.wasm +0 -0
  181. package/wasm/tree-sitter-rust.wasm +0 -0
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_EDGE_WEIGHTS = void 0;
4
+ exports.extractConnectedSubgraph = extractConnectedSubgraph;
5
+ exports.computePageRank = computePageRank;
6
+ exports.blendWithCentrality = blendWithCentrality;
7
+ /**
8
+ * Graph-structure-based context compression.
9
+ *
10
+ * Unlike token-level pruning (LLMLingua-style), this module compresses by
11
+ * exploiting the graph topology: edge-weighted connectivity + centrality
12
+ * ranking keeps the most "load-bearing" nodes and drops peripheral ones,
13
+ * with zero LLM cost.
14
+ */
15
+ exports.DEFAULT_EDGE_WEIGHTS = {
16
+ references: 1.0,
17
+ imports: 0.85,
18
+ depends_on: 0.7,
19
+ prerequisite: 0.7,
20
+ defines: 0.6,
21
+ calls: 0.65,
22
+ inherits: 0.6,
23
+ validates: 0.5,
24
+ changes: 0.4,
25
+ improves: 0.4,
26
+ co_occurs: 0.3,
27
+ conflicts_with: 0.2,
28
+ };
29
+ /**
30
+ * Extracts a connected subgraph centered on the seed nodes, ranking members
31
+ * by edge-weighted proximity. Returns nodes sorted by relevance (seeds first).
32
+ */
33
+ async function extractConnectedSubgraph(client, seeds, options) {
34
+ if (typeof client.getNeighbors !== "function" || seeds.length === 0) {
35
+ return seeds.map((node) => ({ node, score: 1 }));
36
+ }
37
+ const weights = { ...exports.DEFAULT_EDGE_WEIGHTS, ...options?.edgeWeights };
38
+ const maxNodes = options?.maxNodes ?? 30;
39
+ const hops = options?.hops ?? 2;
40
+ const minNodeWeight = options?.minNodeWeight ?? 0;
41
+ // Seeds start with full score; each hop decays.
42
+ const scores = new Map();
43
+ const nodeById = new Map();
44
+ for (const seed of seeds) {
45
+ scores.set(seed.id, 1);
46
+ nodeById.set(seed.id, seed);
47
+ }
48
+ let frontier = seeds.map((s) => s.id);
49
+ const relations = Object.keys(weights);
50
+ for (let depth = 0; depth < hops; depth += 1) {
51
+ if (frontier.length === 0 || nodeById.size >= maxNodes)
52
+ break;
53
+ const decay = 1 / (depth + 2); // hop 0 -> 0.5, hop 1 -> 0.33, ...
54
+ const neighbors = await client.getNeighbors(frontier, relations, "both");
55
+ const nextFrontier = [];
56
+ for (const { node, via } of neighbors) {
57
+ const edgeWeight = weights[via] ?? 0.1;
58
+ const contribution = edgeWeight * decay;
59
+ const prev = scores.get(node.id) ?? 0;
60
+ scores.set(node.id, prev + contribution);
61
+ if (!nodeById.has(node.id)) {
62
+ nodeById.set(node.id, node);
63
+ nextFrontier.push(node.id);
64
+ }
65
+ }
66
+ frontier = nextFrontier;
67
+ }
68
+ const ranked = [];
69
+ for (const [id, score] of scores.entries()) {
70
+ const node = nodeById.get(id);
71
+ if (!node)
72
+ continue;
73
+ if (score < minNodeWeight)
74
+ continue;
75
+ ranked.push({ node, score });
76
+ }
77
+ ranked.sort((a, b) => b.score - a.score);
78
+ return ranked.slice(0, maxNodes);
79
+ }
80
+ /**
81
+ * Computes weighted PageRank over a node/edge set. Used to surface "central"
82
+ * nodes (frequently-referenced functions, core modules) that should be
83
+ * prioritized in the context budget.
84
+ */
85
+ function computePageRank(nodes, edges, options) {
86
+ const damping = options?.damping ?? 0.85;
87
+ const iterations = options?.iterations ?? 20;
88
+ const weights = { ...exports.DEFAULT_EDGE_WEIGHTS, ...options?.edgeWeights };
89
+ const ids = nodes.map((n) => n.id);
90
+ const idSet = new Set(ids);
91
+ const n = ids.length;
92
+ if (n === 0)
93
+ return new Map();
94
+ // Build weighted outbound adjacency.
95
+ const outWeight = new Map();
96
+ const outEdges = new Map();
97
+ for (const edge of edges) {
98
+ if (!idSet.has(edge.from) || !idSet.has(edge.to))
99
+ continue;
100
+ const w = weights[edge.relation] ?? 0.1;
101
+ const list = outEdges.get(edge.from) ?? [];
102
+ list.push({ to: edge.to, w });
103
+ outEdges.set(edge.from, list);
104
+ outWeight.set(edge.from, (outWeight.get(edge.from) ?? 0) + w);
105
+ }
106
+ let rank = new Map(ids.map((id) => [id, 1 / n]));
107
+ const base = (1 - damping) / n;
108
+ for (let iter = 0; iter < iterations; iter += 1) {
109
+ const next = new Map(ids.map((id) => [id, base]));
110
+ let danglingSum = 0;
111
+ for (const id of ids) {
112
+ const out = outEdges.get(id);
113
+ const r = rank.get(id) ?? 0;
114
+ if (!out || out.length === 0) {
115
+ danglingSum += r;
116
+ continue;
117
+ }
118
+ const total = outWeight.get(id) ?? 1;
119
+ for (const { to, w } of out) {
120
+ next.set(to, (next.get(to) ?? 0) + damping * r * (w / total));
121
+ }
122
+ }
123
+ // Redistribute dangling-node mass uniformly.
124
+ if (danglingSum > 0) {
125
+ const share = (damping * danglingSum) / n;
126
+ for (const id of ids) {
127
+ next.set(id, (next.get(id) ?? 0) + share);
128
+ }
129
+ }
130
+ rank = next;
131
+ }
132
+ return rank;
133
+ }
134
+ /**
135
+ * Re-ranks a candidate node list by blending retrieval order with PageRank
136
+ * centrality. alpha controls the centrality weight (0 = pure retrieval order).
137
+ */
138
+ function blendWithCentrality(candidates, pageRank, alpha = 0.3) {
139
+ if (candidates.length === 0)
140
+ return candidates;
141
+ const maxPr = Math.max(1e-9, ...Array.from(pageRank.values()));
142
+ const scored = candidates.map((node, index) => {
143
+ const retrievalScore = 1 - index / candidates.length; // higher = earlier
144
+ const centrality = (pageRank.get(node.id) ?? 0) / maxPr;
145
+ const score = (1 - alpha) * retrievalScore + alpha * centrality;
146
+ return { node, score, index };
147
+ });
148
+ scored.sort((a, b) => {
149
+ if (b.score !== a.score)
150
+ return b.score - a.score;
151
+ return a.index - b.index;
152
+ });
153
+ return scored.map((s) => s.node);
154
+ }
155
+ //# sourceMappingURL=graph-compression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-compression.js","sourceRoot":"","sources":["../../src/graph/graph-compression.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
- import type { GraphEdge } from "../core/types";
1
+ import type { GraphEdge, GraphNode } from "../core/types";
2
2
  export declare function tokenizeForIndex(text: string): string[];
3
3
  export declare function dedupEdgesByKey(edges: GraphEdge[]): GraphEdge[];
4
+ export declare function extractNodeSourcePath(node: GraphNode): string;
5
+ /** Re-rank keyword hits so integration/config noise does not dominate architecture queries. */
6
+ export declare function rankNodesForContextQuery(nodes: GraphNode[], query: string): GraphNode[];
4
7
  //# sourceMappingURL=graph-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-utils.d.ts","sourceRoot":"","sources":["../../src/graph/graph-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQvD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAW/D"}
1
+ {"version":3,"file":"graph-utils.d.ts","sourceRoot":"","sources":["../../src/graph/graph-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAkB1D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQvD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAW/D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAuB7D;AAED,+FAA+F;AAC/F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CA6BvF"}
@@ -2,7 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tokenizeForIndex = tokenizeForIndex;
4
4
  exports.dedupEdgesByKey = dedupEdgesByKey;
5
+ exports.extractNodeSourcePath = extractNodeSourcePath;
6
+ exports.rankNodesForContextQuery = rankNodesForContextQuery;
5
7
  const TOKEN_SPLIT = /[^a-z0-9_]+/g;
8
+ const DEPRIORITIZED_PATH_PATTERNS = [
9
+ /(?:^|\/)\\.cursor\//i,
10
+ /(?:^|\/)Cursor\//,
11
+ /(?:^|\/)docs\/integrations\//i,
12
+ /mcp\.json$/i,
13
+ /package-lock\.json$/i,
14
+ ];
15
+ const PRIORITIZED_PATH_PATTERNS = [
16
+ /(?:^|\/)src\//,
17
+ /(?:^|\/)vscode-extension\/src\//,
18
+ /(?:^|\/)tests\//,
19
+ ];
6
20
  function tokenizeForIndex(text) {
7
21
  if (!text)
8
22
  return [];
@@ -26,4 +40,52 @@ function dedupEdgesByKey(edges) {
26
40
  }
27
41
  return result;
28
42
  }
43
+ function extractNodeSourcePath(node) {
44
+ const fromMeta = node.metadata?.sourcePath;
45
+ if (typeof fromMeta === "string" && fromMeta.trim()) {
46
+ return fromMeta.trim();
47
+ }
48
+ if (node.id.startsWith("file:")) {
49
+ return node.id.slice("file:".length);
50
+ }
51
+ if (node.id.startsWith("symbol:")) {
52
+ const body = node.id.slice("symbol:".length);
53
+ const hashIndex = body.lastIndexOf(":");
54
+ if (hashIndex > 0 && /^[a-z0-9]+$/i.test(body.slice(hashIndex + 1))) {
55
+ return body.slice(0, hashIndex);
56
+ }
57
+ }
58
+ if (node.id.startsWith("module:")) {
59
+ return node.id.slice("module:".length);
60
+ }
61
+ return node.content.split(/\s+/)[0] ?? "";
62
+ }
63
+ /** Re-rank keyword hits so integration/config noise does not dominate architecture queries. */
64
+ function rankNodesForContextQuery(nodes, query) {
65
+ const queryTokens = new Set(tokenizeForIndex(query));
66
+ const scored = nodes.map((node) => {
67
+ let score = 0;
68
+ const path = extractNodeSourcePath(node);
69
+ for (const token of tokenizeForIndex(node.content)) {
70
+ if (queryTokens.has(token)) {
71
+ score += 2;
72
+ }
73
+ }
74
+ if (PRIORITIZED_PATH_PATTERNS.some((pattern) => pattern.test(path))) {
75
+ score += 8;
76
+ }
77
+ if (DEPRIORITIZED_PATH_PATTERNS.some((pattern) => pattern.test(path))) {
78
+ score -= 12;
79
+ }
80
+ if (node.type === "Symbol") {
81
+ score += 3;
82
+ }
83
+ else if (node.type === "File") {
84
+ score += 1;
85
+ }
86
+ return { node, score };
87
+ });
88
+ scored.sort((a, b) => b.score - a.score || a.node.id.localeCompare(b.node.id));
89
+ return scored.map((entry) => entry.node);
90
+ }
29
91
  //# sourceMappingURL=graph-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-utils.js","sourceRoot":"","sources":["../../src/graph/graph-utils.ts"],"names":[],"mappings":";;AAIA,4CAQC;AAED,0CAWC;AAvBD,MAAM,WAAW,GAAG,cAAc,CAAC;AAEnC,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,eAAe,CAAC,KAAkB;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"graph-utils.js","sourceRoot":"","sources":["../../src/graph/graph-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"graphify-file-client.d.ts","sourceRoot":"","sources":["../../src/graph/graphify-file-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1D,UAAU,UAAU;IAClB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9C,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAepD,YAAY,IAAI,UAAU;IAIpB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAkBnD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMlD,YAAY,CAChB,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,EACnC,SAAS,GAAE,KAAK,GAAG,IAAI,GAAG,MAAe,GACxC,OAAO,CAAC;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;KAAE,EAAE,CAAC;IAiC7D,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,OAAO;IAIT,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAO3F"}
1
+ {"version":3,"file":"graphify-file-client.d.ts","sourceRoot":"","sources":["../../src/graph/graphify-file-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1D,UAAU,UAAU;IAClB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9C,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAepD,YAAY,IAAI,UAAU;IAIpB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAmBnD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMlD,YAAY,CAChB,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,EACnC,SAAS,GAAE,KAAK,GAAG,IAAI,GAAG,MAAe,GACxC,OAAO,CAAC;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;KAAE,EAAE,CAAC;IAiC7D,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,SAAS;IA4BjB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,OAAO;IAIT,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAO3F"}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GraphifyFileClient = void 0;
4
+ const node_crypto_1 = require("node:crypto");
4
5
  const node_fs_1 = require("node:fs");
5
6
  const node_path_1 = require("node:path");
7
+ const logger_1 = require("../utils/logger");
6
8
  const graph_utils_1 = require("./graph-utils");
7
9
  class GraphifyFileClient {
8
10
  storePath;
@@ -40,7 +42,8 @@ class GraphifyFileClient {
40
42
  const tokens = (0, graph_utils_1.tokenizeForIndex)(query);
41
43
  if (tokens.length === 0) {
42
44
  const normalized = query.toLowerCase();
43
- return store.nodes.filter((node) => node.content.toLowerCase().includes(normalized));
45
+ const hits = store.nodes.filter((node) => node.content.toLowerCase().includes(normalized));
46
+ return hits;
44
47
  }
45
48
  const index = this.buildIndex(store.nodes);
46
49
  const matched = new Set();
@@ -111,15 +114,34 @@ class GraphifyFileClient {
111
114
  if (!raw.trim()) {
112
115
  return { nodes: [], edges: [] };
113
116
  }
114
- const parsed = JSON.parse(raw);
115
- return {
116
- nodes: parsed.nodes ?? [],
117
- edges: parsed.edges ?? [],
118
- };
117
+ try {
118
+ const parsed = JSON.parse(raw);
119
+ if (!parsed || typeof parsed !== "object") {
120
+ throw new Error("Graph store JSON root must be an object");
121
+ }
122
+ return {
123
+ nodes: Array.isArray(parsed.nodes) ? parsed.nodes : [],
124
+ edges: Array.isArray(parsed.edges) ? parsed.edges : [],
125
+ };
126
+ }
127
+ catch (error) {
128
+ logger_1.logger.warn({ error, storePath: this.storePath }, "Corrupt graph store JSON; returning empty store (run graphflow_rebuild to repair)");
129
+ return { nodes: [], edges: [] };
130
+ }
119
131
  }
120
132
  writeStore(store) {
121
- (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(this.storePath), { recursive: true });
122
- (0, node_fs_1.writeFileSync)(this.storePath, JSON.stringify(store, null, 2), "utf8");
133
+ const dir = (0, node_path_1.dirname)(this.storePath);
134
+ (0, node_fs_1.mkdirSync)(dir, { recursive: true });
135
+ const payload = JSON.stringify(store, null, 2);
136
+ const tempPath = (0, node_path_1.join)(dir, `.graphflow-graph-${process.pid}-${(0, node_crypto_1.randomBytes)(4).toString("hex")}.tmp`);
137
+ (0, node_fs_1.writeFileSync)(tempPath, payload, "utf8");
138
+ try {
139
+ (0, node_fs_1.renameSync)(tempPath, this.storePath);
140
+ }
141
+ catch (error) {
142
+ (0, node_fs_1.rmSync)(tempPath, { force: true });
143
+ throw error;
144
+ }
123
145
  }
124
146
  edgeKey(edge) {
125
147
  return `${edge.from}::${edge.relation}::${edge.to}`;
@@ -1 +1 @@
1
- {"version":3,"file":"graphify-file-client.js","sourceRoot":"","sources":["../../src/graph/graphify-file-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphify-file-client.js","sourceRoot":"","sources":["../../src/graph/graphify-file-client.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
- import type { LanguageIndexer } from "./index";
1
+ import type { LanguageIndexer } from "./index.js";
2
+ /**
3
+ * C/C++ indexer using tree-sitter AST (upgraded from line-level regex).
4
+ *
5
+ * Extracts: functions, classes/structs, enums, typedefs, macros (#define),
6
+ * namespaces, includes (#include).
7
+ *
8
+ * Visibility is approximated: `static` → not exported, everything else → exported.
9
+ */
2
10
  export declare const cppIndexer: LanguageIndexer;
3
11
  //# sourceMappingURL=c-cpp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"c-cpp.d.ts","sourceRoot":"","sources":["../../../src/graph/language-indexers/c-cpp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkD,eAAe,EAAE,MAAM,SAAS,CAAC;AAe/F,eAAO,MAAM,UAAU,EAAE,eA8GxB,CAAC"}
1
+ {"version":3,"file":"c-cpp.d.ts","sourceRoot":"","sources":["../../../src/graph/language-indexers/c-cpp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkD,eAAe,EAAE,MAAM,YAAY,CAAC;AAQlG;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,EAAE,eA4LxB,CAAC"}