@roarpeng/graphflow 1.0.0 → 1.0.8

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 (142) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +99 -38
  3. package/dist/agents/insight.d.ts +83 -0
  4. package/dist/agents/insight.d.ts.map +1 -0
  5. package/dist/agents/insight.js +381 -0
  6. package/dist/agents/insight.js.map +1 -0
  7. package/dist/config/defaults.js +1 -1
  8. package/dist/config/defaults.js.map +1 -1
  9. package/dist/config/discover-workspace.d.ts +16 -0
  10. package/dist/config/discover-workspace.d.ts.map +1 -0
  11. package/dist/config/discover-workspace.js +112 -0
  12. package/dist/config/discover-workspace.js.map +1 -0
  13. package/dist/config/resolve.d.ts.map +1 -1
  14. package/dist/config/resolve.js +22 -8
  15. package/dist/config/resolve.js.map +1 -1
  16. package/dist/config/scaffold.d.ts.map +1 -1
  17. package/dist/config/scaffold.js +2 -1
  18. package/dist/config/scaffold.js.map +1 -1
  19. package/dist/config/workspace-root.d.ts +24 -0
  20. package/dist/config/workspace-root.d.ts.map +1 -0
  21. package/dist/config/workspace-root.js +59 -0
  22. package/dist/config/workspace-root.js.map +1 -0
  23. package/dist/core/orchestrator.js +10 -1
  24. package/dist/core/orchestrator.js.map +1 -1
  25. package/dist/core/state-machine.js +1 -1
  26. package/dist/core/state-machine.js.map +1 -1
  27. package/dist/core/types.d.ts +2 -2
  28. package/dist/core/types.d.ts.map +1 -1
  29. package/dist/graph/artifact-manager.d.ts +72 -0
  30. package/dist/graph/artifact-manager.d.ts.map +1 -0
  31. package/dist/graph/artifact-manager.js +215 -0
  32. package/dist/graph/artifact-manager.js.map +1 -0
  33. package/dist/graph/context-slicer.d.ts.map +1 -1
  34. package/dist/graph/context-slicer.js +3 -2
  35. package/dist/graph/context-slicer.js.map +1 -1
  36. package/dist/graph/file-indexer.d.ts +31 -0
  37. package/dist/graph/file-indexer.d.ts.map +1 -1
  38. package/dist/graph/file-indexer.js +332 -3
  39. package/dist/graph/file-indexer.js.map +1 -1
  40. package/dist/graph/graph-compression.d.ts.map +1 -1
  41. package/dist/graph/graph-compression.js +2 -0
  42. package/dist/graph/graph-compression.js.map +1 -1
  43. package/dist/graph/graph-utils.d.ts +4 -1
  44. package/dist/graph/graph-utils.d.ts.map +1 -1
  45. package/dist/graph/graph-utils.js +62 -0
  46. package/dist/graph/graph-utils.js.map +1 -1
  47. package/dist/graph/graphify-file-client.d.ts.map +1 -1
  48. package/dist/graph/graphify-file-client.js +30 -8
  49. package/dist/graph/graphify-file-client.js.map +1 -1
  50. package/dist/graph/language-indexers/c-cpp.d.ts +9 -1
  51. package/dist/graph/language-indexers/c-cpp.d.ts.map +1 -1
  52. package/dist/graph/language-indexers/c-cpp.js +328 -103
  53. package/dist/graph/language-indexers/c-cpp.js.map +1 -1
  54. package/dist/graph/language-indexers/index.d.ts +20 -0
  55. package/dist/graph/language-indexers/index.d.ts.map +1 -1
  56. package/dist/graph/language-indexers/index.js +4 -0
  57. package/dist/graph/language-indexers/index.js.map +1 -1
  58. package/dist/graph/language-indexers/java.d.ts +12 -0
  59. package/dist/graph/language-indexers/java.d.ts.map +1 -0
  60. package/dist/graph/language-indexers/java.js +273 -0
  61. package/dist/graph/language-indexers/java.js.map +1 -0
  62. package/dist/graph/language-indexers/python.d.ts.map +1 -1
  63. package/dist/graph/language-indexers/python.js +47 -4
  64. package/dist/graph/language-indexers/python.js.map +1 -1
  65. package/dist/graph/language-indexers/ruby.d.ts +14 -0
  66. package/dist/graph/language-indexers/ruby.d.ts.map +1 -0
  67. package/dist/graph/language-indexers/ruby.js +245 -0
  68. package/dist/graph/language-indexers/ruby.js.map +1 -0
  69. package/dist/graph/language-indexers/rust.d.ts +10 -1
  70. package/dist/graph/language-indexers/rust.d.ts.map +1 -1
  71. package/dist/graph/language-indexers/rust.js +254 -80
  72. package/dist/graph/language-indexers/rust.js.map +1 -1
  73. package/dist/graph/language-indexers/tree-sitter-loader.d.ts +8 -1
  74. package/dist/graph/language-indexers/tree-sitter-loader.d.ts.map +1 -1
  75. package/dist/graph/language-indexers/tree-sitter-loader.js +64 -13
  76. package/dist/graph/language-indexers/tree-sitter-loader.js.map +1 -1
  77. package/dist/graph/language-indexers/typescript.d.ts.map +1 -1
  78. package/dist/graph/language-indexers/typescript.js +72 -8
  79. package/dist/graph/language-indexers/typescript.js.map +1 -1
  80. package/dist/graph/metrics.d.ts +33 -0
  81. package/dist/graph/metrics.d.ts.map +1 -0
  82. package/dist/graph/metrics.js +117 -0
  83. package/dist/graph/metrics.js.map +1 -0
  84. package/dist/graph/token-savings.d.ts +52 -0
  85. package/dist/graph/token-savings.d.ts.map +1 -0
  86. package/dist/graph/token-savings.js +113 -0
  87. package/dist/graph/token-savings.js.map +1 -0
  88. package/dist/index.d.ts +2 -1
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +7 -1
  91. package/dist/index.js.map +1 -1
  92. package/dist/integrations/agent-mcp-installer.d.ts +2 -0
  93. package/dist/integrations/agent-mcp-installer.d.ts.map +1 -1
  94. package/dist/integrations/agent-mcp-installer.js +115 -23
  95. package/dist/integrations/agent-mcp-installer.js.map +1 -1
  96. package/dist/learning/episodic-memory.d.ts +8 -1
  97. package/dist/learning/episodic-memory.d.ts.map +1 -1
  98. package/dist/learning/episodic-memory.js +33 -0
  99. package/dist/learning/episodic-memory.js.map +1 -1
  100. package/dist/skills/index.d.ts +157 -0
  101. package/dist/skills/index.d.ts.map +1 -0
  102. package/dist/skills/index.js +157 -0
  103. package/dist/skills/index.js.map +1 -0
  104. package/dist/surfaces/cli/index.js +128 -0
  105. package/dist/surfaces/cli/index.js.map +1 -1
  106. package/dist/surfaces/cli/init.d.ts +7 -0
  107. package/dist/surfaces/cli/init.d.ts.map +1 -1
  108. package/dist/surfaces/cli/init.js +121 -7
  109. package/dist/surfaces/cli/init.js.map +1 -1
  110. package/dist/surfaces/cli/output.d.ts.map +1 -1
  111. package/dist/surfaces/cli/output.js +8 -0
  112. package/dist/surfaces/cli/output.js.map +1 -1
  113. package/dist/surfaces/cli/runtime/graph.d.ts +77 -3
  114. package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
  115. package/dist/surfaces/cli/runtime/graph.js +140 -9
  116. package/dist/surfaces/cli/runtime/graph.js.map +1 -1
  117. package/dist/surfaces/cli/runtime/routing.d.ts +24 -1
  118. package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
  119. package/dist/surfaces/cli/runtime/routing.js +57 -0
  120. package/dist/surfaces/cli/runtime/routing.js.map +1 -1
  121. package/dist/surfaces/cli/runtime/settings.d.ts.map +1 -1
  122. package/dist/surfaces/cli/runtime/settings.js +4 -1
  123. package/dist/surfaces/cli/runtime/settings.js.map +1 -1
  124. package/dist/surfaces/cli/runtime/types.d.ts +16 -0
  125. package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
  126. package/dist/surfaces/cli/runtime.d.ts +2 -2
  127. package/dist/surfaces/cli/runtime.d.ts.map +1 -1
  128. package/dist/surfaces/cli/runtime.js +11 -1
  129. package/dist/surfaces/cli/runtime.js.map +1 -1
  130. package/dist/surfaces/mcp/server.d.ts.map +1 -1
  131. package/dist/surfaces/mcp/server.js +143 -2
  132. package/dist/surfaces/mcp/server.js.map +1 -1
  133. package/dist/surfaces/trae-skill/graphflow/SKILL.md +535 -0
  134. package/package.json +6 -3
  135. package/scripts/safe-postinstall.cjs +187 -12
  136. package/src/surfaces/trae-skill/graphflow/SKILL.md +535 -0
  137. package/wasm/tree-sitter-c.wasm +0 -0
  138. package/wasm/tree-sitter-go.wasm +0 -0
  139. package/wasm/tree-sitter-java.wasm +0 -0
  140. package/wasm/tree-sitter-python.wasm +0 -0
  141. package/wasm/tree-sitter-ruby.wasm +0 -0
  142. package/wasm/tree-sitter-rust.wasm +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../src/graph/language-indexers/ruby.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,12 @@
1
- import type { LanguageIndexer } from "./index";
1
+ import type { LanguageIndexer } from "./index.js";
2
+ /**
3
+ * Rust indexer using tree-sitter AST (upgraded from line-level regex).
4
+ *
5
+ * Extracts: functions, structs, enums, traits, impl blocks, constants,
6
+ * statics, modules, macro_rules, use declarations.
7
+ *
8
+ * Visibility (`pub`) is determined by the presence of a `visibility_modifier`
9
+ * child node, matching the previous regex-based `pub` detection.
10
+ */
2
11
  export declare const rustIndexer: LanguageIndexer;
3
12
  //# sourceMappingURL=rust.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/graph/language-indexers/rust.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkD,eAAe,EAAE,MAAM,SAAS,CAAC;AAa/F,eAAO,MAAM,WAAW,EAAE,eAsFzB,CAAC"}
1
+ {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/graph/language-indexers/rust.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkD,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlG;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE,eAwKzB,CAAC"}
@@ -1,99 +1,273 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rustIndexer = void 0;
4
- const RE_FN = /^\s*(pub(?:\([^)]*\))?\s+)?(?:async\s+|unsafe\s+|const\s+)*fn\s+(\w+)/;
5
- const RE_STRUCT = /^\s*(pub(?:\([^)]*\))?\s+)?struct\s+(\w+)/;
6
- const RE_ENUM = /^\s*(pub(?:\([^)]*\))?\s+)?enum\s+(\w+)/;
7
- const RE_TRAIT = /^\s*(pub(?:\([^)]*\))?\s+)?trait\s+(\w+)/;
8
- const RE_IMPL = /^\s*impl(?:\s*<[^>]*>)?\s+(?:[\w:<>,\s]+?\s+for\s+)?([A-Za-z_][\w]*)/;
9
- const RE_CONST = /^\s*(pub(?:\([^)]*\))?\s+)?const\s+(\w+)/;
10
- const RE_STATIC = /^\s*(pub(?:\([^)]*\))?\s+)?static\s+(?:mut\s+)?(\w+)/;
11
- const RE_MOD = /^\s*(pub(?:\([^)]*\))?\s+)?mod\s+(\w+)/;
12
- const RE_MACRO = /^\s*macro_rules!\s*(\w+)/;
13
- const RE_USE = /^\s*(?:pub\s+)?use\s+([\w:]+)/;
4
+ const tree_sitter_loader_js_1 = require("./tree-sitter-loader.js");
5
+ /**
6
+ * Rust indexer using tree-sitter AST (upgraded from line-level regex).
7
+ *
8
+ * Extracts: functions, structs, enums, traits, impl blocks, constants,
9
+ * statics, modules, macro_rules, use declarations.
10
+ *
11
+ * Visibility (`pub`) is determined by the presence of a `visibility_modifier`
12
+ * child node, matching the previous regex-based `pub` detection.
13
+ */
14
14
  exports.rustIndexer = {
15
15
  language: "rust",
16
16
  extensions: [".rs"],
17
- extract(filePath, content) {
17
+ async extract(filePath, content) {
18
18
  const symbols = [];
19
19
  const imports = [];
20
- const lines = content.split(/\r?\n/);
21
- let inBlockComment = false;
22
- for (let idx = 0; idx < lines.length; idx += 1) {
23
- let line = lines[idx] ?? "";
24
- if (inBlockComment) {
25
- const end = line.indexOf("*/");
26
- if (end < 0)
27
- continue;
28
- line = line.slice(end + 2);
29
- inBlockComment = false;
30
- }
31
- const blockStart = line.indexOf("/*");
32
- if (blockStart >= 0 && line.indexOf("*/", blockStart) < 0) {
33
- line = line.slice(0, blockStart);
34
- inBlockComment = true;
35
- }
36
- const slashIdx = line.indexOf("//");
37
- if (slashIdx >= 0)
38
- line = line.slice(0, slashIdx);
39
- if (!line.trim())
40
- continue;
41
- const lineNo = idx + 1;
42
- const tests = [
43
- [RE_FN, "function", 1, 2],
44
- [RE_STRUCT, "struct", 1, 2],
45
- [RE_ENUM, "enum", 1, 2],
46
- [RE_TRAIT, "trait", 1, 2],
47
- [RE_CONST, "const", 1, 2],
48
- [RE_STATIC, "const", 1, 2],
49
- [RE_MOD, "module", 1, 2],
50
- ];
51
- let matched = false;
52
- for (const [re, kind, pubGroup, nameGroup] of tests) {
53
- const m = re.exec(line);
54
- if (m) {
55
- symbols.push({
56
- name: m[nameGroup],
57
- kind,
58
- exported: Boolean(m[pubGroup]),
59
- line: lineNo,
60
- file: filePath,
61
- });
62
- matched = true;
20
+ let tree;
21
+ try {
22
+ const parser = await (0, tree_sitter_loader_js_1.getTreeSitterParser)("rust");
23
+ tree = parser.parse(content);
24
+ }
25
+ catch {
26
+ // Fallback to regex if tree-sitter WASM unavailable
27
+ return rustRegexFallback(filePath, content);
28
+ }
29
+ const traverse = (node) => {
30
+ const lineNo = node.startPosition.row + 1;
31
+ const hasPub = node.children?.some((c) => c.type === "visibility_modifier") ?? false;
32
+ switch (node.type) {
33
+ case "function_item": {
34
+ const nameNode = node.childForFieldName("name");
35
+ if (nameNode) {
36
+ let paramsCount = 0;
37
+ const paramsNode = node.childForFieldName("parameters");
38
+ if (paramsNode) {
39
+ paramsCount = paramsNode.namedChildren.filter((c) => c.type === "parameter" || c.type === "self_parameter").length;
40
+ }
41
+ const isAsync = node.children?.some((c) => c.type === "async") ?? false;
42
+ symbols.push({
43
+ name: nameNode.text,
44
+ kind: "function",
45
+ exported: hasPub,
46
+ line: lineNo,
47
+ file: filePath,
48
+ paramsCount,
49
+ signature: `${isAsync ? "async " : ""}fn ${nameNode.text}(${paramsCount} params)`,
50
+ });
51
+ }
52
+ break;
53
+ }
54
+ case "struct_item": {
55
+ const nameNode = node.childForFieldName("name");
56
+ if (nameNode) {
57
+ symbols.push({
58
+ name: nameNode.text,
59
+ kind: "struct",
60
+ exported: hasPub,
61
+ line: lineNo,
62
+ file: filePath,
63
+ });
64
+ }
65
+ break;
66
+ }
67
+ case "enum_item": {
68
+ const nameNode = node.childForFieldName("name");
69
+ if (nameNode) {
70
+ symbols.push({
71
+ name: nameNode.text,
72
+ kind: "enum",
73
+ exported: hasPub,
74
+ line: lineNo,
75
+ file: filePath,
76
+ });
77
+ }
78
+ break;
79
+ }
80
+ case "trait_item": {
81
+ const nameNode = node.childForFieldName("name");
82
+ if (nameNode) {
83
+ symbols.push({
84
+ name: nameNode.text,
85
+ kind: "trait",
86
+ exported: hasPub,
87
+ line: lineNo,
88
+ file: filePath,
89
+ });
90
+ }
91
+ break;
92
+ }
93
+ case "impl_item": {
94
+ const typeNode = node.childForFieldName("type");
95
+ const traitNode = node.childForFieldName("trait");
96
+ if (typeNode) {
97
+ const name = traitNode ? `${traitNode.text} for ${typeNode.text}` : typeNode.text;
98
+ symbols.push({
99
+ name,
100
+ kind: "impl",
101
+ exported: false,
102
+ line: lineNo,
103
+ file: filePath,
104
+ });
105
+ }
106
+ break;
107
+ }
108
+ case "const_item": {
109
+ const nameNode = node.childForFieldName("name");
110
+ if (nameNode) {
111
+ symbols.push({
112
+ name: nameNode.text,
113
+ kind: "const",
114
+ exported: hasPub,
115
+ line: lineNo,
116
+ file: filePath,
117
+ });
118
+ }
119
+ break;
120
+ }
121
+ case "static_item": {
122
+ const nameNode = node.childForFieldName("name");
123
+ if (nameNode) {
124
+ symbols.push({
125
+ name: nameNode.text,
126
+ kind: "const",
127
+ exported: hasPub,
128
+ line: lineNo,
129
+ file: filePath,
130
+ });
131
+ }
132
+ break;
133
+ }
134
+ case "mod_item": {
135
+ const nameNode = node.childForFieldName("name");
136
+ if (nameNode) {
137
+ symbols.push({
138
+ name: nameNode.text,
139
+ kind: "module",
140
+ exported: hasPub,
141
+ line: lineNo,
142
+ file: filePath,
143
+ });
144
+ }
145
+ break;
146
+ }
147
+ case "macro_definition": {
148
+ const nameNode = node.childForFieldName("name");
149
+ if (nameNode) {
150
+ symbols.push({
151
+ name: nameNode.text,
152
+ kind: "macro",
153
+ exported: true,
154
+ line: lineNo,
155
+ file: filePath,
156
+ });
157
+ }
158
+ break;
159
+ }
160
+ case "use_declaration": {
161
+ const argNode = node.childForFieldName("argument");
162
+ if (argNode) {
163
+ const normalized = argNode.text.replace(/::/g, "/");
164
+ imports.push({ module: normalized, raw: node.text });
165
+ }
63
166
  break;
64
167
  }
65
168
  }
66
- if (matched)
67
- continue;
68
- const macroMatch = RE_MACRO.exec(line);
69
- if (macroMatch) {
70
- symbols.push({
71
- name: macroMatch[1],
72
- kind: "macro",
73
- exported: true,
74
- line: lineNo,
75
- file: filePath,
76
- });
77
- continue;
169
+ for (const child of node.children ?? node.namedChildren) {
170
+ traverse(child);
78
171
  }
79
- const implMatch = RE_IMPL.exec(line);
80
- if (implMatch) {
172
+ };
173
+ traverse(tree.rootNode);
174
+ return { symbols, imports };
175
+ },
176
+ };
177
+ /**
178
+ * Regex-based fallback used when tree-sitter WASM is unavailable
179
+ * (e.g., offline first run without bundled grammars).
180
+ * Preserves the pre-upgrade behavior.
181
+ */
182
+ function rustRegexFallback(filePath, content) {
183
+ const symbols = [];
184
+ const imports = [];
185
+ const lines = content.split(/\r?\n/);
186
+ let inBlockComment = false;
187
+ const RE_FN = /^\s*(pub(?:\([^)]*\))?\s+)?(?:async\s+|unsafe\s+|const\s+)*fn\s+(\w+)/;
188
+ const RE_STRUCT = /^\s*(pub(?:\([^)]*\))?\s+)?struct\s+(\w+)/;
189
+ const RE_ENUM = /^\s*(pub(?:\([^)]*\))?\s+)?enum\s+(\w+)/;
190
+ const RE_TRAIT = /^\s*(pub(?:\([^)]*\))?\s+)?trait\s+(\w+)/;
191
+ const RE_IMPL = /^\s*impl(?:\s*<[^>]*>)?\s+(?:[\w:<>,\s]+?\s+for\s+)?([A-Za-z_][\w]*)/;
192
+ const RE_CONST = /^\s*(pub(?:\([^)]*\))?\s+)?const\s+(\w+)/;
193
+ const RE_STATIC = /^\s*(pub(?:\([^)]*\))?\s+)?static\s+(?:mut\s+)?(\w+)/;
194
+ const RE_MOD = /^\s*(pub(?:\([^)]*\))?\s+)?mod\s+(\w+)/;
195
+ const RE_MACRO = /^\s*macro_rules!\s*(\w+)/;
196
+ const RE_USE = /^\s*(?:pub\s+)?use\s+([\w:]+)/;
197
+ for (let idx = 0; idx < lines.length; idx += 1) {
198
+ let line = lines[idx] ?? "";
199
+ if (inBlockComment) {
200
+ const end = line.indexOf("*/");
201
+ if (end < 0)
202
+ continue;
203
+ line = line.slice(end + 2);
204
+ inBlockComment = false;
205
+ }
206
+ const blockStart = line.indexOf("/*");
207
+ if (blockStart >= 0 && line.indexOf("*/", blockStart) < 0) {
208
+ line = line.slice(0, blockStart);
209
+ inBlockComment = true;
210
+ }
211
+ const slashIdx = line.indexOf("//");
212
+ if (slashIdx >= 0)
213
+ line = line.slice(0, slashIdx);
214
+ if (!line.trim())
215
+ continue;
216
+ const lineNo = idx + 1;
217
+ const tests = [
218
+ [RE_FN, "function", 1, 2],
219
+ [RE_STRUCT, "struct", 1, 2],
220
+ [RE_ENUM, "enum", 1, 2],
221
+ [RE_TRAIT, "trait", 1, 2],
222
+ [RE_CONST, "const", 1, 2],
223
+ [RE_STATIC, "const", 1, 2],
224
+ [RE_MOD, "module", 1, 2],
225
+ ];
226
+ let matched = false;
227
+ for (const [re, kind, pubGroup, nameGroup] of tests) {
228
+ const m = re.exec(line);
229
+ if (m) {
81
230
  symbols.push({
82
- name: implMatch[1],
83
- kind: "impl",
84
- exported: false,
231
+ name: m[nameGroup],
232
+ kind,
233
+ exported: Boolean(m[pubGroup]),
85
234
  line: lineNo,
86
235
  file: filePath,
87
236
  });
88
- continue;
89
- }
90
- const useMatch = RE_USE.exec(line);
91
- if (useMatch) {
92
- const normalized = useMatch[1].replace(/::/g, "/");
93
- imports.push({ module: normalized, raw: useMatch[0].trim() });
237
+ matched = true;
238
+ break;
94
239
  }
95
240
  }
96
- return { symbols, imports };
97
- },
98
- };
241
+ if (matched)
242
+ continue;
243
+ const macroMatch = RE_MACRO.exec(line);
244
+ if (macroMatch) {
245
+ symbols.push({
246
+ name: macroMatch[1],
247
+ kind: "macro",
248
+ exported: true,
249
+ line: lineNo,
250
+ file: filePath,
251
+ });
252
+ continue;
253
+ }
254
+ const implMatch = RE_IMPL.exec(line);
255
+ if (implMatch) {
256
+ symbols.push({
257
+ name: implMatch[1],
258
+ kind: "impl",
259
+ exported: false,
260
+ line: lineNo,
261
+ file: filePath,
262
+ });
263
+ continue;
264
+ }
265
+ const useMatch = RE_USE.exec(line);
266
+ if (useMatch) {
267
+ const normalized = useMatch[1].replace(/::/g, "/");
268
+ imports.push({ module: normalized, raw: useMatch[0].trim() });
269
+ }
270
+ }
271
+ return { symbols, imports };
272
+ }
99
273
  //# sourceMappingURL=rust.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/graph/language-indexers/rust.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/graph/language-indexers/rust.ts"],"names":[],"mappings":"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"}
@@ -14,5 +14,12 @@ export interface TreeSitterParser {
14
14
  rootNode: TreeSitterSyntaxNode;
15
15
  };
16
16
  }
17
- export declare function getTreeSitterParser(language: "python" | "go"): Promise<TreeSitterParser>;
17
+ /**
18
+ * Supported tree-sitter languages.
19
+ * Previously only python/go used tree-sitter; rust/c-cpp used regex.
20
+ * Now all four use tree-sitter for consistent AST-level extraction.
21
+ * Phase 2: added java/ruby to broaden language coverage (toward codebase-memory-mcp's 158 languages).
22
+ */
23
+ export type TreeSitterLanguage = "python" | "go" | "rust" | "c" | "java" | "ruby";
24
+ export declare function getTreeSitterParser(language: TreeSitterLanguage): Promise<TreeSitterParser>;
18
25
  //# sourceMappingURL=tree-sitter-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree-sitter-loader.d.ts","sourceRoot":"","sources":["../../../src/graph/language-indexers/tree-sitter-loader.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAClC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,oBAAoB,CAAA;KAAE,CAAC;CAC5D;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA6B9F"}
1
+ {"version":3,"file":"tree-sitter-loader.d.ts","sourceRoot":"","sources":["../../../src/graph/language-indexers/tree-sitter-loader.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAClC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,oBAAoB,CAAA;KAAE,CAAC;CAC5D;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;AA+DlF,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAwB3B"}
@@ -4,27 +4,78 @@ exports.getTreeSitterParser = getTreeSitterParser;
4
4
  const Parser = require("web-tree-sitter");
5
5
  const node_fs_1 = require("node:fs");
6
6
  const node_path_1 = require("node:path");
7
+ const node_module_1 = require("node:module");
8
+ const requireFn = (0, node_module_1.createRequire)(__filename);
7
9
  let initialized = false;
10
+ const WASM_CACHE_DIR = (0, node_path_1.join)(process.cwd(), ".graphflow-cache", "wasm");
11
+ /**
12
+ * Try to load a WASM grammar from the bundled location inside the npm package.
13
+ * This avoids downloading from unpkg at runtime, enabling offline use.
14
+ *
15
+ * Lookup order:
16
+ * 1. dist/wasm/ (bundled with @roarpeng/graphflow)
17
+ * 2. node_modules/tree-sitter-wasms/out/ (if installed separately)
18
+ * 3. .graphflow-cache/wasm/ (previously downloaded copy)
19
+ * 4. Download from unpkg (last resort, online-only)
20
+ */
21
+ function resolveBundledWasmPath(language) {
22
+ const wasmFileName = `tree-sitter-${language}.wasm`;
23
+ // 1. dist/wasm/ — bundled with the package
24
+ try {
25
+ const distWasmDir = (0, node_path_1.join)(__dirname, "..", "..", "..", "wasm");
26
+ const distPath = (0, node_path_1.join)(distWasmDir, wasmFileName);
27
+ if ((0, node_fs_1.existsSync)(distPath))
28
+ return distPath;
29
+ }
30
+ catch {
31
+ // ignore
32
+ }
33
+ // 2. node_modules/tree-sitter-wasms/out/
34
+ try {
35
+ const pkgPath = requireFn.resolve("tree-sitter-wasms/package.json");
36
+ const pkgDir = (0, node_path_1.dirname)(pkgPath);
37
+ const nmPath = (0, node_path_1.join)(pkgDir, "out", wasmFileName);
38
+ if ((0, node_fs_1.existsSync)(nmPath))
39
+ return nmPath;
40
+ }
41
+ catch {
42
+ // tree-sitter-wasms not installed as dependency
43
+ }
44
+ // 3. .graphflow-cache/wasm/ (previously downloaded)
45
+ const cachePath = (0, node_path_1.join)(WASM_CACHE_DIR, wasmFileName);
46
+ if ((0, node_fs_1.existsSync)(cachePath))
47
+ return cachePath;
48
+ return null;
49
+ }
50
+ /**
51
+ * Download a WASM grammar from unpkg as a last resort.
52
+ * Caches to .graphflow-cache/wasm/ for subsequent offline use.
53
+ */
54
+ async function downloadWasmGrammar(language, targetPath) {
55
+ const url = `https://unpkg.com/tree-sitter-wasms@0.1.11/out/tree-sitter-${language}.wasm`;
56
+ const res = await fetch(url);
57
+ if (!res.ok) {
58
+ throw new Error(`Failed to download tree-sitter-${language}.wasm from ${url}: ${res.statusText}`);
59
+ }
60
+ const buffer = Buffer.from(await res.arrayBuffer());
61
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(targetPath), { recursive: true });
62
+ (0, node_fs_1.writeFileSync)(targetPath, buffer);
63
+ }
8
64
  async function getTreeSitterParser(language) {
9
65
  if (!initialized) {
10
66
  await Parser.init();
11
67
  initialized = true;
12
68
  }
13
- const cacheDir = (0, node_path_1.join)(process.cwd(), ".graphflow-cache", "wasm");
14
- if (!(0, node_fs_1.existsSync)(cacheDir)) {
15
- (0, node_fs_1.mkdirSync)(cacheDir, { recursive: true });
16
- }
17
69
  const wasmFileName = `tree-sitter-${language}.wasm`;
18
- const wasmPath = (0, node_path_1.join)(cacheDir, wasmFileName);
19
- if (!(0, node_fs_1.existsSync)(wasmPath)) {
20
- // Attempt to download from unpkg tree-sitter-wasms package
21
- const url = `https://unpkg.com/tree-sitter-wasms@0.1.11/out/tree-sitter-${language}.wasm`;
22
- const res = await fetch(url);
23
- if (!res.ok) {
24
- throw new Error(`Failed to download ${wasmFileName} from ${url}: ${res.statusText}`);
70
+ const cachePath = (0, node_path_1.join)(WASM_CACHE_DIR, wasmFileName);
71
+ // Try bundled / cached locations first (offline-capable)
72
+ let wasmPath = resolveBundledWasmPath(language);
73
+ // Last resort: download from unpkg (online-only)
74
+ if (!wasmPath) {
75
+ if (!(0, node_fs_1.existsSync)(cachePath)) {
76
+ await downloadWasmGrammar(language, cachePath);
25
77
  }
26
- const buffer = Buffer.from(await res.arrayBuffer());
27
- (0, node_fs_1.writeFileSync)(wasmPath, buffer);
78
+ wasmPath = cachePath;
28
79
  }
29
80
  const parser = new Parser();
30
81
  const lang = await Parser.Language.load(wasmPath);
@@ -1 +1 @@
1
- {"version":3,"file":"tree-sitter-loader.js","sourceRoot":"","sources":["../../../src/graph/language-indexers/tree-sitter-loader.ts"],"names":[],"mappings":";;AAoBA,kDA6BC;AAjDD,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC1C,qCAA+D;AAC/D,yCAAiC;AAEjC,IAAI,WAAW,GAAG,KAAK,CAAC;AAgBjB,KAAK,UAAU,mBAAmB,CAAC,QAAyB;IACjE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACjE,IAAI,CAAC,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,IAAA,mBAAS,EAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,QAAQ,OAAO,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAE9C,IAAI,CAAC,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,2DAA2D;QAC3D,MAAM,GAAG,GAAG,8DAA8D,QAAQ,OAAO,CAAC;QAC1F,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,YAAY,SAAS,GAAG,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACpD,IAAA,uBAAa,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,MAA0B,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"tree-sitter-loader.js","sourceRoot":"","sources":["../../../src/graph/language-indexers/tree-sitter-loader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/graph/language-indexers/typescript.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAkD,eAAe,EAAE,MAAM,SAAS,CAAC;AAoL/F,eAAO,MAAM,iBAAiB,EAAE,eAa/B,CAAC"}
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/graph/language-indexers/typescript.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiF,eAAe,EAAE,MAAM,SAAS,CAAC;AAkP9H,eAAO,MAAM,iBAAiB,EAAE,eAa/B,CAAC"}