@botbotgo/kit-builtin 0.0.96 → 0.0.98

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 (29) hide show
  1. package/dist/core-tools-manifest.json +171 -1
  2. package/dist/src/analyze/analyzeProjectRepo.ast.d.ts +58 -0
  3. package/dist/src/analyze/analyzeProjectRepo.ast.d.ts.map +1 -0
  4. package/dist/src/analyze/analyzeProjectRepo.ast.js +341 -0
  5. package/dist/src/analyze/analyzeProjectRepo.ast.js.map +1 -0
  6. package/dist/src/analyze/analyzeProjectRepo.d.ts +14 -0
  7. package/dist/src/analyze/analyzeProjectRepo.d.ts.map +1 -1
  8. package/dist/src/analyze/analyzeProjectRepo.io.d.ts +47 -0
  9. package/dist/src/analyze/analyzeProjectRepo.io.d.ts.map +1 -0
  10. package/dist/src/analyze/analyzeProjectRepo.io.js +149 -0
  11. package/dist/src/analyze/analyzeProjectRepo.io.js.map +1 -0
  12. package/dist/src/analyze/analyzeProjectRepo.js +66 -266
  13. package/dist/src/analyze/analyzeProjectRepo.js.map +1 -1
  14. package/dist/src/analyze/analyzeProjectRepo.llm.d.ts +15 -0
  15. package/dist/src/analyze/analyzeProjectRepo.llm.d.ts.map +1 -0
  16. package/dist/src/analyze/analyzeProjectRepo.llm.js +122 -0
  17. package/dist/src/analyze/analyzeProjectRepo.llm.js.map +1 -0
  18. package/dist/src/analyze/askProjectRepo.d.ts.map +1 -1
  19. package/dist/src/analyze/askProjectRepo.helpers.d.ts +14 -0
  20. package/dist/src/analyze/askProjectRepo.helpers.d.ts.map +1 -1
  21. package/dist/src/analyze/askProjectRepo.helpers.js +13 -2
  22. package/dist/src/analyze/askProjectRepo.helpers.js.map +1 -1
  23. package/dist/src/analyze/askProjectRepo.js +11 -2
  24. package/dist/src/analyze/askProjectRepo.js.map +1 -1
  25. package/dist/src/fs/searchText.d.ts +1 -1
  26. package/dist/src/fs/searchText.d.ts.map +1 -1
  27. package/package.json +9 -2
  28. package/skills/skill-quality-guard/SKILL.md +72 -0
  29. package/skills/skill-quality-guard/scripts/audit-skill.mjs +427 -0
@@ -1314,6 +1314,177 @@
1314
1314
  "exportName": "analyzeLog",
1315
1315
  "sideEffect": "none"
1316
1316
  },
1317
+ {
1318
+ "name": "analyzeProjectRepo",
1319
+ "description": "Analyze and index a repository into .index/project-index.json (or split parts).",
1320
+ "inputSchema": {
1321
+ "type": "object",
1322
+ "properties": {
1323
+ "path": {
1324
+ "type": "string"
1325
+ },
1326
+ "repoPath": {
1327
+ "type": "string"
1328
+ },
1329
+ "projectPath": {
1330
+ "type": "string"
1331
+ },
1332
+ "outputIndexPath": {
1333
+ "type": "string"
1334
+ },
1335
+ "includeHidden": {
1336
+ "type": "boolean"
1337
+ },
1338
+ "maxFiles": {
1339
+ "type": "number"
1340
+ },
1341
+ "maxFileBytes": {
1342
+ "type": "number"
1343
+ },
1344
+ "includeExtensions": {
1345
+ "type": "array",
1346
+ "items": {
1347
+ "type": "string"
1348
+ }
1349
+ },
1350
+ "excludeDirs": {
1351
+ "type": "array",
1352
+ "items": {
1353
+ "type": "string"
1354
+ }
1355
+ },
1356
+ "model": {
1357
+ "type": "string"
1358
+ },
1359
+ "timeoutMs": {
1360
+ "type": "number"
1361
+ },
1362
+ "astMaxSymbols": {
1363
+ "type": "number"
1364
+ },
1365
+ "astMaxFiles": {
1366
+ "type": "number"
1367
+ },
1368
+ "astParseBytes": {
1369
+ "type": "number"
1370
+ },
1371
+ "scanAllFiles": {
1372
+ "type": "boolean"
1373
+ }
1374
+ },
1375
+ "required": [
1376
+ "path"
1377
+ ]
1378
+ },
1379
+ "outputSchema": {
1380
+ "type": "object",
1381
+ "properties": {
1382
+ "result": {
1383
+ "type": "object",
1384
+ "properties": {
1385
+ "repoRoot": {
1386
+ "type": "string"
1387
+ },
1388
+ "indexPath": {
1389
+ "type": "string"
1390
+ },
1391
+ "totalIndexedFiles": {
1392
+ "type": "number"
1393
+ },
1394
+ "truncated": {
1395
+ "type": "boolean"
1396
+ },
1397
+ "skippedBinary": {
1398
+ "type": "number"
1399
+ },
1400
+ "indexSplit": {
1401
+ "type": "boolean"
1402
+ },
1403
+ "indexPartPaths": {
1404
+ "type": "array",
1405
+ "items": {
1406
+ "type": "string"
1407
+ }
1408
+ },
1409
+ "llmUsed": {
1410
+ "type": "boolean"
1411
+ },
1412
+ "partialCount": {
1413
+ "type": "number"
1414
+ },
1415
+ "model": {
1416
+ "type": "string"
1417
+ },
1418
+ "astMaxSymbols": {
1419
+ "type": "number"
1420
+ },
1421
+ "astMaxFiles": {
1422
+ "type": "number"
1423
+ },
1424
+ "astIndexedFiles": {
1425
+ "type": "number"
1426
+ },
1427
+ "astParseBytes": {
1428
+ "type": "number"
1429
+ },
1430
+ "scanAllFiles": {
1431
+ "type": "boolean"
1432
+ },
1433
+ "understanding": {
1434
+ "type": "string"
1435
+ }
1436
+ },
1437
+ "required": [
1438
+ "repoRoot",
1439
+ "indexPath",
1440
+ "totalIndexedFiles",
1441
+ "truncated",
1442
+ "skippedBinary",
1443
+ "indexSplit",
1444
+ "indexPartPaths",
1445
+ "llmUsed",
1446
+ "partialCount",
1447
+ "model",
1448
+ "astMaxSymbols",
1449
+ "astMaxFiles",
1450
+ "astIndexedFiles",
1451
+ "astParseBytes",
1452
+ "scanAllFiles",
1453
+ "understanding"
1454
+ ]
1455
+ },
1456
+ "evidence": {
1457
+ "type": "array",
1458
+ "items": {
1459
+ "type": "object",
1460
+ "properties": {
1461
+ "type": {
1462
+ "type": "string"
1463
+ },
1464
+ "summary": {
1465
+ "type": "string"
1466
+ },
1467
+ "createdAt": {
1468
+ "type": "string"
1469
+ }
1470
+ },
1471
+ "required": [
1472
+ "type",
1473
+ "summary",
1474
+ "createdAt"
1475
+ ]
1476
+ }
1477
+ }
1478
+ },
1479
+ "required": [
1480
+ "result",
1481
+ "evidence"
1482
+ ]
1483
+ },
1484
+ "sourcePath": "src/analyze/analyzeProjectRepo",
1485
+ "exportName": "analyzeProjectRepo",
1486
+ "sideEffect": "none"
1487
+ },
1317
1488
  {
1318
1489
  "name": "askProjectRepo",
1319
1490
  "description": "Ask a concrete question about a repository based on .project-index.json (or split parts).",
@@ -2793,7 +2964,6 @@
2793
2964
  }
2794
2965
  },
2795
2966
  "required": [
2796
- "root",
2797
2967
  "query"
2798
2968
  ]
2799
2969
  },
@@ -0,0 +1,58 @@
1
+ interface AstSymbol {
2
+ type: string;
3
+ name?: string;
4
+ startLine: number;
5
+ endLine: number;
6
+ }
7
+ interface AstCall {
8
+ callee: string;
9
+ startLine: number;
10
+ endLine: number;
11
+ callerFunction?: string;
12
+ }
13
+ interface AstFunctionControlFlowSummary {
14
+ branchIf: number;
15
+ branchSwitch: number;
16
+ loop: number;
17
+ tryCatch: number;
18
+ throw: number;
19
+ return: number;
20
+ assignment: number;
21
+ }
22
+ interface AstFunctionDetail {
23
+ type: string;
24
+ name?: string;
25
+ startLine: number;
26
+ endLine: number;
27
+ parameters: string[];
28
+ localCalls: string[];
29
+ controlFlow: AstFunctionControlFlowSummary;
30
+ internalEvents: Array<{
31
+ kind: "branch_if" | "branch_switch" | "loop" | "try_catch" | "throw" | "return" | "assignment" | "call";
32
+ line: number;
33
+ snippet: string;
34
+ }>;
35
+ statements: Array<{
36
+ kind: "statement" | "branch" | "loop" | "exception" | "return" | "assignment" | "call" | "declaration";
37
+ type: string;
38
+ startLine: number;
39
+ endLine: number;
40
+ depth: number;
41
+ snippet: string;
42
+ callee?: string;
43
+ }>;
44
+ }
45
+ export interface AstFileIndex {
46
+ classes: AstSymbol[];
47
+ functions: AstSymbol[];
48
+ functionDetails: AstFunctionDetail[];
49
+ imports: string[];
50
+ calls: AstCall[];
51
+ }
52
+ export declare function buildAstIndex(args: {
53
+ ext: string;
54
+ text: string;
55
+ maxSymbols: number;
56
+ }): AstFileIndex | undefined;
57
+ export {};
58
+ //# sourceMappingURL=analyzeProjectRepo.ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzeProjectRepo.ast.d.ts","sourceRoot":"","sources":["../../../src/analyze/analyzeProjectRepo.ast.ts"],"names":[],"mappings":"AAQA,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,OAAO;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,6BAA6B;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,6BAA6B,CAAC;IAC3C,cAAc,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,WAAW,GAAG,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC;QACxG,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,aAAa,CAAC;QACvG,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,eAAe,EAAE,iBAAiB,EAAE,CAAC;IACrC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAsUD,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,YAAY,GAAG,SAAS,CAiB3B"}
@@ -0,0 +1,341 @@
1
+ import Parser from "tree-sitter";
2
+ import JavaScript from "tree-sitter-javascript";
3
+ import TypeScript from "tree-sitter-typescript";
4
+ import Python from "tree-sitter-python";
5
+ import Go from "tree-sitter-go";
6
+ import Rust from "tree-sitter-rust";
7
+ import Java from "tree-sitter-java";
8
+ const LANGUAGE_BY_EXT = {
9
+ ".js": { language: JavaScript },
10
+ ".mjs": { language: JavaScript },
11
+ ".cjs": { language: JavaScript },
12
+ ".jsx": { language: JavaScript },
13
+ ".ts": { language: TypeScript.typescript },
14
+ ".tsx": { language: TypeScript.tsx },
15
+ ".py": { language: Python },
16
+ ".go": { language: Go },
17
+ ".rs": { language: Rust },
18
+ ".java": { language: Java },
19
+ };
20
+ const IMPORT_NODE_PATTERN = /(import|include|using|package|require)/;
21
+ const CLASS_NODE_PATTERN = /(class|interface|struct|trait|enum)/;
22
+ const FUNCTION_NODE_PATTERN = /(function|method|constructor|lambda|closure)/;
23
+ const CALL_NODE_PATTERN = /(call|invoke)/;
24
+ const BRANCH_IF_PATTERN = /(if_statement|if_expression|conditional_expression)/;
25
+ const BRANCH_SWITCH_PATTERN = /(switch_statement|switch_expression|match_expression)/;
26
+ const LOOP_PATTERN = /(for_statement|while_statement|do_statement|foreach_statement|enhanced_for_statement)/;
27
+ const TRY_CATCH_PATTERN = /(try_statement|catch_clause|finally_clause)/;
28
+ const THROW_PATTERN = /(throw_statement|raise_statement)/;
29
+ const RETURN_PATTERN = /(return_statement|yield_statement)/;
30
+ const ASSIGNMENT_PATTERN = /(assignment_expression|assignment_statement|variable_declarator)/;
31
+ const DECLARATION_PATTERN = /(declaration|declarator|class_definition|function_definition|method_definition)/;
32
+ function statementKindOf(typeLower) {
33
+ if (isNamedCandidate(typeLower, CALL_NODE_PATTERN))
34
+ return "call";
35
+ if (BRANCH_IF_PATTERN.test(typeLower) || BRANCH_SWITCH_PATTERN.test(typeLower))
36
+ return "branch";
37
+ if (LOOP_PATTERN.test(typeLower))
38
+ return "loop";
39
+ if (TRY_CATCH_PATTERN.test(typeLower) || THROW_PATTERN.test(typeLower))
40
+ return "exception";
41
+ if (RETURN_PATTERN.test(typeLower))
42
+ return "return";
43
+ if (ASSIGNMENT_PATTERN.test(typeLower))
44
+ return "assignment";
45
+ if (DECLARATION_PATTERN.test(typeLower))
46
+ return "declaration";
47
+ return "statement";
48
+ }
49
+ function shouldIndexStatement(typeLower) {
50
+ return typeLower.includes("statement")
51
+ || typeLower.includes("expression")
52
+ || isNamedCandidate(typeLower, CALL_NODE_PATTERN)
53
+ || BRANCH_IF_PATTERN.test(typeLower)
54
+ || BRANCH_SWITCH_PATTERN.test(typeLower)
55
+ || LOOP_PATTERN.test(typeLower)
56
+ || TRY_CATCH_PATTERN.test(typeLower)
57
+ || THROW_PATTERN.test(typeLower)
58
+ || RETURN_PATTERN.test(typeLower)
59
+ || ASSIGNMENT_PATTERN.test(typeLower)
60
+ || DECLARATION_PATTERN.test(typeLower);
61
+ }
62
+ function isNamedCandidate(type, pattern) {
63
+ return pattern.test(type.toLowerCase());
64
+ }
65
+ function getNodeName(node, source) {
66
+ const nameNode = node.childForFieldName("name");
67
+ if (nameNode) {
68
+ const raw = source.slice(nameNode.startIndex, nameNode.endIndex).trim();
69
+ if (raw)
70
+ return raw;
71
+ }
72
+ for (let i = 0; i < node.namedChildCount; i += 1) {
73
+ const child = node.namedChild(i);
74
+ if (!child)
75
+ continue;
76
+ if (child.type === "identifier" || child.type.endsWith("_identifier")) {
77
+ const raw = source.slice(child.startIndex, child.endIndex).trim();
78
+ if (raw)
79
+ return raw;
80
+ }
81
+ }
82
+ return undefined;
83
+ }
84
+ function getCallName(node, source) {
85
+ const functionNode = node.childForFieldName("function") ?? node.childForFieldName("name");
86
+ if (functionNode) {
87
+ const raw = source.slice(functionNode.startIndex, functionNode.endIndex).trim();
88
+ if (raw)
89
+ return raw.slice(0, 120);
90
+ }
91
+ for (let i = 0; i < node.namedChildCount; i += 1) {
92
+ const child = node.namedChild(i);
93
+ if (!child)
94
+ continue;
95
+ if (child.type.includes("identifier") || child.type.includes("field_expression")) {
96
+ const raw = source.slice(child.startIndex, child.endIndex).trim();
97
+ if (raw)
98
+ return raw.slice(0, 120);
99
+ }
100
+ }
101
+ return undefined;
102
+ }
103
+ function pushLimited(list, item, limit) {
104
+ if (list.length < limit)
105
+ list.push(item);
106
+ }
107
+ function pushImport(imports, value, limit) {
108
+ if (imports.length >= limit)
109
+ return;
110
+ if (!value || imports.includes(value))
111
+ return;
112
+ imports.push(value);
113
+ }
114
+ function toTrimmedText(node, source, maxLen = 180) {
115
+ return source.slice(node.startIndex, node.endIndex).replace(/\s+/g, " ").trim().slice(0, maxLen);
116
+ }
117
+ function extractParameters(node, source, limit) {
118
+ const parametersNode = node.childForFieldName("parameters");
119
+ if (!parametersNode)
120
+ return [];
121
+ const out = [];
122
+ for (let i = 0; i < parametersNode.namedChildCount; i += 1) {
123
+ const child = parametersNode.namedChild(i);
124
+ if (!child)
125
+ continue;
126
+ const raw = toTrimmedText(child, source, 120);
127
+ if (!raw || out.includes(raw))
128
+ continue;
129
+ out.push(raw);
130
+ if (out.length >= limit)
131
+ break;
132
+ }
133
+ return out;
134
+ }
135
+ function buildFunctionDetail(args) {
136
+ const localCalls = [];
137
+ const internalEvents = [];
138
+ const statements = [];
139
+ const controlFlow = {
140
+ branchIf: 0,
141
+ branchSwitch: 0,
142
+ loop: 0,
143
+ tryCatch: 0,
144
+ throw: 0,
145
+ return: 0,
146
+ assignment: 0,
147
+ };
148
+ const stack = [{ node: args.node, depth: 0 }];
149
+ const pushEvent = (kind, node) => {
150
+ if (internalEvents.length >= args.maxSymbols)
151
+ return;
152
+ internalEvents.push({
153
+ kind,
154
+ line: node.startPosition.row + 1,
155
+ snippet: toTrimmedText(node, args.source, 160),
156
+ });
157
+ };
158
+ while (stack.length > 0) {
159
+ const current = stack.pop();
160
+ if (!current)
161
+ continue;
162
+ const type = current.node.type.toLowerCase();
163
+ if (current.depth > 0 && shouldIndexStatement(type) && statements.length < args.maxSymbols) {
164
+ const callee = isNamedCandidate(type, CALL_NODE_PATTERN)
165
+ ? getCallName(current.node, args.source)
166
+ : undefined;
167
+ statements.push({
168
+ kind: statementKindOf(type),
169
+ type: current.node.type,
170
+ startLine: current.node.startPosition.row + 1,
171
+ endLine: current.node.endPosition.row + 1,
172
+ depth: current.depth,
173
+ snippet: toTrimmedText(current.node, args.source, 200),
174
+ callee,
175
+ });
176
+ }
177
+ if (BRANCH_IF_PATTERN.test(type)) {
178
+ controlFlow.branchIf += 1;
179
+ pushEvent("branch_if", current.node);
180
+ }
181
+ if (BRANCH_SWITCH_PATTERN.test(type)) {
182
+ controlFlow.branchSwitch += 1;
183
+ pushEvent("branch_switch", current.node);
184
+ }
185
+ if (LOOP_PATTERN.test(type)) {
186
+ controlFlow.loop += 1;
187
+ pushEvent("loop", current.node);
188
+ }
189
+ if (TRY_CATCH_PATTERN.test(type)) {
190
+ controlFlow.tryCatch += 1;
191
+ pushEvent("try_catch", current.node);
192
+ }
193
+ if (THROW_PATTERN.test(type)) {
194
+ controlFlow.throw += 1;
195
+ pushEvent("throw", current.node);
196
+ }
197
+ if (RETURN_PATTERN.test(type)) {
198
+ controlFlow.return += 1;
199
+ pushEvent("return", current.node);
200
+ }
201
+ if (ASSIGNMENT_PATTERN.test(type)) {
202
+ controlFlow.assignment += 1;
203
+ pushEvent("assignment", current.node);
204
+ }
205
+ if (isNamedCandidate(type, CALL_NODE_PATTERN)) {
206
+ const callee = getCallName(current.node, args.source);
207
+ if (callee && !localCalls.includes(callee) && localCalls.length < args.maxSymbols) {
208
+ localCalls.push(callee.slice(0, 120));
209
+ }
210
+ if (callee)
211
+ pushEvent("call", current.node);
212
+ }
213
+ for (let i = current.node.namedChildCount - 1; i >= 0; i -= 1) {
214
+ const child = current.node.namedChild(i);
215
+ if (!child)
216
+ continue;
217
+ stack.push({ node: child, depth: current.depth + 1 });
218
+ }
219
+ }
220
+ statements.sort((a, b) => (a.startLine - b.startLine) || (a.depth - b.depth));
221
+ return {
222
+ type: args.node.type,
223
+ name: getNodeName(args.node, args.source),
224
+ startLine: args.node.startPosition.row + 1,
225
+ endLine: args.node.endPosition.row + 1,
226
+ parameters: extractParameters(args.node, args.source, Math.max(5, Math.floor(args.maxSymbols / 2))),
227
+ localCalls,
228
+ controlFlow,
229
+ internalEvents,
230
+ statements,
231
+ };
232
+ }
233
+ function collectAst(args) {
234
+ const classes = [];
235
+ const functions = [];
236
+ const functionDetails = [];
237
+ const calls = [];
238
+ const imports = [];
239
+ const stack = [{ node: args.root, depth: 1 }];
240
+ const functionRanges = [];
241
+ const findCallerFunction = (line) => {
242
+ let best;
243
+ for (const fn of functionRanges) {
244
+ if (line < fn.startLine || line > fn.endLine)
245
+ continue;
246
+ const span = fn.endLine - fn.startLine;
247
+ if (!best || span < best.span)
248
+ best = { name: fn.name, span };
249
+ }
250
+ return best?.name;
251
+ };
252
+ while (stack.length > 0) {
253
+ const current = stack.pop();
254
+ if (!current)
255
+ continue;
256
+ const { node } = current;
257
+ const nodeType = node.type;
258
+ if (isNamedCandidate(nodeType, IMPORT_NODE_PATTERN)) {
259
+ const snippet = args.source.slice(node.startIndex, node.endIndex).split("\n")[0]?.trim() ?? "";
260
+ if (snippet.length > 0) {
261
+ pushImport(imports, snippet.slice(0, 180), args.maxSymbols);
262
+ }
263
+ }
264
+ if (isNamedCandidate(nodeType, CLASS_NODE_PATTERN)) {
265
+ pushLimited(classes, {
266
+ type: nodeType,
267
+ name: getNodeName(node, args.source),
268
+ startLine: node.startPosition.row + 1,
269
+ endLine: node.endPosition.row + 1,
270
+ }, args.maxSymbols);
271
+ }
272
+ if (isNamedCandidate(nodeType, FUNCTION_NODE_PATTERN)) {
273
+ const fnSymbol = {
274
+ type: nodeType,
275
+ name: getNodeName(node, args.source),
276
+ startLine: node.startPosition.row + 1,
277
+ endLine: node.endPosition.row + 1,
278
+ };
279
+ pushLimited(functions, fnSymbol, args.maxSymbols);
280
+ if (functionDetails.length < args.maxSymbols) {
281
+ const detail = buildFunctionDetail({
282
+ node,
283
+ source: args.source,
284
+ maxSymbols: Math.max(10, Math.floor(args.maxSymbols / 2)),
285
+ });
286
+ functionDetails.push(detail);
287
+ if (detail.name) {
288
+ functionRanges.push({
289
+ name: detail.name,
290
+ startLine: detail.startLine,
291
+ endLine: detail.endLine,
292
+ });
293
+ }
294
+ }
295
+ }
296
+ if (isNamedCandidate(nodeType, CALL_NODE_PATTERN)) {
297
+ const callee = getCallName(node, args.source);
298
+ if (callee) {
299
+ pushLimited(calls, {
300
+ callee,
301
+ startLine: node.startPosition.row + 1,
302
+ endLine: node.endPosition.row + 1,
303
+ callerFunction: findCallerFunction(node.startPosition.row + 1),
304
+ }, args.maxSymbols);
305
+ }
306
+ }
307
+ for (let i = node.namedChildCount - 1; i >= 0; i -= 1) {
308
+ const child = node.namedChild(i);
309
+ if (!child)
310
+ continue;
311
+ stack.push({ node: child, depth: current.depth + 1 });
312
+ }
313
+ }
314
+ return {
315
+ classes,
316
+ functions,
317
+ functionDetails,
318
+ imports,
319
+ calls,
320
+ };
321
+ }
322
+ export function buildAstIndex(args) {
323
+ const lang = LANGUAGE_BY_EXT[args.ext];
324
+ if (!lang)
325
+ return undefined;
326
+ try {
327
+ const parser = new Parser();
328
+ parser.setLanguage(lang.language);
329
+ const tree = parser.parse(args.text);
330
+ const ast = collectAst({
331
+ root: tree.rootNode,
332
+ source: args.text,
333
+ maxSymbols: Math.max(1, Math.min(500, args.maxSymbols)),
334
+ });
335
+ return ast;
336
+ }
337
+ catch {
338
+ return undefined;
339
+ }
340
+ }
341
+ //# sourceMappingURL=analyzeProjectRepo.ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzeProjectRepo.ast.js","sourceRoot":"","sources":["../../../src/analyze/analyzeProjectRepo.ast.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,16 @@ type AnalyzeProjectRepoArgs = {
10
10
  excludeDirs?: string[];
11
11
  model?: string;
12
12
  timeoutMs?: number;
13
+ astMaxSymbols?: number;
14
+ astMaxFiles?: number;
15
+ astParseBytes?: number;
16
+ scanAllFiles?: boolean;
13
17
  };
18
+ /**
19
+ * Analyze and index a repository into .index/project-index.json (or split parts).
20
+ * @tool
21
+ * @effect fs
22
+ */
14
23
  export declare function analyzeProjectRepo(args: AnalyzeProjectRepoArgs): Promise<{
15
24
  result: {
16
25
  repoRoot: string;
@@ -23,6 +32,11 @@ export declare function analyzeProjectRepo(args: AnalyzeProjectRepoArgs): Promis
23
32
  llmUsed: boolean;
24
33
  partialCount: number;
25
34
  model: string;
35
+ astMaxSymbols: number;
36
+ astMaxFiles: number;
37
+ astIndexedFiles: number;
38
+ astParseBytes: number;
39
+ scanAllFiles: boolean;
26
40
  understanding: string;
27
41
  };
28
42
  evidence: {
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeProjectRepo.d.ts","sourceRoot":"","sources":["../../../src/analyze/analyzeProjectRepo.ts"],"names":[],"mappings":"AA4SA,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAiHF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB;;;;;;;;;;;;;;;;;;;GAsEpE"}
1
+ {"version":3,"file":"analyzeProjectRepo.d.ts","sourceRoot":"","sources":["../../../src/analyze/analyzeProjectRepo.ts"],"names":[],"mappings":"AA2BA,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAkCF;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;GAmHpE"}