@avi770/testteam 1.2.0

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 (325) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/LICENSE +21 -0
  3. package/README.md +167 -0
  4. package/agents/01-analyst.ts +100 -0
  5. package/agents/02-seed-architect.ts +59 -0
  6. package/agents/03-test-generator.ts +191 -0
  7. package/agents/04-unit-runner.ts +160 -0
  8. package/agents/05-browser-crawler.ts +790 -0
  9. package/agents/06-api-exerciser.ts +311 -0
  10. package/agents/07-security-scout.ts +188 -0
  11. package/agents/08-a11y-guardian.ts +212 -0
  12. package/agents/09-healer.ts +228 -0
  13. package/agents/10-reporter.ts +266 -0
  14. package/agents/11-fixer.ts +253 -0
  15. package/agents/12-ux-inspector.ts +444 -0
  16. package/agents/13-performance-profiler.ts +271 -0
  17. package/agents/14-data-integrity-auditor.ts +417 -0
  18. package/agents/15-regression-sentinel.ts +307 -0
  19. package/agents/16-chaos-agent.ts +228 -0
  20. package/agents/17-documentation-validator.ts +266 -0
  21. package/agents/18-integration-watchdog.ts +178 -0
  22. package/agents/19-tenant-isolation-auditor.ts +199 -0
  23. package/agents/20-workflow-completion-tester.ts +203 -0
  24. package/agents/21-state-session-tester.ts +262 -0
  25. package/agents/22-email-notification-verifier.ts +244 -0
  26. package/agents/23-migration-tester.ts +80 -0
  27. package/agents/__tests__/01-analyst.test.ts +188 -0
  28. package/agents/__tests__/02-seed-architect.test.ts +152 -0
  29. package/agents/__tests__/03-test-generator-full.test.ts +321 -0
  30. package/agents/__tests__/03-test-generator.test.ts +318 -0
  31. package/agents/__tests__/04-unit-runner.test.ts +320 -0
  32. package/agents/__tests__/05-browser-crawler-beta.test.ts +492 -0
  33. package/agents/__tests__/05-browser-crawler-release.test.ts +412 -0
  34. package/agents/__tests__/05-browser-crawler-uat.test.ts +578 -0
  35. package/agents/__tests__/05-browser-crawler.test.ts +518 -0
  36. package/agents/__tests__/06-api-exerciser.test.ts +619 -0
  37. package/agents/__tests__/07-security-scout.test.ts +382 -0
  38. package/agents/__tests__/08-a11y-guardian.test.ts +530 -0
  39. package/agents/__tests__/09-healer.test.ts +384 -0
  40. package/agents/__tests__/10-reporter.test.ts +366 -0
  41. package/agents/__tests__/11-fixer.test.ts +406 -0
  42. package/agents/__tests__/12-ux-inspector-extended.test.ts +465 -0
  43. package/agents/__tests__/12-ux-inspector.test.ts +443 -0
  44. package/agents/__tests__/13-performance-profiler.test.ts +411 -0
  45. package/agents/__tests__/14-data-integrity-auditor-extended.test.ts +573 -0
  46. package/agents/__tests__/14-data-integrity-auditor.test.ts +407 -0
  47. package/agents/__tests__/15-regression-sentinel.test.ts +657 -0
  48. package/agents/__tests__/16-chaos-agent.test.ts +427 -0
  49. package/agents/__tests__/17-documentation-validator.test.ts +402 -0
  50. package/agents/__tests__/18-integration-watchdog.test.ts +263 -0
  51. package/agents/__tests__/19-tenant-isolation-auditor.test.ts +400 -0
  52. package/agents/__tests__/20-workflow-completion-tester.test.ts +586 -0
  53. package/agents/__tests__/21-state-session-tester.test.ts +374 -0
  54. package/agents/__tests__/22-email-notification-verifier.test.ts +441 -0
  55. package/agents/__tests__/23-migration-tester.test.ts +145 -0
  56. package/agents/__tests__/base-agent.test.ts +188 -0
  57. package/agents/__tests__/registry.test.ts +218 -0
  58. package/agents/base-agent.ts +77 -0
  59. package/agents/registry.ts +136 -0
  60. package/baselines/api-schemas/.gitkeep +0 -0
  61. package/baselines/performance/.gitkeep +0 -0
  62. package/baselines/screenshots/.gitkeep +0 -0
  63. package/bin/testteam.js +10 -0
  64. package/core/__tests__/ci-output.test.ts +430 -0
  65. package/core/__tests__/cli.test.ts +387 -0
  66. package/core/__tests__/config.test.ts +78 -0
  67. package/core/__tests__/cost-tracker.test.ts +158 -0
  68. package/core/__tests__/evidence.test.ts +265 -0
  69. package/core/__tests__/fix-loop.test.ts +210 -0
  70. package/core/__tests__/health-check.test.ts +44 -0
  71. package/core/__tests__/init.test.ts +609 -0
  72. package/core/__tests__/integration.test.ts +204 -0
  73. package/core/__tests__/license-gen.test.ts +227 -0
  74. package/core/__tests__/license.test.ts +326 -0
  75. package/core/__tests__/multi-browser.test.ts +278 -0
  76. package/core/__tests__/orchestrator.test.ts +519 -0
  77. package/core/__tests__/phase-gate.test.ts +43 -0
  78. package/core/__tests__/report-html.test.ts +398 -0
  79. package/core/__tests__/report-upload.test.ts +325 -0
  80. package/core/__tests__/run-counter.test.ts +234 -0
  81. package/core/ci-output.ts +240 -0
  82. package/core/cli.ts +232 -0
  83. package/core/config.ts +178 -0
  84. package/core/cost-tracker.ts +59 -0
  85. package/core/evidence.ts +132 -0
  86. package/core/fix-loop.ts +85 -0
  87. package/core/health-check.ts +54 -0
  88. package/core/init.ts +546 -0
  89. package/core/license-gen.ts +212 -0
  90. package/core/license.ts +211 -0
  91. package/core/messages.ts +67 -0
  92. package/core/multi-browser.ts +136 -0
  93. package/core/orchestrator.ts +354 -0
  94. package/core/phase-gate.ts +55 -0
  95. package/core/report-html.ts +657 -0
  96. package/core/report-upload.ts +188 -0
  97. package/core/run-counter.ts +175 -0
  98. package/core/types.ts +57 -0
  99. package/dist/agents/01-analyst.d.ts +11 -0
  100. package/dist/agents/01-analyst.d.ts.map +1 -0
  101. package/dist/agents/01-analyst.js +75 -0
  102. package/dist/agents/01-analyst.js.map +1 -0
  103. package/dist/agents/02-seed-architect.d.ts +11 -0
  104. package/dist/agents/02-seed-architect.d.ts.map +1 -0
  105. package/dist/agents/02-seed-architect.js +51 -0
  106. package/dist/agents/02-seed-architect.js.map +1 -0
  107. package/dist/agents/03-test-generator.d.ts +9 -0
  108. package/dist/agents/03-test-generator.d.ts.map +1 -0
  109. package/dist/agents/03-test-generator.js +167 -0
  110. package/dist/agents/03-test-generator.js.map +1 -0
  111. package/dist/agents/04-unit-runner.d.ts +9 -0
  112. package/dist/agents/04-unit-runner.d.ts.map +1 -0
  113. package/dist/agents/04-unit-runner.js +113 -0
  114. package/dist/agents/04-unit-runner.js.map +1 -0
  115. package/dist/agents/05-browser-crawler.d.ts +30 -0
  116. package/dist/agents/05-browser-crawler.d.ts.map +1 -0
  117. package/dist/agents/05-browser-crawler.js +685 -0
  118. package/dist/agents/05-browser-crawler.js.map +1 -0
  119. package/dist/agents/06-api-exerciser.d.ts +23 -0
  120. package/dist/agents/06-api-exerciser.d.ts.map +1 -0
  121. package/dist/agents/06-api-exerciser.js +253 -0
  122. package/dist/agents/06-api-exerciser.js.map +1 -0
  123. package/dist/agents/07-security-scout.d.ts +11 -0
  124. package/dist/agents/07-security-scout.d.ts.map +1 -0
  125. package/dist/agents/07-security-scout.js +142 -0
  126. package/dist/agents/07-security-scout.js.map +1 -0
  127. package/dist/agents/08-a11y-guardian.d.ts +13 -0
  128. package/dist/agents/08-a11y-guardian.d.ts.map +1 -0
  129. package/dist/agents/08-a11y-guardian.js +176 -0
  130. package/dist/agents/08-a11y-guardian.js.map +1 -0
  131. package/dist/agents/09-healer.d.ts +33 -0
  132. package/dist/agents/09-healer.d.ts.map +1 -0
  133. package/dist/agents/09-healer.js +167 -0
  134. package/dist/agents/09-healer.js.map +1 -0
  135. package/dist/agents/10-reporter.d.ts +26 -0
  136. package/dist/agents/10-reporter.d.ts.map +1 -0
  137. package/dist/agents/10-reporter.js +215 -0
  138. package/dist/agents/10-reporter.js.map +1 -0
  139. package/dist/agents/11-fixer.d.ts +26 -0
  140. package/dist/agents/11-fixer.d.ts.map +1 -0
  141. package/dist/agents/11-fixer.js +195 -0
  142. package/dist/agents/11-fixer.js.map +1 -0
  143. package/dist/agents/12-ux-inspector.d.ts +15 -0
  144. package/dist/agents/12-ux-inspector.d.ts.map +1 -0
  145. package/dist/agents/12-ux-inspector.js +364 -0
  146. package/dist/agents/12-ux-inspector.js.map +1 -0
  147. package/dist/agents/13-performance-profiler.d.ts +13 -0
  148. package/dist/agents/13-performance-profiler.d.ts.map +1 -0
  149. package/dist/agents/13-performance-profiler.js +216 -0
  150. package/dist/agents/13-performance-profiler.js.map +1 -0
  151. package/dist/agents/14-data-integrity-auditor.d.ts +12 -0
  152. package/dist/agents/14-data-integrity-auditor.d.ts.map +1 -0
  153. package/dist/agents/14-data-integrity-auditor.js +356 -0
  154. package/dist/agents/14-data-integrity-auditor.js.map +1 -0
  155. package/dist/agents/15-regression-sentinel.d.ts +25 -0
  156. package/dist/agents/15-regression-sentinel.d.ts.map +1 -0
  157. package/dist/agents/15-regression-sentinel.js +251 -0
  158. package/dist/agents/15-regression-sentinel.js.map +1 -0
  159. package/dist/agents/16-chaos-agent.d.ts +9 -0
  160. package/dist/agents/16-chaos-agent.d.ts.map +1 -0
  161. package/dist/agents/16-chaos-agent.js +207 -0
  162. package/dist/agents/16-chaos-agent.js.map +1 -0
  163. package/dist/agents/17-documentation-validator.d.ts +31 -0
  164. package/dist/agents/17-documentation-validator.d.ts.map +1 -0
  165. package/dist/agents/17-documentation-validator.js +246 -0
  166. package/dist/agents/17-documentation-validator.js.map +1 -0
  167. package/dist/agents/18-integration-watchdog.d.ts +10 -0
  168. package/dist/agents/18-integration-watchdog.d.ts.map +1 -0
  169. package/dist/agents/18-integration-watchdog.js +138 -0
  170. package/dist/agents/18-integration-watchdog.js.map +1 -0
  171. package/dist/agents/19-tenant-isolation-auditor.d.ts +9 -0
  172. package/dist/agents/19-tenant-isolation-auditor.d.ts.map +1 -0
  173. package/dist/agents/19-tenant-isolation-auditor.js +166 -0
  174. package/dist/agents/19-tenant-isolation-auditor.js.map +1 -0
  175. package/dist/agents/20-workflow-completion-tester.d.ts +12 -0
  176. package/dist/agents/20-workflow-completion-tester.d.ts.map +1 -0
  177. package/dist/agents/20-workflow-completion-tester.js +159 -0
  178. package/dist/agents/20-workflow-completion-tester.js.map +1 -0
  179. package/dist/agents/21-state-session-tester.d.ts +10 -0
  180. package/dist/agents/21-state-session-tester.d.ts.map +1 -0
  181. package/dist/agents/21-state-session-tester.js +233 -0
  182. package/dist/agents/21-state-session-tester.js.map +1 -0
  183. package/dist/agents/22-email-notification-verifier.d.ts +11 -0
  184. package/dist/agents/22-email-notification-verifier.d.ts.map +1 -0
  185. package/dist/agents/22-email-notification-verifier.js +199 -0
  186. package/dist/agents/22-email-notification-verifier.js.map +1 -0
  187. package/dist/agents/23-migration-tester.d.ts +10 -0
  188. package/dist/agents/23-migration-tester.d.ts.map +1 -0
  189. package/dist/agents/23-migration-tester.js +74 -0
  190. package/dist/agents/23-migration-tester.js.map +1 -0
  191. package/dist/agents/base-agent.d.ts +19 -0
  192. package/dist/agents/base-agent.d.ts.map +1 -0
  193. package/dist/agents/base-agent.js +67 -0
  194. package/dist/agents/base-agent.js.map +1 -0
  195. package/dist/agents/registry.d.ts +29 -0
  196. package/dist/agents/registry.d.ts.map +1 -0
  197. package/dist/agents/registry.js +117 -0
  198. package/dist/agents/registry.js.map +1 -0
  199. package/dist/core/ci-output.d.ts +35 -0
  200. package/dist/core/ci-output.d.ts.map +1 -0
  201. package/dist/core/ci-output.js +193 -0
  202. package/dist/core/ci-output.js.map +1 -0
  203. package/dist/core/cli.d.ts +11 -0
  204. package/dist/core/cli.d.ts.map +1 -0
  205. package/dist/core/cli.js +197 -0
  206. package/dist/core/cli.js.map +1 -0
  207. package/dist/core/config.d.ts +111 -0
  208. package/dist/core/config.d.ts.map +1 -0
  209. package/dist/core/config.js +42 -0
  210. package/dist/core/config.js.map +1 -0
  211. package/dist/core/cost-tracker.d.ts +22 -0
  212. package/dist/core/cost-tracker.d.ts.map +1 -0
  213. package/dist/core/cost-tracker.js +41 -0
  214. package/dist/core/cost-tracker.js.map +1 -0
  215. package/dist/core/evidence.d.ts +28 -0
  216. package/dist/core/evidence.d.ts.map +1 -0
  217. package/dist/core/evidence.js +95 -0
  218. package/dist/core/evidence.js.map +1 -0
  219. package/dist/core/fix-loop.d.ts +29 -0
  220. package/dist/core/fix-loop.d.ts.map +1 -0
  221. package/dist/core/fix-loop.js +70 -0
  222. package/dist/core/fix-loop.js.map +1 -0
  223. package/dist/core/health-check.d.ts +21 -0
  224. package/dist/core/health-check.d.ts.map +1 -0
  225. package/dist/core/health-check.js +26 -0
  226. package/dist/core/health-check.js.map +1 -0
  227. package/dist/core/init.d.ts +2 -0
  228. package/dist/core/init.d.ts.map +1 -0
  229. package/dist/core/init.js +435 -0
  230. package/dist/core/init.js.map +1 -0
  231. package/dist/core/license-gen.d.ts +12 -0
  232. package/dist/core/license-gen.d.ts.map +1 -0
  233. package/dist/core/license-gen.js +169 -0
  234. package/dist/core/license-gen.js.map +1 -0
  235. package/dist/core/license.d.ts +33 -0
  236. package/dist/core/license.d.ts.map +1 -0
  237. package/dist/core/license.js +170 -0
  238. package/dist/core/license.js.map +1 -0
  239. package/dist/core/messages.d.ts +10 -0
  240. package/dist/core/messages.d.ts.map +1 -0
  241. package/dist/core/messages.js +47 -0
  242. package/dist/core/messages.js.map +1 -0
  243. package/dist/core/multi-browser.d.ts +36 -0
  244. package/dist/core/multi-browser.d.ts.map +1 -0
  245. package/dist/core/multi-browser.js +88 -0
  246. package/dist/core/multi-browser.js.map +1 -0
  247. package/dist/core/orchestrator.d.ts +48 -0
  248. package/dist/core/orchestrator.d.ts.map +1 -0
  249. package/dist/core/orchestrator.js +291 -0
  250. package/dist/core/orchestrator.js.map +1 -0
  251. package/dist/core/phase-gate.d.ts +4 -0
  252. package/dist/core/phase-gate.d.ts.map +1 -0
  253. package/dist/core/phase-gate.js +39 -0
  254. package/dist/core/phase-gate.js.map +1 -0
  255. package/dist/core/report-html.d.ts +9 -0
  256. package/dist/core/report-html.d.ts.map +1 -0
  257. package/dist/core/report-html.js +617 -0
  258. package/dist/core/report-html.js.map +1 -0
  259. package/dist/core/report-upload.d.ts +16 -0
  260. package/dist/core/report-upload.d.ts.map +1 -0
  261. package/dist/core/report-upload.js +124 -0
  262. package/dist/core/report-upload.js.map +1 -0
  263. package/dist/core/run-counter.d.ts +40 -0
  264. package/dist/core/run-counter.d.ts.map +1 -0
  265. package/dist/core/run-counter.js +120 -0
  266. package/dist/core/run-counter.js.map +1 -0
  267. package/dist/core/types.d.ts +53 -0
  268. package/dist/core/types.d.ts.map +1 -0
  269. package/dist/core/types.js +2 -0
  270. package/dist/core/types.js.map +1 -0
  271. package/dist/helpers/api-client.d.ts +30 -0
  272. package/dist/helpers/api-client.d.ts.map +1 -0
  273. package/dist/helpers/api-client.js +77 -0
  274. package/dist/helpers/api-client.js.map +1 -0
  275. package/dist/helpers/element-discovery.d.ts +18 -0
  276. package/dist/helpers/element-discovery.d.ts.map +1 -0
  277. package/dist/helpers/element-discovery.js +82 -0
  278. package/dist/helpers/element-discovery.js.map +1 -0
  279. package/dist/helpers/env-resolver.d.ts +29 -0
  280. package/dist/helpers/env-resolver.d.ts.map +1 -0
  281. package/dist/helpers/env-resolver.js +51 -0
  282. package/dist/helpers/env-resolver.js.map +1 -0
  283. package/dist/helpers/form-filler.d.ts +13 -0
  284. package/dist/helpers/form-filler.d.ts.map +1 -0
  285. package/dist/helpers/form-filler.js +98 -0
  286. package/dist/helpers/form-filler.js.map +1 -0
  287. package/dist/helpers/modal-handler.d.ts +16 -0
  288. package/dist/helpers/modal-handler.d.ts.map +1 -0
  289. package/dist/helpers/modal-handler.js +95 -0
  290. package/dist/helpers/modal-handler.js.map +1 -0
  291. package/dist/helpers/navigation.d.ts +37 -0
  292. package/dist/helpers/navigation.d.ts.map +1 -0
  293. package/dist/helpers/navigation.js +83 -0
  294. package/dist/helpers/navigation.js.map +1 -0
  295. package/dist/helpers/quality-gate.d.ts +17 -0
  296. package/dist/helpers/quality-gate.d.ts.map +1 -0
  297. package/dist/helpers/quality-gate.js +144 -0
  298. package/dist/helpers/quality-gate.js.map +1 -0
  299. package/dist/helpers/screenshot.d.ts +24 -0
  300. package/dist/helpers/screenshot.d.ts.map +1 -0
  301. package/dist/helpers/screenshot.js +76 -0
  302. package/dist/helpers/screenshot.js.map +1 -0
  303. package/dist/helpers/seed-validator.d.ts +15 -0
  304. package/dist/helpers/seed-validator.d.ts.map +1 -0
  305. package/dist/helpers/seed-validator.js +53 -0
  306. package/dist/helpers/seed-validator.js.map +1 -0
  307. package/helpers/__tests__/api-client.test.ts +199 -0
  308. package/helpers/__tests__/element-discovery.test.ts +202 -0
  309. package/helpers/__tests__/form-filler-extended.test.ts +212 -0
  310. package/helpers/__tests__/form-filler.test.ts +99 -0
  311. package/helpers/__tests__/modal-handler.test.ts +152 -0
  312. package/helpers/__tests__/navigation.test.ts +214 -0
  313. package/helpers/__tests__/quality-gate.test.ts +117 -0
  314. package/helpers/__tests__/screenshot.test.ts +139 -0
  315. package/helpers/__tests__/seed-validator.test.ts +114 -0
  316. package/helpers/api-client.ts +111 -0
  317. package/helpers/element-discovery.ts +105 -0
  318. package/helpers/env-resolver.ts +69 -0
  319. package/helpers/form-filler.ts +126 -0
  320. package/helpers/modal-handler.ts +108 -0
  321. package/helpers/navigation.ts +100 -0
  322. package/helpers/quality-gate.ts +180 -0
  323. package/helpers/screenshot.ts +111 -0
  324. package/helpers/seed-validator.ts +70 -0
  325. package/package.json +88 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"22-email-notification-verifier.js","sourceRoot":"","sources":["../../agents/22-email-notification-verifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { BaseAgent } from './base-agent';
2
+ import type { Finding } from '../core/types';
3
+ export declare class MigrationTesterAgent extends BaseAgent {
4
+ readonly agentId = 23;
5
+ readonly agentName = "Migration Tester";
6
+ private get projectRoot();
7
+ protected preFlight(): Promise<void>;
8
+ protected execute(): Promise<Finding[]>;
9
+ }
10
+ //# sourceMappingURL=23-migration-tester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"23-migration-tester.d.ts","sourceRoot":"","sources":["../../agents/23-migration-tester.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,QAAQ,CAAC,OAAO,MAAM;IACtB,QAAQ,CAAC,SAAS,sBAAsB;IAExC,OAAO,KAAK,WAAW,GAEtB;cAEe,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;cAI1B,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;CA4D9C"}
@@ -0,0 +1,74 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { promisify } from 'node:util';
3
+ import { BaseAgent } from './base-agent';
4
+ const execFileAsync = promisify(execFile);
5
+ export class MigrationTesterAgent extends BaseAgent {
6
+ agentId = 23;
7
+ agentName = 'Migration Tester';
8
+ get projectRoot() {
9
+ return this.config.projectRoot ?? process.cwd();
10
+ }
11
+ async preFlight() {
12
+ await execFileAsync('npx', ['prisma', '--version'], { shell: true, cwd: this.projectRoot });
13
+ }
14
+ async execute() {
15
+ const findings = [];
16
+ const cwd = this.projectRoot;
17
+ try {
18
+ await execFileAsync('npx', ['prisma', 'migrate', 'status'], { shell: true, cwd });
19
+ }
20
+ catch (error) {
21
+ const stderr = error instanceof Error && 'stderr' in error
22
+ ? String(error.stderr)
23
+ : String(error);
24
+ // In alpha phase, DB connectivity issues are medium (dev env may lack DB)
25
+ // In beta/uat, they're critical (DB must be available)
26
+ const severity = this.phase === 'alpha' ? 'medium' : 'critical';
27
+ findings.push({
28
+ id: `${this.agentId}-migrate-status`,
29
+ type: 'infra-issue',
30
+ severity,
31
+ agentId: this.agentId,
32
+ module: 'database',
33
+ description: `prisma migrate status failed: ${stderr}`,
34
+ });
35
+ return findings;
36
+ }
37
+ try {
38
+ await execFileAsync('npx', ['prisma', 'migrate', 'deploy'], { shell: true, cwd });
39
+ }
40
+ catch (error) {
41
+ const stderr = error instanceof Error && 'stderr' in error
42
+ ? String(error.stderr)
43
+ : String(error);
44
+ findings.push({
45
+ id: `${this.agentId}-migrate-deploy`,
46
+ type: 'infra-issue',
47
+ severity: 'critical',
48
+ agentId: this.agentId,
49
+ module: 'database',
50
+ description: `prisma migrate deploy failed: ${stderr}`,
51
+ });
52
+ return findings;
53
+ }
54
+ try {
55
+ await execFileAsync('npx', ['prisma', 'db', 'seed'], { shell: true, cwd });
56
+ }
57
+ catch (error) {
58
+ const stderr = error instanceof Error && 'stderr' in error
59
+ ? String(error.stderr)
60
+ : String(error);
61
+ findings.push({
62
+ id: `${this.agentId}-db-seed`,
63
+ type: 'infra-issue',
64
+ severity: 'critical',
65
+ agentId: this.agentId,
66
+ module: 'database',
67
+ description: `prisma db seed failed: ${stderr}`,
68
+ });
69
+ return findings;
70
+ }
71
+ return findings;
72
+ }
73
+ }
74
+ //# sourceMappingURL=23-migration-tester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"23-migration-tester.js","sourceRoot":"","sources":["../../agents/23-migration-tester.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACxC,OAAO,GAAG,EAAE,CAAC;IACb,SAAS,GAAG,kBAAkB,CAAC;IAExC,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAClD,CAAC;IAES,KAAK,CAAC,SAAS;QACvB,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9F,CAAC;IAES,KAAK,CAAC,OAAO;QACrB,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAE7B,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACpF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,IAAI,QAAQ,IAAI,KAAK;gBACxD,CAAC,CAAC,MAAM,CAAE,KAAqD,CAAC,MAAM,CAAC;gBACvE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,0EAA0E;YAC1E,uDAAuD;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,QAAiB,CAAC,CAAC,CAAC,UAAmB,CAAC;YAClF,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,iBAAiB;gBACpC,IAAI,EAAE,aAAa;gBACnB,QAAQ;gBACR,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,iCAAiC,MAAM,EAAE;aACvD,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACpF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,IAAI,QAAQ,IAAI,KAAK;gBACxD,CAAC,CAAC,MAAM,CAAE,KAAqD,CAAC,MAAM,CAAC;gBACvE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,iBAAiB;gBACpC,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,iCAAiC,MAAM,EAAE;aACvD,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,IAAI,QAAQ,IAAI,KAAK;gBACxD,CAAC,CAAC,MAAM,CAAE,KAAqD,CAAC,MAAM,CAAC;gBACvE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,UAAU;gBAC7B,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,0BAA0B,MAAM,EAAE;aAChD,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import type { AgentResult, Finding, Phase, EvidenceItem } from '../core/types';
2
+ import type { ValidatedConfig } from '../core/config';
3
+ export declare abstract class BaseAgent {
4
+ protected readonly config: ValidatedConfig;
5
+ protected readonly phase: Phase;
6
+ protected readonly runDir: string;
7
+ constructor(config: ValidatedConfig, phase: Phase, runDir: string);
8
+ abstract readonly agentId: number;
9
+ abstract readonly agentName: string;
10
+ run(): Promise<AgentResult>;
11
+ protected evidence: EvidenceItem[];
12
+ /** AVI-OS pre-flight: audit dependencies, validate plan, check pre-conditions */
13
+ protected abstract preFlight(): Promise<void>;
14
+ /** Main execution logic -- single pass, no incremental fix-and-see */
15
+ protected abstract execute(): Promise<Finding[]>;
16
+ protected addEvidence(item: EvidenceItem): void;
17
+ private buildSummary;
18
+ }
19
+ //# sourceMappingURL=base-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-agent.d.ts","sourceRoot":"","sources":["../../agents/base-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,8BAAsB,SAAS;IAE3B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe;IAC1C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAC/B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAFd,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM;IAGnC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE9B,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;IA2CjC,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAM;IAExC,iFAAiF;IACjF,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAE7C,sEAAsE;IACtE,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAEhD,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAI/C,OAAO,CAAC,YAAY;CAQrB"}
@@ -0,0 +1,67 @@
1
+ export class BaseAgent {
2
+ config;
3
+ phase;
4
+ runDir;
5
+ constructor(config, phase, runDir) {
6
+ this.config = config;
7
+ this.phase = phase;
8
+ this.runDir = runDir;
9
+ }
10
+ async run() {
11
+ const startedAt = new Date().toISOString();
12
+ try {
13
+ await this.preFlight();
14
+ const findings = await this.execute();
15
+ const completedAt = new Date().toISOString();
16
+ return {
17
+ agentId: this.agentId,
18
+ agentName: this.agentName,
19
+ phase: this.phase,
20
+ status: findings.some(f => f.severity === 'critical' || f.severity === 'high') ? 'failed' : 'passed',
21
+ startedAt,
22
+ completedAt,
23
+ durationMs: new Date(completedAt).getTime() - new Date(startedAt).getTime(),
24
+ findings,
25
+ evidence: this.evidence,
26
+ summary: this.buildSummary(findings),
27
+ };
28
+ }
29
+ catch (error) {
30
+ const completedAt = new Date().toISOString();
31
+ return {
32
+ agentId: this.agentId,
33
+ agentName: this.agentName,
34
+ phase: this.phase,
35
+ status: 'failed',
36
+ startedAt,
37
+ completedAt,
38
+ durationMs: new Date(completedAt).getTime() - new Date(startedAt).getTime(),
39
+ findings: [{
40
+ id: `${this.agentId}-error`,
41
+ type: 'infra-issue',
42
+ severity: 'critical',
43
+ agentId: this.agentId,
44
+ module: 'agent-runtime',
45
+ description: error instanceof Error ? error.message : String(error),
46
+ stackTrace: error instanceof Error ? error.stack : undefined,
47
+ }],
48
+ evidence: this.evidence,
49
+ summary: `Agent ${this.agentName} failed with error: ${error instanceof Error ? error.message : String(error)}`,
50
+ };
51
+ }
52
+ }
53
+ evidence = [];
54
+ addEvidence(item) {
55
+ this.evidence.push(item);
56
+ }
57
+ buildSummary(findings) {
58
+ if (findings.length === 0)
59
+ return `${this.agentName}: All checks passed`;
60
+ const critical = findings.filter(f => f.severity === 'critical').length;
61
+ const high = findings.filter(f => f.severity === 'high').length;
62
+ const medium = findings.filter(f => f.severity === 'medium').length;
63
+ const low = findings.filter(f => f.severity === 'low').length;
64
+ return `${this.agentName}: ${findings.length} findings (${critical} critical, ${high} high, ${medium} medium, ${low} low)`;
65
+ }
66
+ }
67
+ //# sourceMappingURL=base-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../../agents/base-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { ValidatedConfig } from '../core/config';
2
+ import type { Phase } from '../core/types';
3
+ import type { Orchestrator } from '../core/orchestrator';
4
+ /** License tier type used for agent gating */
5
+ export type LicenseTier = 'free' | 'pro' | 'enterprise';
6
+ /**
7
+ * Maps each agent number to its license tier.
8
+ * - free (8 agents): core testing pipeline
9
+ * - pro (9 agents): advanced testing capabilities
10
+ * - enterprise (6 agents): full platform auditing
11
+ */
12
+ export declare const AGENT_TIERS: Record<number, LicenseTier>;
13
+ /** Returns the tier classification for a given agent number. */
14
+ export declare function getAgentTier(agentNumber: number): LicenseTier;
15
+ /**
16
+ * Checks whether an agent is available under the given license tier.
17
+ * - free: only free agents
18
+ * - pro: free + pro agents
19
+ * - enterprise: all agents
20
+ */
21
+ export declare function isAgentAvailable(agentNumber: number, licenseTier: LicenseTier): boolean;
22
+ /**
23
+ * Register all 23 agents with the orchestrator.
24
+ * Each agent is instantiated with the validated config, phase, and run directory.
25
+ * Since agents may run in different phases, we register them for all phases
26
+ * and the orchestrator handles dispatching only the ones needed per phase.
27
+ */
28
+ export declare function registerAllAgents(orchestrator: Orchestrator, config: ValidatedConfig, phase: Phase, runDir: string): void;
29
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../agents/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,8CAA8C;AAC9C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA6BnD,CAAC;AAEF,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAM7D;AAQD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAGvF;AA0BD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,GACb,IAAI,CA8BN"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Maps each agent number to its license tier.
3
+ * - free (8 agents): core testing pipeline
4
+ * - pro (9 agents): advanced testing capabilities
5
+ * - enterprise (6 agents): full platform auditing
6
+ */
7
+ export const AGENT_TIERS = {
8
+ /* ── Free tier (8) ── */
9
+ 1: 'free', // Analyst
10
+ 2: 'free', // Seed Architect
11
+ 3: 'free', // Test Generator
12
+ 4: 'free', // Unit Runner
13
+ 5: 'free', // Browser Crawler
14
+ 9: 'free', // Healer
15
+ 10: 'free', // Reporter
16
+ 11: 'free', // Fixer
17
+ /* ── Pro tier (9) ── */
18
+ 6: 'pro', // API Exerciser
19
+ 7: 'pro', // Security Scout
20
+ 8: 'pro', // A11y Guardian
21
+ 12: 'pro', // UX Inspector
22
+ 13: 'pro', // Performance Profiler
23
+ 15: 'pro', // Regression Sentinel
24
+ 21: 'pro', // State & Session Tester
25
+ 22: 'pro', // Email Notification Verifier
26
+ 23: 'pro', // Migration Tester
27
+ /* ── Enterprise tier (6) ── */
28
+ 14: 'enterprise', // Data Integrity Auditor
29
+ 16: 'enterprise', // Chaos Agent
30
+ 17: 'enterprise', // Documentation Validator
31
+ 18: 'enterprise', // Integration Watchdog
32
+ 19: 'enterprise', // Tenant Isolation Auditor
33
+ 20: 'enterprise', // Workflow Completion Tester
34
+ };
35
+ /** Returns the tier classification for a given agent number. */
36
+ export function getAgentTier(agentNumber) {
37
+ const tier = AGENT_TIERS[agentNumber];
38
+ if (!tier) {
39
+ throw new Error(`Unknown agent number: ${agentNumber}`);
40
+ }
41
+ return tier;
42
+ }
43
+ const TIER_HIERARCHY = {
44
+ free: new Set(['free']),
45
+ pro: new Set(['free', 'pro']),
46
+ enterprise: new Set(['free', 'pro', 'enterprise']),
47
+ };
48
+ /**
49
+ * Checks whether an agent is available under the given license tier.
50
+ * - free: only free agents
51
+ * - pro: free + pro agents
52
+ * - enterprise: all agents
53
+ */
54
+ export function isAgentAvailable(agentNumber, licenseTier) {
55
+ const agentTier = getAgentTier(agentNumber);
56
+ return TIER_HIERARCHY[licenseTier].has(agentTier);
57
+ }
58
+ import { AnalystAgent } from './01-analyst';
59
+ import { SeedArchitectAgent } from './02-seed-architect';
60
+ import { TestGeneratorAgent } from './03-test-generator';
61
+ import { UnitRunnerAgent } from './04-unit-runner';
62
+ import { BrowserCrawlerAgent } from './05-browser-crawler';
63
+ import { ApiExerciserAgent } from './06-api-exerciser';
64
+ import { SecurityScoutAgent } from './07-security-scout';
65
+ import { A11yGuardianAgent } from './08-a11y-guardian';
66
+ import { HealerAgent } from './09-healer';
67
+ import { ReporterAgent } from './10-reporter';
68
+ import { FixerAgent } from './11-fixer';
69
+ import { UxInspectorAgent } from './12-ux-inspector';
70
+ import { PerformanceProfilerAgent } from './13-performance-profiler';
71
+ import { DataIntegrityAuditorAgent } from './14-data-integrity-auditor';
72
+ import { RegressionSentinelAgent } from './15-regression-sentinel';
73
+ import { ChaosAgent } from './16-chaos-agent';
74
+ import { DocumentationValidatorAgent } from './17-documentation-validator';
75
+ import { IntegrationWatchdogAgent } from './18-integration-watchdog';
76
+ import { TenantIsolationAuditorAgent } from './19-tenant-isolation-auditor';
77
+ import { WorkflowCompletionTesterAgent } from './20-workflow-completion-tester';
78
+ import { StateSessionTesterAgent } from './21-state-session-tester';
79
+ import { EmailNotificationVerifierAgent } from './22-email-notification-verifier';
80
+ import { MigrationTesterAgent } from './23-migration-tester';
81
+ /**
82
+ * Register all 23 agents with the orchestrator.
83
+ * Each agent is instantiated with the validated config, phase, and run directory.
84
+ * Since agents may run in different phases, we register them for all phases
85
+ * and the orchestrator handles dispatching only the ones needed per phase.
86
+ */
87
+ export function registerAllAgents(orchestrator, config, phase, runDir) {
88
+ const agents = [
89
+ new AnalystAgent(config, phase, runDir),
90
+ new SeedArchitectAgent(config, phase, runDir),
91
+ new TestGeneratorAgent(config, phase, runDir),
92
+ new UnitRunnerAgent(config, phase, runDir),
93
+ new BrowserCrawlerAgent(config, phase, runDir),
94
+ new ApiExerciserAgent(config, phase, runDir),
95
+ new SecurityScoutAgent(config, phase, runDir),
96
+ new A11yGuardianAgent(config, phase, runDir),
97
+ new HealerAgent(config, phase, runDir),
98
+ new ReporterAgent(config, phase, runDir),
99
+ new FixerAgent(config, phase, runDir),
100
+ new UxInspectorAgent(config, phase, runDir),
101
+ new PerformanceProfilerAgent(config, phase, runDir),
102
+ new DataIntegrityAuditorAgent(config, phase, runDir),
103
+ new RegressionSentinelAgent(config, phase, runDir),
104
+ new ChaosAgent(config, phase, runDir),
105
+ new DocumentationValidatorAgent(config, phase, runDir),
106
+ new IntegrationWatchdogAgent(config, phase, runDir),
107
+ new TenantIsolationAuditorAgent(config, phase, runDir),
108
+ new WorkflowCompletionTesterAgent(config, phase, runDir),
109
+ new StateSessionTesterAgent(config, phase, runDir),
110
+ new EmailNotificationVerifierAgent(config, phase, runDir),
111
+ new MigrationTesterAgent(config, phase, runDir),
112
+ ];
113
+ for (const agent of agents) {
114
+ orchestrator.registerAgent(agent.agentId, agent);
115
+ }
116
+ }
117
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../agents/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { RunState, PhaseGateResult } from './types';
2
+ /** Exit codes for CI integration. */
3
+ export declare const EXIT_CODE: {
4
+ /** All phase gates passed, no issues. */
5
+ readonly SUCCESS: 0;
6
+ /** One or more blocking agent failures. */
7
+ readonly BLOCKING_FAILURE: 1;
8
+ /** All blocking agents passed, but advisory agents found issues. */
9
+ readonly ADVISORY_WARNINGS: 2;
10
+ };
11
+ export type ExitCode = typeof EXIT_CODE[keyof typeof EXIT_CODE];
12
+ /** Detected CI environment. */
13
+ export type CIEnvironment = 'github' | 'azure' | 'gitlab' | 'none';
14
+ /** Detect which CI environment is running. */
15
+ export declare function detectCIEnvironment(): CIEnvironment;
16
+ /**
17
+ * Determine the appropriate exit code from run state.
18
+ * - 0: All gates passed, no advisory failures
19
+ * - 1: Blocking agent failures
20
+ * - 2: Advisory warnings only (all blocking passed)
21
+ */
22
+ export declare function determineExitCode(gateResults: PhaseGateResult[]): ExitCode;
23
+ /** Generate markdown summary for GitHub Actions GITHUB_STEP_SUMMARY. */
24
+ export declare function generateGitHubSummary(results: RunState): string;
25
+ /** Generate Azure Pipelines build tags from run results. */
26
+ export declare function generateAzureTags(results: RunState): string[];
27
+ /** Injectable IO operations for testability in ESM. */
28
+ export interface CIOutputIO {
29
+ appendFile: (path: string, data: string) => void;
30
+ writeFile: (path: string, data: string) => void;
31
+ log: (message: string) => void;
32
+ }
33
+ /** Write CI summary to the appropriate CI environment output. */
34
+ export declare function writeCISummary(results: RunState, io?: CIOutputIO): void;
35
+ //# sourceMappingURL=ci-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-output.d.ts","sourceRoot":"","sources":["../../core/ci-output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAe,eAAe,EAAE,MAAM,SAAS,CAAC;AAGtE,qCAAqC;AACrC,eAAO,MAAM,SAAS;IACpB,yCAAyC;;IAEzC,2CAA2C;;IAE3C,oEAAoE;;CAE5D,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEhE,+BAA+B;AAC/B,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEnE,8CAA8C;AAC9C,wBAAgB,mBAAmB,IAAI,aAAa,CAWnD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,QAAQ,CAkB1E;AAkCD,wEAAwE;AACxE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAqE/D;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,EAAE,CA2B7D;AAED,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAQD,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAE,UAAsB,GAAG,IAAI,CAiClF"}
@@ -0,0 +1,193 @@
1
+ import * as fs from 'fs';
2
+ /** Exit codes for CI integration. */
3
+ export const EXIT_CODE = {
4
+ /** All phase gates passed, no issues. */
5
+ SUCCESS: 0,
6
+ /** One or more blocking agent failures. */
7
+ BLOCKING_FAILURE: 1,
8
+ /** All blocking agents passed, but advisory agents found issues. */
9
+ ADVISORY_WARNINGS: 2,
10
+ };
11
+ /** Detect which CI environment is running. */
12
+ export function detectCIEnvironment() {
13
+ if (process.env['GITHUB_ACTIONS'] === 'true') {
14
+ return 'github';
15
+ }
16
+ if (process.env['TF_BUILD'] === 'True') {
17
+ return 'azure';
18
+ }
19
+ if (process.env['GITLAB_CI'] === 'true') {
20
+ return 'gitlab';
21
+ }
22
+ return 'none';
23
+ }
24
+ /**
25
+ * Determine the appropriate exit code from run state.
26
+ * - 0: All gates passed, no advisory failures
27
+ * - 1: Blocking agent failures
28
+ * - 2: Advisory warnings only (all blocking passed)
29
+ */
30
+ export function determineExitCode(gateResults) {
31
+ const hasBlockingFailures = gateResults.some(gate => gate.failedBlockingAgents.length > 0);
32
+ if (hasBlockingFailures) {
33
+ return EXIT_CODE.BLOCKING_FAILURE;
34
+ }
35
+ const hasAdvisoryFailures = gateResults.some(gate => gate.advisoryResults.some(result => result.status === 'failed'));
36
+ if (hasAdvisoryFailures) {
37
+ return EXIT_CODE.ADVISORY_WARNINGS;
38
+ }
39
+ return EXIT_CODE.SUCCESS;
40
+ }
41
+ /** Format duration in human-readable form. */
42
+ function formatDuration(ms) {
43
+ if (ms < 1000) {
44
+ return `${ms}ms`;
45
+ }
46
+ const seconds = Math.floor(ms / 1000);
47
+ if (seconds < 60) {
48
+ return `${seconds}s`;
49
+ }
50
+ const minutes = Math.floor(seconds / 60);
51
+ const remainingSeconds = seconds % 60;
52
+ return `${minutes}m ${remainingSeconds}s`;
53
+ }
54
+ /** Get a status icon for an agent result. */
55
+ function statusIcon(status) {
56
+ switch (status) {
57
+ case 'passed':
58
+ return '✅';
59
+ case 'failed':
60
+ return '❌';
61
+ case 'skipped':
62
+ return '⏭️';
63
+ case 'running':
64
+ return '🔄';
65
+ case 'pending':
66
+ return '⏳';
67
+ default:
68
+ return '❓';
69
+ }
70
+ }
71
+ /** Generate markdown summary for GitHub Actions GITHUB_STEP_SUMMARY. */
72
+ export function generateGitHubSummary(results) {
73
+ const lines = [];
74
+ const overallExitCode = determineExitCode(results.gateResults);
75
+ const overallStatus = overallExitCode === EXIT_CODE.SUCCESS
76
+ ? '✅ All Gates Passed'
77
+ : overallExitCode === EXIT_CODE.ADVISORY_WARNINGS
78
+ ? '⚠️ Advisory Warnings'
79
+ : '❌ Blocking Failures';
80
+ lines.push(`## TestTeam — ${overallStatus}`);
81
+ lines.push('');
82
+ lines.push(`| Detail | Value |`);
83
+ lines.push(`|--------|-------|`);
84
+ lines.push(`| Run ID | \`${results.runId}\` |`);
85
+ lines.push(`| Started | ${results.startedAt} |`);
86
+ lines.push(`| Total Cost | $${results.totalCost.toFixed(4)} |`);
87
+ lines.push('');
88
+ for (const gate of results.gateResults) {
89
+ const gateIcon = gate.passed ? '✅' : '❌';
90
+ lines.push(`### ${gateIcon} Phase: \`${gate.phase}\``);
91
+ lines.push('');
92
+ if (gate.failedBlockingAgents.length > 0) {
93
+ lines.push(`**Failed blocking agents:** ${gate.failedBlockingAgents.join(', ')}`);
94
+ lines.push('');
95
+ }
96
+ // Agent results table
97
+ const allResults = [...gate.blockingResults, ...gate.advisoryResults];
98
+ if (allResults.length > 0) {
99
+ lines.push(`| Agent | Status | Duration | Findings |`);
100
+ lines.push(`|-------|--------|----------|----------|`);
101
+ for (const result of allResults) {
102
+ const icon = statusIcon(result.status);
103
+ const duration = formatDuration(result.durationMs);
104
+ const findingCount = result.findings.length;
105
+ lines.push(`| ${icon} ${result.agentName} (#${result.agentId}) | ${result.status} | ${duration} | ${findingCount} |`);
106
+ }
107
+ lines.push('');
108
+ }
109
+ }
110
+ // Findings summary
111
+ const allFindings = Array.from(results.agentResults.values())
112
+ .flatMap(r => r.findings);
113
+ if (allFindings.length > 0) {
114
+ lines.push(`### Findings Summary`);
115
+ lines.push('');
116
+ const bySeverity = new Map();
117
+ for (const finding of allFindings) {
118
+ bySeverity.set(finding.severity, (bySeverity.get(finding.severity) ?? 0) + 1);
119
+ }
120
+ lines.push(`| Severity | Count |`);
121
+ lines.push(`|----------|-------|`);
122
+ for (const [severity, count] of bySeverity) {
123
+ lines.push(`| ${severity} | ${count} |`);
124
+ }
125
+ lines.push('');
126
+ }
127
+ return lines.join('\n');
128
+ }
129
+ /** Generate Azure Pipelines build tags from run results. */
130
+ export function generateAzureTags(results) {
131
+ const tags = [];
132
+ const exitCode = determineExitCode(results.gateResults);
133
+ if (exitCode === EXIT_CODE.SUCCESS) {
134
+ tags.push('testteam:passed');
135
+ }
136
+ else if (exitCode === EXIT_CODE.ADVISORY_WARNINGS) {
137
+ tags.push('testteam:warnings');
138
+ }
139
+ else {
140
+ tags.push('testteam:failed');
141
+ }
142
+ for (const gate of results.gateResults) {
143
+ tags.push(`testteam:phase:${gate.phase}`);
144
+ tags.push(`testteam:phase:${gate.phase}:${gate.passed ? 'passed' : 'failed'}`);
145
+ }
146
+ const allFindings = Array.from(results.agentResults.values())
147
+ .flatMap(r => r.findings);
148
+ const severities = new Set(allFindings.map(f => f.severity));
149
+ for (const severity of severities) {
150
+ tags.push(`testteam:severity:${severity}`);
151
+ }
152
+ return tags;
153
+ }
154
+ const defaultIO = {
155
+ appendFile: (filePath, data) => fs.appendFileSync(filePath, data),
156
+ writeFile: (filePath, data) => fs.writeFileSync(filePath, data),
157
+ log: (message) => console.log(message),
158
+ };
159
+ /** Write CI summary to the appropriate CI environment output. */
160
+ export function writeCISummary(results, io = defaultIO) {
161
+ const env = detectCIEnvironment();
162
+ switch (env) {
163
+ case 'github': {
164
+ const summaryPath = process.env['GITHUB_STEP_SUMMARY'];
165
+ if (summaryPath) {
166
+ const markdown = generateGitHubSummary(results);
167
+ io.appendFile(summaryPath, markdown + '\n');
168
+ }
169
+ break;
170
+ }
171
+ case 'azure': {
172
+ const tags = generateAzureTags(results);
173
+ for (const tag of tags) {
174
+ io.log(`##vso[build.addbuildtag]${tag}`);
175
+ }
176
+ // Also output markdown to the task log
177
+ const markdown = generateGitHubSummary(results);
178
+ io.log(markdown);
179
+ break;
180
+ }
181
+ case 'gitlab': {
182
+ // GitLab CI doesn't have a native summary mechanism,
183
+ // so write to a file that can be picked up as an artifact
184
+ const markdown = generateGitHubSummary(results);
185
+ io.writeFile('.run/testteam-summary.md', markdown);
186
+ break;
187
+ }
188
+ case 'none':
189
+ // Not in CI; no summary written
190
+ break;
191
+ }
192
+ }
193
+ //# sourceMappingURL=ci-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-output.js","sourceRoot":"","sources":["../../core/ci-output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Phase } from './types';
2
+ interface ParsedArgs {
3
+ phase: Phase | 'all' | null;
4
+ dryRun: boolean;
5
+ agent: number | null;
6
+ configPath: string;
7
+ }
8
+ export declare function parseArgs(argv: string[]): ParsedArgs;
9
+ export declare function main(argv?: string[]): Promise<number>;
10
+ export {};
11
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../core/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAgC,MAAM,SAAS,CAAC;AAYnE,UAAU,UAAU;IAClB,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAgBD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA8CpD;AAcD,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgIzE"}