@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
@@ -1,121 +1,346 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cppIndexer = void 0;
4
- const RE_FUNC = /^\s*((?:(?:static|inline|extern|virtual|constexpr|explicit|friend)\s+)*)((?:[\w:*&<>~]+\s+)+)(\w+)\s*\([^;{]*\)\s*(?:const\s*)?(?:noexcept\s*)?(?:override\s*)?(?:=\s*\w+\s*)?[;{]/;
5
- const RE_CLASS = /^\s*(class|struct)\s+(\w+)\s*(?:final\s*)?[:{]/;
6
- const RE_ENUM = /^\s*enum(?:\s+class)?\s+(\w+)/;
7
- const RE_TYPEDEF = /^\s*typedef\s+.+?\s+(\w+)\s*;/;
8
- const RE_DEFINE = /^\s*#\s*define\s+(\w+)/;
9
- const RE_NAMESPACE = /^\s*namespace\s+(\w+)/;
10
- const RE_INCLUDE = /^\s*#\s*include\s*[<"]([^>"]+)[>"]/;
4
+ const tree_sitter_loader_js_1 = require("./tree-sitter-loader.js");
11
5
  const FUNC_NAME_BLACKLIST = new Set([
12
6
  "if", "else", "for", "while", "switch", "return", "do", "case", "sizeof", "typeof",
13
7
  "new", "delete", "throw", "try", "catch", "operator",
14
8
  ]);
9
+ /**
10
+ * C/C++ indexer using tree-sitter AST (upgraded from line-level regex).
11
+ *
12
+ * Extracts: functions, classes/structs, enums, typedefs, macros (#define),
13
+ * namespaces, includes (#include).
14
+ *
15
+ * Visibility is approximated: `static` → not exported, everything else → exported.
16
+ */
15
17
  exports.cppIndexer = {
16
18
  language: "c-cpp",
17
19
  extensions: [".c", ".h", ".cc", ".cpp", ".hpp", ".cxx", ".hxx"],
18
- extract(filePath, content) {
20
+ async extract(filePath, content) {
21
+ let tree;
22
+ try {
23
+ const parser = await (0, tree_sitter_loader_js_1.getTreeSitterParser)("c");
24
+ tree = parser.parse(content);
25
+ }
26
+ catch {
27
+ return cppRegexFallback(filePath, content);
28
+ }
19
29
  const symbols = [];
20
30
  const imports = [];
21
- const lines = content.split(/\r?\n/);
22
- let inBlockComment = false;
23
- for (let idx = 0; idx < lines.length; idx += 1) {
24
- let line = lines[idx] ?? "";
25
- if (inBlockComment) {
26
- const end = line.indexOf("*/");
27
- if (end < 0)
28
- continue;
29
- line = line.slice(end + 2);
30
- inBlockComment = false;
31
- }
32
- const blockStart = line.indexOf("/*");
33
- if (blockStart >= 0 && line.indexOf("*/", blockStart) < 0) {
34
- line = line.slice(0, blockStart);
35
- inBlockComment = true;
36
- }
37
- const slashIdx = line.indexOf("//");
38
- if (slashIdx >= 0)
39
- line = line.slice(0, slashIdx);
40
- if (!line.trim())
41
- continue;
42
- const lineNo = idx + 1;
43
- const incMatch = RE_INCLUDE.exec(line);
44
- if (incMatch) {
45
- imports.push({ module: incMatch[1], raw: incMatch[0].trim() });
46
- continue;
47
- }
48
- const defMatch = RE_DEFINE.exec(line);
49
- if (defMatch) {
50
- symbols.push({
51
- name: defMatch[1],
52
- kind: "macro",
53
- exported: true,
54
- line: lineNo,
55
- file: filePath,
56
- });
57
- continue;
31
+ const traverse = (node) => {
32
+ const lineNo = node.startPosition.row + 1;
33
+ switch (node.type) {
34
+ case "function_definition": {
35
+ if (node.text.startsWith("class ")) {
36
+ const match = node.text.match(/class\s+(\w+)/);
37
+ const className = match?.[1];
38
+ if (className) {
39
+ symbols.push({
40
+ name: className,
41
+ kind: "class",
42
+ exported: true,
43
+ line: lineNo,
44
+ file: filePath,
45
+ });
46
+ }
47
+ break;
48
+ }
49
+ const name = extractFunctionName(node);
50
+ if (name && !FUNC_NAME_BLACKLIST.has(name)) {
51
+ const isStatic = hasStorageClass(node, "static");
52
+ let paramsCount = 0;
53
+ const paramsNode = findChildByType(node, "parameter_list");
54
+ if (paramsNode) {
55
+ paramsCount = paramsNode.namedChildren.filter((c) => c.type === "parameter_declaration").length;
56
+ }
57
+ symbols.push({
58
+ name,
59
+ kind: "function",
60
+ exported: !isStatic,
61
+ line: lineNo,
62
+ file: filePath,
63
+ paramsCount,
64
+ });
65
+ }
66
+ break;
67
+ }
68
+ case "declaration": {
69
+ if (isClassDeclaration(node)) {
70
+ const nameNode = findChildByType(node, "type_identifier");
71
+ if (nameNode) {
72
+ symbols.push({
73
+ name: nameNode.text,
74
+ kind: "class",
75
+ exported: true,
76
+ line: lineNo,
77
+ file: filePath,
78
+ });
79
+ }
80
+ }
81
+ else if (isFunctionPrototype(node)) {
82
+ const name = extractFunctionName(node);
83
+ if (name && !FUNC_NAME_BLACKLIST.has(name)) {
84
+ const isStatic = hasStorageClass(node, "static");
85
+ let paramsCount = 0;
86
+ const paramsNode = findChildByType(node, "parameter_list");
87
+ if (paramsNode) {
88
+ paramsCount = paramsNode.namedChildren.filter((c) => c.type === "parameter_declaration").length;
89
+ }
90
+ symbols.push({
91
+ name,
92
+ kind: "function",
93
+ exported: !isStatic,
94
+ line: lineNo,
95
+ file: filePath,
96
+ paramsCount,
97
+ });
98
+ }
99
+ }
100
+ break;
101
+ }
102
+ case "class_specifier": {
103
+ const nameNode = node.childForFieldName("name");
104
+ if (nameNode) {
105
+ symbols.push({
106
+ name: nameNode.text,
107
+ kind: "class",
108
+ exported: true,
109
+ line: lineNo,
110
+ file: filePath,
111
+ });
112
+ }
113
+ break;
114
+ }
115
+ case "struct_specifier": {
116
+ const nameNode = node.childForFieldName("name");
117
+ if (nameNode) {
118
+ symbols.push({
119
+ name: nameNode.text,
120
+ kind: "struct",
121
+ exported: true,
122
+ line: lineNo,
123
+ file: filePath,
124
+ });
125
+ }
126
+ break;
127
+ }
128
+ case "enum_specifier": {
129
+ const nameNode = node.childForFieldName("name");
130
+ if (nameNode) {
131
+ symbols.push({
132
+ name: nameNode.text,
133
+ kind: "enum",
134
+ exported: true,
135
+ line: lineNo,
136
+ file: filePath,
137
+ });
138
+ }
139
+ break;
140
+ }
141
+ case "type_definition": {
142
+ const nameNode = findChildByType(node, "type_identifier");
143
+ if (nameNode) {
144
+ symbols.push({
145
+ name: nameNode.text,
146
+ kind: "type",
147
+ exported: true,
148
+ line: lineNo,
149
+ file: filePath,
150
+ });
151
+ }
152
+ break;
153
+ }
154
+ case "preproc_def": {
155
+ // #define NAME value
156
+ const nameNode = node.childForFieldName("name");
157
+ if (nameNode) {
158
+ symbols.push({
159
+ name: nameNode.text,
160
+ kind: "macro",
161
+ exported: true,
162
+ line: lineNo,
163
+ file: filePath,
164
+ });
165
+ }
166
+ break;
167
+ }
168
+ case "namespace_definition": {
169
+ const nameNode = node.childForFieldName("name");
170
+ if (nameNode) {
171
+ symbols.push({
172
+ name: nameNode.text,
173
+ kind: "namespace",
174
+ exported: true,
175
+ line: lineNo,
176
+ file: filePath,
177
+ });
178
+ }
179
+ break;
180
+ }
181
+ case "preproc_include": {
182
+ // #include <path> or #include "path"
183
+ const pathNode = node.childForFieldName("path");
184
+ if (pathNode) {
185
+ const text = pathNode.text.replace(/[<>"]/g, "");
186
+ imports.push({ module: text, raw: node.text });
187
+ }
188
+ break;
189
+ }
58
190
  }
59
- const nsMatch = RE_NAMESPACE.exec(line);
60
- if (nsMatch) {
61
- symbols.push({
62
- name: nsMatch[1],
63
- kind: "namespace",
64
- exported: true,
65
- line: lineNo,
66
- file: filePath,
67
- });
68
- continue;
69
- }
70
- const enumMatch = RE_ENUM.exec(line);
71
- if (enumMatch) {
72
- symbols.push({
73
- name: enumMatch[1],
74
- kind: "enum",
75
- exported: true,
76
- line: lineNo,
77
- file: filePath,
78
- });
79
- continue;
80
- }
81
- const classMatch = RE_CLASS.exec(line);
82
- if (classMatch) {
83
- symbols.push({
84
- name: classMatch[2],
85
- kind: classMatch[1] === "class" ? "class" : "struct",
86
- exported: true,
87
- line: lineNo,
88
- file: filePath,
89
- });
90
- continue;
91
- }
92
- const typedefMatch = RE_TYPEDEF.exec(line);
93
- if (typedefMatch) {
94
- symbols.push({
95
- name: typedefMatch[1],
96
- kind: "type",
97
- exported: true,
98
- line: lineNo,
99
- file: filePath,
100
- });
101
- continue;
191
+ for (const child of node.children ?? node.namedChildren) {
192
+ traverse(child);
102
193
  }
103
- const funcMatch = RE_FUNC.exec(line);
104
- if (funcMatch) {
105
- const name = funcMatch[3];
106
- if (FUNC_NAME_BLACKLIST.has(name))
107
- continue;
108
- const modifiers = funcMatch[1] ?? "";
109
- symbols.push({
110
- name,
111
- kind: "function",
112
- exported: !/\bstatic\b/.test(modifiers),
113
- line: lineNo,
114
- file: filePath,
115
- });
116
- }
117
- }
194
+ };
195
+ traverse(tree.rootNode);
118
196
  return { symbols, imports };
119
197
  },
120
198
  };
199
+ function isFunctionPrototype(node) {
200
+ // A declaration is a function prototype if it contains a parameter_list
201
+ // but no compound_statement (body).
202
+ const hasParams = node.children?.some((c) => c.type === "parameter_list") ?? false;
203
+ const hasBody = node.children?.some((c) => c.type === "compound_statement") ?? false;
204
+ return hasParams && !hasBody;
205
+ }
206
+ function extractFunctionName(node) {
207
+ // Look for the function_declarator child, then its identifier
208
+ const declarator = findChildByType(node, "function_declarator");
209
+ if (declarator) {
210
+ const decl = declarator.childForFieldName("declarator");
211
+ if (decl) {
212
+ return decl.text;
213
+ }
214
+ }
215
+ // Fallback: look for identifier directly
216
+ const identifier = findChildByType(node, "identifier");
217
+ return identifier ? identifier.text : null;
218
+ }
219
+ function findChildByType(node, type) {
220
+ const children = node.children ?? node.namedChildren;
221
+ for (const child of children) {
222
+ if (child.type === type)
223
+ return child;
224
+ }
225
+ return null;
226
+ }
227
+ function hasStorageClass(node, storageClass) {
228
+ return node.children?.some((c) => c.type === "storage_class_specifier" && c.text === storageClass) ?? false;
229
+ }
230
+ function isClassDeclaration(node) {
231
+ return node.children?.some((c) => c.type === "class_specifier") ?? false;
232
+ }
233
+ /**
234
+ * Regex-based fallback used when tree-sitter WASM is unavailable.
235
+ * Preserves the pre-upgrade behavior.
236
+ */
237
+ function cppRegexFallback(filePath, content) {
238
+ const symbols = [];
239
+ const imports = [];
240
+ const RE_FUNC = /^\s*((?:(?:static|inline|extern|virtual|constexpr|explicit|friend)\s+)*)((?:[\w:*&<>~]+\s+)+)(\w+)\s*\([^;{]*\)\s*(?:const\s*)?(?:noexcept\s*)?(?:override\s*)?(?:=\s*\w+\s*)?[;{]/;
241
+ const RE_CLASS = /^\s*(class|struct)\s+(\w+)\s*(?:final\s*)?[:{]/;
242
+ const RE_ENUM = /^\s*enum(?:\s+class)?\s+(\w+)/;
243
+ const RE_TYPEDEF = /^\s*typedef\s+.+?\s+(\w+)\s*;/;
244
+ const RE_DEFINE = /^\s*#\s*define\s+(\w+)/;
245
+ const RE_NAMESPACE = /^\s*namespace\s+(\w+)/;
246
+ const RE_INCLUDE = /^\s*#\s*include\s*[<"]([^>"]+)[>"]/;
247
+ const lines = content.split(/\r?\n/);
248
+ let inBlockComment = false;
249
+ for (let idx = 0; idx < lines.length; idx += 1) {
250
+ let line = lines[idx] ?? "";
251
+ if (inBlockComment) {
252
+ const end = line.indexOf("*/");
253
+ if (end < 0)
254
+ continue;
255
+ line = line.slice(end + 2);
256
+ inBlockComment = false;
257
+ }
258
+ const blockStart = line.indexOf("/*");
259
+ if (blockStart >= 0 && line.indexOf("*/", blockStart) < 0) {
260
+ line = line.slice(0, blockStart);
261
+ inBlockComment = true;
262
+ }
263
+ const slashIdx = line.indexOf("//");
264
+ if (slashIdx >= 0)
265
+ line = line.slice(0, slashIdx);
266
+ if (!line.trim())
267
+ continue;
268
+ const lineNo = idx + 1;
269
+ const incMatch = RE_INCLUDE.exec(line);
270
+ if (incMatch) {
271
+ imports.push({ module: incMatch[1], raw: incMatch[0].trim() });
272
+ continue;
273
+ }
274
+ const defMatch = RE_DEFINE.exec(line);
275
+ if (defMatch) {
276
+ symbols.push({
277
+ name: defMatch[1],
278
+ kind: "macro",
279
+ exported: true,
280
+ line: lineNo,
281
+ file: filePath,
282
+ });
283
+ continue;
284
+ }
285
+ const nsMatch = RE_NAMESPACE.exec(line);
286
+ if (nsMatch) {
287
+ symbols.push({
288
+ name: nsMatch[1],
289
+ kind: "namespace",
290
+ exported: true,
291
+ line: lineNo,
292
+ file: filePath,
293
+ });
294
+ continue;
295
+ }
296
+ const enumMatch = RE_ENUM.exec(line);
297
+ if (enumMatch) {
298
+ symbols.push({
299
+ name: enumMatch[1],
300
+ kind: "enum",
301
+ exported: true,
302
+ line: lineNo,
303
+ file: filePath,
304
+ });
305
+ continue;
306
+ }
307
+ const classMatch = RE_CLASS.exec(line);
308
+ if (classMatch) {
309
+ symbols.push({
310
+ name: classMatch[2],
311
+ kind: classMatch[1] === "class" ? "class" : "struct",
312
+ exported: true,
313
+ line: lineNo,
314
+ file: filePath,
315
+ });
316
+ continue;
317
+ }
318
+ const typedefMatch = RE_TYPEDEF.exec(line);
319
+ if (typedefMatch) {
320
+ symbols.push({
321
+ name: typedefMatch[1],
322
+ kind: "type",
323
+ exported: true,
324
+ line: lineNo,
325
+ file: filePath,
326
+ });
327
+ continue;
328
+ }
329
+ const funcMatch = RE_FUNC.exec(line);
330
+ if (funcMatch) {
331
+ const name = funcMatch[3];
332
+ if (FUNC_NAME_BLACKLIST.has(name))
333
+ continue;
334
+ const modifiers = funcMatch[1] ?? "";
335
+ symbols.push({
336
+ name,
337
+ kind: "function",
338
+ exported: !/\bstatic\b/.test(modifiers),
339
+ line: lineNo,
340
+ file: filePath,
341
+ });
342
+ }
343
+ }
344
+ return { symbols, imports };
345
+ }
121
346
  //# sourceMappingURL=c-cpp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"c-cpp.js","sourceRoot":"","sources":["../../../src/graph/language-indexers/c-cpp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c-cpp.js","sourceRoot":"","sources":["../../../src/graph/language-indexers/c-cpp.ts"],"names":[],"mappings":"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"}
@@ -15,9 +15,29 @@ export interface ImportTarget {
15
15
  module: string;
16
16
  raw?: string;
17
17
  }
18
+ export interface CallRelation {
19
+ /** Name of the function/method being called. */
20
+ callee: string;
21
+ /** Name of the enclosing function/method that makes the call, if known. */
22
+ caller?: string;
23
+ /** Line number where the call occurs. */
24
+ line: number;
25
+ }
26
+ export interface InheritRelation {
27
+ /** Name of the child type (class/interface/struct). */
28
+ child: string;
29
+ /** Name of the parent type being extended/implemented. */
30
+ parent: string;
31
+ /** Kind of inheritance: extends (class), implements (interface). */
32
+ kind: "extends" | "implements";
33
+ /** Line number of the declaration. */
34
+ line: number;
35
+ }
18
36
  export interface ExtractionResult {
19
37
  symbols: DeclaredSymbol[];
20
38
  imports: ImportTarget[];
39
+ calls?: CallRelation[];
40
+ inherits?: InheritRelation[];
21
41
  }
22
42
  export interface LanguageIndexer {
23
43
  language: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graph/language-indexers/index.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC1F;AAUD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAQ/E;AAED,eAAO,MAAM,uBAAuB,EAAE,MAAM,EAE3C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graph/language-indexers/index.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,IAAI,EAAE,SAAS,GAAG,YAAY,CAAC;IAC/B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC1F;AAYD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAQ/E;AAED,eAAO,MAAM,uBAAuB,EAAE,MAAM,EAE3C,CAAC"}
@@ -7,12 +7,16 @@ const python_1 = require("./python");
7
7
  const rust_1 = require("./rust");
8
8
  const go_1 = require("./go");
9
9
  const c_cpp_1 = require("./c-cpp");
10
+ const java_1 = require("./java");
11
+ const ruby_1 = require("./ruby");
10
12
  const INDEXERS = [
11
13
  typescript_1.typescriptIndexer,
12
14
  python_1.pythonIndexer,
13
15
  rust_1.rustIndexer,
14
16
  go_1.goIndexer,
15
17
  c_cpp_1.cppIndexer,
18
+ java_1.javaIndexer,
19
+ ruby_1.rubyIndexer,
16
20
  ];
17
21
  function getIndexerForFile(filename) {
18
22
  const lower = filename.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graph/language-indexers/index.ts"],"names":[],"mappings":";;;AA4CA,8CAQC;AApDD,6CAAiD;AACjD,qCAAyC;AACzC,iCAAqC;AACrC,6BAAiC;AACjC,mCAAqC;AAgCrC,MAAM,QAAQ,GAAsB;IAClC,8BAAiB;IACjB,sBAAa;IACb,kBAAW;IACX,cAAS;IACT,kBAAU;CACX,CAAC;AAEF,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAEY,QAAA,uBAAuB,GAAa,KAAK,CAAC,IAAI,CACzD,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAC/C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graph/language-indexers/index.ts"],"names":[],"mappings":";;;AAsEA,8CAQC;AA9ED,6CAAiD;AACjD,qCAAyC;AACzC,iCAAqC;AACrC,6BAAiC;AACjC,mCAAqC;AACrC,iCAAqC;AACrC,iCAAqC;AAsDrC,MAAM,QAAQ,GAAsB;IAClC,8BAAiB;IACjB,sBAAa;IACb,kBAAW;IACX,cAAS;IACT,kBAAU;IACV,kBAAW;IACX,kBAAW;CACZ,CAAC;AAEF,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAEY,QAAA,uBAAuB,GAAa,KAAK,CAAC,IAAI,CACzD,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAC/C,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { LanguageIndexer } from "./index.js";
2
+ /**
3
+ * Java indexer using tree-sitter AST.
4
+ *
5
+ * Extracts: methods, classes, interfaces, enums, records, annotation types,
6
+ * fields, constants, constructors.
7
+ *
8
+ * Visibility (`public`/`protected`/`private`) is determined by modifier keywords.
9
+ * Borrowed from codebase-memory-mcp's broad language support pattern.
10
+ */
11
+ export declare const javaIndexer: LanguageIndexer;
12
+ //# sourceMappingURL=java.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../src/graph/language-indexers/java.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkD,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlG;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE,eAiMzB,CAAC"}