@promptwheel/core 0.7.21 → 0.7.34

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 (91) hide show
  1. package/dist/codebase-index/ast-analysis.d.ts +33 -2
  2. package/dist/codebase-index/ast-analysis.d.ts.map +1 -1
  3. package/dist/codebase-index/ast-analysis.js +457 -2
  4. package/dist/codebase-index/ast-analysis.js.map +1 -1
  5. package/dist/codebase-index/ast-cache.d.ts +9 -1
  6. package/dist/codebase-index/ast-cache.d.ts.map +1 -1
  7. package/dist/codebase-index/ast-cache.js.map +1 -1
  8. package/dist/codebase-index/ast-patterns.d.ts +24 -4
  9. package/dist/codebase-index/ast-patterns.d.ts.map +1 -1
  10. package/dist/codebase-index/ast-patterns.js +274 -10
  11. package/dist/codebase-index/ast-patterns.js.map +1 -1
  12. package/dist/codebase-index/dead-code.d.ts +37 -4
  13. package/dist/codebase-index/dead-code.d.ts.map +1 -1
  14. package/dist/codebase-index/dead-code.js +152 -17
  15. package/dist/codebase-index/dead-code.js.map +1 -1
  16. package/dist/codebase-index/index.d.ts +4 -2
  17. package/dist/codebase-index/index.d.ts.map +1 -1
  18. package/dist/codebase-index/index.js +129 -14
  19. package/dist/codebase-index/index.js.map +1 -1
  20. package/dist/codebase-index/shared.d.ts +31 -0
  21. package/dist/codebase-index/shared.d.ts.map +1 -1
  22. package/dist/codebase-index/shared.js +50 -0
  23. package/dist/codebase-index/shared.js.map +1 -1
  24. package/dist/dedup/shared.d.ts +14 -0
  25. package/dist/dedup/shared.d.ts.map +1 -1
  26. package/dist/dedup/shared.js +40 -0
  27. package/dist/dedup/shared.js.map +1 -1
  28. package/dist/learnings/shared.d.ts +1 -1
  29. package/dist/learnings/shared.d.ts.map +1 -1
  30. package/dist/learnings/shared.js.map +1 -1
  31. package/dist/proposals/blueprint.d.ts +68 -0
  32. package/dist/proposals/blueprint.d.ts.map +1 -0
  33. package/dist/proposals/blueprint.js +292 -0
  34. package/dist/proposals/blueprint.js.map +1 -0
  35. package/dist/proposals/shared.d.ts +30 -2
  36. package/dist/proposals/shared.d.ts.map +1 -1
  37. package/dist/proposals/shared.js +58 -11
  38. package/dist/proposals/shared.js.map +1 -1
  39. package/dist/proposals/step-classifier.d.ts +32 -0
  40. package/dist/proposals/step-classifier.d.ts.map +1 -0
  41. package/dist/proposals/step-classifier.js +49 -0
  42. package/dist/proposals/step-classifier.js.map +1 -0
  43. package/dist/proposals/trajectory-critic.d.ts +35 -0
  44. package/dist/proposals/trajectory-critic.d.ts.map +1 -0
  45. package/dist/proposals/trajectory-critic.js +211 -0
  46. package/dist/proposals/trajectory-critic.js.map +1 -0
  47. package/dist/repos/tickets.d.ts +2 -0
  48. package/dist/repos/tickets.d.ts.map +1 -1
  49. package/dist/repos/tickets.js.map +1 -1
  50. package/dist/scout/index.d.ts.map +1 -1
  51. package/dist/scout/index.js +10 -1
  52. package/dist/scout/index.js.map +1 -1
  53. package/dist/scout/prompt.d.ts.map +1 -1
  54. package/dist/scout/prompt.js +7 -1
  55. package/dist/scout/prompt.js.map +1 -1
  56. package/dist/scout/runner.d.ts.map +1 -1
  57. package/dist/scout/runner.js +1 -0
  58. package/dist/scout/runner.js.map +1 -1
  59. package/dist/scout/types.d.ts +20 -1
  60. package/dist/scout/types.d.ts.map +1 -1
  61. package/dist/scout/types.js +4 -2
  62. package/dist/scout/types.js.map +1 -1
  63. package/dist/sectors/shared.d.ts +17 -0
  64. package/dist/sectors/shared.d.ts.map +1 -1
  65. package/dist/sectors/shared.js +65 -0
  66. package/dist/sectors/shared.js.map +1 -1
  67. package/dist/services/scout.d.ts +2 -0
  68. package/dist/services/scout.d.ts.map +1 -1
  69. package/dist/services/scout.js +1 -0
  70. package/dist/services/scout.js.map +1 -1
  71. package/dist/trajectory/io.d.ts +32 -0
  72. package/dist/trajectory/io.d.ts.map +1 -0
  73. package/dist/trajectory/io.js +201 -0
  74. package/dist/trajectory/io.js.map +1 -0
  75. package/dist/trajectory/shared.d.ts +50 -0
  76. package/dist/trajectory/shared.d.ts.map +1 -1
  77. package/dist/trajectory/shared.js +178 -0
  78. package/dist/trajectory/shared.js.map +1 -1
  79. package/dist/waves/conflict.d.ts +130 -0
  80. package/dist/waves/conflict.d.ts.map +1 -0
  81. package/dist/waves/conflict.js +400 -0
  82. package/dist/waves/conflict.js.map +1 -0
  83. package/dist/waves/merge.d.ts +75 -0
  84. package/dist/waves/merge.d.ts.map +1 -0
  85. package/dist/waves/merge.js +305 -0
  86. package/dist/waves/merge.js.map +1 -0
  87. package/dist/waves/shared.d.ts +6 -102
  88. package/dist/waves/shared.d.ts.map +1 -1
  89. package/dist/waves/shared.js +16 -346
  90. package/dist/waves/shared.js.map +1 -1
  91. package/package.json +17 -1
@@ -9,26 +9,45 @@
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * Detect potentially dead exports by comparing each module's exported names
12
- * against what other modules import. Uses name-based matching (no type
13
- * resolution) — sufficient for high-confidence identification.
12
+ * against what other modules import.
13
+ *
14
+ * When `importedBindings` is provided (from AST cache's importedNames), uses
15
+ * accurate binding name matching. Otherwise falls back to specifier path
16
+ * heuristic (less accurate but works without AST data).
17
+ *
18
+ * `namespaceSpecifiers` contains specifier paths that have `import * as ns`
19
+ * usage — all exports from those modules are considered alive.
14
20
  *
15
21
  * Returns at most `maxResults` entries to keep prompt token count bounded.
16
22
  */
17
- export function detectDeadExports(modules, edges, exportsByModule, importsByModule, maxResults = 30) {
23
+ export function detectDeadExports(modules, edges, exportsByModule, importsByModule, maxResults = 30, importedBindings, namespaceSpecifiers) {
18
24
  // Build a set of all imported names across all modules
19
- const allImportedNames = new Set();
20
- for (const imports of Object.values(importsByModule)) {
21
- for (const spec of imports) {
22
- // Extract the imported name from the specifier
23
- // For relative imports like './foo', the actual imported names come from
24
- // import { X } statements we only have specifiers, not destructured names.
25
- // So we use a heuristic: mark the last segment of the path as "used"
26
- const parts = spec.split('/');
27
- const lastPart = parts[parts.length - 1];
28
- if (lastPart)
29
- allImportedNames.add(lastPart);
30
- // Also add the full specifier for exact matches
31
- allImportedNames.add(spec);
25
+ // Prefer accurate binding names when available; fall back to specifier heuristic
26
+ const allImportedNames = importedBindings ?? new Set();
27
+ if (!importedBindings) {
28
+ for (const imports of Object.values(importsByModule)) {
29
+ for (const spec of imports) {
30
+ // Fallback heuristic: mark the last path segment as "used"
31
+ const parts = spec.split('/');
32
+ const lastPart = parts[parts.length - 1];
33
+ if (lastPart)
34
+ allImportedNames.add(lastPart);
35
+ allImportedNames.add(spec);
36
+ }
37
+ }
38
+ }
39
+ // Build set of module paths that have namespace imports (all exports alive)
40
+ const nsModulePaths = new Set();
41
+ if (namespaceSpecifiers && namespaceSpecifiers.size > 0) {
42
+ for (const mod of modules) {
43
+ // Check if any namespace specifier resolves to this module
44
+ for (const spec of namespaceSpecifiers) {
45
+ // Heuristic: specifier ends with the module's last path segment
46
+ const modBasename = mod.path.split('/').pop();
47
+ if (modBasename && (spec.endsWith(modBasename) || spec.endsWith(`/${mod.path}`))) {
48
+ nsModulePaths.add(mod.path);
49
+ }
50
+ }
32
51
  }
33
52
  }
34
53
  // For each module with exports, check if any export name is never imported
@@ -44,6 +63,9 @@ export function detectDeadExports(modules, edges, exportsByModule, importsByModu
44
63
  const hasImporters = Object.values(edges).some(deps => deps.includes(mod.path));
45
64
  if (!hasImporters)
46
65
  continue;
66
+ // Skip modules with namespace imports — all their exports are used
67
+ if (nsModulePaths.has(mod.path))
68
+ continue;
47
69
  for (const exp of exports) {
48
70
  if (dead.length >= maxResults)
49
71
  break;
@@ -53,7 +75,7 @@ export function detectDeadExports(modules, edges, exportsByModule, importsByModu
53
75
  // Skip type exports — they're erased at runtime and aren't a real concern
54
76
  if (exp.kind === 'type' || exp.kind === 'interface')
55
77
  continue;
56
- // Check if this name appears in any import specifier
78
+ // Check if this name appears in any imported binding
57
79
  if (!allImportedNames.has(exp.name)) {
58
80
  dead.push({ module: mod.path, name: exp.name, kind: exp.kind });
59
81
  }
@@ -62,6 +84,119 @@ export function detectDeadExports(modules, edges, exportsByModule, importsByModu
62
84
  return dead;
63
85
  }
64
86
  // ---------------------------------------------------------------------------
87
+ // Dead function detection (call-graph-enhanced)
88
+ // ---------------------------------------------------------------------------
89
+ /**
90
+ * Detect exported functions that are never called by any other file.
91
+ * Uses call edge data from the AST cache for higher-confidence results
92
+ * than name-based matching alone.
93
+ *
94
+ * Only flags functions — skips classes, types, variables, and constants
95
+ * since those may be used without explicit "call" edges.
96
+ */
97
+ export function detectDeadFunctions(exportsByFile, callEdgesByFile, maxResults = 20) {
98
+ // Build set of all callee names across all files (cross-file calls)
99
+ const allCallees = new Set();
100
+ for (const edges of Object.values(callEdgesByFile)) {
101
+ for (const edge of edges) {
102
+ if (edge.importSource) {
103
+ allCallees.add(edge.callee);
104
+ }
105
+ }
106
+ }
107
+ const dead = [];
108
+ for (const [file, exports] of Object.entries(exportsByFile)) {
109
+ if (dead.length >= maxResults)
110
+ break;
111
+ for (const exp of exports) {
112
+ if (dead.length >= maxResults)
113
+ break;
114
+ // Only flag function exports — other kinds may be consumed without calls
115
+ if (exp.kind !== 'function')
116
+ continue;
117
+ if (exp.name === 'default')
118
+ continue;
119
+ if (!allCallees.has(exp.name)) {
120
+ // Extract module path from file path (directory containing the file)
121
+ const mod = file.split('/').slice(0, -1).join('/') || '.';
122
+ dead.push({ module: mod, name: exp.name, kind: exp.kind });
123
+ }
124
+ }
125
+ }
126
+ return dead;
127
+ }
128
+ // ---------------------------------------------------------------------------
129
+ // Fused call graph (ast-grep + ts-morph)
130
+ // ---------------------------------------------------------------------------
131
+ /**
132
+ * Merge ast-grep per-file call edges with ts-morph global call_graph_edges
133
+ * into a unified set of cross-file callee names.
134
+ *
135
+ * ts-morph edges use format `"path:funcName"` for caller and raw expression
136
+ * text for callee. ast-grep edges have `importSource` for cross-file calls.
137
+ * The fused result is a superset: any function name that appears as a callee
138
+ * in either source is considered "called".
139
+ *
140
+ * Returns a Set of callee names that are called from other files.
141
+ */
142
+ export function fuseCallGraphs(callEdgesByFile, tsAnalysis) {
143
+ const allCallees = new Set();
144
+ // 1. ast-grep: cross-file calls (callee imported from another file)
145
+ for (const edges of Object.values(callEdgesByFile)) {
146
+ for (const edge of edges) {
147
+ if (edge.importSource) {
148
+ allCallees.add(edge.callee);
149
+ }
150
+ }
151
+ }
152
+ // 2. ts-morph: call_graph_edges provide type-resolved calls
153
+ if (tsAnalysis?.call_graph_edges) {
154
+ for (const edge of tsAnalysis.call_graph_edges) {
155
+ // callee format is raw expression text, e.g. "validateToken", "this.service.call"
156
+ // Extract the last identifier segment for matching
157
+ const callee = edge.callee;
158
+ // Simple identifiers match directly
159
+ if (/^[a-zA-Z_$][\w$]*$/.test(callee)) {
160
+ allCallees.add(callee);
161
+ }
162
+ else {
163
+ // For method calls like "foo.bar()", extract "bar"
164
+ const dotMatch = callee.match(/\.(\w+)$/);
165
+ if (dotMatch) {
166
+ allCallees.add(dotMatch[1]);
167
+ }
168
+ }
169
+ }
170
+ }
171
+ return allCallees;
172
+ }
173
+ /**
174
+ * Enhanced dead function detection using fused call graph data.
175
+ * Combines ast-grep per-file edges with ts-morph global edges to reduce
176
+ * false positives (functions marked dead because ast-grep missed type-resolved calls).
177
+ */
178
+ export function detectDeadFunctionsFused(exportsByFile, callEdgesByFile, tsAnalysis, maxResults = 20) {
179
+ const allCallees = fuseCallGraphs(callEdgesByFile, tsAnalysis);
180
+ const dead = [];
181
+ for (const [file, exports] of Object.entries(exportsByFile)) {
182
+ if (dead.length >= maxResults)
183
+ break;
184
+ for (const exp of exports) {
185
+ if (dead.length >= maxResults)
186
+ break;
187
+ if (exp.kind !== 'function')
188
+ continue;
189
+ if (exp.name === 'default')
190
+ continue;
191
+ if (!allCallees.has(exp.name)) {
192
+ const mod = file.split('/').slice(0, -1).join('/') || '.';
193
+ dead.push({ module: mod, name: exp.name, kind: exp.kind });
194
+ }
195
+ }
196
+ }
197
+ return dead;
198
+ }
199
+ // ---------------------------------------------------------------------------
65
200
  // Structural issue detection
66
201
  // ---------------------------------------------------------------------------
67
202
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dead-code.js","sourceRoot":"","sources":["../../src/codebase-index/dead-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dead-code.js","sourceRoot":"","sources":["../../src/codebase-index/dead-code.ts"],"names":[],"mappings":"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"}
@@ -10,11 +10,13 @@
10
10
  * Single source of truth — imported by both @promptwheel/cli and @promptwheel/mcp.
11
11
  */
12
12
  export { type AstGrepModule } from './ast-analysis.js';
13
- export { mapExtensionToLang, analyzeFileAst } from './ast-analysis.js';
14
- export { type CodebaseIndex, type ClassificationConfidence, type ModuleEntry, type LargeFileEntry, type ClassifyResult, type GraphMetrics, type ExportEntry, type AstAnalysisResult, type AstFinding, type AstFindingEntry, type DeadExportEntry, type StructuralIssue, type TypeScriptAnalysis, SOURCE_EXTENSIONS, PURPOSE_HINT, NON_PRODUCTION_PURPOSES, CHUNK_SIZE, purposeHintFromDirName, sampleEvenly, countNonProdFiles, classifyModule, extractImports, resolveImportToModule, formatIndexForPrompt, computeReverseEdges, detectCycles, computeGraphMetrics, } from './shared.js';
13
+ export { mapExtensionToLang, analyzeFileAst, extractTopLevelSymbols, extractCallEdges, extractImportedNames } from './ast-analysis.js';
14
+ export { loadAstCache, type AstCache, type AstCacheEntry } from './ast-cache.js';
15
+ export { type CodebaseIndex, type ClassificationConfidence, type ModuleEntry, type LargeFileEntry, type ClassifyResult, type GraphMetrics, type ExportEntry, type AstAnalysisResult, type AstFinding, type AstFindingEntry, type SymbolRange, type CallEdge, type DeadExportEntry, type StructuralIssue, type TypeScriptAnalysis, SOURCE_EXTENSIONS, PURPOSE_HINT, NON_PRODUCTION_PURPOSES, CHUNK_SIZE, purposeHintFromDirName, sampleEvenly, countNonProdFiles, classifyModule, extractImports, resolveImportToModule, formatIndexForPrompt, computeReverseEdges, detectCycles, computeGraphMetrics, } from './shared.js';
15
16
  import type { CodebaseIndex } from './shared.js';
16
17
  import type { AstGrepModule as AstGrepModuleType } from './ast-analysis.js';
17
18
  export { formatAnalysisForPrompt } from './format-analysis.js';
19
+ export { fuseCallGraphs, detectDeadFunctionsFused } from './dead-code.js';
18
20
  /**
19
21
  * Use `git ls-files` to discover which top-level directories contain tracked
20
22
  * (or unignored) files. Returns null if git is unavailable or the project
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codebase-index/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,UAAU,EACV,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,aAAa,EAA6D,MAAM,aAAa,CAAC;AAW5G,OAAO,KAAK,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAO5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAkC/D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAe7E;AAMD,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,WAAW,GAAE,MAAM,EAAO,EAC1B,cAAc,UAAO,EACrB,aAAa,CAAC,EAAE,iBAAiB,GAAG,IAAI,GACvC,aAAa,CAqYf;AAMD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,MAAM,EACnB,WAAW,GAAE,MAAM,EAAO,EAC1B,cAAc,UAAO,EACrB,aAAa,CAAC,EAAE,iBAAiB,GAAG,IAAI,GACvC,aAAa,CAEf;AAMD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAuCT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codebase-index/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACvI,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGjF,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,UAAU,EACV,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,aAAa,EAA6D,MAAM,aAAa,CAAC;AAW5G,OAAO,KAAK,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAQ5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAkC1E;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAe7E;AASD,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,WAAW,GAAE,MAAM,EAAO,EAC1B,cAAc,UAAO,EACrB,aAAa,CAAC,EAAE,iBAAiB,GAAG,IAAI,GACvC,aAAa,CAqff;AAMD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,MAAM,EACnB,WAAW,GAAE,MAAM,EAAO,EAC1B,cAAc,UAAO,EACrB,aAAa,CAAC,EAAE,iBAAiB,GAAG,IAAI,GACvC,aAAa,CAEf;AAMD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAuCT"}
@@ -12,16 +12,20 @@
12
12
  import * as fs from 'node:fs';
13
13
  import * as path from 'node:path';
14
14
  import { execFileSync } from 'node:child_process';
15
- export { mapExtensionToLang, analyzeFileAst } from './ast-analysis.js';
15
+ export { mapExtensionToLang, analyzeFileAst, extractTopLevelSymbols, extractCallEdges, extractImportedNames } from './ast-analysis.js';
16
+ export { loadAstCache } from './ast-cache.js';
16
17
  // Re-export everything from shared (pure algorithms + types + constants)
17
18
  export { SOURCE_EXTENSIONS, PURPOSE_HINT, NON_PRODUCTION_PURPOSES, CHUNK_SIZE, purposeHintFromDirName, sampleEvenly, countNonProdFiles, classifyModule, extractImports, resolveImportToModule, formatIndexForPrompt, computeReverseEdges, detectCycles, computeGraphMetrics, } from './shared.js';
18
19
  import { SOURCE_EXTENSIONS, sampleEvenly, classifyModule, extractImports, resolveImportToModule, computeReverseEdges, detectCycles, computeGraphMetrics, } from './shared.js';
19
- import { analyzeFileAst, mapExtensionToLang } from './ast-analysis.js';
20
+ import { analyzeFileAst, mapExtensionToLang, extractTopLevelSymbols, extractCallEdges, extractImportedNames } from './ast-analysis.js';
20
21
  import { loadAstCache, saveAstCache, isEntryCurrent, isFindingsCurrent } from './ast-cache.js';
21
- import { detectDeadExports, detectStructuralIssues } from './dead-code.js';
22
- import { getPatterns, scanPatterns, FINDINGS_VERSION } from './ast-patterns.js';
22
+ import { detectDeadExports, detectDeadFunctionsFused, detectStructuralIssues } from './dead-code.js';
23
+ import { getPatterns, scanPatterns, FINDINGS_VERSION, getPatternVersions, arePatternVersionsCurrent } from './ast-patterns.js';
24
+ import { getLangFamily } from './ast-analysis.js';
23
25
  // Re-export format-analysis
24
26
  export { formatAnalysisForPrompt } from './format-analysis.js';
27
+ // Re-export dead code analysis utilities for consumers with ts-morph data
28
+ export { fuseCallGraphs, detectDeadFunctionsFused } from './dead-code.js';
25
29
  // ---------------------------------------------------------------------------
26
30
  // I/O helpers
27
31
  // ---------------------------------------------------------------------------
@@ -76,6 +80,8 @@ export function getTrackedDirectories(projectRoot) {
76
80
  return null; // Not a git repo or git not available
77
81
  }
78
82
  }
83
+ /** Max modules to discover. Prevents unbounded scanning in large monorepos. */
84
+ const MAX_MODULES = 80;
79
85
  // ---------------------------------------------------------------------------
80
86
  // buildCodebaseIndex
81
87
  // ---------------------------------------------------------------------------
@@ -92,7 +98,7 @@ export function buildCodebaseIndex(projectRoot, excludeDirs = [], useGitTracking
92
98
  return false;
93
99
  }
94
100
  function walkForModules(dir, depth) {
95
- if (modules.length >= 80)
101
+ if (modules.length >= MAX_MODULES)
96
102
  return;
97
103
  let entries;
98
104
  try {
@@ -118,7 +124,7 @@ export function buildCodebaseIndex(projectRoot, excludeDirs = [], useGitTracking
118
124
  // Register this dir as a module if it has source files
119
125
  if (sourceFiles.length > 0 && depth > 0) {
120
126
  const relPath = path.relative(projectRoot, dir);
121
- if (relPath && modules.length < 80) {
127
+ if (relPath && modules.length < MAX_MODULES) {
122
128
  // Placeholder — classified after import scanning (Step 2)
123
129
  modules.push({
124
130
  path: relPath,
@@ -134,13 +140,17 @@ export function buildCodebaseIndex(projectRoot, excludeDirs = [], useGitTracking
134
140
  // Recurse into subdirs (up to depth 2)
135
141
  if (depth < 3) {
136
142
  for (const sub of subdirs) {
137
- if (modules.length >= 80)
143
+ if (modules.length >= MAX_MODULES)
138
144
  break;
139
145
  walkForModules(path.join(dir, sub.name), depth + 1);
140
146
  }
141
147
  }
142
148
  }
143
149
  walkForModules(projectRoot, 0);
150
+ const moduleCapHit = modules.length >= MAX_MODULES;
151
+ if (moduleCapHit) {
152
+ console.warn(`[promptwheel] Module cap hit: discovered ${modules.length} modules (max ${MAX_MODULES}). Some modules may be excluded from analysis. Use \`scope\` to narrow the scan.`);
153
+ }
144
154
  const modulePaths = modules.map(m => m.path);
145
155
  // Step 2: Import scanning + content sampling — build dependency_edges, classify modules
146
156
  const dependencyEdges = {};
@@ -241,24 +251,48 @@ export function buildCodebaseIndex(projectRoot, excludeDirs = [], useGitTracking
241
251
  moduleExports.push(...cached.exports);
242
252
  totalComplexity += cached.complexity;
243
253
  filesAnalyzed++;
244
- if (isFindingsCurrent(cached, FINDINGS_VERSION)) {
254
+ const langFamily = getLangFamily(langKey);
255
+ const patternsCurrent = arePatternVersionsCurrent(cached.patternVersions, langFamily)
256
+ || isFindingsCurrent(cached, FINDINGS_VERSION); // fallback for pre-patternVersions cache
257
+ if (patternsCurrent) {
245
258
  // State A: unchanged + findings current → full cache hit
246
259
  if (cached.findings) {
247
260
  for (const f of cached.findings) {
248
261
  allFindings.push({ file: relFile, patternId: f.patternId, message: f.message, line: f.line, severity: f.severity, category: f.category });
249
262
  }
250
263
  }
264
+ // Lazy backfill: populate symbols if missing from older cache entries
265
+ if (!cached.symbols) {
266
+ try {
267
+ const content = fs.readFileSync(filePath, 'utf-8');
268
+ const symbols = extractTopLevelSymbols(content, langKey, astGrepModule);
269
+ if (symbols) {
270
+ updatedCache[relFile] = { ...cached, symbols };
271
+ }
272
+ }
273
+ catch { /* non-fatal */ }
274
+ }
251
275
  }
252
276
  else {
253
- // State B: unchanged + findings stale → re-parse for patterns only
277
+ // State B: unchanged + findings stale → re-parse for patterns (+ symbols if missing)
254
278
  try {
255
279
  const content = fs.readFileSync(filePath, 'utf-8');
256
280
  const langId = astGrepModule.Lang[langKey];
257
281
  if (langId) {
258
282
  const root = astGrepModule.parse(langId, content).root();
259
- const findings = scanPatterns(root, langKey, content, patterns);
283
+ // Backfill symbols and importedNames while we have the content loaded
284
+ const symbols = cached.symbols ?? extractTopLevelSymbols(content, langKey, astGrepModule) ?? undefined;
285
+ const importedNames = cached.importedNames ?? (extractImportedNames(root, langKey) || undefined);
286
+ const findings = scanPatterns(root, langKey, content, patterns, symbols);
260
287
  const storedFindings = findings.length > 0 ? findings : undefined;
261
- updatedCache[relFile] = { ...cached, findings: storedFindings, findingsVersion: FINDINGS_VERSION };
288
+ updatedCache[relFile] = {
289
+ ...cached,
290
+ findings: storedFindings,
291
+ findingsVersion: FINDINGS_VERSION,
292
+ patternVersions: getPatternVersions(),
293
+ symbols,
294
+ importedNames: importedNames?.length ? importedNames : undefined,
295
+ };
262
296
  if (storedFindings) {
263
297
  for (const f of storedFindings) {
264
298
  allFindings.push({ file: relFile, patternId: f.patternId, message: f.message, line: f.line, severity: f.severity, category: f.category });
@@ -272,15 +306,18 @@ export function buildCodebaseIndex(projectRoot, excludeDirs = [], useGitTracking
272
306
  }
273
307
  continue;
274
308
  }
275
- // State C: file changed → full re-parse with patterns
309
+ // State C: file changed → full re-parse with patterns + symbols
276
310
  try {
277
311
  const content = fs.readFileSync(filePath, 'utf-8');
278
- const result = analyzeFileAst(content, filePath, langKey, astGrepModule, patterns);
312
+ // Extract symbols first so pattern scanning can attribute findings to functions
313
+ const symbols = extractTopLevelSymbols(content, langKey, astGrepModule) ?? undefined;
314
+ const result = analyzeFileAst(content, filePath, langKey, astGrepModule, patterns, symbols);
279
315
  if (result) {
280
316
  moduleExports.push(...result.exports);
281
317
  totalComplexity += result.complexity;
282
318
  filesAnalyzed++;
283
319
  const storedFindings = result.findings && result.findings.length > 0 ? result.findings : undefined;
320
+ const callEdges = extractCallEdges(content, langKey, astGrepModule, symbols) ?? undefined;
284
321
  updatedCache[relFile] = {
285
322
  mtime: stat.mtimeMs,
286
323
  size: stat.size,
@@ -289,6 +326,10 @@ export function buildCodebaseIndex(projectRoot, excludeDirs = [], useGitTracking
289
326
  complexity: result.complexity,
290
327
  findings: storedFindings,
291
328
  findingsVersion: FINDINGS_VERSION,
329
+ patternVersions: getPatternVersions(),
330
+ symbols,
331
+ callEdges: callEdges?.length ? callEdges : undefined,
332
+ importedNames: result.importedNames,
292
333
  };
293
334
  if (storedFindings) {
294
335
  for (const f of storedFindings) {
@@ -409,6 +450,7 @@ export function buildCodebaseIndex(projectRoot, excludeDirs = [], useGitTracking
409
450
  // Step 7: Dead code + structural analysis
410
451
  // Dead exports require AST data (exportsByModule). Structural issues use graph metrics.
411
452
  let deadExports;
453
+ let callEdgeSummaries;
412
454
  if (analysisBackend === 'ast-grep') {
413
455
  // Build per-module export/import maps from AST cache
414
456
  const exportsByModule = {};
@@ -423,7 +465,78 @@ export function buildCodebaseIndex(projectRoot, excludeDirs = [], useGitTracking
423
465
  if (deps)
424
466
  importsByModule[mod.path] = deps;
425
467
  }
426
- deadExports = detectDeadExports(modules, dependencyEdges, exportsByModule, importsByModule);
468
+ // Collect actual imported binding names from AST cache (more accurate than specifiers)
469
+ const cachedData = loadAstCache(projectRoot);
470
+ const allImportedBindings = new Set();
471
+ const namespaceSpecifiers = new Set();
472
+ for (const entry of Object.values(cachedData)) {
473
+ if (entry.importedNames) {
474
+ for (const name of entry.importedNames) {
475
+ if (name.startsWith('*:')) {
476
+ namespaceSpecifiers.add(name.slice(2)); // track namespace import specifiers
477
+ }
478
+ else {
479
+ allImportedBindings.add(name);
480
+ }
481
+ }
482
+ }
483
+ }
484
+ deadExports = detectDeadExports(modules, dependencyEdges, exportsByModule, importsByModule, 30, allImportedBindings.size > 0 ? allImportedBindings : undefined, namespaceSpecifiers.size > 0 ? namespaceSpecifiers : undefined);
485
+ // Fused dead function detection: collect per-file call edges and exports from AST cache
486
+ const exportsByFile = {};
487
+ const callEdgesByFile = {};
488
+ for (const [relFile, entry] of Object.entries(cachedData)) {
489
+ if (entry.exports?.length)
490
+ exportsByFile[relFile] = entry.exports;
491
+ if (entry.callEdges?.length)
492
+ callEdgesByFile[relFile] = entry.callEdges;
493
+ }
494
+ if (Object.keys(callEdgesByFile).length > 0) {
495
+ const deadFns = detectDeadFunctionsFused(exportsByFile, callEdgesByFile, undefined, 20);
496
+ // Merge into deadExports, avoiding duplicates by name
497
+ if (deadFns.length > 0) {
498
+ const existingNames = new Set((deadExports ?? []).map(d => `${d.module}:${d.name}`));
499
+ for (const fn of deadFns) {
500
+ if (!existingNames.has(`${fn.module}:${fn.name}`)) {
501
+ (deadExports ??= []).push(fn);
502
+ }
503
+ }
504
+ }
505
+ }
506
+ // Build per-module cross-file call summaries for focus modules
507
+ // Format: "funcA calls importedB, importedC" (only cross-file calls with importSource)
508
+ if (Object.keys(callEdgesByFile).length > 0) {
509
+ const modCallSummaries = {};
510
+ for (const mod of modules) {
511
+ const summaryLines = [];
512
+ // Find files in this module
513
+ const modPrefix = mod.path + '/';
514
+ for (const [relFile, edges] of Object.entries(callEdgesByFile)) {
515
+ if (!relFile.startsWith(modPrefix))
516
+ continue;
517
+ // Group cross-file calls by caller
518
+ const callerMap = new Map();
519
+ for (const edge of edges) {
520
+ if (!edge.importSource)
521
+ continue;
522
+ const callees = callerMap.get(edge.caller) ?? new Set();
523
+ callees.add(edge.callee);
524
+ callerMap.set(edge.caller, callees);
525
+ }
526
+ for (const [caller, callees] of callerMap) {
527
+ const calleeList = [...callees].slice(0, 5);
528
+ const suffix = callees.size > 5 ? ` (+${callees.size - 5} more)` : '';
529
+ summaryLines.push(`${caller} calls ${calleeList.join(', ')}${suffix}`);
530
+ }
531
+ }
532
+ if (summaryLines.length > 0) {
533
+ modCallSummaries[mod.path] = summaryLines.slice(0, 10); // cap per module
534
+ }
535
+ }
536
+ if (Object.keys(modCallSummaries).length > 0) {
537
+ callEdgeSummaries = modCallSummaries;
538
+ }
539
+ }
427
540
  }
428
541
  // Structural issues only need graph data (no AST required)
429
542
  const structuralIssues = detectStructuralIssues(modules, dependencyEdges, reverseEdges, dependencyCycles, entrypoints);
@@ -442,6 +555,8 @@ export function buildCodebaseIndex(projectRoot, excludeDirs = [], useGitTracking
442
555
  dead_exports: deadExports,
443
556
  structural_issues: structuralIssues,
444
557
  ast_findings: allFindings.length > 0 ? allFindings : undefined,
558
+ module_cap_hit: moduleCapHit || undefined,
559
+ call_edge_summaries: callEdgeSummaries,
445
560
  };
446
561
  }
447
562
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codebase-index/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEvE,yEAAyE;AACzE,OAAO,EAcL,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,UAAU,EACV,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAIrB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAiB,MAAM,gBAAgB,CAAC;AAC9G,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEhF,4BAA4B;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,UAAU,CAAC,QAAgB;IAClC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAClD,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjB,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,CAAC,EAAE;YAC7F,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM;SAChE,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,sCAAsC;IACrD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,UAAU,kBAAkB,CAChC,WAAmB,EACnB,cAAwB,EAAE,EAC1B,cAAc,GAAG,IAAI,EACrB,aAAwC;IAExC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAElE,wEAAwE;IACxE,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/E,+CAA+C;IAC/C,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAoB,CAAC;IAExD,SAAS,aAAa,CAAC,IAAY;QACjC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,cAAc,CAAC,GAAW,EAAE,KAAa;QAChD,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE;YAAE,OAAO;QAEjC,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,OAAO,GAAgB,EAAE,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACtE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7D,iEAAiE;gBACjE,IAAI,KAAK,KAAK,CAAC,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/D,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAChD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACnC,0DAA0D;gBAC1D,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO;oBACb,UAAU,EAAE,WAAW,CAAC,MAAM;oBAC9B,qBAAqB,EAAE,WAAW,CAAC,MAAM;oBACzC,OAAO,EAAE,SAAS;oBAClB,UAAU,EAAE,IAAI;oBAChB,yBAAyB,EAAE,KAAK;iBACjC,CAAC,CAAC;gBACH,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE;oBAAE,MAAM;gBAChC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAE/B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE7C,wFAAwF;IACxF,MAAM,eAAe,GAA6B,EAAE,CAAC;IACrD,MAAM,iBAAiB,GAA2B,EAAE,CAAC;IACrD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEpD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,kEAAkE;QAClE,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3C,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,oCAAoC;gBACpC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBACrD,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;gBAE3D,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACtC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACnD,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACjB,gFAAgF;gBAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBAC1C,IAAI,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAAE,SAAS;gBAC1E,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;gBACnD,oBAAoB;gBACpB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAErB,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAChD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;oBAC3B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;oBACjF,IAAI,QAAQ,IAAI,QAAQ,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;wBACtC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3E,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,MAAM;gBAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAED,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAExC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAClB,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,UAAU,EAAE,GAAG,cAAc,CAC7E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,UAAU,CACxF,CAAC;QACF,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QACtB,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;QAC5B,GAAG,CAAC,qBAAqB,GAAG,mBAAmB,CAAC;QAChD,GAAG,CAAC,yBAAyB,GAAG,UAAU,CAAC;IAC7C,CAAC;IAED,qFAAqF;IACrF,IAAI,eAAe,GAAyB,OAAO,CAAC;IACpD,MAAM,WAAW,GAAsB,EAAE,CAAC;IAC1C,IAAI,aAAa,EAAE,CAAC;QAClB,eAAe,GAAG,UAAU,CAAC;QAC7B,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAa,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC/C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAE/B,qEAAqE;QACrE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACtD,MAAM,aAAa,GAAkB,EAAE,CAAC;YACxC,IAAI,eAAe,GAAG,CAAC,CAAC;YACxB,IAAI,aAAa,GAAG,CAAC,CAAC;YAEtB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBACrD,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,CAAC,OAAO;oBAAE,SAAS;gBAEvB,oBAAoB;gBACpB,IAAI,IAAc,CAAC;gBACnB,IAAI,CAAC;oBAAC,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACzD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;gBAErC,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpD,+DAA+D;oBAC/D,aAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;oBACtC,eAAe,IAAI,MAAM,CAAC,UAAU,CAAC;oBACrC,aAAa,EAAE,CAAC;oBAEhB,IAAI,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC;wBAChD,yDAAyD;wBACzD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;4BACpB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gCAChC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;4BAC5I,CAAC;wBACH,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,mEAAmE;wBACnE,IAAI,CAAC;4BACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;4BACnD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BAC3C,IAAI,MAAM,EAAE,CAAC;gCACX,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gCACzD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gCAChE,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;gCAClE,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;gCACnG,IAAI,cAAc,EAAE,CAAC;oCACnB,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;wCAC/B,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oCAC5I,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,yEAAyE;wBAC3E,CAAC;oBACH,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,sDAAsD;gBACtD,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;oBACnF,IAAI,MAAM,EAAE,CAAC;wBACX,aAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;wBACtC,eAAe,IAAI,MAAM,CAAC,UAAU,CAAC;wBACrC,aAAa,EAAE,CAAC;wBAChB,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;wBACnG,YAAY,CAAC,OAAO,CAAC,GAAG;4BACtB,KAAK,EAAE,IAAI,CAAC,OAAO;4BACnB,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,UAAU,EAAE,MAAM,CAAC,UAAU;4BAC7B,QAAQ,EAAE,cAAc;4BACxB,eAAe,EAAE,gBAAgB;yBAClC,CAAC;wBACF,IAAI,cAAc,EAAE,CAAC;4BACnB,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;gCAC/B,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;4BAC5I,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,oDAAoD;gBACtD,CAAC;YACH,CAAC;YAED,oCAAoC;YACpC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACtB,GAAG,CAAC,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC;gBACxC,GAAG,CAAC,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjE,GAAG,CAAC,cAAc,GAAG,eAAe,GAAG,aAAa,CAAC;YACvD,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,YAAY,CAAC,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IAC3D,CAAC;IAED,gDAAgD;IAChD,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO;YAAE,SAAS;QAEtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE3C,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YAClD,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACzG,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACtD,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,MAAM,UAAU,GAAqB,EAAE,CAAC;IAExC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtD,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,IAAI,UAAU,CAAC,MAAM,IAAI,EAAE;gBAAE,MAAM;YACnC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACnC,gEAAgE;gBAChE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;gBAClD,IAAI,cAAc,GAAG,GAAG,EAAE,CAAC;oBACzB,UAAU,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;wBAC1C,KAAK,EAAE,cAAc;qBACtB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,IAAI,EAAE;YAAE,MAAM;IACrC,CAAC;IAED,sBAAsB;IACtB,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,eAAe,GAAG;QACtB,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS;QAC5C,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW;QAC5C,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS;QAC3C,SAAS;QACT,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,SAAS;QACtB,YAAY;QACZ,SAAS,EAAE,uBAAuB;QAClC,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE,kBAAkB;QAC/B,YAAY,EAAE,SAAS,EAAW,KAAK;QACvC,YAAY,EAAuB,QAAQ;QAC3C,QAAQ,EAAE,UAAU;QACpB,SAAS;QACT,UAAU;KACX,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/F,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,IAAI,WAAW,CAAC,MAAM,IAAI,EAAE;gBAAE,MAAM;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC;gBACH,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC/B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,MAAM,YAAY,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IAEjF,uCAAuC;IACvC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,GAAG,CAAC,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACnD,GAAG,CAAC,OAAO,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACzD,CAAC;IAED,0CAA0C;IAC1C,wFAAwF;IACxF,IAAI,WAAgE,CAAC;IAErE,IAAI,eAAe,KAAK,UAAU,EAAE,CAAC;QACnC,qDAAqD;QACrD,MAAM,eAAe,GAAkC,EAAE,CAAC;QAC1D,MAAM,eAAe,GAA6B,EAAE,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxD,uEAAuE;gBACvE,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAgB,EAAE,CAAC,CAAC,CAAC;YACjG,CAAC;YACD,uCAAuC;YACvC,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,IAAI;gBAAE,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC7C,CAAC;QACD,WAAW,GAAG,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;IAC9F,CAAC;IAED,2DAA2D;IAC3D,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAEvH,OAAO;QACL,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAClC,OAAO;QACP,gBAAgB,EAAE,eAAe;QACjC,aAAa,EAAE,YAAY;QAC3B,iBAAiB,EAAE,gBAAgB;QACnC,aAAa,EAAE,YAAY;QAC3B,gBAAgB,EAAE,eAAe;QACjC,WAAW,EAAE,UAAU;QACvB,WAAW;QACX,mBAAmB,EAAE,iBAAiB;QACtC,gBAAgB,EAAE,eAAe;QACjC,YAAY,EAAE,WAAW;QACzB,iBAAiB,EAAE,gBAAgB;QACnC,YAAY,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,MAAM,UAAU,oBAAoB,CAClC,SAAwB,EACxB,WAAmB,EACnB,cAAwB,EAAE,EAC1B,cAAc,GAAG,IAAI,EACrB,aAAwC;IAExC,OAAO,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;AACrF,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,MAAM,UAAU,oBAAoB,CAClC,KAAoB,EACpB,WAAmB;IAEnB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IAEnD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEtC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC5E,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1E,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codebase-index/index.ts"],"names":[],"mappings":"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"}