@aionlabsai/aion 0.2.1 → 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 (87) hide show
  1. package/README.md +59 -0
  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 +87 -534
  11. package/dist/cli/commands/audit.js.map +1 -1
  12. package/dist/cli/commands/chat.d.ts.map +1 -1
  13. package/dist/cli/commands/chat.js +2 -1
  14. package/dist/cli/commands/chat.js.map +1 -1
  15. package/dist/cli/commands/context.d.ts +3 -0
  16. package/dist/cli/commands/context.d.ts.map +1 -0
  17. package/dist/cli/commands/context.js +72 -0
  18. package/dist/cli/commands/context.js.map +1 -0
  19. package/dist/cli/commands/next.d.ts +3 -0
  20. package/dist/cli/commands/next.d.ts.map +1 -0
  21. package/dist/cli/commands/next.js +49 -0
  22. package/dist/cli/commands/next.js.map +1 -0
  23. package/dist/cli/commands/report.d.ts.map +1 -1
  24. package/dist/cli/commands/report.js +52 -400
  25. package/dist/cli/commands/report.js.map +1 -1
  26. package/dist/cli/commands/search.d.ts +3 -0
  27. package/dist/cli/commands/search.d.ts.map +1 -0
  28. package/dist/cli/commands/search.js +50 -0
  29. package/dist/cli/commands/search.js.map +1 -0
  30. package/dist/cli/commands/tree.d.ts +3 -0
  31. package/dist/cli/commands/tree.d.ts.map +1 -0
  32. package/dist/cli/commands/tree.js +85 -0
  33. package/dist/cli/commands/tree.js.map +1 -0
  34. package/dist/cli/menu.d.ts.map +1 -1
  35. package/dist/cli/menu.js +13 -0
  36. package/dist/cli/menu.js.map +1 -1
  37. package/dist/core/cost-tracker.d.ts +10 -0
  38. package/dist/core/cost-tracker.d.ts.map +1 -1
  39. package/dist/core/cost-tracker.js +53 -0
  40. package/dist/core/cost-tracker.js.map +1 -1
  41. package/dist/core/pipelines/audit-pipeline.d.ts +4 -1
  42. package/dist/core/pipelines/audit-pipeline.d.ts.map +1 -1
  43. package/dist/core/pipelines/audit-pipeline.js +60 -30
  44. package/dist/core/pipelines/audit-pipeline.js.map +1 -1
  45. package/dist/index.js +11 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/infra/audit-cache.d.ts +2 -1
  48. package/dist/infra/audit-cache.d.ts.map +1 -1
  49. package/dist/infra/audit-cache.js +18 -6
  50. package/dist/infra/audit-cache.js.map +1 -1
  51. package/dist/infra/audit-model.d.ts +72 -0
  52. package/dist/infra/audit-model.d.ts.map +1 -0
  53. package/dist/infra/audit-model.js +146 -0
  54. package/dist/infra/audit-model.js.map +1 -0
  55. package/dist/infra/audit-report-writer.d.ts +4 -0
  56. package/dist/infra/audit-report-writer.d.ts.map +1 -0
  57. package/dist/infra/audit-report-writer.js +290 -0
  58. package/dist/infra/audit-report-writer.js.map +1 -0
  59. package/dist/infra/code-metrics.d.ts +11 -0
  60. package/dist/infra/code-metrics.d.ts.map +1 -1
  61. package/dist/infra/code-metrics.js +62 -0
  62. package/dist/infra/code-metrics.js.map +1 -1
  63. package/dist/infra/embeddings.d.ts +2 -0
  64. package/dist/infra/embeddings.d.ts.map +1 -1
  65. package/dist/infra/embeddings.js +2 -2
  66. package/dist/infra/embeddings.js.map +1 -1
  67. package/dist/infra/project-report.d.ts +67 -0
  68. package/dist/infra/project-report.d.ts.map +1 -0
  69. package/dist/infra/project-report.js +159 -0
  70. package/dist/infra/project-report.js.map +1 -0
  71. package/dist/infra/repo-vectors.d.ts +31 -0
  72. package/dist/infra/repo-vectors.d.ts.map +1 -0
  73. package/dist/infra/repo-vectors.js +83 -0
  74. package/dist/infra/repo-vectors.js.map +1 -0
  75. package/dist/infra/update-check.d.ts +3 -0
  76. package/dist/infra/update-check.d.ts.map +1 -0
  77. package/dist/infra/update-check.js +84 -0
  78. package/dist/infra/update-check.js.map +1 -0
  79. package/dist/prompts/scanner.js +1 -1
  80. package/dist/prompts/synthesizer.d.ts.map +1 -1
  81. package/dist/prompts/synthesizer.js +7 -23
  82. package/dist/prompts/synthesizer.js.map +1 -1
  83. package/dist/providers/cli-provider.d.ts +1 -0
  84. package/dist/providers/cli-provider.d.ts.map +1 -1
  85. package/dist/providers/cli-provider.js +22 -2
  86. package/dist/providers/cli-provider.js.map +1 -1
  87. package/package.json +1 -1
@@ -0,0 +1,290 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
2
+ import { join } from 'path';
3
+ import { buildActionItems, buildFileHotspots, groupFindings, maxSeverity, markdownLocation, renderAiContext, renderDigest, SEVERITY_RANK, } from './audit-model.js';
4
+ function esc(value) {
5
+ return String(value ?? '')
6
+ .replace(/&/g, '&')
7
+ .replace(/</g, '&lt;')
8
+ .replace(/>/g, '&gt;')
9
+ .replace(/"/g, '&quot;');
10
+ }
11
+ function fmtUsd(n) { return `$${n.toFixed(4)}`; }
12
+ function fmtDur(ms) { return `${(ms / 1000).toFixed(1)}s`; }
13
+ function filterOptions(items) {
14
+ return items.map(([key]) => `<option value="${esc(key)}">${esc(key)}</option>`).join('');
15
+ }
16
+ function statList(items, label) {
17
+ return items.map(([key, findings]) => {
18
+ const severity = maxSeverity(findings);
19
+ return `<li><span>${esc(key)}</span><strong class="sev-text-${esc(severity)}">${findings.length}</strong><small>${esc(label)} · max ${esc(severity)}</small></li>`;
20
+ }).join('');
21
+ }
22
+ function renderCostSection(cost, durationMs) {
23
+ if (!cost)
24
+ return '';
25
+ const rows = cost.perAgent.map((a) => `
26
+ <tr>
27
+ <td>${esc(a.name)}</td>
28
+ <td>${esc(fmtUsd(a.costUsd))}</td>
29
+ <td>${a.inputTokens.toLocaleString()}</td>
30
+ <td>${a.outputTokens.toLocaleString()}</td>
31
+ </tr>`).join('');
32
+ return `
33
+ <section id="cost">
34
+ <h2>Cost &amp; Performance</h2>
35
+ <div class="cards">
36
+ <div class="card"><div class="num">${esc(fmtUsd(cost.totalUsd))}</div><div class="muted">Total Cost</div></div>
37
+ <div class="card"><div class="num">${cost.perAgent.length}</div><div class="muted">Agents</div></div>
38
+ <div class="card"><div class="num">${esc(fmtDur(durationMs))}</div><div class="muted">Duration</div></div>
39
+ <div class="card"><div class="num sev-text-medium">${esc(cost.model.replace('claude-', ''))}</div><div class="muted">Model</div></div>
40
+ </div>
41
+ ${rows ? `<table style="margin-top:14px"><thead><tr><th>Agent</th><th>Cost</th><th>Input Tokens</th><th>Output Tokens</th></tr></thead><tbody>${rows}</tbody></table>` : ''}
42
+ </section>`;
43
+ }
44
+ function renderHistorySection(history, currentStamp) {
45
+ if (history.length === 0)
46
+ return '';
47
+ const rows = history.slice().reverse().map((h, i) => {
48
+ const isCurrent = h.stamp === currentStamp;
49
+ const prev = history[history.length - 2 - i];
50
+ const critTrend = prev ? (h.criticalCount < prev.criticalCount ? '↓' : h.criticalCount > prev.criticalCount ? '↑' : '=') : '';
51
+ const critClass = critTrend === '↓' ? 'sev-text-medium' : critTrend === '↑' ? 'sev-text-critical' : '';
52
+ const link = isCurrent ? '<strong>current</strong>' : `<a href="../${esc(h.runRelDir)}/index.html">${new Date(h.createdAt).toLocaleString()}</a>`;
53
+ return `<tr${isCurrent ? ' style="background:#161b22"' : ''}>
54
+ <td>${link}</td>
55
+ <td class="sev-text-critical">${h.criticalCount} <span class="${critClass}">${critTrend}</span></td>
56
+ <td class="sev-text-high">${h.highCount}</td>
57
+ <td>${h.totalFiles}</td>
58
+ <td>${esc(fmtUsd(h.costUsd))}</td>
59
+ <td class="muted">${esc(fmtDur(h.durationMs))}</td>
60
+ </tr>`;
61
+ }).join('');
62
+ return `
63
+ <section id="history">
64
+ <h2>Run History (${history.length} runs)</h2>
65
+ <table><thead><tr><th>Run</th><th>Critical</th><th>High</th><th>Files</th><th>Cost</th><th>Duration</th></tr></thead>
66
+ <tbody>${rows}</tbody></table>
67
+ </section>`;
68
+ }
69
+ function renderHtml(report, history) {
70
+ const actions = buildActionItems(report.findings);
71
+ const hotspots = buildFileHotspots(report.findings);
72
+ const byPersona = Object.entries(groupFindings(report.findings, (f) => f.persona ?? 'local')).sort((a, b) => b[1].length - a[1].length);
73
+ const bySeverity = Object.entries(groupFindings(report.findings, (f) => f.severity)).sort((a, b) => (SEVERITY_RANK[b[0]] ?? 0) - (SEVERITY_RANK[a[0]] ?? 0));
74
+ const byCategory = Object.entries(groupFindings(report.findings, (f) => f.category)).sort((a, b) => b[1].length - a[1].length);
75
+ const actionCards = actions.map((item) => `
76
+ <article class="card action" data-severity="${esc(item.severity)}" data-category="${esc(item.category)}">
77
+ <div class="row"><span class="badge sev-${esc(item.severity)}">${esc(item.severity)}</span><span class="muted">#${item.id} · ${item.findings.length} findings · ${item.files.length} files</span></div>
78
+ <h3>${esc(item.title)}</h3><p>${esc(item.recommendation)}</p>
79
+ <details><summary>Evidence and files</summary>
80
+ <ul>${item.files.map((file) => `<li><code>${esc(file.file)}${file.lines.length ? ':' + esc(file.lines.slice(0, 8).join(',')) : ''}</code></li>`).join('')}</ul>
81
+ <ol>${item.findings.slice(0, 6).map((finding) => `<li><code>${esc(markdownLocation(finding))}</code> ${esc(finding.finding)}</li>`).join('')}</ol>
82
+ </details>
83
+ </article>`).join('');
84
+ const rows = report.findings.map((f) => `
85
+ <tr data-severity="${esc(f.severity)}" data-category="${esc(f.category)}" data-persona="${esc(f.persona ?? 'local')}" data-file="${esc(f.file)}">
86
+ <td><span class="badge sev-${esc(f.severity)}">${esc(f.severity)}</span></td><td>${esc(f.category)}</td><td>${esc(f.persona ?? 'local')}</td>
87
+ <td><code>${esc(markdownLocation(f))}</code></td><td>${esc(f.finding)}<div class="recommendation">${esc(f.recommendation)}</div></td>
88
+ </tr>`).join('');
89
+ const sectionsByDomain = report.sections ?? [];
90
+ const currentStamp = report.createdAt.replace(/[:.]/g, '-');
91
+ return `<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
92
+ <title>Aion Audit · ${esc(new Date(report.createdAt).toLocaleDateString())}</title><style>
93
+ :root{color-scheme:dark;--bg:#0d1117;--panel:#161b22;--line:#30363d;--text:#e6edf3;--muted:#8b949e;--blue:#79c0ff;--yellow:#e3b341;--red:#f85149;--green:#3fb950}
94
+ *{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,sans-serif}a{color:var(--blue)}code{font-family:ui-monospace,Menlo,monospace;font-size:12px}
95
+ .layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:#010409;padding:18px;overflow:auto}
96
+ .sidebar a{display:block;padding:5px 0;color:var(--muted);text-decoration:none;font-size:13px}.sidebar a:hover{color:var(--blue)}.sidebar .sep{border-top:1px solid var(--line);margin:10px 0}
97
+ main{padding:28px;max-width:1300px}.hero{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:22px}
98
+ h2{font-size:18px;margin:32px 0 12px;color:var(--blue);border-bottom:1px solid var(--line);padding-bottom:6px}h3{font-size:15px;margin:10px 0}
99
+ .muted,.meta{color:var(--muted);font-size:12px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px}
100
+ .num{font-size:32px;font-weight:700}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
101
+ .badge{display:inline-flex;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700;text-transform:uppercase}
102
+ .sev-critical{background:#f8514920;color:var(--red)}.sev-high{background:#e3b34120;color:var(--yellow)}.sev-medium{background:#79c0ff20;color:var(--blue)}.sev-low,.sev-info{background:#8b949e20;color:var(--muted)}
103
+ .sev-text-critical{color:var(--red)}.sev-text-high{color:var(--yellow)}.sev-text-medium{color:var(--blue)}.sev-text-low,.sev-text-info,.sev-text-local{color:var(--muted)}.sev-text-green{color:var(--green)}
104
+ .action{margin-bottom:10px}details summary{cursor:pointer;color:var(--muted);font-size:12px;margin-top:6px}
105
+ .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stats ul{list-style:none;margin:0;padding:0}.stats li{display:grid;grid-template-columns:1fr auto;gap:3px;border-bottom:1px solid #21262d;padding:8px 0}.stats small{grid-column:1/-1;color:var(--muted)}
106
+ .filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.filters input,.filters select{background:#010409;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:8px}
107
+ table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #21262d;padding:9px}th{color:var(--muted);font-size:12px}
108
+ .recommendation{color:var(--muted);font-size:12px;margin-top:4px}.hotspots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hotspot{display:grid;grid-template-columns:1fr auto;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px}
109
+ .domain-pill{display:inline-block;background:#21262d;border-radius:4px;padding:2px 7px;font-size:11px;margin:2px}
110
+ @media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.cards,.stats,.hotspots{grid-template-columns:1fr}.hero{display:block}}
111
+ </style></head><body><div class="layout">
112
+ <nav class="sidebar">
113
+ <h1 style="font-size:15px;margin:0 0 4px">Aion Audit</h1>
114
+ <p class="muted" style="margin:0 0 12px;font-size:11px">${esc(new Date(report.createdAt).toLocaleString())}</p>
115
+ <a href="../../index.html" style="color:var(--blue);font-size:12px">← Dashboard</a>
116
+ <div class="sep"></div>
117
+ <a href="#overview">Overview</a>
118
+ <a href="#cost">Cost &amp; Performance</a>
119
+ <a href="#actions">Action Plan</a>
120
+ <a href="#findings">Findings</a>
121
+ <a href="#personas">Personas</a>
122
+ <a href="#files">File Hotspots</a>
123
+ ${sectionsByDomain.length > 0 ? '<a href="#domain-breakdown">Domain Breakdown</a>' : ''}
124
+ <a href="#history">History</a>
125
+ <a href="#raw">Raw Data</a>
126
+ <div class="sep"></div>
127
+ <div class="muted" style="font-size:11px">${report.findings.length} findings · ${report.totalFiles} files</div>
128
+ </nav>
129
+ <main>
130
+
131
+ <section class="hero" id="overview">
132
+ <div><h1>Audit Report</h1><p class="muted">${esc(report.summary)}</p></div>
133
+ <div class="meta">Duration ${esc(fmtDur(report.durationMs))} · ${report.totalFiles} files · ${esc(new Date(report.createdAt).toLocaleString())}</div>
134
+ </section>
135
+ <section class="cards">
136
+ <div class="card"><div class="num">${report.findings.length}</div><div class="muted">Findings</div></div>
137
+ <div class="card"><div class="num sev-text-critical">${report.criticalCount}</div><div class="muted">Critical</div></div>
138
+ <div class="card"><div class="num sev-text-high">${report.highCount}</div><div class="muted">High</div></div>
139
+ <div class="card"><div class="num">${actions.length}</div><div class="muted">Actions</div></div>
140
+ </section>
141
+ <section><h2 style="border:none;padding:0;margin-top:18px">Top Priorities</h2><ol>${report.topPriorities.length ? report.topPriorities.map((p) => `<li>${esc(p)}</li>`).join('') : '<li>No top priorities.</li>'}</ol></section>
142
+
143
+ ${renderCostSection(report.costSummary, report.durationMs)}
144
+
145
+ <section id="actions"><h2>Action Plan (${actions.length})</h2>${actionCards || '<p class="muted">No action items.</p>'}</section>
146
+
147
+ <section id="findings"><h2>Findings (${report.findings.length})</h2>
148
+ <div class="filters">
149
+ <input id="q" placeholder="Search findings, files, recommendations">
150
+ <select id="severity"><option value="">All severities</option>${filterOptions(bySeverity)}</select>
151
+ <select id="persona"><option value="">All personas</option>${filterOptions(byPersona)}</select>
152
+ <select id="category"><option value="">All categories</option>${filterOptions(byCategory)}</select>
153
+ </div>
154
+ <table id="findingsTable"><thead><tr><th>Severity</th><th>Category</th><th>Persona</th><th>Location</th><th>Finding</th></tr></thead><tbody>${rows}</tbody></table>
155
+ </section>
156
+
157
+ <section id="personas"><h2>Personas &amp; Categories</h2>
158
+ <div class="stats">
159
+ <div class="card"><h3>By Persona</h3><ul>${statList(byPersona, 'persona')}</ul></div>
160
+ <div class="card"><h3>By Severity</h3><ul>${statList(bySeverity, 'severity')}</ul></div>
161
+ <div class="card"><h3>By Category</h3><ul>${statList(byCategory, 'category')}</ul></div>
162
+ </div>
163
+ </section>
164
+
165
+ ${sectionsByDomain.length > 0 ? `
166
+ <section id="domain-breakdown"><h2>Domain Breakdown</h2>
167
+ ${sectionsByDomain.sort((a, b) => b.findings.length - a.findings.length).map((s) => {
168
+ const crit = s.findings.filter((f) => f.severity === 'critical').length;
169
+ const high = s.findings.filter((f) => f.severity === 'high').length;
170
+ const badge = crit > 0 ? `<span class="badge sev-critical">${crit} critical</span>` : high > 0 ? `<span class="badge sev-high">${high} high</span>` : '';
171
+ return `<details style="margin-bottom:8px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px">
172
+ <summary style="cursor:pointer;color:var(--text);font-weight:600">${esc(s.domain)} ${badge} <span class="muted">${s.findings.length} finding(s)</span></summary>
173
+ <p class="muted" style="margin:8px 0">${esc(s.summary)}</p>
174
+ <ul>${s.findings.slice(0, 10).map((f) => `<li><span class="badge sev-${esc(f.severity)}">${esc(f.severity)}</span> <code>${esc(markdownLocation(f))}</code> ${esc(f.finding)}</li>`).join('')}</ul>
175
+ </details>`;
176
+ }).join('')}
177
+ </section>` : ''}
178
+
179
+ <section id="files"><h2>File Hotspots</h2>
180
+ <div class="hotspots">${hotspots.slice(0, 30).map((h) => `<div class="hotspot"><div><code>${esc(h.file)}</code><div style="margin-top:4px">${h.categories.map((c) => `<span class="domain-pill">${esc(c)}</span>`).join('')}</div></div><strong class="sev-text-${esc(h.maxSeverity)}">${h.findings}</strong></div>`).join('') || '<p class="muted">No hotspots.</p>'}</div>
181
+ </section>
182
+
183
+ ${renderHistorySection(history, currentStamp)}
184
+
185
+ <section id="raw"><h2>Raw Data</h2>
186
+ <ul><li><a href="digest.md">digest.md</a></li><li><a href="ai-context.md">ai-context.md</a></li><li><a href="report.json">report.json</a></li></ul>
187
+ </section>
188
+
189
+ </main></div>
190
+ <script>
191
+ const q=document.getElementById('q'),severity=document.getElementById('severity'),persona=document.getElementById('persona'),category=document.getElementById('category'),rows=Array.from(document.querySelectorAll('#findingsTable tbody tr'));
192
+ function applyFilters(){const text=q.value.toLowerCase();for(const row of rows){const okText=!text||row.textContent.toLowerCase().includes(text),okSeverity=!severity.value||row.dataset.severity===severity.value,okPersona=!persona.value||row.dataset.persona===persona.value,okCategory=!category.value||row.dataset.category===category.value;row.style.display=okText&&okSeverity&&okPersona&&okCategory?'':'none';}}
193
+ [q,severity,persona,category].forEach((el)=>el.addEventListener('input',applyFilters));
194
+ </script></body></html>`;
195
+ }
196
+ function renderDashboardHtml(history) {
197
+ const sorted = history.slice().reverse();
198
+ const latest = sorted[0];
199
+ const rows = sorted.map((h, i) => {
200
+ const prev = sorted[i + 1];
201
+ const critChange = prev ? h.criticalCount - prev.criticalCount : 0;
202
+ const critBadge = critChange > 0 ? `<span style="color:var(--red)">↑${critChange}</span>` : critChange < 0 ? `<span style="color:var(--green)">↓${Math.abs(critChange)}</span>` : '';
203
+ return `<tr>
204
+ <td><a href="${esc(h.runRelDir)}/index.html">${esc(new Date(h.createdAt).toLocaleString())}</a>${i === 0 ? ' <span class="badge sev-medium">latest</span>' : ''}</td>
205
+ <td class="sev-text-critical">${h.criticalCount} ${critBadge}</td>
206
+ <td class="sev-text-high">${h.highCount}</td>
207
+ <td>${h.totalFiles}</td>
208
+ <td>${esc(fmtUsd(h.costUsd))}</td>
209
+ <td class="muted">${esc(fmtDur(h.durationMs))}</td>
210
+ </tr>`;
211
+ }).join('');
212
+ const totalCost = history.reduce((s, h) => s + h.costUsd, 0);
213
+ const avgCrit = history.length > 0 ? (history.reduce((s, h) => s + h.criticalCount, 0) / history.length).toFixed(1) : '0';
214
+ return `<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
215
+ <title>Aion Audit Dashboard</title><style>
216
+ :root{color-scheme:dark;--bg:#0d1117;--panel:#161b22;--line:#30363d;--text:#e6edf3;--muted:#8b949e;--blue:#79c0ff;--yellow:#e3b341;--red:#f85149;--green:#3fb950}
217
+ *{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,sans-serif;padding:28px}a{color:var(--blue)}code{font-family:ui-monospace,Menlo,monospace;font-size:12px}
218
+ h1{font-size:22px;margin:0 0 6px}h2{font-size:16px;color:var(--blue);border-bottom:1px solid var(--line);padding-bottom:6px;margin:28px 0 12px}
219
+ .muted{color:var(--muted);font-size:12px}.badge{display:inline-flex;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700;text-transform:uppercase}
220
+ .sev-medium{background:#79c0ff20;color:var(--blue)}.sev-critical{background:#f8514920;color:var(--red)}.sev-high{background:#e3b34120;color:var(--yellow)}
221
+ .sev-text-critical{color:var(--red)}.sev-text-high{color:var(--yellow)}
222
+ .cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:28px}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px}
223
+ .num{font-size:28px;font-weight:700}
224
+ table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden}th,td{text-align:left;border-bottom:1px solid #21262d;padding:9px}th{color:var(--muted);font-size:12px}
225
+ </style></head><body>
226
+ <h1>Aion Audit Dashboard</h1>
227
+ <p class="muted">${history.length} run(s) · ${esc(new Date().toLocaleString())}</p>
228
+ ${latest ? `<p>Latest: <a href="${esc(latest.runRelDir)}/index.html">${esc(new Date(latest.createdAt).toLocaleString())}</a> — <span class="sev-text-critical">${latest.criticalCount} critical</span>, <span class="sev-text-high">${latest.highCount} high</span></p>` : ''}
229
+ <div class="cards">
230
+ <div class="card"><div class="num">${history.length}</div><div class="muted">Total Runs</div></div>
231
+ <div class="card"><div class="num sev-text-critical">${latest?.criticalCount ?? 0}</div><div class="muted">Critical (latest)</div></div>
232
+ <div class="card"><div class="num">${avgCrit}</div><div class="muted">Avg Critical</div></div>
233
+ <div class="card"><div class="num">${esc(fmtUsd(totalCost))}</div><div class="muted">Total Spent</div></div>
234
+ </div>
235
+ <h2>All Runs</h2>
236
+ <table><thead><tr><th>Run</th><th>Critical</th><th>High</th><th>Files</th><th>Cost</th><th>Duration</th></tr></thead>
237
+ <tbody>${rows}</tbody></table>
238
+ </body></html>`;
239
+ }
240
+ function updateAuditHistory(reportsDir, entry) {
241
+ const historyFile = join(reportsDir, 'audit-history.json');
242
+ let history = [];
243
+ if (existsSync(historyFile)) {
244
+ try {
245
+ history = JSON.parse(readFileSync(historyFile, 'utf8'));
246
+ }
247
+ catch { /* ignore */ }
248
+ }
249
+ history.push(entry);
250
+ if (history.length > 50)
251
+ history = history.slice(-50);
252
+ writeFileSync(historyFile, JSON.stringify(history, null, 2), 'utf8');
253
+ return history;
254
+ }
255
+ export function saveAuditReport(cwd, report, durationMs, aiContextBudget = 8000, costSummary) {
256
+ const dir = join(cwd, '.ai-runtime', 'reports');
257
+ mkdirSync(dir, { recursive: true });
258
+ const now = new Date();
259
+ const stamp = now.toISOString().replace(/[:.]/g, '-');
260
+ const createdAt = now.toISOString();
261
+ const fullReport = { ...report, durationMs, createdAt, costSummary };
262
+ const runDir = join(dir, 'audits', stamp);
263
+ mkdirSync(runDir, { recursive: true });
264
+ const paths = {
265
+ runDir,
266
+ html: join(runDir, 'index.html'),
267
+ digest: join(runDir, 'digest.md'),
268
+ aiContext: join(runDir, 'ai-context.md'),
269
+ report: join(runDir, 'report.json'),
270
+ dashboard: join(dir, 'index.html'),
271
+ };
272
+ const history = updateAuditHistory(dir, {
273
+ stamp,
274
+ createdAt,
275
+ runRelDir: `audits/${stamp}`,
276
+ criticalCount: report.criticalCount,
277
+ highCount: report.highCount,
278
+ totalFiles: report.totalFiles,
279
+ durationMs,
280
+ costUsd: costSummary?.totalUsd ?? 0,
281
+ });
282
+ writeFileSync(paths.report, JSON.stringify(fullReport, null, 2), 'utf8');
283
+ writeFileSync(paths.digest, renderDigest(fullReport), 'utf8');
284
+ writeFileSync(paths.aiContext, renderAiContext(fullReport, aiContextBudget), 'utf8');
285
+ writeFileSync(paths.html, renderHtml(fullReport, history), 'utf8');
286
+ writeFileSync(join(dir, 'index.html'), renderDashboardHtml(history), 'utf8');
287
+ writeFileSync(join(dir, 'latest-audit.json'), JSON.stringify({ ...paths, createdAt }, null, 2), 'utf8');
288
+ return paths;
289
+ }
290
+ //# sourceMappingURL=audit-report-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-report-writer.js","sourceRoot":"","sources":["../../src/infra/audit-report-writer.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,14 @@
1
+ export interface RankedFile {
2
+ file: string;
3
+ score: number;
4
+ reasons: string[];
5
+ }
6
+ export declare function rankFilesByRisk(files: string[], options?: {
7
+ churnCounts?: Map<string, number>;
8
+ depFanIn?: Map<string, number>;
9
+ semgrepFiles?: Set<string>;
10
+ cognitiveScores?: Map<string, number>;
11
+ }): RankedFile[];
1
12
  export interface ApiEndpoint {
2
13
  method: string;
3
14
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"code-metrics.d.ts","sourceRoot":"","sources":["../../src/infra/code-metrics.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAuCD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAuCtD;AAMD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAiCxD;AA4CD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,cAAc,EAAE,CAa9E;AAcD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAuB3D"}
1
+ {"version":3,"file":"code-metrics.d.ts","sourceRoot":"","sources":["../../src/infra/code-metrics.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,GACL,UAAU,EAAE,CAyCd;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAuCD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAuCtD;AAMD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAiCxD;AA4CD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,cAAc,EAAE,CAa9E;AAcD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAuB3D"}
@@ -1,6 +1,68 @@
1
1
  import { readdirSync, readFileSync, statSync } from 'fs';
2
2
  import { join, relative, extname } from 'path';
3
3
  import { spawnSync } from 'child_process';
4
+ export function rankFilesByRisk(files, options = {}) {
5
+ const { churnCounts, depFanIn, semgrepFiles, cognitiveScores } = options;
6
+ return files.map((file) => {
7
+ let score = 0;
8
+ const reasons = [];
9
+ const base = file.split('/').pop() ?? '';
10
+ const depth = file.split('/').length;
11
+ score += Math.max(0, 6 - depth) * 3;
12
+ if (/^(index|main|app|server|router|handler|controller|service|middleware|auth|api)\.[a-z]+$/.test(base)) {
13
+ score += 10;
14
+ reasons.push('key-module');
15
+ }
16
+ if (churnCounts) {
17
+ const c = churnCounts.get(file) ?? 0;
18
+ if (c > 10) {
19
+ score += 15;
20
+ reasons.push(`churn:${c}`);
21
+ }
22
+ else if (c > 5) {
23
+ score += 8;
24
+ reasons.push(`churn:${c}`);
25
+ }
26
+ else if (c > 2) {
27
+ score += 4;
28
+ reasons.push(`churn:${c}`);
29
+ }
30
+ }
31
+ if (depFanIn) {
32
+ const f = depFanIn.get(file) ?? 0;
33
+ if (f > 10) {
34
+ score += 15;
35
+ reasons.push(`dep-central:${f}`);
36
+ }
37
+ else if (f > 5) {
38
+ score += 8;
39
+ reasons.push(`dep-central:${f}`);
40
+ }
41
+ else if (f > 2) {
42
+ score += 4;
43
+ reasons.push(`dep-central:${f}`);
44
+ }
45
+ }
46
+ if (semgrepFiles?.has(file)) {
47
+ score += 12;
48
+ reasons.push('semgrep-hit');
49
+ }
50
+ if (cognitiveScores) {
51
+ const cx = cognitiveScores.get(file) ?? 0;
52
+ if (cx > 30) {
53
+ score += 10;
54
+ reasons.push(`complexity:${cx}`);
55
+ }
56
+ else if (cx > 15) {
57
+ score += 5;
58
+ reasons.push(`complexity:${cx}`);
59
+ }
60
+ }
61
+ if (/\.(test|spec)\.[a-z]+$/.test(file))
62
+ score -= 5;
63
+ return { file, score, reasons };
64
+ }).sort((a, b) => b.score - a.score);
65
+ }
4
66
  const IGNORE_DIRS = new Set([
5
67
  'node_modules', 'dist', 'build', '.git', '__pycache__',
6
68
  '.venv', 'venv', 'env', 'coverage', '.next',
@@ -1 +1 @@
1
- {"version":3,"file":"code-metrics.js","sourceRoot":"","sources":["../../src/infra/code-metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-metrics.js","sourceRoot":"","sources":["../../src/infra/code-metrics.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ export declare function embedText(text: string, maxChars: number): Float32Array;
2
+ export declare function cosineSimilarity(a: Float32Array, b: Float32Array): number;
1
3
  export interface EmbeddedEntry {
2
4
  category: string;
3
5
  filename: string;
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/infra/embeddings.ts"],"names":[],"mappings":"AAkDA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAQD,qBAAa,cAAc;IAGb,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEL,aAAa,EAAE,MAAM;IAIlD,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,SAAS;IAIX,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAWjG,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBvD,QAAQ,IAAI,OAAO;IAIb,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,SAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAgCnE"}
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/infra/embeddings.ts"],"names":[],"mappings":"AAcA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAqBtE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAWzE;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAQD,qBAAa,cAAc;IAGb,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEL,aAAa,EAAE,MAAM;IAIlD,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,SAAS;IAIX,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAWjG,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBvD,QAAQ,IAAI,OAAO;IAIb,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,SAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAgCnE"}
@@ -9,7 +9,7 @@ function hashToken(token) {
9
9
  }
10
10
  return hash >>> 0;
11
11
  }
12
- function embedText(text, maxChars) {
12
+ export function embedText(text, maxChars) {
13
13
  const vector = new Float32Array(VECTOR_DIMENSIONS);
14
14
  const tokens = text
15
15
  .slice(0, maxChars)
@@ -31,7 +31,7 @@ function embedText(text, maxChars) {
31
31
  vector[i] *= scale;
32
32
  return vector;
33
33
  }
34
- function cosineSimilarity(a, b) {
34
+ export function cosineSimilarity(a, b) {
35
35
  let dot = 0;
36
36
  let normA = 0;
37
37
  let normB = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/infra/embeddings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/infra/embeddings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { AuditReport } from '../schemas/audit.js';
2
+ export declare function latestAuditPointer(cwd: string): {
3
+ runDir?: string;
4
+ html?: string;
5
+ digest?: string;
6
+ aiContext?: string;
7
+ report?: string;
8
+ createdAt?: string;
9
+ } | null;
10
+ export declare function loadLatestAudit(cwd: string): AuditReport | null;
11
+ export declare function buildProjectReportData(cwd: string, days: number): Promise<{
12
+ projectName: string;
13
+ health: import("./health-score.js").HealthScore;
14
+ audit: {
15
+ summary: string;
16
+ findings: {
17
+ severity: "low" | "medium" | "high" | "critical" | "info";
18
+ file: string;
19
+ category: string;
20
+ finding: string;
21
+ recommendation: string;
22
+ line?: number | null | undefined;
23
+ persona?: string | undefined;
24
+ }[];
25
+ criticalCount: number;
26
+ highCount: number;
27
+ totalFiles: number;
28
+ topPriorities: string[];
29
+ sections?: {
30
+ summary: string;
31
+ findings: {
32
+ severity: "low" | "medium" | "high" | "critical" | "info";
33
+ file: string;
34
+ category: string;
35
+ finding: string;
36
+ recommendation: string;
37
+ line?: number | null | undefined;
38
+ persona?: string | undefined;
39
+ }[];
40
+ domain: string;
41
+ }[] | undefined;
42
+ } | null;
43
+ churn: import("./git-analysis.js").ChurnReport;
44
+ patterns: import("./pattern-detect.js").PatternReport;
45
+ cognitive: import("./code-metrics.js").CognitiveEntry[];
46
+ generatedAt: string;
47
+ totalFiles: number;
48
+ totalSymbols: number;
49
+ cycles: number;
50
+ hotspots: {
51
+ file: string;
52
+ fanIn: number;
53
+ fanOut: number;
54
+ }[];
55
+ apiEndpoints: import("./code-metrics.js").ApiEndpoint[];
56
+ envAudit: import("./code-metrics.js").EnvAuditResult;
57
+ secrets: import("./code-metrics.js").SecretHit[];
58
+ sbom: import("./sbom.js").SbomReport;
59
+ }>;
60
+ export declare function renderProjectMarkdown(data: Awaited<ReturnType<typeof buildProjectReportData>>): string;
61
+ export declare function renderProjectHtml(data: Awaited<ReturnType<typeof buildProjectReportData>>, graphExists: boolean): string;
62
+ export declare function writeProjectReport(cwd: string, data: Awaited<ReturnType<typeof buildProjectReportData>>, mdOnly: boolean): {
63
+ mdFile: string;
64
+ htmlFile?: string;
65
+ md: string;
66
+ };
67
+ //# sourceMappingURL=project-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-report.d.ts","sourceRoot":"","sources":["../../src/infra/project-report.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMvD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOnK;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAU/D;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAIxC,MAAM;eAAS,MAAM;gBAAU,MAAM;;;;;;GAkClE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,GAAG,MAAM,CAqDtG;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM,CAexH;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAU5K"}