@botbotgo/kit-builtin 0.0.97 → 0.0.99
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.
- package/dist/core-tools-manifest.json +171 -1
- package/dist/src/analyze/analyzeProjectRepo.ast.d.ts +58 -0
- package/dist/src/analyze/analyzeProjectRepo.ast.d.ts.map +1 -0
- package/dist/src/analyze/analyzeProjectRepo.ast.js +341 -0
- package/dist/src/analyze/analyzeProjectRepo.ast.js.map +1 -0
- package/dist/src/analyze/analyzeProjectRepo.d.ts +14 -0
- package/dist/src/analyze/analyzeProjectRepo.d.ts.map +1 -1
- package/dist/src/analyze/analyzeProjectRepo.io.d.ts +47 -0
- package/dist/src/analyze/analyzeProjectRepo.io.d.ts.map +1 -0
- package/dist/src/analyze/analyzeProjectRepo.io.js +149 -0
- package/dist/src/analyze/analyzeProjectRepo.io.js.map +1 -0
- package/dist/src/analyze/analyzeProjectRepo.js +66 -266
- package/dist/src/analyze/analyzeProjectRepo.js.map +1 -1
- package/dist/src/analyze/analyzeProjectRepo.llm.d.ts +15 -0
- package/dist/src/analyze/analyzeProjectRepo.llm.d.ts.map +1 -0
- package/dist/src/analyze/analyzeProjectRepo.llm.js +122 -0
- package/dist/src/analyze/analyzeProjectRepo.llm.js.map +1 -0
- package/dist/src/analyze/askProjectRepo.d.ts.map +1 -1
- package/dist/src/analyze/askProjectRepo.helpers.d.ts +14 -0
- package/dist/src/analyze/askProjectRepo.helpers.d.ts.map +1 -1
- package/dist/src/analyze/askProjectRepo.helpers.js +13 -2
- package/dist/src/analyze/askProjectRepo.helpers.js.map +1 -1
- package/dist/src/analyze/askProjectRepo.js +11 -2
- package/dist/src/analyze/askProjectRepo.js.map +1 -1
- package/dist/src/fs/searchText.d.ts +1 -1
- package/dist/src/fs/searchText.d.ts.map +1 -1
- package/package.json +9 -2
- package/skills/skill-quality-guard/SKILL.md +72 -0
- 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":"
|
|
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"}
|