@rangerchaz/aimem 0.1.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.
Files changed (163) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +380 -0
  3. package/dist/cli/commands/git.d.ts +6 -0
  4. package/dist/cli/commands/git.d.ts.map +1 -0
  5. package/dist/cli/commands/git.js +298 -0
  6. package/dist/cli/commands/git.js.map +1 -0
  7. package/dist/cli/commands/hook-session-end.d.ts +7 -0
  8. package/dist/cli/commands/hook-session-end.d.ts.map +1 -0
  9. package/dist/cli/commands/hook-session-end.js +109 -0
  10. package/dist/cli/commands/hook-session-end.js.map +1 -0
  11. package/dist/cli/commands/hook-session-start.d.ts +7 -0
  12. package/dist/cli/commands/hook-session-start.d.ts.map +1 -0
  13. package/dist/cli/commands/hook-session-start.js +116 -0
  14. package/dist/cli/commands/hook-session-start.js.map +1 -0
  15. package/dist/cli/commands/import.d.ts +14 -0
  16. package/dist/cli/commands/import.d.ts.map +1 -0
  17. package/dist/cli/commands/import.js +527 -0
  18. package/dist/cli/commands/import.js.map +1 -0
  19. package/dist/cli/commands/init.d.ts +2 -0
  20. package/dist/cli/commands/init.d.ts.map +1 -0
  21. package/dist/cli/commands/init.js +32 -0
  22. package/dist/cli/commands/init.js.map +1 -0
  23. package/dist/cli/commands/mcp-serve.d.ts +2 -0
  24. package/dist/cli/commands/mcp-serve.d.ts.map +1 -0
  25. package/dist/cli/commands/mcp-serve.js +5 -0
  26. package/dist/cli/commands/mcp-serve.js.map +1 -0
  27. package/dist/cli/commands/query.d.ts +8 -0
  28. package/dist/cli/commands/query.d.ts.map +1 -0
  29. package/dist/cli/commands/query.js +83 -0
  30. package/dist/cli/commands/query.js.map +1 -0
  31. package/dist/cli/commands/setup.d.ts +10 -0
  32. package/dist/cli/commands/setup.d.ts.map +1 -0
  33. package/dist/cli/commands/setup.js +504 -0
  34. package/dist/cli/commands/setup.js.map +1 -0
  35. package/dist/cli/commands/start.d.ts +8 -0
  36. package/dist/cli/commands/start.d.ts.map +1 -0
  37. package/dist/cli/commands/start.js +90 -0
  38. package/dist/cli/commands/start.js.map +1 -0
  39. package/dist/cli/commands/status.d.ts +2 -0
  40. package/dist/cli/commands/status.d.ts.map +1 -0
  41. package/dist/cli/commands/status.js +85 -0
  42. package/dist/cli/commands/status.js.map +1 -0
  43. package/dist/cli/commands/stop.d.ts +7 -0
  44. package/dist/cli/commands/stop.d.ts.map +1 -0
  45. package/dist/cli/commands/stop.js +46 -0
  46. package/dist/cli/commands/stop.js.map +1 -0
  47. package/dist/cli/commands/visualize.d.ts +8 -0
  48. package/dist/cli/commands/visualize.d.ts.map +1 -0
  49. package/dist/cli/commands/visualize.js +96 -0
  50. package/dist/cli/commands/visualize.js.map +1 -0
  51. package/dist/cli/index.d.ts +3 -0
  52. package/dist/cli/index.d.ts.map +1 -0
  53. package/dist/cli/index.js +114 -0
  54. package/dist/cli/index.js.map +1 -0
  55. package/dist/db/index.d.ts +55 -0
  56. package/dist/db/index.d.ts.map +1 -0
  57. package/dist/db/index.js +464 -0
  58. package/dist/db/index.js.map +1 -0
  59. package/dist/db/schema.d.ts +4 -0
  60. package/dist/db/schema.d.ts.map +1 -0
  61. package/dist/db/schema.js +200 -0
  62. package/dist/db/schema.js.map +1 -0
  63. package/dist/extractor/index.d.ts +27 -0
  64. package/dist/extractor/index.d.ts.map +1 -0
  65. package/dist/extractor/index.js +227 -0
  66. package/dist/extractor/index.js.map +1 -0
  67. package/dist/git/extractor.d.ts +30 -0
  68. package/dist/git/extractor.d.ts.map +1 -0
  69. package/dist/git/extractor.js +126 -0
  70. package/dist/git/extractor.js.map +1 -0
  71. package/dist/git/hooks.d.ts +36 -0
  72. package/dist/git/hooks.d.ts.map +1 -0
  73. package/dist/git/hooks.js +142 -0
  74. package/dist/git/hooks.js.map +1 -0
  75. package/dist/git/index.d.ts +69 -0
  76. package/dist/git/index.d.ts.map +1 -0
  77. package/dist/git/index.js +250 -0
  78. package/dist/git/index.js.map +1 -0
  79. package/dist/indexer/index.d.ts +20 -0
  80. package/dist/indexer/index.d.ts.map +1 -0
  81. package/dist/indexer/index.js +173 -0
  82. package/dist/indexer/index.js.map +1 -0
  83. package/dist/indexer/parsers/base.d.ts +19 -0
  84. package/dist/indexer/parsers/base.d.ts.map +1 -0
  85. package/dist/indexer/parsers/base.js +46 -0
  86. package/dist/indexer/parsers/base.js.map +1 -0
  87. package/dist/indexer/parsers/cpp.d.ts +3 -0
  88. package/dist/indexer/parsers/cpp.d.ts.map +1 -0
  89. package/dist/indexer/parsers/cpp.js +180 -0
  90. package/dist/indexer/parsers/cpp.js.map +1 -0
  91. package/dist/indexer/parsers/go.d.ts +3 -0
  92. package/dist/indexer/parsers/go.d.ts.map +1 -0
  93. package/dist/indexer/parsers/go.js +98 -0
  94. package/dist/indexer/parsers/go.js.map +1 -0
  95. package/dist/indexer/parsers/java.d.ts +3 -0
  96. package/dist/indexer/parsers/java.d.ts.map +1 -0
  97. package/dist/indexer/parsers/java.js +204 -0
  98. package/dist/indexer/parsers/java.js.map +1 -0
  99. package/dist/indexer/parsers/javascript.d.ts +3 -0
  100. package/dist/indexer/parsers/javascript.d.ts.map +1 -0
  101. package/dist/indexer/parsers/javascript.js +157 -0
  102. package/dist/indexer/parsers/javascript.js.map +1 -0
  103. package/dist/indexer/parsers/kotlin.d.ts +3 -0
  104. package/dist/indexer/parsers/kotlin.d.ts.map +1 -0
  105. package/dist/indexer/parsers/kotlin.js +182 -0
  106. package/dist/indexer/parsers/kotlin.js.map +1 -0
  107. package/dist/indexer/parsers/php.d.ts +3 -0
  108. package/dist/indexer/parsers/php.d.ts.map +1 -0
  109. package/dist/indexer/parsers/php.js +190 -0
  110. package/dist/indexer/parsers/php.js.map +1 -0
  111. package/dist/indexer/parsers/python.d.ts +3 -0
  112. package/dist/indexer/parsers/python.d.ts.map +1 -0
  113. package/dist/indexer/parsers/python.js +101 -0
  114. package/dist/indexer/parsers/python.js.map +1 -0
  115. package/dist/indexer/parsers/ruby.d.ts +3 -0
  116. package/dist/indexer/parsers/ruby.d.ts.map +1 -0
  117. package/dist/indexer/parsers/ruby.js +92 -0
  118. package/dist/indexer/parsers/ruby.js.map +1 -0
  119. package/dist/indexer/parsers/rust.d.ts +3 -0
  120. package/dist/indexer/parsers/rust.d.ts.map +1 -0
  121. package/dist/indexer/parsers/rust.js +190 -0
  122. package/dist/indexer/parsers/rust.js.map +1 -0
  123. package/dist/indexer/watcher-daemon.d.ts +2 -0
  124. package/dist/indexer/watcher-daemon.d.ts.map +1 -0
  125. package/dist/indexer/watcher-daemon.js +27 -0
  126. package/dist/indexer/watcher-daemon.js.map +1 -0
  127. package/dist/indexer/watcher.d.ts +7 -0
  128. package/dist/indexer/watcher.d.ts.map +1 -0
  129. package/dist/indexer/watcher.js +77 -0
  130. package/dist/indexer/watcher.js.map +1 -0
  131. package/dist/mcp/server.d.ts +2 -0
  132. package/dist/mcp/server.d.ts.map +1 -0
  133. package/dist/mcp/server.js +241 -0
  134. package/dist/mcp/server.js.map +1 -0
  135. package/dist/proxy/interceptor-mockttp.d.ts +27 -0
  136. package/dist/proxy/interceptor-mockttp.d.ts.map +1 -0
  137. package/dist/proxy/interceptor-mockttp.js +274 -0
  138. package/dist/proxy/interceptor-mockttp.js.map +1 -0
  139. package/dist/proxy/proxy-daemon.d.ts +5 -0
  140. package/dist/proxy/proxy-daemon.d.ts.map +1 -0
  141. package/dist/proxy/proxy-daemon.js +26 -0
  142. package/dist/proxy/proxy-daemon.js.map +1 -0
  143. package/dist/query/index.d.ts +32 -0
  144. package/dist/query/index.d.ts.map +1 -0
  145. package/dist/query/index.js +135 -0
  146. package/dist/query/index.js.map +1 -0
  147. package/dist/types/index.d.ts +89 -0
  148. package/dist/types/index.d.ts.map +1 -0
  149. package/dist/types/index.js +3 -0
  150. package/dist/types/index.js.map +1 -0
  151. package/dist/visualize/index.d.ts +144 -0
  152. package/dist/visualize/index.d.ts.map +1 -0
  153. package/dist/visualize/index.js +707 -0
  154. package/dist/visualize/index.js.map +1 -0
  155. package/dist/visualize/server.d.ts +7 -0
  156. package/dist/visualize/server.d.ts.map +1 -0
  157. package/dist/visualize/server.js +77 -0
  158. package/dist/visualize/server.js.map +1 -0
  159. package/dist/visualize/template.d.ts +3 -0
  160. package/dist/visualize/template.d.ts.map +1 -0
  161. package/dist/visualize/template.js +3465 -0
  162. package/dist/visualize/template.js.map +1 -0
  163. package/package.json +56 -0
@@ -0,0 +1,190 @@
1
+ import { getLineNumber, extractLines, extractCalls } from './base.js';
2
+ const patterns = {
3
+ // function name(...) or public function name(...)
4
+ function: /^(\s*)(?:public\s+|private\s+|protected\s+)?(?:static\s+)?(?:final\s+)?(?:abstract\s+)?function\s+(\w+)\s*\(([^)]*)\)/gm,
5
+ // class Name or abstract class Name
6
+ class: /^(\s*)(?:abstract\s+|final\s+)?class\s+(\w+)(?:\s+extends\s+\w+)?(?:\s+implements\s+[\w,\s\\]+)?/gm,
7
+ // interface Name
8
+ interface: /^(\s*)interface\s+(\w+)(?:\s+extends\s+[\w,\s\\]+)?/gm,
9
+ // trait Name
10
+ trait: /^(\s*)trait\s+(\w+)/gm,
11
+ // enum Name (PHP 8.1+)
12
+ enum: /^(\s*)enum\s+(\w+)(?:\s*:\s*\w+)?(?:\s+implements\s+[\w,\s\\]+)?/gm,
13
+ // namespace Name\Space
14
+ namespace: /^namespace\s+([\w\\]+)\s*;/gm,
15
+ // const NAME = ...
16
+ constant: /^(\s*)(?:public\s+|private\s+|protected\s+)?const\s+(\w+)\s*=/gm,
17
+ };
18
+ function findPhpBlockEnd(content, startPos) {
19
+ let depth = 0;
20
+ let i = startPos;
21
+ let inString = false;
22
+ let inHeredoc = false;
23
+ let stringChar = '';
24
+ let inLineComment = false;
25
+ let inBlockComment = false;
26
+ // Find opening brace
27
+ while (i < content.length && content[i] !== '{') {
28
+ // Handle abstract methods with no body
29
+ if (content[i] === ';')
30
+ return i + 1;
31
+ i++;
32
+ }
33
+ if (i >= content.length)
34
+ return content.length;
35
+ // Find matching closing brace
36
+ for (; i < content.length; i++) {
37
+ const char = content[i];
38
+ const nextChar = content[i + 1] || '';
39
+ const prevChar = content[i - 1] || '';
40
+ // Handle comments
41
+ if (!inString && !inHeredoc) {
42
+ if (inLineComment) {
43
+ if (char === '\n')
44
+ inLineComment = false;
45
+ continue;
46
+ }
47
+ if (inBlockComment) {
48
+ if (char === '*' && nextChar === '/') {
49
+ inBlockComment = false;
50
+ i++;
51
+ }
52
+ continue;
53
+ }
54
+ if ((char === '/' && nextChar === '/') || char === '#') {
55
+ inLineComment = true;
56
+ continue;
57
+ }
58
+ if (char === '/' && nextChar === '*') {
59
+ inBlockComment = true;
60
+ continue;
61
+ }
62
+ }
63
+ // Handle strings
64
+ if (!inBlockComment && !inLineComment && !inHeredoc) {
65
+ if ((char === '"' || char === "'") && prevChar !== '\\') {
66
+ if (!inString) {
67
+ inString = true;
68
+ stringChar = char;
69
+ }
70
+ else if (char === stringChar) {
71
+ inString = false;
72
+ }
73
+ continue;
74
+ }
75
+ }
76
+ if (inString || inHeredoc)
77
+ continue;
78
+ if (char === '{')
79
+ depth++;
80
+ if (char === '}') {
81
+ depth--;
82
+ if (depth === 0)
83
+ return i + 1;
84
+ }
85
+ }
86
+ return content.length;
87
+ }
88
+ export const phpParser = {
89
+ extensions: ['.php', '.phtml', '.php5', '.php7', '.php8'],
90
+ parse(content, filePath) {
91
+ const structures = [];
92
+ // Parse classes
93
+ let match;
94
+ patterns.class.lastIndex = 0;
95
+ while ((match = patterns.class.exec(content)) !== null) {
96
+ const name = match[2];
97
+ const lineStart = getLineNumber(content, match.index);
98
+ const blockEnd = findPhpBlockEnd(content, match.index);
99
+ const lineEnd = getLineNumber(content, blockEnd);
100
+ const isAbstract = match[0].includes('abstract');
101
+ structures.push({
102
+ type: 'class',
103
+ name,
104
+ lineStart,
105
+ lineEnd,
106
+ signature: match[0].trim(),
107
+ rawContent: extractLines(content, lineStart, lineEnd),
108
+ metadata: { abstract: isAbstract },
109
+ });
110
+ }
111
+ // Parse interfaces
112
+ patterns.interface.lastIndex = 0;
113
+ while ((match = patterns.interface.exec(content)) !== null) {
114
+ const name = match[2];
115
+ const lineStart = getLineNumber(content, match.index);
116
+ const blockEnd = findPhpBlockEnd(content, match.index);
117
+ const lineEnd = getLineNumber(content, blockEnd);
118
+ structures.push({
119
+ type: 'interface',
120
+ name,
121
+ lineStart,
122
+ lineEnd,
123
+ signature: match[0].trim(),
124
+ rawContent: extractLines(content, lineStart, lineEnd),
125
+ metadata: {},
126
+ });
127
+ }
128
+ // Parse traits
129
+ patterns.trait.lastIndex = 0;
130
+ while ((match = patterns.trait.exec(content)) !== null) {
131
+ const name = match[2];
132
+ const lineStart = getLineNumber(content, match.index);
133
+ const blockEnd = findPhpBlockEnd(content, match.index);
134
+ const lineEnd = getLineNumber(content, blockEnd);
135
+ structures.push({
136
+ type: 'class',
137
+ name,
138
+ lineStart,
139
+ lineEnd,
140
+ signature: `trait ${name}`,
141
+ rawContent: extractLines(content, lineStart, lineEnd),
142
+ metadata: { kind: 'trait' },
143
+ });
144
+ }
145
+ // Parse enums
146
+ patterns.enum.lastIndex = 0;
147
+ while ((match = patterns.enum.exec(content)) !== null) {
148
+ const name = match[2];
149
+ const lineStart = getLineNumber(content, match.index);
150
+ const blockEnd = findPhpBlockEnd(content, match.index);
151
+ const lineEnd = getLineNumber(content, blockEnd);
152
+ structures.push({
153
+ type: 'class',
154
+ name,
155
+ lineStart,
156
+ lineEnd,
157
+ signature: match[0].trim(),
158
+ rawContent: extractLines(content, lineStart, lineEnd),
159
+ metadata: { kind: 'enum' },
160
+ });
161
+ }
162
+ // Parse functions
163
+ patterns.function.lastIndex = 0;
164
+ while ((match = patterns.function.exec(content)) !== null) {
165
+ const indent = match[1];
166
+ const name = match[2];
167
+ const params = match[3];
168
+ const lineStart = getLineNumber(content, match.index);
169
+ const blockEnd = findPhpBlockEnd(content, match.index);
170
+ const lineEnd = getLineNumber(content, blockEnd);
171
+ const rawContent = extractLines(content, lineStart, lineEnd);
172
+ // Check if it's a method (inside class - has indentation)
173
+ const isMethod = indent.length > 0;
174
+ // Skip magic methods for cleaner output (optional)
175
+ // if (name.startsWith('__')) continue;
176
+ structures.push({
177
+ type: isMethod ? 'method' : 'function',
178
+ name,
179
+ lineStart,
180
+ lineEnd,
181
+ signature: `function ${name}(${params})`,
182
+ rawContent,
183
+ metadata: { params: params.split(',').map(p => p.trim()).filter(Boolean) },
184
+ calls: extractCalls(rawContent, name),
185
+ });
186
+ }
187
+ return structures;
188
+ },
189
+ };
190
+ //# sourceMappingURL=php.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"php.js","sourceRoot":"","sources":["../../../src/indexer/parsers/php.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Parser } from './base.js';
2
+ export declare const pythonParser: Parser;
3
+ //# sourceMappingURL=python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../src/indexer/parsers/python.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,WAAW,CAAC;AA8BzD,eAAO,MAAM,YAAY,EAAE,MAoF1B,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { getLineNumber, extractLines, extractCalls } from './base.js';
2
+ const patterns = {
3
+ // def name(...):
4
+ function: /^(\s*)(?:async\s+)?def\s+(\w+)\s*\(([^)]*)\)\s*(?:->\s*[^:]+)?:/gm,
5
+ // class Name:
6
+ class: /^(\s*)class\s+(\w+)(?:\s*\([^)]*\))?:/gm,
7
+ };
8
+ function findPythonBlockEnd(content, startLine, indent) {
9
+ const lines = content.split('\n');
10
+ const indentLevel = indent.length;
11
+ for (let i = startLine; i < lines.length; i++) {
12
+ const line = lines[i];
13
+ // Skip empty lines and comments
14
+ if (line.trim() === '' || line.trim().startsWith('#'))
15
+ continue;
16
+ // Check if this line has less or equal indentation (and is not empty)
17
+ const lineIndent = line.match(/^(\s*)/)?.[1] || '';
18
+ if (lineIndent.length <= indentLevel && line.trim() !== '') {
19
+ return i; // Return the line number (0-indexed) where block ends
20
+ }
21
+ }
22
+ return lines.length;
23
+ }
24
+ export const pythonParser = {
25
+ extensions: ['.py', '.pyw'],
26
+ parse(content, filePath) {
27
+ const structures = [];
28
+ const lines = content.split('\n');
29
+ // Parse functions
30
+ let match;
31
+ patterns.function.lastIndex = 0;
32
+ while ((match = patterns.function.exec(content)) !== null) {
33
+ const indent = match[1];
34
+ const name = match[2];
35
+ const params = match[3];
36
+ const lineStart = getLineNumber(content, match.index);
37
+ const lineEnd = findPythonBlockEnd(content, lineStart, indent);
38
+ // Skip methods (inside classes) - they have indentation
39
+ if (indent.length > 0) {
40
+ // Check if this is a method by looking for a class above
41
+ const linesAbove = content.slice(0, match.index).split('\n');
42
+ let isMethod = false;
43
+ for (let i = linesAbove.length - 1; i >= 0; i--) {
44
+ const line = linesAbove[i];
45
+ if (line.match(/^class\s+\w+/)) {
46
+ isMethod = true;
47
+ break;
48
+ }
49
+ // If we hit a non-indented non-empty line that's not a class, stop
50
+ if (line.trim() !== '' && !line.startsWith(' ') && !line.startsWith('\t')) {
51
+ break;
52
+ }
53
+ }
54
+ if (isMethod) {
55
+ const rawContent = extractLines(content, lineStart, lineEnd);
56
+ structures.push({
57
+ type: 'method',
58
+ name,
59
+ lineStart,
60
+ lineEnd,
61
+ signature: `def ${name}(${params})`,
62
+ rawContent,
63
+ metadata: { params: params.split(',').map(p => p.trim()).filter(Boolean) },
64
+ calls: extractCalls(rawContent, name),
65
+ });
66
+ continue;
67
+ }
68
+ }
69
+ const rawContent = extractLines(content, lineStart, lineEnd);
70
+ structures.push({
71
+ type: 'function',
72
+ name,
73
+ lineStart,
74
+ lineEnd,
75
+ signature: `def ${name}(${params})`,
76
+ rawContent,
77
+ metadata: { params: params.split(',').map(p => p.trim()).filter(Boolean) },
78
+ calls: extractCalls(rawContent, name),
79
+ });
80
+ }
81
+ // Parse classes
82
+ patterns.class.lastIndex = 0;
83
+ while ((match = patterns.class.exec(content)) !== null) {
84
+ const indent = match[1];
85
+ const name = match[2];
86
+ const lineStart = getLineNumber(content, match.index);
87
+ const lineEnd = findPythonBlockEnd(content, lineStart, indent);
88
+ structures.push({
89
+ type: 'class',
90
+ name,
91
+ lineStart,
92
+ lineEnd,
93
+ signature: `class ${name}`,
94
+ rawContent: extractLines(content, lineStart, lineEnd),
95
+ metadata: {},
96
+ });
97
+ }
98
+ return structures;
99
+ },
100
+ };
101
+ //# sourceMappingURL=python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/indexer/parsers/python.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Parser } from './base.js';
2
+ export declare const rubyParser: Parser;
3
+ //# sourceMappingURL=ruby.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../../src/indexer/parsers/ruby.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,WAAW,CAAC;AAsCzD,eAAO,MAAM,UAAU,EAAE,MAsExB,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { getLineNumber, extractLines, extractCalls } from './base.js';
2
+ const patterns = {
3
+ // def name(...) or def self.name(...)
4
+ method: /^\s*def\s+(self\.)?(\w+[?!=]?)\s*(?:\(([^)]*)\))?/gm,
5
+ // class Name
6
+ class: /^\s*class\s+(\w+)(?:\s*<\s*\w+)?/gm,
7
+ // module Name
8
+ module: /^\s*module\s+(\w+)/gm,
9
+ };
10
+ function findRubyBlockEnd(content, startLine) {
11
+ const lines = content.split('\n');
12
+ let depth = 1;
13
+ for (let i = startLine; i < lines.length; i++) {
14
+ const line = lines[i];
15
+ // Count block openers
16
+ if (line.match(/\b(class|module|def|do|if|unless|case|while|until|for|begin)\b/) && !line.match(/\bend\b/)) {
17
+ depth++;
18
+ }
19
+ // Count block closers
20
+ if (line.match(/\bend\b/)) {
21
+ depth--;
22
+ if (depth === 0) {
23
+ return i + 1;
24
+ }
25
+ }
26
+ }
27
+ return lines.length;
28
+ }
29
+ export const rubyParser = {
30
+ extensions: ['.rb', '.rake', '.gemspec'],
31
+ parse(content, filePath) {
32
+ const structures = [];
33
+ // Parse methods
34
+ let match;
35
+ patterns.method.lastIndex = 0;
36
+ while ((match = patterns.method.exec(content)) !== null) {
37
+ const isClassMethod = !!match[1];
38
+ const name = match[2];
39
+ const params = match[3] || '';
40
+ const lineStart = getLineNumber(content, match.index);
41
+ const lineEnd = findRubyBlockEnd(content, lineStart);
42
+ const rawContent = extractLines(content, lineStart, lineEnd);
43
+ structures.push({
44
+ type: 'method',
45
+ name: isClassMethod ? `self.${name}` : name,
46
+ lineStart,
47
+ lineEnd,
48
+ signature: `def ${isClassMethod ? 'self.' : ''}${name}(${params})`,
49
+ rawContent,
50
+ metadata: {
51
+ classMethod: isClassMethod,
52
+ params: params.split(',').map(p => p.trim()).filter(Boolean),
53
+ },
54
+ calls: extractCalls(rawContent, name),
55
+ });
56
+ }
57
+ // Parse classes
58
+ patterns.class.lastIndex = 0;
59
+ while ((match = patterns.class.exec(content)) !== null) {
60
+ const name = match[1];
61
+ const lineStart = getLineNumber(content, match.index);
62
+ const lineEnd = findRubyBlockEnd(content, lineStart);
63
+ structures.push({
64
+ type: 'class',
65
+ name,
66
+ lineStart,
67
+ lineEnd,
68
+ signature: match[0].trim(),
69
+ rawContent: extractLines(content, lineStart, lineEnd),
70
+ metadata: {},
71
+ });
72
+ }
73
+ // Parse modules
74
+ patterns.module.lastIndex = 0;
75
+ while ((match = patterns.module.exec(content)) !== null) {
76
+ const name = match[1];
77
+ const lineStart = getLineNumber(content, match.index);
78
+ const lineEnd = findRubyBlockEnd(content, lineStart);
79
+ structures.push({
80
+ type: 'module',
81
+ name,
82
+ lineStart,
83
+ lineEnd,
84
+ signature: `module ${name}`,
85
+ rawContent: extractLines(content, lineStart, lineEnd),
86
+ metadata: {},
87
+ });
88
+ }
89
+ return structures;
90
+ },
91
+ };
92
+ //# sourceMappingURL=ruby.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../src/indexer/parsers/ruby.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Parser } from './base.js';
2
+ export declare const rustParser: Parser;
3
+ //# sourceMappingURL=rust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/indexer/parsers/rust.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,WAAW,CAAC;AAmGzD,eAAO,MAAM,UAAU,EAAE,MAkHxB,CAAC"}
@@ -0,0 +1,190 @@
1
+ import { getLineNumber, extractLines, extractCalls } from './base.js';
2
+ const patterns = {
3
+ // fn name(...) or pub fn name(...) or async fn name(...)
4
+ function: /^(\s*)(?:pub(?:\([^)]*\))?\s+)?(?:async\s+)?(?:unsafe\s+)?(?:extern\s+"[^"]+"\s+)?fn\s+(\w+)\s*(?:<[^>]+>)?\s*\(([^)]*)\)/gm,
5
+ // struct Name or pub struct Name
6
+ struct: /^(?:pub(?:\([^)]*\))?\s+)?struct\s+(\w+)(?:<[^>]+>)?/gm,
7
+ // impl Name or impl Trait for Name
8
+ impl: /^impl(?:<[^>]+>)?\s+(?:(\w+)\s+for\s+)?(\w+)(?:<[^>]+>)?/gm,
9
+ // trait Name
10
+ trait: /^(?:pub(?:\([^)]*\))?\s+)?trait\s+(\w+)(?:<[^>]+>)?/gm,
11
+ // enum Name
12
+ enum: /^(?:pub(?:\([^)]*\))?\s+)?enum\s+(\w+)(?:<[^>]+>)?/gm,
13
+ // type Name = ...
14
+ typeAlias: /^(?:pub(?:\([^)]*\))?\s+)?type\s+(\w+)(?:<[^>]+>)?\s*=/gm,
15
+ // mod name
16
+ module: /^(?:pub(?:\([^)]*\))?\s+)?mod\s+(\w+)/gm,
17
+ };
18
+ function findRustBlockEnd(content, startPos) {
19
+ let depth = 0;
20
+ let i = startPos;
21
+ let inString = false;
22
+ let inRawString = false;
23
+ let inLineComment = false;
24
+ let inBlockComment = false;
25
+ // Find opening brace
26
+ while (i < content.length && content[i] !== '{') {
27
+ // Handle semicolon-only declarations (like mod name;)
28
+ if (content[i] === ';')
29
+ return i + 1;
30
+ i++;
31
+ }
32
+ if (i >= content.length)
33
+ return content.length;
34
+ // Find matching closing brace
35
+ for (; i < content.length; i++) {
36
+ const char = content[i];
37
+ const nextChar = content[i + 1] || '';
38
+ const prevChar = content[i - 1] || '';
39
+ // Handle comments
40
+ if (!inString && !inRawString) {
41
+ if (inLineComment) {
42
+ if (char === '\n')
43
+ inLineComment = false;
44
+ continue;
45
+ }
46
+ if (inBlockComment) {
47
+ if (char === '*' && nextChar === '/') {
48
+ inBlockComment = false;
49
+ i++;
50
+ }
51
+ continue;
52
+ }
53
+ if (char === '/' && nextChar === '/') {
54
+ inLineComment = true;
55
+ continue;
56
+ }
57
+ if (char === '/' && nextChar === '*') {
58
+ inBlockComment = true;
59
+ continue;
60
+ }
61
+ }
62
+ // Handle strings
63
+ if (!inBlockComment && !inLineComment) {
64
+ if (char === 'r' && nextChar === '#') {
65
+ inRawString = true;
66
+ continue;
67
+ }
68
+ if (inRawString && char === '#' && prevChar === '"') {
69
+ inRawString = false;
70
+ continue;
71
+ }
72
+ if (!inRawString && char === '"' && prevChar !== '\\') {
73
+ inString = !inString;
74
+ continue;
75
+ }
76
+ }
77
+ if (inString || inRawString)
78
+ continue;
79
+ if (char === '{')
80
+ depth++;
81
+ if (char === '}') {
82
+ depth--;
83
+ if (depth === 0)
84
+ return i + 1;
85
+ }
86
+ }
87
+ return content.length;
88
+ }
89
+ export const rustParser = {
90
+ extensions: ['.rs'],
91
+ parse(content, filePath) {
92
+ const structures = [];
93
+ // Parse functions
94
+ let match;
95
+ patterns.function.lastIndex = 0;
96
+ while ((match = patterns.function.exec(content)) !== null) {
97
+ const indent = match[1];
98
+ const name = match[2];
99
+ const params = match[3];
100
+ const lineStart = getLineNumber(content, match.index);
101
+ const blockEnd = findRustBlockEnd(content, match.index);
102
+ const lineEnd = getLineNumber(content, blockEnd);
103
+ const rawContent = extractLines(content, lineStart, lineEnd);
104
+ // Check if it's a method (inside impl block - has indentation)
105
+ const isMethod = indent.length > 0;
106
+ structures.push({
107
+ type: isMethod ? 'method' : 'function',
108
+ name,
109
+ lineStart,
110
+ lineEnd,
111
+ signature: `fn ${name}(${params})`,
112
+ rawContent,
113
+ metadata: { params: params.split(',').map(p => p.trim()).filter(Boolean) },
114
+ calls: extractCalls(rawContent, name),
115
+ });
116
+ }
117
+ // Parse structs
118
+ patterns.struct.lastIndex = 0;
119
+ while ((match = patterns.struct.exec(content)) !== null) {
120
+ const name = match[1];
121
+ const lineStart = getLineNumber(content, match.index);
122
+ const blockEnd = findRustBlockEnd(content, match.index);
123
+ const lineEnd = getLineNumber(content, blockEnd);
124
+ structures.push({
125
+ type: 'class',
126
+ name,
127
+ lineStart,
128
+ lineEnd,
129
+ signature: `struct ${name}`,
130
+ rawContent: extractLines(content, lineStart, lineEnd),
131
+ metadata: { kind: 'struct' },
132
+ });
133
+ }
134
+ // Parse traits
135
+ patterns.trait.lastIndex = 0;
136
+ while ((match = patterns.trait.exec(content)) !== null) {
137
+ const name = match[1];
138
+ const lineStart = getLineNumber(content, match.index);
139
+ const blockEnd = findRustBlockEnd(content, match.index);
140
+ const lineEnd = getLineNumber(content, blockEnd);
141
+ structures.push({
142
+ type: 'interface',
143
+ name,
144
+ lineStart,
145
+ lineEnd,
146
+ signature: `trait ${name}`,
147
+ rawContent: extractLines(content, lineStart, lineEnd),
148
+ metadata: {},
149
+ });
150
+ }
151
+ // Parse enums
152
+ patterns.enum.lastIndex = 0;
153
+ while ((match = patterns.enum.exec(content)) !== null) {
154
+ const name = match[1];
155
+ const lineStart = getLineNumber(content, match.index);
156
+ const blockEnd = findRustBlockEnd(content, match.index);
157
+ const lineEnd = getLineNumber(content, blockEnd);
158
+ structures.push({
159
+ type: 'class',
160
+ name,
161
+ lineStart,
162
+ lineEnd,
163
+ signature: `enum ${name}`,
164
+ rawContent: extractLines(content, lineStart, lineEnd),
165
+ metadata: { kind: 'enum' },
166
+ });
167
+ }
168
+ // Parse impl blocks
169
+ patterns.impl.lastIndex = 0;
170
+ while ((match = patterns.impl.exec(content)) !== null) {
171
+ const traitName = match[1];
172
+ const typeName = match[2];
173
+ const lineStart = getLineNumber(content, match.index);
174
+ const blockEnd = findRustBlockEnd(content, match.index);
175
+ const lineEnd = getLineNumber(content, blockEnd);
176
+ const name = traitName ? `${traitName} for ${typeName}` : typeName;
177
+ structures.push({
178
+ type: 'class',
179
+ name: `impl ${name}`,
180
+ lineStart,
181
+ lineEnd,
182
+ signature: `impl ${name}`,
183
+ rawContent: extractLines(content, lineStart, lineEnd),
184
+ metadata: { kind: 'impl', trait: traitName, type: typeName },
185
+ });
186
+ }
187
+ return structures;
188
+ },
189
+ };
190
+ //# sourceMappingURL=rust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/indexer/parsers/rust.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=watcher-daemon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcher-daemon.d.ts","sourceRoot":"","sources":["../../src/indexer/watcher-daemon.ts"],"names":[],"mappings":""}