@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
@@ -0,0 +1,84 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
2
+ import { join } from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ const PACKAGE_NAME = '@aionlabsai/aion';
5
+ const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000;
6
+ function cacheFile() {
7
+ const home = process.env['HOME'] ?? process.env['USERPROFILE'] ?? '/tmp';
8
+ return join(home, '.aion', 'update-check.json');
9
+ }
10
+ function readCache() {
11
+ try {
12
+ const f = cacheFile();
13
+ if (!existsSync(f))
14
+ return null;
15
+ return JSON.parse(readFileSync(f, 'utf8'));
16
+ }
17
+ catch {
18
+ return null;
19
+ }
20
+ }
21
+ function writeCache(cache) {
22
+ try {
23
+ const f = cacheFile();
24
+ mkdirSync(join(f, '..'), { recursive: true });
25
+ writeFileSync(f, JSON.stringify(cache), 'utf8');
26
+ }
27
+ catch { /* ignore */ }
28
+ }
29
+ export function getCurrentVersion() {
30
+ try {
31
+ const pkgPath = fileURLToPath(new URL('../../package.json', import.meta.url));
32
+ return JSON.parse(readFileSync(pkgPath, 'utf8')).version;
33
+ }
34
+ catch {
35
+ return '0.0.0';
36
+ }
37
+ }
38
+ async function fetchLatest() {
39
+ try {
40
+ const res = await fetch(`https://registry.npmjs.org/${PACKAGE_NAME}/latest`, {
41
+ signal: AbortSignal.timeout(3000),
42
+ });
43
+ if (!res.ok)
44
+ return null;
45
+ return (await res.json()).version ?? null;
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ }
51
+ function isNewer(a, b) {
52
+ const pa = a.split('.').map(Number);
53
+ const pb = b.split('.').map(Number);
54
+ for (let i = 0; i < 3; i++) {
55
+ const diff = (pa[i] ?? 0) - (pb[i] ?? 0);
56
+ if (diff > 0)
57
+ return true;
58
+ if (diff < 0)
59
+ return false;
60
+ }
61
+ return false;
62
+ }
63
+ export async function checkForUpdate() {
64
+ const current = getCurrentVersion();
65
+ const cache = readCache();
66
+ const now = Date.now();
67
+ if (cache && isNewer(cache.latestVersion, current)) {
68
+ const { default: chalk } = await import('chalk');
69
+ console.log('\n' +
70
+ chalk.yellow.bold(` ┌─ Update available: ${current} → ${cache.latestVersion}`) +
71
+ '\n' +
72
+ chalk.gray(` │ npm install -g ${PACKAGE_NAME}@latest`) +
73
+ '\n' +
74
+ chalk.yellow(' └─────────────────────────────────────────') +
75
+ '\n');
76
+ }
77
+ if (!cache || now - cache.checkedAt > CHECK_INTERVAL_MS) {
78
+ fetchLatest()
79
+ .then((latest) => { if (latest)
80
+ writeCache({ checkedAt: now, latestVersion: latest, currentVersion: current }); })
81
+ .catch(() => { });
82
+ }
83
+ }
84
+ //# sourceMappingURL=update-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/infra/update-check.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface ScannerContext {
5
5
  repoSummary?: string;
6
6
  depGraph?: string;
7
7
  hotspotFiles?: string[];
8
+ targetFiles?: string[];
8
9
  }
9
10
  export declare function buildScannerPrompt(domain: ScanDomain, scannerIndex: number, totalScanners: number, ctx?: ScannerContext): string;
10
11
  //# sourceMappingURL=scanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/prompts/scanner.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,gBAAgB,GAChB,cAAc,GACd,SAAS,GACT,aAAa,GACb,MAAM,GACN,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,MAAM,GACN,cAAc,GACd,YAAY,GACZ,cAAc,GACd,cAAc,CAAC;AAEnB,eAAO,MAAM,YAAY,EAAE,UAAU,EAgBpC,CAAC;AAEF,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AA8H/D,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,cAAc,GAAG,MAAM,CA2ChI"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/prompts/scanner.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,gBAAgB,GAChB,cAAc,GACd,SAAS,GACT,aAAa,GACb,MAAM,GACN,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,MAAM,GACN,cAAc,GACd,YAAY,GACZ,cAAc,GACd,cAAc,CAAC;AAEnB,eAAO,MAAM,YAAY,EAAE,UAAU,EAgBpC,CAAC;AAEF,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAiI/D,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,cAAc,GAAG,MAAM,CA4ChI"}
@@ -129,6 +129,9 @@ Read only matching sections (offset/limit 30 lines) to confirm. Report file+line
129
129
  };
130
130
  function buildContextBlock(ctx) {
131
131
  const parts = [];
132
+ if (ctx.targetFiles && ctx.targetFiles.length > 0) {
133
+ parts.push(`## Target Files For This Audit\nFocus your Read calls on these files first. Use Grep/Bash only to find evidence that points back to these files unless the user explicitly requested a broader run.\n${ctx.targetFiles.map((f) => `- ${f}`).join('\n')}`);
134
+ }
132
135
  if (ctx.repoSummary)
133
136
  parts.push(`## Repository Structure\n${ctx.repoSummary}`);
134
137
  if (ctx.depGraph)
@@ -159,10 +162,11 @@ ${cfg.grepPatterns.map((p) => `- \`${p}\``).join('\n')}
159
162
 
160
163
  ## Important
161
164
  - Do NOT read entire files — use offset/limit to read only relevant sections
165
+ - If Target Files are provided, keep the audit scoped to those files unless a grep result proves a directly related issue elsewhere
162
166
  - Do NOT report false positives — confirm each finding before including it
163
167
  - If a pattern match is benign (e.g., in a comment or test), skip it
164
168
  - Focus on REAL issues with concrete file+line evidence
165
- - Return at most 15 findings. Prioritize critical/high severity and summarize repeated instances into one finding.
169
+ - Return at most 10 findings. Prioritize critical/high severity and summarize repeated instances into one finding.
166
170
  - Keep each finding and recommendation concise, ideally under 280 characters each.
167
171
 
168
172
  ## Output
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/prompts/scanner.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,UAAU;IACV,MAAM;IACN,YAAY;IACZ,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,MAAM;IACN,cAAc;IACd,YAAY;IACZ,cAAc;IACd,cAAc;CACf,CAAC;AAIF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,aAAa,GAAqC;IACtD,GAAG,mBAAmB;IACtB,IAAI,EAAE;QACJ,KAAK,EAAE,aAAa;QACpB,YAAY,EAAE;YACZ,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa;YACtD,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS;YAC5C,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc;YACjD,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe;YAC5D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;YACpC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;SACvC;QACD,YAAY,EAAE;;;;;;;6GAO2F;KAC1G;IACD,UAAU,EAAE;QACV,KAAK,EAAE,oBAAoB;QAC3B,YAAY,EAAE;YACZ,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;YAC1C,SAAS,EAAE,UAAU;YACrB,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS;SACvC;QACD,YAAY,EAAE;;;;;;8DAM4C;KAC3D;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,kBAAkB;QACzB,YAAY,EAAE;YACZ,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ;YACvC,aAAa,EAAE,kBAAkB,EAAE,WAAW;YAC9C,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO;YAClD,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB;YACtE,eAAe,EAAE,aAAa;SAC/B;QACD,YAAY,EAAE;;;sDAGoC;KACnD;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,wBAAwB;QAC/B,YAAY,EAAE;YACZ,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB;YACvD,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,gBAAgB,EAAE,QAAQ;YACpC,aAAa,EAAE,cAAc;YAC7B,YAAY,EAAE,aAAa;SAC5B;QACD,YAAY,EAAE;;;;;8EAK4D;KAC3E;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,sBAAsB;QAC7B,YAAY,EAAE;YACZ,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB;YAClD,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;SAChE;QACD,YAAY,EAAE;;;;;0FAKwE;KACvF;IACD,OAAO,EAAE;QACP,KAAK,EAAE,iBAAiB;QACxB,YAAY,EAAE;YACZ,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS;YACtC,QAAQ,EAAE,QAAQ,EAAE,WAAW;YAC/B,iBAAiB,EAAE,cAAc,EAAE,cAAc;SAClD;QACD,YAAY,EAAE;;;;;8FAK4E;KAC3F;IACD,WAAW,EAAE;QACX,KAAK,EAAE,qBAAqB;QAC5B,YAAY,EAAE;YACZ,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW;YACxD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;YACjD,QAAQ,EAAE,YAAY,EAAE,aAAa;YACrC,YAAY,EAAE,gBAAgB;YAC9B,SAAS,EAAE,OAAO,EAAE,SAAS;SAC9B;QACD,YAAY,EAAE;;;;;;2FAMyE;KACxF;CACF,CAAC;AAEF,SAAS,iBAAiB,CAAC,GAAmB;IAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,GAAG,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,4BAA4B,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/E,IAAI,GAAG,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrE,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,8EAA8E,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/I,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAClE,CAAC;AAQD,MAAM,UAAU,kBAAkB,CAAC,MAAkB,EAAE,YAAoB,EAAE,aAAqB,EAAE,GAAoB;IACtH,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,OAAO,KAAK,GAAG,CAAC,KAAK,KAAK,YAAY,GAAG,CAAC,OAAO,aAAa;;iEAEC,MAAM;EACrE,YAAY;;;;;;;;EAQZ,GAAG,CAAC,YAAY;;;EAGhB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;qBAmBjC,MAAM;;;;;;EAMzB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/prompts/scanner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"synthesizer.d.ts","sourceRoot":"","sources":["../../src/prompts/synthesizer.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,IAAI,MAAM,CAkC/C"}
1
+ {"version":3,"file":"synthesizer.d.ts","sourceRoot":"","sources":["../../src/prompts/synthesizer.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,IAAI,MAAM,CAgB/C"}
@@ -1,34 +1,18 @@
1
+ // Synthesizer is now only responsible for: executive summary + top 5 priorities.
2
+ // Deduplication, merging, and ranking are done locally before calling Claude.
1
3
  export function buildSynthesizerPrompt() {
2
4
  return `# Role: Synthesizer Agent
3
5
 
4
- You are the final step in a multi-agent code audit. You receive findings from multiple scanner agents and produce a unified, prioritized report.
6
+ You receive a pre-merged, deduplicated list of code audit findings. Your ONLY job:
7
+ 1. Write a concise executive summary (3-5 sentences) covering the main risk areas.
8
+ 2. Pick the top 5 priorities the team should act on first — one sentence each.
5
9
 
6
10
  ## Allowed Tools
7
- - None — all input is provided in the message
8
-
9
- ## Task
10
- 1. Merge all findings from all scanners
11
- 2. Deduplicate: if two scanners found the same issue in the same file+line, keep only one
12
- 3. Rank by severity: critical → high → medium → low → info
13
- 4. Identify the top 5 priorities the team should act on first
14
- 5. Write a concise executive summary (3-5 sentences)
11
+ - None — all input is provided in the message.
15
12
 
16
13
  ## Output
17
- Your final response must be ONLY a valid JSON object no prose, no markdown fences:
14
+ ONLY a valid JSON object, no prose, no markdown fences:
18
15
  {
19
- "findings": [
20
- {
21
- "file": string,
22
- "line": number | null,
23
- "severity": "critical" | "high" | "medium" | "low" | "info",
24
- "category": "security" | "architecture" | "performance" | "testing" | "error-handling" | "types" | "maintainability" | "token-usage",
25
- "finding": string,
26
- "recommendation": string
27
- }
28
- ],
29
- "criticalCount": number,
30
- "highCount": number,
31
- "totalFiles": number,
32
16
  "summary": string,
33
17
  "topPriorities": string[]
34
18
  }`;
@@ -1 +1 @@
1
- {"version":3,"file":"synthesizer.js","sourceRoot":"","sources":["../../src/prompts/synthesizer.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCP,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"synthesizer.js","sourceRoot":"","sources":["../../src/prompts/synthesizer.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;EAcP,CAAC;AACH,CAAC"}
@@ -2,6 +2,7 @@ import type { ProviderName } from '../core/runtime-policy.js';
2
2
  export type { ProviderRunInput, AgentProvider } from './types.js';
3
3
  export declare const AGENT_TOOLS: Record<string, string[]>;
4
4
  import type { ProviderRunInput, AgentProvider } from './types.js';
5
+ export declare function safeProcessEnv(extra?: Record<string, string | undefined>): NodeJS.ProcessEnv;
5
6
  export declare class ClaudeCliProvider implements AgentProvider {
6
7
  readonly name: "claude";
7
8
  run(input: ProviderRunInput, onChunk?: (agentName: string, text: string) => void): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"cli-provider.d.ts","sourceRoot":"","sources":["../../src/providers/cli-provider.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,2BAA2B,CAAC;AAI7E,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOlE,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAQhD,CAAC;AAKF,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA4DlE,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAE5B,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CA+BzG;AAED,qBAAa,gBAAiB,YAAW,aAAa;IACpD,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAE3B,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CAyBzG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAUvG"}
1
+ {"version":3,"file":"cli-provider.d.ts","sourceRoot":"","sources":["../../src/providers/cli-provider.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,2BAA2B,CAAC;AAI7E,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOlE,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAQhD,CAAC;AAKF,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElE,wBAAgB,cAAc,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GAAG,MAAM,CAAC,UAAU,CAehG;AA4DD,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAE5B,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CA+BzG;AAED,qBAAa,gBAAiB,YAAW,aAAa;IACpD,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAE3B,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CA2BzG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAUvG"}
@@ -19,11 +19,29 @@ export const AGENT_TOOLS = {
19
19
  qa: ['Bash', 'Read'],
20
20
  };
21
21
  const DEFAULT_TOOLS = ['Read', 'Glob', 'Grep'];
22
+ export function safeProcessEnv(extra = {}) {
23
+ const allowed = [
24
+ 'PATH', 'HOME', 'USER', 'SHELL', 'TMPDIR', 'TEMP', 'TMP',
25
+ 'LANG', 'LC_ALL', 'TERM', 'COLORTERM',
26
+ 'ANTHROPIC_BASE_URL', 'CLAUDE_CODE_USE_BEDROCK', 'CLAUDE_CODE_USE_VERTEX',
27
+ 'OPENROUTER_BASE_URL', 'AI_RUNTIME_CODEX_MODEL',
28
+ ];
29
+ const env = {};
30
+ for (const key of allowed) {
31
+ if (process.env[key])
32
+ env[key] = process.env[key];
33
+ }
34
+ for (const [key, value] of Object.entries(extra)) {
35
+ if (value !== undefined)
36
+ env[key] = value;
37
+ }
38
+ return env;
39
+ }
22
40
  function runProcess(command, args, cwd, agentName, maxOutputChars, onChunk) {
23
41
  return new Promise((resolve, reject) => {
24
42
  const proc = spawn(command, args, {
25
43
  cwd,
26
- env: process.env,
44
+ env: safeProcessEnv(),
27
45
  stdio: ['ignore', 'pipe', 'pipe'],
28
46
  });
29
47
  let stdout = '';
@@ -114,11 +132,13 @@ export class CodexCliProvider {
114
132
  '-s', 'workspace-write',
115
133
  '-a', 'never',
116
134
  '--ephemeral',
117
- '--ignore-rules',
118
135
  '--color', 'never',
119
136
  '-o', outputFile,
120
137
  prompt,
121
138
  ];
139
+ if (process.env['AION_CODEX_IGNORE_RULES'] === '1') {
140
+ args.splice(args.indexOf('--color'), 0, '--ignore-rules');
141
+ }
122
142
  try {
123
143
  await runProcess('codex', args, input.cwd, input.agentName, input.policy.maxOutputChars, onChunk);
124
144
  onChunk?.(input.agentName, USAGE_UNAVAILABLE);
@@ -1 +1 @@
1
- {"version":3,"file":"cli-provider.js","sourceRoot":"","sources":["../../src/providers/cli-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-provider.js","sourceRoot":"","sources":["../../src/providers/cli-provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aionlabsai/aion",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Multi-agent AI engineering runtime — audit, fix, graph, analyze",
5
5
  "type": "module",
6
6
  "bin": {
@@ -8,10 +8,11 @@
8
8
  "ai-runtime": "dist/index.js"
9
9
  },
10
10
  "scripts": {
11
- "build": "tsc",
12
- "test": "npm run build && node --test \"dist/**/*.test.js\"",
11
+ "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
12
+ "build": "npm run clean && tsc",
13
+ "test": "npm run build && node --import tsx --test \"src/**/*.test.ts\"",
13
14
  "test:unit": "npm run test",
14
- "test:scale": "npm run build && node --test \"dist/core/pipelines/audit-pipeline.test.js\"",
15
+ "test:scale": "npm run build && node --import tsx --test \"src/core/pipelines/audit-pipeline.test.ts\"",
15
16
  "smoke:manus": "npm run dev -- --cwd /home/bruno/Documents/GitHub/Manus_Private audit . -n 1",
16
17
  "dev": "tsx src/index.ts",
17
18
  "start": "node dist/index.js",
@@ -26,26 +27,30 @@
26
27
  "node": ">=18.0.0"
27
28
  },
28
29
  "keywords": [
29
- "ai", "audit", "multi-agent", "code-analysis", "security", "cli"
30
+ "ai",
31
+ "audit",
32
+ "multi-agent",
33
+ "code-analysis",
34
+ "security",
35
+ "cli"
30
36
  ],
31
37
  "author": "Bruno Inácio <contact@walo.us>",
32
38
  "license": "MIT",
33
39
  "dependencies": {
34
- "@anthropic-ai/sdk": "^0.100.1",
35
- "@xenova/transformers": "^2.17.2",
36
- "chalk": "^5.3.0",
37
- "commander": "^13.0.0",
38
- "dotenv": "^16.4.5",
39
- "ora": "^8.0.1",
40
- "tree-sitter": "^0.21.1",
41
- "tree-sitter-typescript": "^0.23.2",
42
- "ts-morph": "^28.0.0",
43
- "web-tree-sitter": "^0.26.9",
44
- "zod": "^3.23.8"
40
+ "@anthropic-ai/sdk": "0.100.1",
41
+ "chalk": "5.6.2",
42
+ "commander": "13.1.0",
43
+ "dotenv": "16.6.1",
44
+ "ora": "8.2.0",
45
+ "tree-sitter": "0.21.1",
46
+ "tree-sitter-typescript": "0.23.2",
47
+ "ts-morph": "28.0.0",
48
+ "web-tree-sitter": "0.26.9",
49
+ "zod": "3.25.76"
45
50
  },
46
51
  "devDependencies": {
47
- "@types/node": "^22.0.0",
48
- "tsx": "^4.22.4",
49
- "typescript": "^5.4.0"
52
+ "@types/node": "22.19.19",
53
+ "tsx": "4.22.4",
54
+ "typescript": "5.9.3"
50
55
  }
51
56
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=planner.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planner.test.d.ts","sourceRoot":"","sources":["../../src/agents/planner.test.ts"],"names":[],"mappings":""}
@@ -1,21 +0,0 @@
1
- import test from 'node:test';
2
- import assert from 'node:assert/strict';
3
- import { PlannerAgent } from './planner.js';
4
- class TestPlannerAgent extends PlannerAgent {
5
- exposeMessage(input) {
6
- return this.buildUserMessage(input);
7
- }
8
- }
9
- test('PlannerAgent includes deterministic repository index context', () => {
10
- const agent = new TestPlannerAgent();
11
- const message = agent.exposeMessage({
12
- taskId: 'task-1',
13
- bugDescription: 'fix auth',
14
- codebaseSummary: '',
15
- repoContext: 'Files:\n src/auth.ts',
16
- worktreePath: '/tmp/repo',
17
- });
18
- assert.match(message, /Deterministic repository index context/);
19
- assert.match(message, /src\/auth.ts/);
20
- });
21
- //# sourceMappingURL=planner.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planner.test.js","sourceRoot":"","sources":["../../src/agents/planner.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAqB,MAAM,cAAc,CAAC;AAE/D,MAAM,gBAAiB,SAAQ,YAAY;IACzC,aAAa,CAAC,KAAmB;QAC/B,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;CACF;AAED,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;IACxE,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC;QAClC,MAAM,EAAE,QAAQ;QAChB,cAAc,EAAE,UAAU;QAC1B,eAAe,EAAE,EAAE;QACnB,WAAW,EAAE,uBAAuB;QACpC,YAAY,EAAE,WAAW;KAC1B,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=cost-tracker.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cost-tracker.test.d.ts","sourceRoot":"","sources":["../../src/core/cost-tracker.test.ts"],"names":[],"mappings":""}
@@ -1,36 +0,0 @@
1
- import test from 'node:test';
2
- import assert from 'node:assert/strict';
3
- import { CostTracker } from './cost-tracker.js';
4
- test('CostTracker summarizes real SDK usage', () => {
5
- const costs = new CostTracker();
6
- costs.record('scanner-security', 'claude-haiku-4-5', {
7
- inputTokens: 1_000,
8
- outputTokens: 500,
9
- cacheReadTokens: 200,
10
- cacheWriteTokens: 100,
11
- }, 123);
12
- assert.equal(costs.usageAvailable(), true);
13
- assert.equal(costs.totalTokens().inputTokens, 1_000);
14
- assert.match(costs.summary(), /cost: \$0\.00/);
15
- assert.match(costs.summary(), /tokens: 1000in 500out/);
16
- });
17
- test('CostTracker reports unavailable usage for CLI providers', () => {
18
- const costs = new CostTracker();
19
- costs.recordUnavailable('scanner-security');
20
- assert.equal(costs.usageAvailable(), false);
21
- assert.match(costs.summary(), /cost: unavailable/);
22
- assert.match(costs.summary(), /usage unavailable: scanner-security/);
23
- });
24
- test('real usage clears unavailable marker for the same agent', () => {
25
- const costs = new CostTracker();
26
- costs.recordUnavailable('scanner-security');
27
- costs.record('scanner-security', 'claude-haiku-4-5', {
28
- inputTokens: 1,
29
- outputTokens: 1,
30
- cacheReadTokens: 0,
31
- cacheWriteTokens: 0,
32
- }, 1);
33
- assert.equal(costs.usageAvailable(), true);
34
- assert.doesNotMatch(costs.summary(), /usage unavailable/);
35
- });
36
- //# sourceMappingURL=cost-tracker.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cost-tracker.test.js","sourceRoot":"","sources":["../../src/core/cost-tracker.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACjD,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IAEhC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,EAAE;QACnD,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,GAAG;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;KACtB,EAAE,GAAG,CAAC,CAAC;IAER,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACrD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;IAC/C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;IACnE,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IAEhC,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAE5C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,qCAAqC,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;IACnE,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IAEhC,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAC5C,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,EAAE;QACnD,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,CAAC;QAClB,gBAAgB,EAAE,CAAC;KACpB,EAAE,CAAC,CAAC,CAAC;IAEN,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=audit-pipeline.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-pipeline.test.d.ts","sourceRoot":"","sources":["../../../src/core/pipelines/audit-pipeline.test.ts"],"names":[],"mappings":""}
@@ -1,135 +0,0 @@
1
- import test from 'node:test';
2
- import assert from 'node:assert/strict';
3
- import { mkdtempSync, mkdirSync, writeFileSync, rmSync } from 'fs';
4
- import { join } from 'path';
5
- import { tmpdir } from 'os';
6
- import { AuditPipeline, compactScanReport, fallbackAuditReport } from './audit-pipeline.js';
7
- import { createRuntimePolicy } from '../runtime-policy.js';
8
- import { CostTracker } from '../cost-tracker.js';
9
- function makeRepo() {
10
- const dir = mkdtempSync(join(tmpdir(), 'audit-pipeline-'));
11
- for (const sub of ['src', 'node_modules/pkg', 'dist', '.git', 'nested/app']) {
12
- mkdirSync(join(dir, sub), { recursive: true });
13
- }
14
- writeFileSync(join(dir, 'src/app.ts'), 'export function app() { return 1; }\n');
15
- writeFileSync(join(dir, 'src/app.test.ts'), 'test("x", () => {});\n');
16
- writeFileSync(join(dir, 'src/types.d.ts'), 'declare const x: string;\n');
17
- writeFileSync(join(dir, 'src/bundle.min.js'), 'var x=1;\n');
18
- writeFileSync(join(dir, 'src/large.py'), 'x = 1\n'.repeat(50_000));
19
- writeFileSync(join(dir, 'node_modules/pkg/index.ts'), 'export const ignored = true;\n');
20
- writeFileSync(join(dir, 'dist/out.js'), 'console.log(1);\n');
21
- writeFileSync(join(dir, 'nested/app/service.py'), 'def run():\n return True\n');
22
- return dir;
23
- }
24
- function pipeline(cwd) {
25
- return new AuditPipeline(cwd, createRuntimePolicy(), new CostTracker(), () => { }, () => { });
26
- }
27
- test('collectAuditStats filters generated, test, dependency, and oversized files', () => {
28
- const dir = makeRepo();
29
- try {
30
- const stats = pipeline(dir).collectAuditStats('.');
31
- assert.deepEqual(stats.auditFiles, ['nested/app/service.py', 'src/app.ts']);
32
- assert.equal(stats.oversizedFiles, 1);
33
- assert.equal(stats.byExtension['.ts'], 3);
34
- assert.equal(stats.byExtension['.js'], 1);
35
- assert.equal(stats.byExtension['.py'], 2);
36
- assert.ok(stats.ignoredDirs >= 3);
37
- }
38
- finally {
39
- rmSync(dir, { recursive: true, force: true });
40
- }
41
- });
42
- test('collectAuditStats respects target subdirectory', () => {
43
- const dir = makeRepo();
44
- try {
45
- const stats = pipeline(dir).collectAuditStats('nested');
46
- assert.deepEqual(stats.auditFiles, ['nested/app/service.py']);
47
- assert.equal(stats.totalFiles, 1);
48
- }
49
- finally {
50
- rmSync(dir, { recursive: true, force: true });
51
- }
52
- });
53
- test('collectAuditStats scales across thousands of files without including ignored dirs', () => {
54
- const dir = mkdtempSync(join(tmpdir(), 'audit-scale-'));
55
- try {
56
- mkdirSync(join(dir, 'src'), { recursive: true });
57
- mkdirSync(join(dir, 'node_modules/pkg'), { recursive: true });
58
- for (let i = 0; i < 2_100; i++) {
59
- writeFileSync(join(dir, 'src', `file-${i}.ts`), `export const value${i} = ${i};\n`);
60
- }
61
- for (let i = 0; i < 500; i++) {
62
- writeFileSync(join(dir, 'node_modules/pkg', `ignored-${i}.ts`), 'export const ignored = true;\n');
63
- }
64
- const started = Date.now();
65
- const stats = pipeline(dir).collectAuditStats('.');
66
- assert.equal(stats.auditFiles.length, 2_100);
67
- assert.equal(stats.auditFiles.some((file) => file.includes('node_modules')), false);
68
- assert.ok(Date.now() - started < 2_000);
69
- }
70
- finally {
71
- rmSync(dir, { recursive: true, force: true });
72
- }
73
- });
74
- test('compactScanReport limits findings and text size', () => {
75
- const report = compactScanReport({
76
- filesScanned: Array.from({ length: 100 }, (_, i) => `file-${i}.ts`),
77
- summary: 'summary '.repeat(200),
78
- findings: Array.from({ length: 20 }, (_, i) => ({
79
- file: `file-${i}.ts`,
80
- line: i + 1,
81
- severity: i % 2 === 0 ? 'critical' : 'low',
82
- category: 'security',
83
- finding: 'finding '.repeat(100),
84
- recommendation: 'recommendation '.repeat(100),
85
- })),
86
- }, 5);
87
- assert.equal(report.findings.length, 5);
88
- assert.equal(report.filesScanned.length, 80);
89
- assert.ok(report.summary.length <= 703);
90
- assert.ok(report.findings.every((finding) => finding.finding.length <= 363));
91
- });
92
- test('fallbackAuditReport deduplicates and ranks findings locally', () => {
93
- const report = fallbackAuditReport([
94
- {
95
- filesScanned: ['a.ts'],
96
- summary: 'first',
97
- findings: [{
98
- file: 'a.ts',
99
- line: 1,
100
- severity: 'low',
101
- category: 'testing',
102
- finding: 'duplicate',
103
- recommendation: 'fix',
104
- }],
105
- },
106
- {
107
- filesScanned: ['a.ts', 'b.ts'],
108
- summary: 'second',
109
- findings: [
110
- {
111
- file: 'a.ts',
112
- line: 1,
113
- severity: 'low',
114
- category: 'testing',
115
- finding: 'duplicate',
116
- recommendation: 'fix',
117
- },
118
- {
119
- file: 'b.ts',
120
- line: 2,
121
- severity: 'critical',
122
- category: 'security',
123
- finding: 'critical issue',
124
- recommendation: 'fix now',
125
- },
126
- ],
127
- },
128
- ], 42);
129
- assert.equal(report.totalFiles, 42);
130
- assert.equal(report.findings.length, 2);
131
- assert.equal(report.findings[0]?.severity, 'critical');
132
- assert.equal(report.criticalCount, 1);
133
- assert.equal(report.highCount, 0);
134
- });
135
- //# sourceMappingURL=audit-pipeline.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-pipeline.test.js","sourceRoot":"","sources":["../../../src/core/pipelines/audit-pipeline.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function buildRepoContext(cwd: string, target: string): string;
2
- //# sourceMappingURL=repo-context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repo-context.d.ts","sourceRoot":"","sources":["../../src/core/repo-context.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQpE"}
@@ -1,12 +0,0 @@
1
- import { formatRepoQuery, loadRepoIndex, queryRepoIndex } from '../infra/repo-query.js';
2
- export function buildRepoContext(cwd, target) {
3
- const index = loadRepoIndex(cwd);
4
- if (!index)
5
- return '';
6
- const result = queryRepoIndex(index, target, 8);
7
- return [
8
- `Repository index: ${index.stats.files} files, ${index.stats.symbols} symbols, ${index.stats.imports} imports, ${index.stats.chunks} chunks.`,
9
- formatRepoQuery(result),
10
- ].join('\n\n');
11
- }
12
- //# sourceMappingURL=repo-context.js.map