@aionlabsai/aion 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -0
- package/dist/agents/base-agent.d.ts.map +1 -1
- package/dist/agents/base-agent.js +23 -12
- package/dist/agents/base-agent.js.map +1 -1
- package/dist/agents/synthesizer.d.ts +3 -0
- package/dist/agents/synthesizer.d.ts.map +1 -1
- package/dist/agents/synthesizer.js +93 -52
- package/dist/agents/synthesizer.js.map +1 -1
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/audit.js +87 -534
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/chat.d.ts.map +1 -1
- package/dist/cli/commands/chat.js +2 -1
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/commands/context.d.ts +3 -0
- package/dist/cli/commands/context.d.ts.map +1 -0
- package/dist/cli/commands/context.js +72 -0
- package/dist/cli/commands/context.js.map +1 -0
- package/dist/cli/commands/next.d.ts +3 -0
- package/dist/cli/commands/next.d.ts.map +1 -0
- package/dist/cli/commands/next.js +49 -0
- package/dist/cli/commands/next.js.map +1 -0
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +52 -400
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/search.d.ts +3 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +50 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/tree.d.ts +3 -0
- package/dist/cli/commands/tree.d.ts.map +1 -0
- package/dist/cli/commands/tree.js +85 -0
- package/dist/cli/commands/tree.js.map +1 -0
- package/dist/cli/menu.d.ts.map +1 -1
- package/dist/cli/menu.js +99 -56
- package/dist/cli/menu.js.map +1 -1
- package/dist/cli/tui.d.ts +1 -0
- package/dist/cli/tui.d.ts.map +1 -1
- package/dist/cli/tui.js +7 -3
- package/dist/cli/tui.js.map +1 -1
- package/dist/core/cost-tracker.d.ts +10 -0
- package/dist/core/cost-tracker.d.ts.map +1 -1
- package/dist/core/cost-tracker.js +53 -0
- package/dist/core/cost-tracker.js.map +1 -1
- package/dist/core/pipelines/audit-pipeline.d.ts +4 -1
- package/dist/core/pipelines/audit-pipeline.d.ts.map +1 -1
- package/dist/core/pipelines/audit-pipeline.js +60 -30
- package/dist/core/pipelines/audit-pipeline.js.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/infra/audit-cache.d.ts +2 -1
- package/dist/infra/audit-cache.d.ts.map +1 -1
- package/dist/infra/audit-cache.js +18 -6
- package/dist/infra/audit-cache.js.map +1 -1
- package/dist/infra/audit-model.d.ts +72 -0
- package/dist/infra/audit-model.d.ts.map +1 -0
- package/dist/infra/audit-model.js +146 -0
- package/dist/infra/audit-model.js.map +1 -0
- package/dist/infra/audit-report-writer.d.ts +4 -0
- package/dist/infra/audit-report-writer.d.ts.map +1 -0
- package/dist/infra/audit-report-writer.js +290 -0
- package/dist/infra/audit-report-writer.js.map +1 -0
- package/dist/infra/code-metrics.d.ts +11 -0
- package/dist/infra/code-metrics.d.ts.map +1 -1
- package/dist/infra/code-metrics.js +62 -0
- package/dist/infra/code-metrics.js.map +1 -1
- package/dist/infra/embeddings.d.ts +2 -0
- package/dist/infra/embeddings.d.ts.map +1 -1
- package/dist/infra/embeddings.js +2 -2
- package/dist/infra/embeddings.js.map +1 -1
- package/dist/infra/project-report.d.ts +67 -0
- package/dist/infra/project-report.d.ts.map +1 -0
- package/dist/infra/project-report.js +159 -0
- package/dist/infra/project-report.js.map +1 -0
- package/dist/infra/repo-vectors.d.ts +31 -0
- package/dist/infra/repo-vectors.d.ts.map +1 -0
- package/dist/infra/repo-vectors.js +83 -0
- package/dist/infra/repo-vectors.js.map +1 -0
- package/dist/infra/update-check.d.ts +3 -0
- package/dist/infra/update-check.d.ts.map +1 -0
- package/dist/infra/update-check.js +84 -0
- package/dist/infra/update-check.js.map +1 -0
- package/dist/prompts/scanner.js +1 -1
- package/dist/prompts/synthesizer.d.ts.map +1 -1
- package/dist/prompts/synthesizer.js +7 -23
- package/dist/prompts/synthesizer.js.map +1 -1
- package/dist/providers/cli-provider.d.ts +1 -0
- package/dist/providers/cli-provider.d.ts.map +1 -1
- package/dist/providers/cli-provider.js +22 -2
- package/dist/providers/cli-provider.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
2
|
+
import { dirname, join } from 'path';
|
|
1
3
|
// Pricing per million tokens (public rates as of 2025)
|
|
2
4
|
const PRICING = {
|
|
3
5
|
'claude-haiku-4-5-20251001': { input: 0.80, output: 4.00, cacheRead: 0.08, cacheWrite: 1.00 },
|
|
@@ -68,4 +70,55 @@ export class CostTracker {
|
|
|
68
70
|
return [...this.entries].sort((a, b) => b.costUsd - a.costUsd);
|
|
69
71
|
}
|
|
70
72
|
}
|
|
73
|
+
// ── Session Budget ────────────────────────────────────────────────────────────
|
|
74
|
+
const SESSION_BUDGET_FILE = join('.ai-runtime', 'session-budget.json');
|
|
75
|
+
const SESSION_TTL_MS = 2 * 60 * 60 * 1000; // 2 hours
|
|
76
|
+
const AVG_SCANNER_COST_USD = {
|
|
77
|
+
'claude-haiku-4-5-20251001': 0.08,
|
|
78
|
+
'claude-sonnet-4-6': 0.30,
|
|
79
|
+
'claude-opus-4-8': 1.20,
|
|
80
|
+
};
|
|
81
|
+
export class SessionBudget {
|
|
82
|
+
data;
|
|
83
|
+
filePath;
|
|
84
|
+
constructor(cwd, capUsd = 1.50) {
|
|
85
|
+
this.filePath = join(cwd, SESSION_BUDGET_FILE);
|
|
86
|
+
try {
|
|
87
|
+
const raw = readFileSync(this.filePath, 'utf8');
|
|
88
|
+
const parsed = JSON.parse(raw);
|
|
89
|
+
const age = Date.now() - new Date(parsed.updatedAt).getTime();
|
|
90
|
+
this.data = age < SESSION_TTL_MS
|
|
91
|
+
? { ...parsed, capUsd: Math.max(parsed.capUsd, capUsd) }
|
|
92
|
+
: { capUsd, spentUsd: 0, updatedAt: new Date().toISOString() };
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
this.data = { capUsd, spentUsd: 0, updatedAt: new Date().toISOString() };
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
remaining() {
|
|
99
|
+
return Math.max(0, this.data.capUsd - this.data.spentUsd);
|
|
100
|
+
}
|
|
101
|
+
estimatedCost(nScanners, model) {
|
|
102
|
+
const perScanner = AVG_SCANNER_COST_USD[model] ?? 0.10;
|
|
103
|
+
return nScanners * perScanner * 1.3;
|
|
104
|
+
}
|
|
105
|
+
canAfford(estimatedUsd) {
|
|
106
|
+
return this.remaining() >= estimatedUsd;
|
|
107
|
+
}
|
|
108
|
+
warningLine() {
|
|
109
|
+
const pct = this.data.capUsd > 0 ? this.remaining() / this.data.capUsd : 1;
|
|
110
|
+
if (pct < 0.30)
|
|
111
|
+
return `⚠ Session budget low: $${this.remaining().toFixed(2)} of $${this.data.capUsd.toFixed(2)} remaining`;
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
record(spentUsd) {
|
|
115
|
+
this.data.spentUsd += spentUsd;
|
|
116
|
+
this.data.updatedAt = new Date().toISOString();
|
|
117
|
+
try {
|
|
118
|
+
mkdirSync(dirname(this.filePath), { recursive: true });
|
|
119
|
+
writeFileSync(this.filePath, JSON.stringify(this.data, null, 2), 'utf8');
|
|
120
|
+
}
|
|
121
|
+
catch { /* best-effort */ }
|
|
122
|
+
}
|
|
123
|
+
}
|
|
71
124
|
//# sourceMappingURL=cost-tracker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-tracker.js","sourceRoot":"","sources":["../../src/core/cost-tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cost-tracker.js","sourceRoot":"","sources":["../../src/core/cost-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,10 @@ export declare class AuditPipeline {
|
|
|
35
35
|
private applyEvidenceGate;
|
|
36
36
|
collectSourceFiles(target: string): string[];
|
|
37
37
|
collectAuditStats(target: string): AuditFileStats;
|
|
38
|
-
prioritizeFiles(files: string[], max: number
|
|
38
|
+
prioritizeFiles(files: string[], max: number, extra?: {
|
|
39
|
+
semgrepFiles?: Set<string>;
|
|
40
|
+
hotspotFiles?: string[];
|
|
41
|
+
}): string[];
|
|
39
42
|
}
|
|
40
43
|
export {};
|
|
41
44
|
//# sourceMappingURL=audit-pipeline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-pipeline.d.ts","sourceRoot":"","sources":["../../../src/core/pipelines/audit-pipeline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audit-pipeline.d.ts","sourceRoot":"","sources":["../../../src/core/pipelines/audit-pipeline.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAgB,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAQpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAkBtD,KAAK,OAAO,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AACzD,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAgCzD,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAgBD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,SAA2B,GAAG,UAAU,CAUxG;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAqB9F;AAUD,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAJP,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,OAAO;YAGrB,mBAAmB;IAyBjC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAWxC,GAAG,CACP,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,OAAO,0BAA0B,EAAE,UAAU,EAAE,EACjE,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,WAAW,CAAC;YA4LT,aAAa;IAgB3B,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,iBAAiB;IAiBzB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAI5C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IAyDjD,eAAe,CACb,KAAK,EAAE,MAAM,EAAE,EACf,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC9D,MAAM,EAAE;CAiBZ"}
|
|
@@ -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,8 +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';
|
|
13
16
|
import { loadAuditCache, saveAuditCache, filterChangedFiles, getCachedFindingsForFiles } from '../../infra/audit-cache.js';
|
|
14
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
|
+
}
|
|
15
31
|
const SOURCE_EXTS = ['.ts', '.tsx', '.js', '.jsx', '.py', '.go', '.java', '.rb', '.rs', '.swift', '.kt', '.cs', '.cpp', '.c', '.h'];
|
|
16
32
|
const IGNORE_DIRS = new Set([
|
|
17
33
|
'node_modules', 'dist', 'build', '.git', '.worktrees', 'coverage',
|
|
@@ -151,6 +167,7 @@ export class AuditPipeline {
|
|
|
151
167
|
async run(target, numScanners, explicitDomains, options = {}) {
|
|
152
168
|
const taskId = randomUUID();
|
|
153
169
|
const worktrees = [];
|
|
170
|
+
let synthDir;
|
|
154
171
|
try {
|
|
155
172
|
const stats = this.collectAuditStats(target);
|
|
156
173
|
const allFiles = stats.auditFiles;
|
|
@@ -224,13 +241,31 @@ export class AuditPipeline {
|
|
|
224
241
|
'',
|
|
225
242
|
].filter(Boolean).join('\n'),
|
|
226
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
|
+
}
|
|
227
258
|
const scannerCtx = await this.buildScannerContext();
|
|
228
259
|
const maxFilesForAi = Math.max(1, options.maxFilesForAi ?? (this.policy.budget === 'deep' ? 120 : this.policy.budget === 'normal' ? 60 : 30));
|
|
229
|
-
const
|
|
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
|
+
});
|
|
230
265
|
scannerCtx.targetFiles = aiTargetFiles;
|
|
231
266
|
this.emit('agent:output', {
|
|
232
267
|
agentName: 'audit',
|
|
233
|
-
text: `AI file scope: ${aiTargetFiles.length}/${filesToScan.length} prioritized
|
|
268
|
+
text: `AI file scope: ${aiTargetFiles.length}/${filesToScan.length} prioritized by risk (churn + deps + semgrep). Use --max-files to change.\n`,
|
|
234
269
|
});
|
|
235
270
|
const aiScannerRuns = await this.runSequential(domains.map((domain, i) => async () => {
|
|
236
271
|
const wt = createWorktree(this.cwd, `scanner-${domain}`, taskId);
|
|
@@ -255,9 +290,8 @@ export class AuditPipeline {
|
|
|
255
290
|
};
|
|
256
291
|
}
|
|
257
292
|
}), options.scannerTimeoutMs);
|
|
258
|
-
// Synthesize
|
|
259
|
-
|
|
260
|
-
worktrees.push(['synthesizer', taskId]);
|
|
293
|
+
// Synthesize — use a temp dir (no git worktree needed, synthesizer reads no files)
|
|
294
|
+
synthDir = mkdtempSync(pathJoin(tmpdir(), 'aion-synth-'));
|
|
261
295
|
this.emit('agent:start', { agentName: 'synthesizer' });
|
|
262
296
|
const reports = [
|
|
263
297
|
compactScanReport(semgrepReport, MAX_SEMGREP_FINDINGS_FOR_SYNTHESIS),
|
|
@@ -265,12 +299,13 @@ export class AuditPipeline {
|
|
|
265
299
|
];
|
|
266
300
|
const synthStart = Date.now();
|
|
267
301
|
try {
|
|
268
|
-
const synthRun = await new SynthesizerAgent().run({ scanReports: reports, totalFiles: allFiles.length, worktreePath:
|
|
302
|
+
const synthRun = await new SynthesizerAgent().run({ scanReports: reports, totalFiles: allFiles.length, worktreePath: synthDir }, this.policy, this.onChunk);
|
|
269
303
|
this.emit('agent:done', { agentName: 'synthesizer', durationMs: synthRun.durationMs });
|
|
270
304
|
const gated = this.applyEvidenceGate({ ...synthRun.output, totalFiles: allFiles.length });
|
|
271
305
|
const deduped = this.deduplicateFindings([...cachedFindings, ...gated.findings]);
|
|
272
306
|
const finalReport = recount({ ...gated, findings: deduped });
|
|
273
307
|
saveAuditCache(this.cwd, allFiles, finalReport.findings);
|
|
308
|
+
sessionBudget.record(this.costs.totalUsd());
|
|
274
309
|
return finalReport;
|
|
275
310
|
}
|
|
276
311
|
catch (err) {
|
|
@@ -281,6 +316,7 @@ export class AuditPipeline {
|
|
|
281
316
|
const deduped = this.deduplicateFindings([...cachedFindings, ...fallback.findings]);
|
|
282
317
|
const finalReport = recount({ ...fallback, findings: deduped });
|
|
283
318
|
saveAuditCache(this.cwd, allFiles, finalReport.findings);
|
|
319
|
+
sessionBudget.record(this.costs.totalUsd());
|
|
284
320
|
return finalReport;
|
|
285
321
|
}
|
|
286
322
|
}
|
|
@@ -291,6 +327,12 @@ export class AuditPipeline {
|
|
|
291
327
|
}
|
|
292
328
|
catch { /* best-effort */ }
|
|
293
329
|
}
|
|
330
|
+
if (synthDir) {
|
|
331
|
+
try {
|
|
332
|
+
rmSync(synthDir, { recursive: true, force: true });
|
|
333
|
+
}
|
|
334
|
+
catch { /* best-effort */ }
|
|
335
|
+
}
|
|
294
336
|
}
|
|
295
337
|
}
|
|
296
338
|
async runSequential(tasks, timeoutMs = 6 * 60 * 1000) {
|
|
@@ -411,32 +453,20 @@ export class AuditPipeline {
|
|
|
411
453
|
stats.auditFiles.sort();
|
|
412
454
|
return stats;
|
|
413
455
|
}
|
|
414
|
-
prioritizeFiles(files, max) {
|
|
456
|
+
prioritizeFiles(files, max, extra) {
|
|
415
457
|
if (files.length <= max)
|
|
416
458
|
return files;
|
|
417
|
-
const
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
try {
|
|
427
|
-
const size = statSync(pathJoin(this.cwd, f)).size;
|
|
428
|
-
score += Math.min(5, Math.floor(size / 5000));
|
|
429
|
-
}
|
|
430
|
-
catch { /* skip */ }
|
|
431
|
-
if (/\.(test|spec)\.[a-z]+$/.test(f))
|
|
432
|
-
score -= 5;
|
|
433
|
-
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,
|
|
434
468
|
});
|
|
435
|
-
return
|
|
436
|
-
.sort((a, b) => b.score - a.score)
|
|
437
|
-
.slice(0, max)
|
|
438
|
-
.map((s) => s.f)
|
|
439
|
-
.sort();
|
|
469
|
+
return ranked.slice(0, max).map((r) => r.file).sort();
|
|
440
470
|
}
|
|
441
471
|
}
|
|
442
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';
|
|
@@ -19,13 +20,18 @@ import { registerExplain } from './cli/commands/explain.js';
|
|
|
19
20
|
import { registerInit } from './cli/commands/init.js';
|
|
20
21
|
import { registerDiff } from './cli/commands/diff.js';
|
|
21
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';
|
|
22
27
|
import { runNaturalLanguage } from './cli/interactive.js';
|
|
23
28
|
import { runMenu } from './cli/menu.js';
|
|
24
29
|
runMigrations();
|
|
30
|
+
await checkForUpdate();
|
|
25
31
|
program
|
|
26
32
|
.name('ai')
|
|
27
33
|
.description('Multi-agent AI engineering runtime')
|
|
28
|
-
.version(
|
|
34
|
+
.version(getCurrentVersion())
|
|
29
35
|
.option('-C, --cwd <path>', 'working directory (defaults to current directory)')
|
|
30
36
|
.argument('[request...]', 'natural language request (e.g. "corrija o bug de login")')
|
|
31
37
|
.action(async (requestWords) => {
|
|
@@ -72,6 +78,10 @@ registerExplain(program);
|
|
|
72
78
|
registerInit(program);
|
|
73
79
|
registerDiff(program);
|
|
74
80
|
registerChat(program);
|
|
81
|
+
registerContext(program);
|
|
82
|
+
registerSearch(program);
|
|
83
|
+
registerTree(program);
|
|
84
|
+
registerNext(program);
|
|
75
85
|
// Explicit menu command
|
|
76
86
|
program
|
|
77
87
|
.command('menu')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAkB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-cache.d.ts","sourceRoot":"","sources":["../../src/infra/audit-cache.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createHash } from 'crypto';
|
|
1
2
|
import { readFileSync, writeFileSync, statSync, mkdirSync } from 'fs';
|
|
2
3
|
import { join } from 'path';
|
|
3
4
|
const CACHE_FILE = '.ai-runtime/audit-cache.json';
|
|
@@ -5,7 +6,7 @@ export function loadAuditCache(cwd) {
|
|
|
5
6
|
try {
|
|
6
7
|
const content = readFileSync(join(cwd, CACHE_FILE), 'utf8');
|
|
7
8
|
const parsed = JSON.parse(content);
|
|
8
|
-
if (parsed.version !== 2)
|
|
9
|
+
if (parsed.version !== 2 && parsed.version !== 3)
|
|
9
10
|
return null;
|
|
10
11
|
return parsed;
|
|
11
12
|
}
|
|
@@ -13,12 +14,21 @@ export function loadAuditCache(cwd) {
|
|
|
13
14
|
return null;
|
|
14
15
|
}
|
|
15
16
|
}
|
|
17
|
+
function hashFile(path) {
|
|
18
|
+
try {
|
|
19
|
+
return createHash('sha1').update(readFileSync(path)).digest('hex');
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
16
25
|
export function saveAuditCache(cwd, files, findings) {
|
|
17
26
|
const entries = {};
|
|
18
27
|
for (const f of files) {
|
|
19
28
|
try {
|
|
20
|
-
const
|
|
21
|
-
|
|
29
|
+
const path = join(cwd, f);
|
|
30
|
+
const st = statSync(path);
|
|
31
|
+
entries[f] = { mtime: st.mtimeMs, size: st.size, hash: hashFile(path) };
|
|
22
32
|
}
|
|
23
33
|
catch { /* skip */ }
|
|
24
34
|
}
|
|
@@ -35,7 +45,7 @@ export function saveAuditCache(cwd, files, findings) {
|
|
|
35
45
|
persona: finding.persona,
|
|
36
46
|
});
|
|
37
47
|
}
|
|
38
|
-
const cache = { version:
|
|
48
|
+
const cache = { version: 3, files: entries, lastAuditAt: new Date().toISOString(), lastFindings };
|
|
39
49
|
mkdirSync(join(cwd, '.ai-runtime'), { recursive: true });
|
|
40
50
|
writeFileSync(join(cwd, CACHE_FILE), JSON.stringify(cache, null, 2), 'utf8');
|
|
41
51
|
}
|
|
@@ -51,8 +61,10 @@ export function filterChangedFiles(cwd, files, cache) {
|
|
|
51
61
|
continue;
|
|
52
62
|
}
|
|
53
63
|
try {
|
|
54
|
-
const
|
|
55
|
-
|
|
64
|
+
const path = join(cwd, f);
|
|
65
|
+
const st = statSync(path);
|
|
66
|
+
const currentHash = cached.hash ? hashFile(path) : undefined;
|
|
67
|
+
if (cached.hash ? currentHash !== cached.hash : st.mtimeMs !== cached.mtime || st.size !== cached.size) {
|
|
56
68
|
changed.push(f);
|
|
57
69
|
}
|
|
58
70
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-cache.js","sourceRoot":"","sources":["../../src/infra/audit-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,UAAU,GAAG,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"audit-cache.js","sourceRoot":"","sources":["../../src/infra/audit-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { AuditFinding, DomainSection } from '../schemas/audit.js';
|
|
2
|
+
export declare const SEVERITY_RANK: Record<string, number>;
|
|
3
|
+
export interface CostSummary {
|
|
4
|
+
totalUsd: number;
|
|
5
|
+
model: string;
|
|
6
|
+
perAgent: Array<{
|
|
7
|
+
name: string;
|
|
8
|
+
costUsd: number;
|
|
9
|
+
inputTokens: number;
|
|
10
|
+
outputTokens: number;
|
|
11
|
+
}>;
|
|
12
|
+
}
|
|
13
|
+
export interface AuditHistoryEntry {
|
|
14
|
+
stamp: string;
|
|
15
|
+
createdAt: string;
|
|
16
|
+
runRelDir: string;
|
|
17
|
+
criticalCount: number;
|
|
18
|
+
highCount: number;
|
|
19
|
+
totalFiles: number;
|
|
20
|
+
durationMs: number;
|
|
21
|
+
costUsd: number;
|
|
22
|
+
}
|
|
23
|
+
export interface FullSavedAuditReport {
|
|
24
|
+
findings: AuditFinding[];
|
|
25
|
+
criticalCount: number;
|
|
26
|
+
highCount: number;
|
|
27
|
+
totalFiles: number;
|
|
28
|
+
summary: string;
|
|
29
|
+
topPriorities: string[];
|
|
30
|
+
durationMs: number;
|
|
31
|
+
createdAt: string;
|
|
32
|
+
sections?: DomainSection[];
|
|
33
|
+
costSummary?: CostSummary;
|
|
34
|
+
}
|
|
35
|
+
export interface SavedAuditPaths {
|
|
36
|
+
runDir: string;
|
|
37
|
+
html: string;
|
|
38
|
+
digest: string;
|
|
39
|
+
aiContext: string;
|
|
40
|
+
report: string;
|
|
41
|
+
dashboard: string;
|
|
42
|
+
}
|
|
43
|
+
export interface ActionItem {
|
|
44
|
+
id: number;
|
|
45
|
+
title: string;
|
|
46
|
+
severity: AuditFinding['severity'];
|
|
47
|
+
category: string;
|
|
48
|
+
personas: string[];
|
|
49
|
+
files: Array<{
|
|
50
|
+
file: string;
|
|
51
|
+
lines: number[];
|
|
52
|
+
}>;
|
|
53
|
+
findings: AuditFinding[];
|
|
54
|
+
recommendation: string;
|
|
55
|
+
}
|
|
56
|
+
export interface FileHotspot {
|
|
57
|
+
file: string;
|
|
58
|
+
findings: number;
|
|
59
|
+
maxSeverity: string;
|
|
60
|
+
categories: string[];
|
|
61
|
+
personas: string[];
|
|
62
|
+
}
|
|
63
|
+
export declare function groupFindings(findings: AuditFinding[], keyFn: (finding: AuditFinding) => string): Record<string, AuditFinding[]>;
|
|
64
|
+
export declare function compact(value: string, max?: number): string;
|
|
65
|
+
export declare function uniqueSorted(values: string[]): string[];
|
|
66
|
+
export declare function maxSeverity(findings: AuditFinding[]): AuditFinding['severity'];
|
|
67
|
+
export declare function markdownLocation(finding: AuditFinding): string;
|
|
68
|
+
export declare function buildActionItems(findings: AuditFinding[]): ActionItem[];
|
|
69
|
+
export declare function buildFileHotspots(findings: AuditFinding[]): FileHotspot[];
|
|
70
|
+
export declare function renderDigest(report: FullSavedAuditReport): string;
|
|
71
|
+
export declare function renderAiContext(report: FullSavedAuditReport, budgetTokens?: number): string;
|
|
72
|
+
//# sourceMappingURL=audit-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-model.d.ts","sourceRoot":"","sources":["../../src/infra/audit-model.ts"],"names":[],"mappings":"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"}
|