@aionlabsai/aion 0.2.0 → 0.2.2

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 (177) hide show
  1. package/README.md +283 -9
  2. package/dist/agents/base-agent.d.ts.map +1 -1
  3. package/dist/agents/base-agent.js +23 -12
  4. package/dist/agents/base-agent.js.map +1 -1
  5. package/dist/agents/synthesizer.d.ts +3 -0
  6. package/dist/agents/synthesizer.d.ts.map +1 -1
  7. package/dist/agents/synthesizer.js +93 -52
  8. package/dist/agents/synthesizer.js.map +1 -1
  9. package/dist/cli/commands/audit.d.ts.map +1 -1
  10. package/dist/cli/commands/audit.js +115 -121
  11. package/dist/cli/commands/audit.js.map +1 -1
  12. package/dist/cli/commands/chat.d.ts +3 -0
  13. package/dist/cli/commands/chat.d.ts.map +1 -0
  14. package/dist/cli/commands/chat.js +129 -0
  15. package/dist/cli/commands/chat.js.map +1 -0
  16. package/dist/cli/commands/context.d.ts +3 -0
  17. package/dist/cli/commands/context.d.ts.map +1 -0
  18. package/dist/cli/commands/context.js +72 -0
  19. package/dist/cli/commands/context.js.map +1 -0
  20. package/dist/cli/commands/diff.d.ts +3 -0
  21. package/dist/cli/commands/diff.d.ts.map +1 -0
  22. package/dist/cli/commands/diff.js +144 -0
  23. package/dist/cli/commands/diff.js.map +1 -0
  24. package/dist/cli/commands/health.d.ts.map +1 -1
  25. package/dist/cli/commands/health.js +17 -0
  26. package/dist/cli/commands/health.js.map +1 -1
  27. package/dist/cli/commands/init.d.ts +3 -0
  28. package/dist/cli/commands/init.d.ts.map +1 -0
  29. package/dist/cli/commands/init.js +52 -0
  30. package/dist/cli/commands/init.js.map +1 -0
  31. package/dist/cli/commands/next.d.ts +3 -0
  32. package/dist/cli/commands/next.d.ts.map +1 -0
  33. package/dist/cli/commands/next.js +49 -0
  34. package/dist/cli/commands/next.js.map +1 -0
  35. package/dist/cli/commands/report.d.ts.map +1 -1
  36. package/dist/cli/commands/report.js +52 -392
  37. package/dist/cli/commands/report.js.map +1 -1
  38. package/dist/cli/commands/search.d.ts +3 -0
  39. package/dist/cli/commands/search.d.ts.map +1 -0
  40. package/dist/cli/commands/search.js +50 -0
  41. package/dist/cli/commands/search.js.map +1 -0
  42. package/dist/cli/commands/tree.d.ts +3 -0
  43. package/dist/cli/commands/tree.d.ts.map +1 -0
  44. package/dist/cli/commands/tree.js +85 -0
  45. package/dist/cli/commands/tree.js.map +1 -0
  46. package/dist/cli/menu.d.ts.map +1 -1
  47. package/dist/cli/menu.js +56 -1
  48. package/dist/cli/menu.js.map +1 -1
  49. package/dist/core/cost-tracker.d.ts +10 -0
  50. package/dist/core/cost-tracker.d.ts.map +1 -1
  51. package/dist/core/cost-tracker.js +53 -0
  52. package/dist/core/cost-tracker.js.map +1 -1
  53. package/dist/core/orchestrator.d.ts +2 -1
  54. package/dist/core/orchestrator.d.ts.map +1 -1
  55. package/dist/core/orchestrator.js +2 -2
  56. package/dist/core/orchestrator.js.map +1 -1
  57. package/dist/core/pipelines/audit-pipeline.d.ts +13 -2
  58. package/dist/core/pipelines/audit-pipeline.d.ts.map +1 -1
  59. package/dist/core/pipelines/audit-pipeline.js +156 -37
  60. package/dist/core/pipelines/audit-pipeline.js.map +1 -1
  61. package/dist/index.js +17 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/infra/aion-config.d.ts +26 -0
  64. package/dist/infra/aion-config.d.ts.map +1 -0
  65. package/dist/infra/aion-config.js +60 -0
  66. package/dist/infra/aion-config.js.map +1 -0
  67. package/dist/infra/aion-ignore.d.ts +3 -0
  68. package/dist/infra/aion-ignore.d.ts.map +1 -0
  69. package/dist/infra/aion-ignore.js +35 -0
  70. package/dist/infra/aion-ignore.js.map +1 -0
  71. package/dist/infra/audit-cache.d.ts +40 -0
  72. package/dist/infra/audit-cache.d.ts.map +1 -0
  73. package/dist/infra/audit-cache.js +94 -0
  74. package/dist/infra/audit-cache.js.map +1 -0
  75. package/dist/infra/audit-model.d.ts +72 -0
  76. package/dist/infra/audit-model.d.ts.map +1 -0
  77. package/dist/infra/audit-model.js +146 -0
  78. package/dist/infra/audit-model.js.map +1 -0
  79. package/dist/infra/audit-report-writer.d.ts +4 -0
  80. package/dist/infra/audit-report-writer.d.ts.map +1 -0
  81. package/dist/infra/audit-report-writer.js +290 -0
  82. package/dist/infra/audit-report-writer.js.map +1 -0
  83. package/dist/infra/audit-trend.d.ts +17 -0
  84. package/dist/infra/audit-trend.d.ts.map +1 -0
  85. package/dist/infra/audit-trend.js +113 -0
  86. package/dist/infra/audit-trend.js.map +1 -0
  87. package/dist/infra/code-metrics.d.ts +11 -0
  88. package/dist/infra/code-metrics.d.ts.map +1 -1
  89. package/dist/infra/code-metrics.js +62 -0
  90. package/dist/infra/code-metrics.js.map +1 -1
  91. package/dist/infra/db/store.d.ts.map +1 -1
  92. package/dist/infra/db/store.js +14 -7
  93. package/dist/infra/db/store.js.map +1 -1
  94. package/dist/infra/embeddings.d.ts +2 -0
  95. package/dist/infra/embeddings.d.ts.map +1 -1
  96. package/dist/infra/embeddings.js +33 -15
  97. package/dist/infra/embeddings.js.map +1 -1
  98. package/dist/infra/project-report.d.ts +67 -0
  99. package/dist/infra/project-report.d.ts.map +1 -0
  100. package/dist/infra/project-report.js +159 -0
  101. package/dist/infra/project-report.js.map +1 -0
  102. package/dist/infra/repo-vectors.d.ts +31 -0
  103. package/dist/infra/repo-vectors.d.ts.map +1 -0
  104. package/dist/infra/repo-vectors.js +83 -0
  105. package/dist/infra/repo-vectors.js.map +1 -0
  106. package/dist/infra/update-check.d.ts +3 -0
  107. package/dist/infra/update-check.d.ts.map +1 -0
  108. package/dist/infra/update-check.js +84 -0
  109. package/dist/infra/update-check.js.map +1 -0
  110. package/dist/prompts/scanner.d.ts +1 -0
  111. package/dist/prompts/scanner.d.ts.map +1 -1
  112. package/dist/prompts/scanner.js +5 -1
  113. package/dist/prompts/scanner.js.map +1 -1
  114. package/dist/prompts/synthesizer.d.ts.map +1 -1
  115. package/dist/prompts/synthesizer.js +7 -23
  116. package/dist/prompts/synthesizer.js.map +1 -1
  117. package/dist/providers/cli-provider.d.ts +1 -0
  118. package/dist/providers/cli-provider.d.ts.map +1 -1
  119. package/dist/providers/cli-provider.js +22 -2
  120. package/dist/providers/cli-provider.js.map +1 -1
  121. package/package.json +24 -19
  122. package/dist/agents/planner.test.d.ts +0 -2
  123. package/dist/agents/planner.test.d.ts.map +0 -1
  124. package/dist/agents/planner.test.js +0 -21
  125. package/dist/agents/planner.test.js.map +0 -1
  126. package/dist/core/cost-tracker.test.d.ts +0 -2
  127. package/dist/core/cost-tracker.test.d.ts.map +0 -1
  128. package/dist/core/cost-tracker.test.js +0 -36
  129. package/dist/core/cost-tracker.test.js.map +0 -1
  130. package/dist/core/pipelines/audit-pipeline.test.d.ts +0 -2
  131. package/dist/core/pipelines/audit-pipeline.test.d.ts.map +0 -1
  132. package/dist/core/pipelines/audit-pipeline.test.js +0 -135
  133. package/dist/core/pipelines/audit-pipeline.test.js.map +0 -1
  134. package/dist/core/repo-context.d.ts +0 -2
  135. package/dist/core/repo-context.d.ts.map +0 -1
  136. package/dist/core/repo-context.js +0 -12
  137. package/dist/core/repo-context.js.map +0 -1
  138. package/dist/core/repo-context.test.d.ts +0 -2
  139. package/dist/core/repo-context.test.d.ts.map +0 -1
  140. package/dist/core/repo-context.test.js +0 -40
  141. package/dist/core/repo-context.test.js.map +0 -1
  142. package/dist/core/runtime-policy.test.d.ts +0 -2
  143. package/dist/core/runtime-policy.test.d.ts.map +0 -1
  144. package/dist/core/runtime-policy.test.js +0 -27
  145. package/dist/core/runtime-policy.test.js.map +0 -1
  146. package/dist/infra/bm25.test.d.ts +0 -2
  147. package/dist/infra/bm25.test.d.ts.map +0 -1
  148. package/dist/infra/bm25.test.js +0 -17
  149. package/dist/infra/bm25.test.js.map +0 -1
  150. package/dist/infra/chunker.test.d.ts +0 -2
  151. package/dist/infra/chunker.test.d.ts.map +0 -1
  152. package/dist/infra/chunker.test.js +0 -33
  153. package/dist/infra/chunker.test.js.map +0 -1
  154. package/dist/infra/db/database.d.ts +0 -4
  155. package/dist/infra/db/database.d.ts.map +0 -1
  156. package/dist/infra/db/database.js +0 -25
  157. package/dist/infra/db/database.js.map +0 -1
  158. package/dist/infra/evidence-gate.test.d.ts +0 -2
  159. package/dist/infra/evidence-gate.test.d.ts.map +0 -1
  160. package/dist/infra/evidence-gate.test.js +0 -36
  161. package/dist/infra/evidence-gate.test.js.map +0 -1
  162. package/dist/infra/repo-index.test.d.ts +0 -2
  163. package/dist/infra/repo-index.test.d.ts.map +0 -1
  164. package/dist/infra/repo-index.test.js +0 -53
  165. package/dist/infra/repo-index.test.js.map +0 -1
  166. package/dist/infra/repo-query.test.d.ts +0 -2
  167. package/dist/infra/repo-query.test.d.ts.map +0 -1
  168. package/dist/infra/repo-query.test.js +0 -34
  169. package/dist/infra/repo-query.test.js.map +0 -1
  170. package/dist/infra/semgrep.test.d.ts +0 -2
  171. package/dist/infra/semgrep.test.d.ts.map +0 -1
  172. package/dist/infra/semgrep.test.js +0 -39
  173. package/dist/infra/semgrep.test.js.map +0 -1
  174. package/dist/schemas/audit.test.d.ts +0 -2
  175. package/dist/schemas/audit.test.d.ts.map +0 -1
  176. package/dist/schemas/audit.test.js +0 -41
  177. package/dist/schemas/audit.test.js.map +0 -1
@@ -1,6 +1,8 @@
1
1
  import { randomUUID } from 'crypto';
2
- import { readdirSync, statSync } from 'fs';
2
+ import { mkdtempSync, readdirSync, rmSync, statSync } from 'fs';
3
3
  import { join as pathJoin } from 'path';
4
+ import { tmpdir } from 'os';
5
+ import { spawnSync } from 'child_process';
4
6
  import { createWorktree, removeWorktree } from '../../infra/worktree.js';
5
7
  import { ScannerAgent } from '../../agents/scanner.js';
6
8
  import { SynthesizerAgent } from '../../agents/synthesizer.js';
@@ -10,6 +12,22 @@ import { GraphAgent } from '../../agents/graph-agent.js';
10
12
  import { buildDepGraph } from '../../infra/dep-graph.js';
11
13
  import { buildPythonDepGraph } from '../../infra/dep-graph-python.js';
12
14
  import { detectLang } from '../../infra/lang-detect.js';
15
+ import { SessionBudget } from '../cost-tracker.js';
16
+ import { loadAuditCache, saveAuditCache, filterChangedFiles, getCachedFindingsForFiles } from '../../infra/audit-cache.js';
17
+ import { loadIgnorePatterns, isIgnored } from '../../infra/aion-ignore.js';
18
+ import { rankFilesByRisk } from '../../infra/code-metrics.js';
19
+ function fetchGitChurn(cwd, days = 90) {
20
+ const result = spawnSync('git', ['log', '--name-only', '--pretty=format:', `--since=${days}.days.ago`], {
21
+ cwd, encoding: 'utf8', timeout: 10000,
22
+ });
23
+ const counts = new Map();
24
+ for (const line of (result.stdout ?? '').split('\n')) {
25
+ const t = line.trim();
26
+ if (t)
27
+ counts.set(t, (counts.get(t) ?? 0) + 1);
28
+ }
29
+ return counts;
30
+ }
13
31
  const SOURCE_EXTS = ['.ts', '.tsx', '.js', '.jsx', '.py', '.go', '.java', '.rb', '.rs', '.swift', '.kt', '.cs', '.cpp', '.c', '.h'];
14
32
  const IGNORE_DIRS = new Set([
15
33
  'node_modules', 'dist', 'build', '.git', '.worktrees', 'coverage',
@@ -146,15 +164,36 @@ export class AuditPipeline {
146
164
  return 3;
147
165
  return 2;
148
166
  }
149
- async run(target, numScanners, explicitDomains) {
167
+ async run(target, numScanners, explicitDomains, options = {}) {
150
168
  const taskId = randomUUID();
151
169
  const worktrees = [];
170
+ let synthDir;
152
171
  try {
153
172
  const stats = this.collectAuditStats(target);
154
173
  const allFiles = stats.auditFiles;
155
174
  if (allFiles.length === 0) {
156
175
  return { findings: [], criticalCount: 0, highCount: 0, totalFiles: 0, summary: 'No source files found.', topPriorities: [] };
157
176
  }
177
+ // Incremental: skip unchanged files, reuse cached findings
178
+ let filesToScan = allFiles;
179
+ let cachedFindings = [];
180
+ if (options.incremental) {
181
+ const cache = loadAuditCache(this.cwd);
182
+ const { changed, unchanged } = filterChangedFiles(this.cwd, allFiles, cache);
183
+ if (cache && unchanged.length > 0) {
184
+ filesToScan = changed;
185
+ cachedFindings = getCachedFindingsForFiles(cache, unchanged);
186
+ this.emit('agent:output', {
187
+ agentName: 'audit',
188
+ text: `Incremental mode: ${changed.length} changed files to scan, ${unchanged.length} unchanged (reusing cache)\n`,
189
+ });
190
+ }
191
+ if (filesToScan.length === 0) {
192
+ const report = this.applyEvidenceGate({ findings: cachedFindings, criticalCount: 0, highCount: 0, totalFiles: allFiles.length, summary: 'Incremental: no changed files. All findings from cache.', topPriorities: [] });
193
+ saveAuditCache(this.cwd, allFiles, report.findings);
194
+ return report;
195
+ }
196
+ }
158
197
  const resolvedScanners = numScanners ?? this.autoSelectScanners(allFiles.length);
159
198
  // Semgrep pre-scan (zero API tokens)
160
199
  const { runSemgrep } = await import('../../infra/semgrep.js');
@@ -173,17 +212,61 @@ export class AuditPipeline {
173
212
  if (semgrepResult.available) {
174
213
  this.emit('agent:output', { agentName: 'audit', text: `Semgrep: ${semgrepResult.findings.length} findings in ${semgrepResult.filesScanned} files\n` });
175
214
  }
215
+ else {
216
+ this.emit('agent:output', { agentName: 'audit', text: `Semgrep unavailable: ${semgrepResult.error ?? 'unknown error'}\n` });
217
+ }
218
+ if (options.localOnly) {
219
+ const report = this.applyEvidenceGate(fallbackAuditReport([semgrepReport], allFiles.length));
220
+ const finalReport = recount({
221
+ ...report,
222
+ summary: `${report.summary} Local-only mode: no AI scanners or synthesizer were started.`,
223
+ });
224
+ saveAuditCache(this.cwd, allFiles, finalReport.findings);
225
+ return finalReport;
226
+ }
176
227
  // Domain-based AI scanners (sequential to respect rate limits)
177
228
  const { SCAN_DOMAINS } = await import('../../prompts/scanner.js');
178
- const domains = explicitDomains && explicitDomains.length > 0
229
+ const selectedDomains = explicitDomains && explicitDomains.length > 0
179
230
  ? explicitDomains
180
231
  : SCAN_DOMAINS.slice(0, resolvedScanners);
232
+ const maxAiScanners = Math.max(1, options.maxAiScanners ?? this.policy.maxAgents);
233
+ const domains = selectedDomains.slice(0, maxAiScanners);
181
234
  const n = domains.length;
182
235
  this.emit('agent:output', {
183
236
  agentName: 'audit',
184
- text: `Found ${allFiles.length} source files → ${n} AI scanners (sequential, grep-first)\n ${domains.join(' | ')}\n`,
237
+ text: [
238
+ `Found ${allFiles.length} source files → ${n} AI scanners (sequential, grep-first)`,
239
+ selectedDomains.length > domains.length ? `Capped AI scanners from ${selectedDomains.length} to ${domains.length} by cost policy.` : '',
240
+ ` ${domains.join(' | ')}`,
241
+ '',
242
+ ].filter(Boolean).join('\n'),
185
243
  });
244
+ // Session budget gate — warn or reduce scanners before spending tokens
245
+ const sessionBudget = new SessionBudget(this.cwd, this.policy.claudeMaxBudgetUsd);
246
+ const budgetWarn = sessionBudget.warningLine();
247
+ if (budgetWarn)
248
+ this.emit('agent:output', { agentName: 'audit', text: `${budgetWarn}\n` });
249
+ const estimated = sessionBudget.estimatedCost(domains.length, this.policy.claudeModel);
250
+ if (!sessionBudget.canAfford(estimated)) {
251
+ const affordable = Math.max(1, Math.floor(sessionBudget.remaining() / (estimated / domains.length)));
252
+ domains.length = affordable;
253
+ this.emit('agent:output', {
254
+ agentName: 'audit',
255
+ text: `⚠ Budget constraint: reduced scanners to ${domains.length} (estimated $${estimated.toFixed(2)}, $${sessionBudget.remaining().toFixed(2)} remaining)\n`,
256
+ });
257
+ }
186
258
  const scannerCtx = await this.buildScannerContext();
259
+ const maxFilesForAi = Math.max(1, options.maxFilesForAi ?? (this.policy.budget === 'deep' ? 120 : this.policy.budget === 'normal' ? 60 : 30));
260
+ const semgrepFileSet = new Set(semgrepResult.findings.map((f) => f.file ?? '').filter(Boolean));
261
+ const aiTargetFiles = this.prioritizeFiles(filesToScan, maxFilesForAi, {
262
+ semgrepFiles: semgrepFileSet,
263
+ hotspotFiles: scannerCtx.hotspotFiles,
264
+ });
265
+ scannerCtx.targetFiles = aiTargetFiles;
266
+ this.emit('agent:output', {
267
+ agentName: 'audit',
268
+ text: `AI file scope: ${aiTargetFiles.length}/${filesToScan.length} prioritized by risk (churn + deps + semgrep). Use --max-files to change.\n`,
269
+ });
187
270
  const aiScannerRuns = await this.runSequential(domains.map((domain, i) => async () => {
188
271
  const wt = createWorktree(this.cwd, `scanner-${domain}`, taskId);
189
272
  worktrees.push([`scanner-${domain}`, taskId]);
@@ -206,10 +289,9 @@ export class AuditPipeline {
206
289
  summary: `Scanner ${domain} failed: ${compactText(message, 500)}`,
207
290
  };
208
291
  }
209
- }));
210
- // Synthesize
211
- const synthWT = createWorktree(this.cwd, 'synthesizer', taskId);
212
- worktrees.push(['synthesizer', taskId]);
292
+ }), options.scannerTimeoutMs);
293
+ // Synthesize — use a temp dir (no git worktree needed, synthesizer reads no files)
294
+ synthDir = mkdtempSync(pathJoin(tmpdir(), 'aion-synth-'));
213
295
  this.emit('agent:start', { agentName: 'synthesizer' });
214
296
  const reports = [
215
297
  compactScanReport(semgrepReport, MAX_SEMGREP_FINDINGS_FOR_SYNTHESIS),
@@ -217,15 +299,25 @@ export class AuditPipeline {
217
299
  ];
218
300
  const synthStart = Date.now();
219
301
  try {
220
- const synthRun = await new SynthesizerAgent().run({ scanReports: reports, totalFiles: allFiles.length, worktreePath: synthWT }, this.policy, this.onChunk);
302
+ const synthRun = await new SynthesizerAgent().run({ scanReports: reports, totalFiles: allFiles.length, worktreePath: synthDir }, this.policy, this.onChunk);
221
303
  this.emit('agent:done', { agentName: 'synthesizer', durationMs: synthRun.durationMs });
222
- return this.applyEvidenceGate({ ...synthRun.output, totalFiles: allFiles.length });
304
+ const gated = this.applyEvidenceGate({ ...synthRun.output, totalFiles: allFiles.length });
305
+ const deduped = this.deduplicateFindings([...cachedFindings, ...gated.findings]);
306
+ const finalReport = recount({ ...gated, findings: deduped });
307
+ saveAuditCache(this.cwd, allFiles, finalReport.findings);
308
+ sessionBudget.record(this.costs.totalUsd());
309
+ return finalReport;
223
310
  }
224
311
  catch (err) {
225
312
  const message = err instanceof Error ? err.message : String(err);
226
313
  this.emit('agent:output', { agentName: 'synthesizer', text: `Synthesizer failed; using local fallback: ${message}\n` });
227
314
  this.emit('agent:done', { agentName: 'synthesizer', durationMs: Date.now() - synthStart });
228
- return this.applyEvidenceGate(fallbackAuditReport(reports, allFiles.length));
315
+ const fallback = this.applyEvidenceGate(fallbackAuditReport(reports, allFiles.length));
316
+ const deduped = this.deduplicateFindings([...cachedFindings, ...fallback.findings]);
317
+ const finalReport = recount({ ...fallback, findings: deduped });
318
+ saveAuditCache(this.cwd, allFiles, finalReport.findings);
319
+ sessionBudget.record(this.costs.totalUsd());
320
+ return finalReport;
229
321
  }
230
322
  }
231
323
  finally {
@@ -235,16 +327,54 @@ export class AuditPipeline {
235
327
  }
236
328
  catch { /* best-effort */ }
237
329
  }
330
+ if (synthDir) {
331
+ try {
332
+ rmSync(synthDir, { recursive: true, force: true });
333
+ }
334
+ catch { /* best-effort */ }
335
+ }
238
336
  }
239
337
  }
240
338
  async runSequential(tasks, timeoutMs = 6 * 60 * 1000) {
241
339
  const results = [];
242
340
  for (const task of tasks) {
243
- const timeout = new Promise((_, reject) => setTimeout(() => reject(new Error(`Scanner timed out after ${timeoutMs / 1000}s`)), timeoutMs));
244
- results.push(await Promise.race([task(), timeout]));
341
+ let timer;
342
+ const timeout = new Promise((_, reject) => {
343
+ timer = setTimeout(() => reject(new Error(`Scanner timed out after ${timeoutMs / 1000}s`)), timeoutMs);
344
+ });
345
+ try {
346
+ results.push(await Promise.race([task(), timeout]));
347
+ }
348
+ finally {
349
+ if (timer)
350
+ clearTimeout(timer);
351
+ }
245
352
  }
246
353
  return results;
247
354
  }
355
+ deduplicateFindings(findings) {
356
+ const seen = new Map();
357
+ for (const f of findings) {
358
+ // Key: file + line + category (not finding text — same issue found by multiple personas)
359
+ const key = `${f.file}:${f.line ?? ''}:${f.category}`;
360
+ const existing = seen.get(key);
361
+ if (!existing) {
362
+ seen.set(key, f);
363
+ }
364
+ else {
365
+ const keepNew = severityRank(f.severity) > severityRank(existing.severity);
366
+ const merged = keepNew ? f : existing;
367
+ const otherPersona = keepNew ? existing.persona : f.persona;
368
+ seen.set(key, {
369
+ ...merged,
370
+ persona: merged.persona && otherPersona
371
+ ? `${merged.persona}+${otherPersona}`
372
+ : merged.persona ?? otherPersona,
373
+ });
374
+ }
375
+ }
376
+ return [...seen.values()].sort((a, b) => severityRank(b.severity) - severityRank(a.severity));
377
+ }
248
378
  applyEvidenceGate(report) {
249
379
  const result = validateAuditFindings(report.findings, loadRepoIndex(this.cwd));
250
380
  if (result.rejected.length === 0)
@@ -272,6 +402,7 @@ export class AuditPipeline {
272
402
  oversizedFiles: 0,
273
403
  byExtension: {},
274
404
  };
405
+ const ignorePatterns = loadIgnorePatterns(this.cwd);
275
406
  const root = pathJoin(this.cwd, target || '.');
276
407
  const rootRel = target && target !== '.' ? target.replace(/^[./]+/, '') : '';
277
408
  const walk = (dir, rel) => {
@@ -305,7 +436,7 @@ export class AuditPipeline {
305
436
  continue;
306
437
  }
307
438
  stats.byExtension[ext] = (stats.byExtension[ext] ?? 0) + 1;
308
- if (IGNORE_PATTERNS.some((p) => p.test(relPath))) {
439
+ if (IGNORE_PATTERNS.some((p) => p.test(relPath)) || isIgnored(relPath, ignorePatterns)) {
309
440
  stats.ignoredFiles++;
310
441
  }
311
442
  else if (st.size >= MAX_FILE_SIZE) {
@@ -322,32 +453,20 @@ export class AuditPipeline {
322
453
  stats.auditFiles.sort();
323
454
  return stats;
324
455
  }
325
- prioritizeFiles(files, max) {
456
+ prioritizeFiles(files, max, extra) {
326
457
  if (files.length <= max)
327
458
  return files;
328
- const scored = files.map((f) => {
329
- let score = 0;
330
- const depth = f.split('/').length;
331
- score += Math.max(0, 6 - depth) * 3;
332
- const base = f.split('/').pop() ?? '';
333
- if (/^(index|main|app|server|router|handler|controller|service|middleware|auth|api)\.[a-z]+$/.test(base))
334
- score += 10;
335
- if (/^(orchestrat|agent|provider|pipeline)\.[a-z]+$/.test(base))
336
- score += 8;
337
- try {
338
- const size = statSync(pathJoin(this.cwd, f)).size;
339
- score += Math.min(5, Math.floor(size / 5000));
340
- }
341
- catch { /* skip */ }
342
- if (/\.(test|spec)\.[a-z]+$/.test(f))
343
- score -= 5;
344
- return { f, score };
459
+ const churnCounts = fetchGitChurn(this.cwd);
460
+ const depFanIn = new Map();
461
+ for (const h of extra?.hotspotFiles ?? []) {
462
+ depFanIn.set(h, (depFanIn.get(h) ?? 0) + 5);
463
+ }
464
+ const ranked = rankFilesByRisk(files, {
465
+ churnCounts,
466
+ depFanIn,
467
+ semgrepFiles: extra?.semgrepFiles,
345
468
  });
346
- return scored
347
- .sort((a, b) => b.score - a.score)
348
- .slice(0, max)
349
- .map((s) => s.f)
350
- .sort();
469
+ return ranked.slice(0, max).map((r) => r.file).sort();
351
470
  }
352
471
  }
353
472
  //# sourceMappingURL=audit-pipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit-pipeline.js","sourceRoot":"","sources":["../../../src/core/pipelines/audit-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-pipeline.js","sourceRoot":"","sources":["../../../src/core/pipelines/audit-pipeline.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ import 'dotenv/config';
3
3
  import { program } from 'commander';
4
4
  import { resolve } from 'path';
5
5
  import { existsSync, statSync } from 'fs';
6
+ import { checkForUpdate, getCurrentVersion } from './infra/update-check.js';
6
7
  import { runMigrations } from './infra/db/migrations.js';
7
8
  import { registerAnalyze } from './cli/commands/analyze.js';
8
9
  import { registerFix } from './cli/commands/fix.js';
@@ -16,13 +17,21 @@ import { registerPatterns } from './cli/commands/patterns.js';
16
17
  import { registerHealth } from './cli/commands/health.js';
17
18
  import { registerReport } from './cli/commands/report.js';
18
19
  import { registerExplain } from './cli/commands/explain.js';
20
+ import { registerInit } from './cli/commands/init.js';
21
+ import { registerDiff } from './cli/commands/diff.js';
22
+ import { registerChat } from './cli/commands/chat.js';
23
+ import { registerContext } from './cli/commands/context.js';
24
+ import { registerSearch } from './cli/commands/search.js';
25
+ import { registerTree } from './cli/commands/tree.js';
26
+ import { registerNext } from './cli/commands/next.js';
19
27
  import { runNaturalLanguage } from './cli/interactive.js';
20
28
  import { runMenu } from './cli/menu.js';
21
29
  runMigrations();
30
+ await checkForUpdate();
22
31
  program
23
32
  .name('ai')
24
33
  .description('Multi-agent AI engineering runtime')
25
- .version('0.2.0')
34
+ .version(getCurrentVersion())
26
35
  .option('-C, --cwd <path>', 'working directory (defaults to current directory)')
27
36
  .argument('[request...]', 'natural language request (e.g. "corrija o bug de login")')
28
37
  .action(async (requestWords) => {
@@ -66,6 +75,13 @@ registerPatterns(program);
66
75
  registerHealth(program);
67
76
  registerReport(program);
68
77
  registerExplain(program);
78
+ registerInit(program);
79
+ registerDiff(program);
80
+ registerChat(program);
81
+ registerContext(program);
82
+ registerSearch(program);
83
+ registerTree(program);
84
+ registerNext(program);
69
85
  // Explicit menu command
70
86
  program
71
87
  .command('menu')
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export interface AionConfig {
2
+ /** Default persona preset: security | ai | backend | devops | quality | saas | fintech | full */
3
+ preset?: string;
4
+ /** Default budget: low | normal | deep */
5
+ budget?: 'low' | 'normal' | 'deep';
6
+ /** Default AI provider: claude | openrouter */
7
+ provider?: string;
8
+ /** Default model override (for openrouter) */
9
+ model?: string;
10
+ /** Extra glob patterns to ignore during audit (merged with .aionignore) */
11
+ ignore?: string[];
12
+ /** Default domains (comma-separated), overrides preset if set */
13
+ domains?: string[];
14
+ /** Default max auto-fixes */
15
+ fixMax?: number;
16
+ /** Default minimum severity to auto-fix */
17
+ fixMinSeverity?: 'critical' | 'high' | 'medium';
18
+ /** Default scanner count override */
19
+ scanners?: number;
20
+ }
21
+ export declare function loadAionConfig(cwd: string): AionConfig;
22
+ /** Merge config defaults under CLI options (CLI wins) */
23
+ export declare function mergeConfig<T extends Record<string, unknown>>(cliOpts: T, config: AionConfig, defaults?: Partial<T>): T;
24
+ export declare function generateDefaultConfig(): AionConfig;
25
+ export declare function writeDefaultConfig(cwd: string): string;
26
+ //# sourceMappingURL=aion-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aion-config.d.ts","sourceRoot":"","sources":["../../src/infra/aion-config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;IAChD,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAOtD;AAED,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,UAAU,EAClB,QAAQ,GAAE,OAAO,CAAC,CAAC,CAAM,GACxB,CAAC,CAyBH;AAED,wBAAgB,qBAAqB,IAAI,UAAU,CASlD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKtD"}
@@ -0,0 +1,60 @@
1
+ import { readFileSync, writeFileSync, existsSync } from 'fs';
2
+ import { join } from 'path';
3
+ const CONFIG_FILE = '.aionrc.json';
4
+ export function loadAionConfig(cwd) {
5
+ const path = join(cwd, CONFIG_FILE);
6
+ if (!existsSync(path))
7
+ return {};
8
+ try {
9
+ const raw = readFileSync(path, 'utf8');
10
+ return JSON.parse(raw);
11
+ }
12
+ catch {
13
+ return {};
14
+ }
15
+ }
16
+ /** Merge config defaults under CLI options (CLI wins) */
17
+ export function mergeConfig(cliOpts, config, defaults = {}) {
18
+ const result = { ...defaults };
19
+ // Apply config fields only if CLI option is not set
20
+ const configMap = {
21
+ preset: 'preset',
22
+ budget: 'budget',
23
+ provider: 'provider',
24
+ model: 'model',
25
+ domains: 'domains',
26
+ fixMax: 'fixMax',
27
+ fixMinSeverity: 'fixMinSeverity',
28
+ scanners: 'scanners',
29
+ };
30
+ for (const [cliKey, configKey] of Object.entries(configMap)) {
31
+ const configVal = config[configKey];
32
+ const cliVal = cliOpts[cliKey];
33
+ if (configVal !== undefined && (cliVal === undefined || cliVal === null)) {
34
+ result[cliKey] = Array.isArray(configVal) ? configVal.join(',') : configVal;
35
+ }
36
+ }
37
+ // CLI overrides everything
38
+ for (const [k, v] of Object.entries(cliOpts)) {
39
+ if (v !== undefined && v !== null)
40
+ result[k] = v;
41
+ }
42
+ return result;
43
+ }
44
+ export function generateDefaultConfig() {
45
+ return {
46
+ preset: 'quality',
47
+ budget: 'low',
48
+ provider: 'claude',
49
+ ignore: ['**/fixtures/**', '**/testdata/**', '**/*.generated.*'],
50
+ fixMax: 5,
51
+ fixMinSeverity: 'high',
52
+ };
53
+ }
54
+ export function writeDefaultConfig(cwd) {
55
+ const path = join(cwd, CONFIG_FILE);
56
+ const config = generateDefaultConfig();
57
+ writeFileSync(path, JSON.stringify(config, null, 2) + '\n', 'utf8');
58
+ return path;
59
+ }
60
+ //# sourceMappingURL=aion-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aion-config.js","sourceRoot":"","sources":["../../src/infra/aion-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,WAAW,GAAG,cAAc,CAAC;AAuBnC,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACxB,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,WAAW,CACzB,OAAU,EACV,MAAkB,EAClB,WAAuB,EAAE;IAEzB,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAA6B,CAAC;IAC1D,oDAAoD;IACpD,MAAM,SAAS,GAAqC;QAClD,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,cAAc,EAAE,gBAAgB;QAChC,QAAQ,EAAE,UAAU;KACrB,CAAC;IACF,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;YACzE,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,SAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,2BAA2B;IAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;YAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;QAChE,MAAM,EAAE,CAAC;QACT,cAAc,EAAE,MAAM;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;IACvC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function loadIgnorePatterns(cwd: string): RegExp[];
2
+ export declare function isIgnored(filePath: string, patterns: RegExp[]): boolean;
3
+ //# sourceMappingURL=aion-ignore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aion-ignore.d.ts","sourceRoot":"","sources":["../../src/infra/aion-ignore.ts"],"names":[],"mappings":"AAkBA,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAWxD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAEvE"}
@@ -0,0 +1,35 @@
1
+ import { readFileSync, existsSync } from 'fs';
2
+ import { join } from 'path';
3
+ const IGNORE_FILE = '.aionignore';
4
+ function globToRegex(pattern) {
5
+ // Escape regex special chars except * and ?
6
+ const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&');
7
+ const re = escaped
8
+ .replace(/\*\*/g, '__GLOBSTAR__')
9
+ .replace(/\*/g, '[^/]*')
10
+ .replace(/\?/g, '[^/]')
11
+ .replace(/__GLOBSTAR__/g, '.*');
12
+ // If pattern has no slash, match anywhere in path
13
+ const anchored = pattern.includes('/') ? `^${re}` : `(^|/)${re}`;
14
+ return new RegExp(`${anchored}($|/)`);
15
+ }
16
+ export function loadIgnorePatterns(cwd) {
17
+ const path = join(cwd, IGNORE_FILE);
18
+ if (!existsSync(path))
19
+ return [];
20
+ try {
21
+ const content = readFileSync(path, 'utf8');
22
+ return content
23
+ .split('\n')
24
+ .map((l) => l.trim())
25
+ .filter((l) => l && !l.startsWith('#'))
26
+ .map(globToRegex);
27
+ }
28
+ catch {
29
+ return [];
30
+ }
31
+ }
32
+ export function isIgnored(filePath, patterns) {
33
+ return patterns.some((p) => p.test(filePath));
34
+ }
35
+ //# sourceMappingURL=aion-ignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aion-ignore.js","sourceRoot":"","sources":["../../src/infra/aion-ignore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,WAAW,GAAG,aAAa,CAAC;AAElC,SAAS,WAAW,CAAC,OAAe;IAClC,4CAA4C;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,EAAE,GAAG,OAAO;SACf,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;SAChC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;SACvB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAClC,kDAAkD;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;IACjE,OAAO,IAAI,MAAM,CAAC,GAAG,QAAQ,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,OAAO,OAAO;aACX,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACtC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,QAAkB;IAC5D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,40 @@
1
+ interface CacheEntry {
2
+ mtime: number;
3
+ size: number;
4
+ hash?: string;
5
+ }
6
+ interface AuditCache {
7
+ version: 2 | 3;
8
+ files: Record<string, CacheEntry>;
9
+ lastAuditAt: string;
10
+ lastFindings: Record<string, {
11
+ severity: string;
12
+ finding: string;
13
+ recommendation: string;
14
+ category: string;
15
+ persona?: string;
16
+ }[]>;
17
+ }
18
+ export declare function loadAuditCache(cwd: string): AuditCache | null;
19
+ export declare function saveAuditCache(cwd: string, files: string[], findings: Array<{
20
+ file: string;
21
+ severity: string;
22
+ finding: string;
23
+ recommendation: string;
24
+ category: string;
25
+ persona?: string;
26
+ }>): void;
27
+ export declare function filterChangedFiles(cwd: string, files: string[], cache: AuditCache | null): {
28
+ changed: string[];
29
+ unchanged: string[];
30
+ };
31
+ export declare function getCachedFindingsForFiles(cache: AuditCache | null, unchangedFiles: string[]): Array<{
32
+ file: string;
33
+ severity: string;
34
+ finding: string;
35
+ recommendation: string;
36
+ category: string;
37
+ persona?: string;
38
+ }>;
39
+ export {};
40
+ //# sourceMappingURL=audit-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-cache.d.ts","sourceRoot":"","sources":["../../src/infra/audit-cache.ts"],"names":[],"mappings":"AAMA,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;CACnI;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAS7D;AAUD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC/H,IAAI,CA0BN;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,UAAU,GAAG,IAAI,GACvB;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAsB5C;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,UAAU,GAAG,IAAI,EACxB,cAAc,EAAE,MAAM,EAAE,GACvB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAYxH"}