midnight-mcp 0.0.1

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 (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +136 -0
  3. package/dist/db/index.d.ts +3 -0
  4. package/dist/db/index.d.ts.map +1 -0
  5. package/dist/db/index.js +2 -0
  6. package/dist/db/index.js.map +1 -0
  7. package/dist/db/vectorStore.d.ts +66 -0
  8. package/dist/db/vectorStore.d.ts.map +1 -0
  9. package/dist/db/vectorStore.js +196 -0
  10. package/dist/db/vectorStore.js.map +1 -0
  11. package/dist/index.d.ts +3 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +17 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/pipeline/embeddings.d.ts +25 -0
  16. package/dist/pipeline/embeddings.d.ts.map +1 -0
  17. package/dist/pipeline/embeddings.js +103 -0
  18. package/dist/pipeline/embeddings.js.map +1 -0
  19. package/dist/pipeline/github.d.ts +67 -0
  20. package/dist/pipeline/github.d.ts.map +1 -0
  21. package/dist/pipeline/github.js +287 -0
  22. package/dist/pipeline/github.js.map +1 -0
  23. package/dist/pipeline/index.d.ts +11 -0
  24. package/dist/pipeline/index.d.ts.map +1 -0
  25. package/dist/pipeline/index.js +6 -0
  26. package/dist/pipeline/index.js.map +1 -0
  27. package/dist/pipeline/indexer.d.ts +38 -0
  28. package/dist/pipeline/indexer.d.ts.map +1 -0
  29. package/dist/pipeline/indexer.js +222 -0
  30. package/dist/pipeline/indexer.js.map +1 -0
  31. package/dist/pipeline/parser.d.ts +46 -0
  32. package/dist/pipeline/parser.d.ts.map +1 -0
  33. package/dist/pipeline/parser.js +436 -0
  34. package/dist/pipeline/parser.js.map +1 -0
  35. package/dist/pipeline/releases.d.ts +112 -0
  36. package/dist/pipeline/releases.d.ts.map +1 -0
  37. package/dist/pipeline/releases.js +298 -0
  38. package/dist/pipeline/releases.js.map +1 -0
  39. package/dist/pipeline/repository.d.ts +372 -0
  40. package/dist/pipeline/repository.d.ts.map +1 -0
  41. package/dist/pipeline/repository.js +517 -0
  42. package/dist/pipeline/repository.js.map +1 -0
  43. package/dist/prompts/index.d.ts +3 -0
  44. package/dist/prompts/index.d.ts.map +1 -0
  45. package/dist/prompts/index.js +2 -0
  46. package/dist/prompts/index.js.map +1 -0
  47. package/dist/prompts/templates.d.ts +26 -0
  48. package/dist/prompts/templates.d.ts.map +1 -0
  49. package/dist/prompts/templates.js +353 -0
  50. package/dist/prompts/templates.js.map +1 -0
  51. package/dist/resources/code.d.ts +16 -0
  52. package/dist/resources/code.d.ts.map +1 -0
  53. package/dist/resources/code.js +630 -0
  54. package/dist/resources/code.js.map +1 -0
  55. package/dist/resources/docs.d.ts +16 -0
  56. package/dist/resources/docs.d.ts.map +1 -0
  57. package/dist/resources/docs.js +989 -0
  58. package/dist/resources/docs.js.map +1 -0
  59. package/dist/resources/index.d.ts +6 -0
  60. package/dist/resources/index.d.ts.map +1 -0
  61. package/dist/resources/index.js +13 -0
  62. package/dist/resources/index.js.map +1 -0
  63. package/dist/resources/schemas.d.ts +16 -0
  64. package/dist/resources/schemas.d.ts.map +1 -0
  65. package/dist/resources/schemas.js +407 -0
  66. package/dist/resources/schemas.js.map +1 -0
  67. package/dist/scripts/index-repos.d.ts +12 -0
  68. package/dist/scripts/index-repos.d.ts.map +1 -0
  69. package/dist/scripts/index-repos.js +53 -0
  70. package/dist/scripts/index-repos.js.map +1 -0
  71. package/dist/server.d.ts +14 -0
  72. package/dist/server.d.ts.map +1 -0
  73. package/dist/server.js +231 -0
  74. package/dist/server.js.map +1 -0
  75. package/dist/tools/analyze.d.ts +140 -0
  76. package/dist/tools/analyze.d.ts.map +1 -0
  77. package/dist/tools/analyze.js +270 -0
  78. package/dist/tools/analyze.js.map +1 -0
  79. package/dist/tools/index.d.ts +392 -0
  80. package/dist/tools/index.d.ts.map +1 -0
  81. package/dist/tools/index.js +9 -0
  82. package/dist/tools/index.js.map +1 -0
  83. package/dist/tools/repository.d.ts +537 -0
  84. package/dist/tools/repository.d.ts.map +1 -0
  85. package/dist/tools/repository.js +654 -0
  86. package/dist/tools/repository.js.map +1 -0
  87. package/dist/tools/search.d.ts +204 -0
  88. package/dist/tools/search.d.ts.map +1 -0
  89. package/dist/tools/search.js +210 -0
  90. package/dist/tools/search.js.map +1 -0
  91. package/dist/utils/config.d.ts +66 -0
  92. package/dist/utils/config.d.ts.map +1 -0
  93. package/dist/utils/config.js +161 -0
  94. package/dist/utils/config.js.map +1 -0
  95. package/dist/utils/index.d.ts +5 -0
  96. package/dist/utils/index.d.ts.map +1 -0
  97. package/dist/utils/index.js +4 -0
  98. package/dist/utils/index.js.map +1 -0
  99. package/dist/utils/logger.d.ts +14 -0
  100. package/dist/utils/logger.d.ts.map +1 -0
  101. package/dist/utils/logger.js +43 -0
  102. package/dist/utils/logger.js.map +1 -0
  103. package/package.json +64 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/pipeline/indexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ export interface CodeUnit {
2
+ type: "ledger" | "circuit" | "witness" | "function" | "type" | "import" | "export" | "class" | "interface";
3
+ name: string;
4
+ code: string;
5
+ startLine: number;
6
+ endLine: number;
7
+ isPublic: boolean;
8
+ isPrivate: boolean;
9
+ documentation?: string;
10
+ parameters?: Array<{
11
+ name: string;
12
+ type: string;
13
+ }>;
14
+ returnType?: string;
15
+ }
16
+ export interface ParsedFile {
17
+ path: string;
18
+ language: "compact" | "typescript" | "markdown";
19
+ content: string;
20
+ codeUnits: CodeUnit[];
21
+ imports: string[];
22
+ exports: string[];
23
+ metadata: {
24
+ hasLedger: boolean;
25
+ hasCircuits: boolean;
26
+ hasWitnesses: boolean;
27
+ lineCount: number;
28
+ };
29
+ }
30
+ /**
31
+ * Parse Compact smart contract files
32
+ */
33
+ export declare function parseCompactFile(path: string, content: string): ParsedFile;
34
+ /**
35
+ * Parse TypeScript files
36
+ */
37
+ export declare function parseTypeScriptFile(path: string, content: string): ParsedFile;
38
+ /**
39
+ * Parse Markdown documentation files
40
+ */
41
+ export declare function parseMarkdownFile(path: string, content: string): ParsedFile;
42
+ /**
43
+ * Parse a file based on its extension
44
+ */
45
+ export declare function parseFile(path: string, content: string): ParsedFile;
46
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/pipeline/parser.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,IAAI,EACA,QAAQ,GACR,SAAS,GACT,SAAS,GACT,UAAU,GACV,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,WAAW,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,GAAG,YAAY,GAAG,UAAU,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE;QACR,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAmM1E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAsL7E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAsD3E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CA+BnE"}
@@ -0,0 +1,436 @@
1
+ import { logger } from "../utils/index.js";
2
+ /**
3
+ * Parse Compact smart contract files
4
+ */
5
+ export function parseCompactFile(path, content) {
6
+ const lines = content.split("\n");
7
+ const codeUnits = [];
8
+ const imports = [];
9
+ const exports = [];
10
+ let hasLedger = false;
11
+ let hasCircuits = false;
12
+ let hasWitnesses = false;
13
+ // Extract imports
14
+ const importRegex = /^include\s+["']([^"']+)["'];?/gm;
15
+ let importMatch;
16
+ while ((importMatch = importRegex.exec(content)) !== null) {
17
+ imports.push(importMatch[1]);
18
+ }
19
+ // Parse ledger block
20
+ const ledgerRegex = /ledger\s*\{([^}]*(?:\{[^}]*\}[^}]*)*)\}/gs;
21
+ let ledgerMatch;
22
+ while ((ledgerMatch = ledgerRegex.exec(content)) !== null) {
23
+ hasLedger = true;
24
+ const ledgerContent = ledgerMatch[1];
25
+ const startLine = content.substring(0, ledgerMatch.index).split("\n").length;
26
+ const endLine = startLine + ledgerMatch[0].split("\n").length - 1;
27
+ codeUnits.push({
28
+ type: "ledger",
29
+ name: "ledger",
30
+ code: ledgerMatch[0],
31
+ startLine,
32
+ endLine,
33
+ isPublic: true,
34
+ isPrivate: false,
35
+ });
36
+ // Parse individual ledger fields
37
+ const fieldRegex = /(@private\s+)?(\w+)\s*:\s*([^;]+);/g;
38
+ let fieldMatch;
39
+ while ((fieldMatch = fieldRegex.exec(ledgerContent)) !== null) {
40
+ const isPrivate = !!fieldMatch[1];
41
+ codeUnits.push({
42
+ type: "ledger",
43
+ name: fieldMatch[2],
44
+ code: fieldMatch[0].trim(),
45
+ startLine: startLine,
46
+ endLine: startLine,
47
+ isPublic: !isPrivate,
48
+ isPrivate,
49
+ returnType: fieldMatch[3].trim(),
50
+ });
51
+ }
52
+ }
53
+ // Parse circuit definitions
54
+ const circuitRegex = /(export\s+)?circuit\s+(\w+)\s*\(([^)]*)\)\s*(?::\s*(\w+))?\s*\{/g;
55
+ let circuitMatch;
56
+ while ((circuitMatch = circuitRegex.exec(content)) !== null) {
57
+ hasCircuits = true;
58
+ const isExport = !!circuitMatch[1];
59
+ const name = circuitMatch[2];
60
+ const params = circuitMatch[3];
61
+ const returnType = circuitMatch[4] || "Void";
62
+ // Find the matching closing brace
63
+ const startIndex = circuitMatch.index;
64
+ let braceCount = 1;
65
+ let endIndex = content.indexOf("{", startIndex) + 1;
66
+ while (braceCount > 0 && endIndex < content.length) {
67
+ if (content[endIndex] === "{")
68
+ braceCount++;
69
+ if (content[endIndex] === "}")
70
+ braceCount--;
71
+ endIndex++;
72
+ }
73
+ const circuitCode = content.substring(startIndex, endIndex);
74
+ const startLine = content.substring(0, startIndex).split("\n").length;
75
+ const endLine = startLine + circuitCode.split("\n").length - 1;
76
+ // Parse parameters
77
+ const parameters = params
78
+ .split(",")
79
+ .filter((p) => p.trim())
80
+ .map((p) => {
81
+ const parts = p.trim().split(":");
82
+ return {
83
+ name: parts[0]?.trim() || "",
84
+ type: parts[1]?.trim() || "unknown",
85
+ };
86
+ });
87
+ if (isExport) {
88
+ exports.push(name);
89
+ }
90
+ codeUnits.push({
91
+ type: "circuit",
92
+ name,
93
+ code: circuitCode,
94
+ startLine,
95
+ endLine,
96
+ isPublic: isExport,
97
+ isPrivate: false,
98
+ parameters,
99
+ returnType,
100
+ });
101
+ }
102
+ // Parse witness functions
103
+ const witnessRegex = /witness\s+(\w+)\s*\(([^)]*)\)\s*(?::\s*([^{]+))?\s*\{/g;
104
+ let witnessMatch;
105
+ while ((witnessMatch = witnessRegex.exec(content)) !== null) {
106
+ hasWitnesses = true;
107
+ const name = witnessMatch[1];
108
+ const params = witnessMatch[2];
109
+ const returnType = witnessMatch[3]?.trim() || "unknown";
110
+ // Find the matching closing brace
111
+ const startIndex = witnessMatch.index;
112
+ let braceCount = 1;
113
+ let endIndex = content.indexOf("{", startIndex) + 1;
114
+ while (braceCount > 0 && endIndex < content.length) {
115
+ if (content[endIndex] === "{")
116
+ braceCount++;
117
+ if (content[endIndex] === "}")
118
+ braceCount--;
119
+ endIndex++;
120
+ }
121
+ const witnessCode = content.substring(startIndex, endIndex);
122
+ const startLine = content.substring(0, startIndex).split("\n").length;
123
+ const endLine = startLine + witnessCode.split("\n").length - 1;
124
+ // Parse parameters
125
+ const parameters = params
126
+ .split(",")
127
+ .filter((p) => p.trim())
128
+ .map((p) => {
129
+ const parts = p.trim().split(":");
130
+ return {
131
+ name: parts[0]?.trim() || "",
132
+ type: parts[1]?.trim() || "unknown",
133
+ };
134
+ });
135
+ codeUnits.push({
136
+ type: "witness",
137
+ name,
138
+ code: witnessCode,
139
+ startLine,
140
+ endLine,
141
+ isPublic: false,
142
+ isPrivate: true,
143
+ parameters,
144
+ returnType,
145
+ });
146
+ }
147
+ // Parse type definitions
148
+ const typeRegex = /(export\s+)?type\s+(\w+)\s*=\s*([^;]+);/g;
149
+ let typeMatch;
150
+ while ((typeMatch = typeRegex.exec(content)) !== null) {
151
+ const isExport = !!typeMatch[1];
152
+ const name = typeMatch[2];
153
+ const startLine = content.substring(0, typeMatch.index).split("\n").length;
154
+ if (isExport) {
155
+ exports.push(name);
156
+ }
157
+ codeUnits.push({
158
+ type: "type",
159
+ name,
160
+ code: typeMatch[0],
161
+ startLine,
162
+ endLine: startLine,
163
+ isPublic: isExport,
164
+ isPrivate: false,
165
+ returnType: typeMatch[3].trim(),
166
+ });
167
+ }
168
+ return {
169
+ path,
170
+ language: "compact",
171
+ content,
172
+ codeUnits,
173
+ imports,
174
+ exports,
175
+ metadata: {
176
+ hasLedger,
177
+ hasCircuits,
178
+ hasWitnesses,
179
+ lineCount: lines.length,
180
+ },
181
+ };
182
+ }
183
+ /**
184
+ * Parse TypeScript files
185
+ */
186
+ export function parseTypeScriptFile(path, content) {
187
+ const lines = content.split("\n");
188
+ const codeUnits = [];
189
+ const imports = [];
190
+ const exports = [];
191
+ // Extract imports
192
+ const importRegex = /import\s+(?:\{[^}]*\}|\*\s+as\s+\w+|\w+)\s+from\s+["']([^"']+)["']/g;
193
+ let importMatch;
194
+ while ((importMatch = importRegex.exec(content)) !== null) {
195
+ imports.push(importMatch[1]);
196
+ }
197
+ // Parse function declarations
198
+ const functionRegex = /(export\s+)?(async\s+)?function\s+(\w+)\s*(?:<[^>]+>)?\s*\(([^)]*)\)\s*(?::\s*([^{]+))?\s*\{/g;
199
+ let funcMatch;
200
+ while ((funcMatch = functionRegex.exec(content)) !== null) {
201
+ const isExport = !!funcMatch[1];
202
+ const isAsync = !!funcMatch[2];
203
+ const name = funcMatch[3];
204
+ const params = funcMatch[4];
205
+ const returnType = funcMatch[5]?.trim() || (isAsync ? "Promise<void>" : "void");
206
+ // Find the matching closing brace
207
+ const startIndex = funcMatch.index;
208
+ let braceCount = 1;
209
+ let endIndex = content.indexOf("{", startIndex) + 1;
210
+ while (braceCount > 0 && endIndex < content.length) {
211
+ if (content[endIndex] === "{")
212
+ braceCount++;
213
+ if (content[endIndex] === "}")
214
+ braceCount--;
215
+ endIndex++;
216
+ }
217
+ const funcCode = content.substring(startIndex, endIndex);
218
+ const startLine = content.substring(0, startIndex).split("\n").length;
219
+ const endLine = startLine + funcCode.split("\n").length - 1;
220
+ // Parse parameters
221
+ const parameters = params
222
+ .split(",")
223
+ .filter((p) => p.trim())
224
+ .map((p) => {
225
+ const parts = p.trim().split(":");
226
+ return {
227
+ name: parts[0]?.trim().replace(/\?$/, "") || "",
228
+ type: parts[1]?.trim() || "any",
229
+ };
230
+ });
231
+ if (isExport) {
232
+ exports.push(name);
233
+ }
234
+ codeUnits.push({
235
+ type: "function",
236
+ name,
237
+ code: funcCode,
238
+ startLine,
239
+ endLine,
240
+ isPublic: isExport,
241
+ isPrivate: false,
242
+ parameters,
243
+ returnType,
244
+ });
245
+ }
246
+ // Parse class declarations
247
+ const classRegex = /(export\s+)?(abstract\s+)?class\s+(\w+)(?:\s+extends\s+\w+)?(?:\s+implements\s+[^{]+)?\s*\{/g;
248
+ let classMatch;
249
+ while ((classMatch = classRegex.exec(content)) !== null) {
250
+ const isExport = !!classMatch[1];
251
+ const isAbstract = !!classMatch[2];
252
+ const name = classMatch[3];
253
+ // Find the matching closing brace
254
+ const startIndex = classMatch.index;
255
+ let braceCount = 1;
256
+ let endIndex = content.indexOf("{", startIndex) + 1;
257
+ while (braceCount > 0 && endIndex < content.length) {
258
+ if (content[endIndex] === "{")
259
+ braceCount++;
260
+ if (content[endIndex] === "}")
261
+ braceCount--;
262
+ endIndex++;
263
+ }
264
+ const classCode = content.substring(startIndex, endIndex);
265
+ const startLine = content.substring(0, startIndex).split("\n").length;
266
+ const endLine = startLine + classCode.split("\n").length - 1;
267
+ if (isExport) {
268
+ exports.push(name);
269
+ }
270
+ codeUnits.push({
271
+ type: "class",
272
+ name,
273
+ code: classCode,
274
+ startLine,
275
+ endLine,
276
+ isPublic: isExport,
277
+ isPrivate: false,
278
+ documentation: isAbstract ? "abstract class" : undefined,
279
+ });
280
+ }
281
+ // Parse interface declarations
282
+ const interfaceRegex = /(export\s+)?interface\s+(\w+)(?:\s+extends\s+[^{]+)?\s*\{/g;
283
+ let ifaceMatch;
284
+ while ((ifaceMatch = interfaceRegex.exec(content)) !== null) {
285
+ const isExport = !!ifaceMatch[1];
286
+ const name = ifaceMatch[2];
287
+ // Find the matching closing brace
288
+ const startIndex = ifaceMatch.index;
289
+ let braceCount = 1;
290
+ let endIndex = content.indexOf("{", startIndex) + 1;
291
+ while (braceCount > 0 && endIndex < content.length) {
292
+ if (content[endIndex] === "{")
293
+ braceCount++;
294
+ if (content[endIndex] === "}")
295
+ braceCount--;
296
+ endIndex++;
297
+ }
298
+ const ifaceCode = content.substring(startIndex, endIndex);
299
+ const startLine = content.substring(0, startIndex).split("\n").length;
300
+ const endLine = startLine + ifaceCode.split("\n").length - 1;
301
+ if (isExport) {
302
+ exports.push(name);
303
+ }
304
+ codeUnits.push({
305
+ type: "interface",
306
+ name,
307
+ code: ifaceCode,
308
+ startLine,
309
+ endLine,
310
+ isPublic: isExport,
311
+ isPrivate: false,
312
+ });
313
+ }
314
+ // Parse type definitions
315
+ const typeRegex = /(export\s+)?type\s+(\w+)(?:<[^>]+>)?\s*=\s*([^;]+);/g;
316
+ let typeMatch;
317
+ while ((typeMatch = typeRegex.exec(content)) !== null) {
318
+ const isExport = !!typeMatch[1];
319
+ const name = typeMatch[2];
320
+ const startLine = content.substring(0, typeMatch.index).split("\n").length;
321
+ if (isExport) {
322
+ exports.push(name);
323
+ }
324
+ codeUnits.push({
325
+ type: "type",
326
+ name,
327
+ code: typeMatch[0],
328
+ startLine,
329
+ endLine: startLine,
330
+ isPublic: isExport,
331
+ isPrivate: false,
332
+ returnType: typeMatch[3].trim(),
333
+ });
334
+ }
335
+ return {
336
+ path,
337
+ language: "typescript",
338
+ content,
339
+ codeUnits,
340
+ imports,
341
+ exports,
342
+ metadata: {
343
+ hasLedger: false,
344
+ hasCircuits: false,
345
+ hasWitnesses: false,
346
+ lineCount: lines.length,
347
+ },
348
+ };
349
+ }
350
+ /**
351
+ * Parse Markdown documentation files
352
+ */
353
+ export function parseMarkdownFile(path, content) {
354
+ const lines = content.split("\n");
355
+ const codeUnits = [];
356
+ // Parse headings as sections
357
+ const headingRegex = /^(#{1,6})\s+(.+)$/gm;
358
+ let headingMatch;
359
+ const headings = [];
360
+ while ((headingMatch = headingRegex.exec(content)) !== null) {
361
+ headings.push({
362
+ level: headingMatch[1].length,
363
+ title: headingMatch[2],
364
+ index: headingMatch.index,
365
+ });
366
+ }
367
+ // Create sections between headings
368
+ for (let i = 0; i < headings.length; i++) {
369
+ const heading = headings[i];
370
+ const nextHeading = headings[i + 1];
371
+ const startIndex = heading.index;
372
+ const endIndex = nextHeading ? nextHeading.index : content.length;
373
+ const sectionContent = content.substring(startIndex, endIndex).trim();
374
+ const startLine = content.substring(0, startIndex).split("\n").length;
375
+ const endLine = startLine + sectionContent.split("\n").length - 1;
376
+ codeUnits.push({
377
+ type: "function", // Using function type for documentation sections
378
+ name: heading.title.replace(/[^a-zA-Z0-9]/g, "-").toLowerCase(),
379
+ code: sectionContent,
380
+ startLine,
381
+ endLine,
382
+ isPublic: true,
383
+ isPrivate: false,
384
+ documentation: heading.title,
385
+ });
386
+ }
387
+ return {
388
+ path,
389
+ language: "markdown",
390
+ content,
391
+ codeUnits,
392
+ imports: [],
393
+ exports: [],
394
+ metadata: {
395
+ hasLedger: false,
396
+ hasCircuits: false,
397
+ hasWitnesses: false,
398
+ lineCount: lines.length,
399
+ },
400
+ };
401
+ }
402
+ /**
403
+ * Parse a file based on its extension
404
+ */
405
+ export function parseFile(path, content) {
406
+ const extension = path.split(".").pop()?.toLowerCase();
407
+ switch (extension) {
408
+ case "compact":
409
+ return parseCompactFile(path, content);
410
+ case "ts":
411
+ case "tsx":
412
+ case "js":
413
+ case "jsx":
414
+ return parseTypeScriptFile(path, content);
415
+ case "md":
416
+ case "mdx":
417
+ return parseMarkdownFile(path, content);
418
+ default:
419
+ logger.warn(`Unknown file extension: ${extension} for ${path}`);
420
+ return {
421
+ path,
422
+ language: "typescript",
423
+ content,
424
+ codeUnits: [],
425
+ imports: [],
426
+ exports: [],
427
+ metadata: {
428
+ hasLedger: false,
429
+ hasCircuits: false,
430
+ hasWitnesses: false,
431
+ lineCount: content.split("\n").length,
432
+ },
433
+ };
434
+ }
435
+ }
436
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/pipeline/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ export interface Release {
2
+ tag: string;
3
+ name: string;
4
+ body: string;
5
+ publishedAt: string;
6
+ url: string;
7
+ isPrerelease: boolean;
8
+ assets: Array<{
9
+ name: string;
10
+ downloadUrl: string;
11
+ }>;
12
+ }
13
+ export interface ChangelogEntry {
14
+ version: string;
15
+ date: string;
16
+ changes: {
17
+ breaking: string[];
18
+ features: string[];
19
+ fixes: string[];
20
+ deprecations: string[];
21
+ };
22
+ rawBody: string;
23
+ }
24
+ export interface VersionInfo {
25
+ repository: string;
26
+ latestRelease: Release | null;
27
+ latestStableRelease: Release | null;
28
+ recentReleases: Release[];
29
+ changelog: ChangelogEntry[];
30
+ lastChecked: string;
31
+ }
32
+ /**
33
+ * Fetches and tracks releases from GitHub repositories
34
+ */
35
+ export declare class ReleaseTracker {
36
+ private octokit;
37
+ private cache;
38
+ private cacheMaxAge;
39
+ constructor(token?: string);
40
+ /**
41
+ * Get all releases for a repository
42
+ */
43
+ getReleases(owner: string, repo: string, limit?: number): Promise<Release[]>;
44
+ /**
45
+ * Parse a release body to extract structured changelog info
46
+ */
47
+ parseChangelog(releaseBody: string, version: string, date: string): ChangelogEntry;
48
+ /**
49
+ * Get version info for a repository with caching
50
+ */
51
+ getVersionInfo(owner: string, repo: string): Promise<VersionInfo>;
52
+ /**
53
+ * Get breaking changes since a specific version
54
+ */
55
+ getBreakingChangesSince(owner: string, repo: string, sinceVersion: string): Promise<string[]>;
56
+ /**
57
+ * Check if a version is outdated
58
+ */
59
+ isOutdated(owner: string, repo: string, currentVersion: string): Promise<{
60
+ isOutdated: boolean;
61
+ latestVersion: string | null;
62
+ versionsBehind: number;
63
+ hasBreakingChanges: boolean;
64
+ }>;
65
+ /**
66
+ * Get migration guide between two versions
67
+ */
68
+ getMigrationGuide(owner: string, repo: string, fromVersion: string, toVersion?: string): Promise<{
69
+ from: string;
70
+ to: string;
71
+ breakingChanges: string[];
72
+ deprecations: string[];
73
+ newFeatures: string[];
74
+ migrationSteps: string[];
75
+ }>;
76
+ /**
77
+ * Get version-specific documentation hints
78
+ */
79
+ getVersionContext(versionInfo: VersionInfo): string;
80
+ /**
81
+ * Fetch a file at a specific version/tag
82
+ * This is critical for ensuring code recommendations match the user's version
83
+ */
84
+ getFileAtVersion(owner: string, repo: string, filePath: string, version: string): Promise<{
85
+ content: string;
86
+ version: string;
87
+ } | null>;
88
+ /**
89
+ * Compare syntax between two versions of a file
90
+ * Useful for showing what changed in API/syntax
91
+ */
92
+ compareSyntax(owner: string, repo: string, filePath: string, oldVersion: string, newVersion: string): Promise<{
93
+ oldVersion: string;
94
+ newVersion: string;
95
+ oldContent: string | null;
96
+ newContent: string | null;
97
+ hasDifferences: boolean;
98
+ }>;
99
+ /**
100
+ * Get the grammar/syntax reference files at the latest version
101
+ * These are the source of truth for valid Compact syntax
102
+ */
103
+ getLatestSyntaxReference(owner: string, repo: string): Promise<{
104
+ version: string;
105
+ syntaxFiles: Array<{
106
+ path: string;
107
+ content: string;
108
+ }>;
109
+ } | null>;
110
+ }
111
+ export declare const releaseTracker: ReleaseTracker;
112
+ //# sourceMappingURL=releases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"releases.d.ts","sourceRoot":"","sources":["../../src/pipeline/releases.ts"],"names":[],"mappings":"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"}