@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.
- package/CHANGELOG.md +54 -0
- package/LICENSE +21 -0
- package/README.md +167 -0
- package/agents/01-analyst.ts +100 -0
- package/agents/02-seed-architect.ts +59 -0
- package/agents/03-test-generator.ts +191 -0
- package/agents/04-unit-runner.ts +160 -0
- package/agents/05-browser-crawler.ts +790 -0
- package/agents/06-api-exerciser.ts +311 -0
- package/agents/07-security-scout.ts +188 -0
- package/agents/08-a11y-guardian.ts +212 -0
- package/agents/09-healer.ts +228 -0
- package/agents/10-reporter.ts +266 -0
- package/agents/11-fixer.ts +253 -0
- package/agents/12-ux-inspector.ts +444 -0
- package/agents/13-performance-profiler.ts +271 -0
- package/agents/14-data-integrity-auditor.ts +417 -0
- package/agents/15-regression-sentinel.ts +307 -0
- package/agents/16-chaos-agent.ts +228 -0
- package/agents/17-documentation-validator.ts +266 -0
- package/agents/18-integration-watchdog.ts +178 -0
- package/agents/19-tenant-isolation-auditor.ts +199 -0
- package/agents/20-workflow-completion-tester.ts +203 -0
- package/agents/21-state-session-tester.ts +262 -0
- package/agents/22-email-notification-verifier.ts +244 -0
- package/agents/23-migration-tester.ts +80 -0
- package/agents/__tests__/01-analyst.test.ts +188 -0
- package/agents/__tests__/02-seed-architect.test.ts +152 -0
- package/agents/__tests__/03-test-generator-full.test.ts +321 -0
- package/agents/__tests__/03-test-generator.test.ts +318 -0
- package/agents/__tests__/04-unit-runner.test.ts +320 -0
- package/agents/__tests__/05-browser-crawler-beta.test.ts +492 -0
- package/agents/__tests__/05-browser-crawler-release.test.ts +412 -0
- package/agents/__tests__/05-browser-crawler-uat.test.ts +578 -0
- package/agents/__tests__/05-browser-crawler.test.ts +518 -0
- package/agents/__tests__/06-api-exerciser.test.ts +619 -0
- package/agents/__tests__/07-security-scout.test.ts +382 -0
- package/agents/__tests__/08-a11y-guardian.test.ts +530 -0
- package/agents/__tests__/09-healer.test.ts +384 -0
- package/agents/__tests__/10-reporter.test.ts +366 -0
- package/agents/__tests__/11-fixer.test.ts +406 -0
- package/agents/__tests__/12-ux-inspector-extended.test.ts +465 -0
- package/agents/__tests__/12-ux-inspector.test.ts +443 -0
- package/agents/__tests__/13-performance-profiler.test.ts +411 -0
- package/agents/__tests__/14-data-integrity-auditor-extended.test.ts +573 -0
- package/agents/__tests__/14-data-integrity-auditor.test.ts +407 -0
- package/agents/__tests__/15-regression-sentinel.test.ts +657 -0
- package/agents/__tests__/16-chaos-agent.test.ts +427 -0
- package/agents/__tests__/17-documentation-validator.test.ts +402 -0
- package/agents/__tests__/18-integration-watchdog.test.ts +263 -0
- package/agents/__tests__/19-tenant-isolation-auditor.test.ts +400 -0
- package/agents/__tests__/20-workflow-completion-tester.test.ts +586 -0
- package/agents/__tests__/21-state-session-tester.test.ts +374 -0
- package/agents/__tests__/22-email-notification-verifier.test.ts +441 -0
- package/agents/__tests__/23-migration-tester.test.ts +145 -0
- package/agents/__tests__/base-agent.test.ts +188 -0
- package/agents/__tests__/registry.test.ts +218 -0
- package/agents/base-agent.ts +77 -0
- package/agents/registry.ts +136 -0
- package/baselines/api-schemas/.gitkeep +0 -0
- package/baselines/performance/.gitkeep +0 -0
- package/baselines/screenshots/.gitkeep +0 -0
- package/bin/testteam.js +10 -0
- package/core/__tests__/ci-output.test.ts +430 -0
- package/core/__tests__/cli.test.ts +387 -0
- package/core/__tests__/config.test.ts +78 -0
- package/core/__tests__/cost-tracker.test.ts +158 -0
- package/core/__tests__/evidence.test.ts +265 -0
- package/core/__tests__/fix-loop.test.ts +210 -0
- package/core/__tests__/health-check.test.ts +44 -0
- package/core/__tests__/init.test.ts +609 -0
- package/core/__tests__/integration.test.ts +204 -0
- package/core/__tests__/license-gen.test.ts +227 -0
- package/core/__tests__/license.test.ts +326 -0
- package/core/__tests__/multi-browser.test.ts +278 -0
- package/core/__tests__/orchestrator.test.ts +519 -0
- package/core/__tests__/phase-gate.test.ts +43 -0
- package/core/__tests__/report-html.test.ts +398 -0
- package/core/__tests__/report-upload.test.ts +325 -0
- package/core/__tests__/run-counter.test.ts +234 -0
- package/core/ci-output.ts +240 -0
- package/core/cli.ts +232 -0
- package/core/config.ts +178 -0
- package/core/cost-tracker.ts +59 -0
- package/core/evidence.ts +132 -0
- package/core/fix-loop.ts +85 -0
- package/core/health-check.ts +54 -0
- package/core/init.ts +546 -0
- package/core/license-gen.ts +212 -0
- package/core/license.ts +211 -0
- package/core/messages.ts +67 -0
- package/core/multi-browser.ts +136 -0
- package/core/orchestrator.ts +354 -0
- package/core/phase-gate.ts +55 -0
- package/core/report-html.ts +657 -0
- package/core/report-upload.ts +188 -0
- package/core/run-counter.ts +175 -0
- package/core/types.ts +57 -0
- package/dist/agents/01-analyst.d.ts +11 -0
- package/dist/agents/01-analyst.d.ts.map +1 -0
- package/dist/agents/01-analyst.js +75 -0
- package/dist/agents/01-analyst.js.map +1 -0
- package/dist/agents/02-seed-architect.d.ts +11 -0
- package/dist/agents/02-seed-architect.d.ts.map +1 -0
- package/dist/agents/02-seed-architect.js +51 -0
- package/dist/agents/02-seed-architect.js.map +1 -0
- package/dist/agents/03-test-generator.d.ts +9 -0
- package/dist/agents/03-test-generator.d.ts.map +1 -0
- package/dist/agents/03-test-generator.js +167 -0
- package/dist/agents/03-test-generator.js.map +1 -0
- package/dist/agents/04-unit-runner.d.ts +9 -0
- package/dist/agents/04-unit-runner.d.ts.map +1 -0
- package/dist/agents/04-unit-runner.js +113 -0
- package/dist/agents/04-unit-runner.js.map +1 -0
- package/dist/agents/05-browser-crawler.d.ts +30 -0
- package/dist/agents/05-browser-crawler.d.ts.map +1 -0
- package/dist/agents/05-browser-crawler.js +685 -0
- package/dist/agents/05-browser-crawler.js.map +1 -0
- package/dist/agents/06-api-exerciser.d.ts +23 -0
- package/dist/agents/06-api-exerciser.d.ts.map +1 -0
- package/dist/agents/06-api-exerciser.js +253 -0
- package/dist/agents/06-api-exerciser.js.map +1 -0
- package/dist/agents/07-security-scout.d.ts +11 -0
- package/dist/agents/07-security-scout.d.ts.map +1 -0
- package/dist/agents/07-security-scout.js +142 -0
- package/dist/agents/07-security-scout.js.map +1 -0
- package/dist/agents/08-a11y-guardian.d.ts +13 -0
- package/dist/agents/08-a11y-guardian.d.ts.map +1 -0
- package/dist/agents/08-a11y-guardian.js +176 -0
- package/dist/agents/08-a11y-guardian.js.map +1 -0
- package/dist/agents/09-healer.d.ts +33 -0
- package/dist/agents/09-healer.d.ts.map +1 -0
- package/dist/agents/09-healer.js +167 -0
- package/dist/agents/09-healer.js.map +1 -0
- package/dist/agents/10-reporter.d.ts +26 -0
- package/dist/agents/10-reporter.d.ts.map +1 -0
- package/dist/agents/10-reporter.js +215 -0
- package/dist/agents/10-reporter.js.map +1 -0
- package/dist/agents/11-fixer.d.ts +26 -0
- package/dist/agents/11-fixer.d.ts.map +1 -0
- package/dist/agents/11-fixer.js +195 -0
- package/dist/agents/11-fixer.js.map +1 -0
- package/dist/agents/12-ux-inspector.d.ts +15 -0
- package/dist/agents/12-ux-inspector.d.ts.map +1 -0
- package/dist/agents/12-ux-inspector.js +364 -0
- package/dist/agents/12-ux-inspector.js.map +1 -0
- package/dist/agents/13-performance-profiler.d.ts +13 -0
- package/dist/agents/13-performance-profiler.d.ts.map +1 -0
- package/dist/agents/13-performance-profiler.js +216 -0
- package/dist/agents/13-performance-profiler.js.map +1 -0
- package/dist/agents/14-data-integrity-auditor.d.ts +12 -0
- package/dist/agents/14-data-integrity-auditor.d.ts.map +1 -0
- package/dist/agents/14-data-integrity-auditor.js +356 -0
- package/dist/agents/14-data-integrity-auditor.js.map +1 -0
- package/dist/agents/15-regression-sentinel.d.ts +25 -0
- package/dist/agents/15-regression-sentinel.d.ts.map +1 -0
- package/dist/agents/15-regression-sentinel.js +251 -0
- package/dist/agents/15-regression-sentinel.js.map +1 -0
- package/dist/agents/16-chaos-agent.d.ts +9 -0
- package/dist/agents/16-chaos-agent.d.ts.map +1 -0
- package/dist/agents/16-chaos-agent.js +207 -0
- package/dist/agents/16-chaos-agent.js.map +1 -0
- package/dist/agents/17-documentation-validator.d.ts +31 -0
- package/dist/agents/17-documentation-validator.d.ts.map +1 -0
- package/dist/agents/17-documentation-validator.js +246 -0
- package/dist/agents/17-documentation-validator.js.map +1 -0
- package/dist/agents/18-integration-watchdog.d.ts +10 -0
- package/dist/agents/18-integration-watchdog.d.ts.map +1 -0
- package/dist/agents/18-integration-watchdog.js +138 -0
- package/dist/agents/18-integration-watchdog.js.map +1 -0
- package/dist/agents/19-tenant-isolation-auditor.d.ts +9 -0
- package/dist/agents/19-tenant-isolation-auditor.d.ts.map +1 -0
- package/dist/agents/19-tenant-isolation-auditor.js +166 -0
- package/dist/agents/19-tenant-isolation-auditor.js.map +1 -0
- package/dist/agents/20-workflow-completion-tester.d.ts +12 -0
- package/dist/agents/20-workflow-completion-tester.d.ts.map +1 -0
- package/dist/agents/20-workflow-completion-tester.js +159 -0
- package/dist/agents/20-workflow-completion-tester.js.map +1 -0
- package/dist/agents/21-state-session-tester.d.ts +10 -0
- package/dist/agents/21-state-session-tester.d.ts.map +1 -0
- package/dist/agents/21-state-session-tester.js +233 -0
- package/dist/agents/21-state-session-tester.js.map +1 -0
- package/dist/agents/22-email-notification-verifier.d.ts +11 -0
- package/dist/agents/22-email-notification-verifier.d.ts.map +1 -0
- package/dist/agents/22-email-notification-verifier.js +199 -0
- package/dist/agents/22-email-notification-verifier.js.map +1 -0
- package/dist/agents/23-migration-tester.d.ts +10 -0
- package/dist/agents/23-migration-tester.d.ts.map +1 -0
- package/dist/agents/23-migration-tester.js +74 -0
- package/dist/agents/23-migration-tester.js.map +1 -0
- package/dist/agents/base-agent.d.ts +19 -0
- package/dist/agents/base-agent.d.ts.map +1 -0
- package/dist/agents/base-agent.js +67 -0
- package/dist/agents/base-agent.js.map +1 -0
- package/dist/agents/registry.d.ts +29 -0
- package/dist/agents/registry.d.ts.map +1 -0
- package/dist/agents/registry.js +117 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/core/ci-output.d.ts +35 -0
- package/dist/core/ci-output.d.ts.map +1 -0
- package/dist/core/ci-output.js +193 -0
- package/dist/core/ci-output.js.map +1 -0
- package/dist/core/cli.d.ts +11 -0
- package/dist/core/cli.d.ts.map +1 -0
- package/dist/core/cli.js +197 -0
- package/dist/core/cli.js.map +1 -0
- package/dist/core/config.d.ts +111 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +42 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/cost-tracker.d.ts +22 -0
- package/dist/core/cost-tracker.d.ts.map +1 -0
- package/dist/core/cost-tracker.js +41 -0
- package/dist/core/cost-tracker.js.map +1 -0
- package/dist/core/evidence.d.ts +28 -0
- package/dist/core/evidence.d.ts.map +1 -0
- package/dist/core/evidence.js +95 -0
- package/dist/core/evidence.js.map +1 -0
- package/dist/core/fix-loop.d.ts +29 -0
- package/dist/core/fix-loop.d.ts.map +1 -0
- package/dist/core/fix-loop.js +70 -0
- package/dist/core/fix-loop.js.map +1 -0
- package/dist/core/health-check.d.ts +21 -0
- package/dist/core/health-check.d.ts.map +1 -0
- package/dist/core/health-check.js +26 -0
- package/dist/core/health-check.js.map +1 -0
- package/dist/core/init.d.ts +2 -0
- package/dist/core/init.d.ts.map +1 -0
- package/dist/core/init.js +435 -0
- package/dist/core/init.js.map +1 -0
- package/dist/core/license-gen.d.ts +12 -0
- package/dist/core/license-gen.d.ts.map +1 -0
- package/dist/core/license-gen.js +169 -0
- package/dist/core/license-gen.js.map +1 -0
- package/dist/core/license.d.ts +33 -0
- package/dist/core/license.d.ts.map +1 -0
- package/dist/core/license.js +170 -0
- package/dist/core/license.js.map +1 -0
- package/dist/core/messages.d.ts +10 -0
- package/dist/core/messages.d.ts.map +1 -0
- package/dist/core/messages.js +47 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/multi-browser.d.ts +36 -0
- package/dist/core/multi-browser.d.ts.map +1 -0
- package/dist/core/multi-browser.js +88 -0
- package/dist/core/multi-browser.js.map +1 -0
- package/dist/core/orchestrator.d.ts +48 -0
- package/dist/core/orchestrator.d.ts.map +1 -0
- package/dist/core/orchestrator.js +291 -0
- package/dist/core/orchestrator.js.map +1 -0
- package/dist/core/phase-gate.d.ts +4 -0
- package/dist/core/phase-gate.d.ts.map +1 -0
- package/dist/core/phase-gate.js +39 -0
- package/dist/core/phase-gate.js.map +1 -0
- package/dist/core/report-html.d.ts +9 -0
- package/dist/core/report-html.d.ts.map +1 -0
- package/dist/core/report-html.js +617 -0
- package/dist/core/report-html.js.map +1 -0
- package/dist/core/report-upload.d.ts +16 -0
- package/dist/core/report-upload.d.ts.map +1 -0
- package/dist/core/report-upload.js +124 -0
- package/dist/core/report-upload.js.map +1 -0
- package/dist/core/run-counter.d.ts +40 -0
- package/dist/core/run-counter.d.ts.map +1 -0
- package/dist/core/run-counter.js +120 -0
- package/dist/core/run-counter.js.map +1 -0
- package/dist/core/types.d.ts +53 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/helpers/api-client.d.ts +30 -0
- package/dist/helpers/api-client.d.ts.map +1 -0
- package/dist/helpers/api-client.js +77 -0
- package/dist/helpers/api-client.js.map +1 -0
- package/dist/helpers/element-discovery.d.ts +18 -0
- package/dist/helpers/element-discovery.d.ts.map +1 -0
- package/dist/helpers/element-discovery.js +82 -0
- package/dist/helpers/element-discovery.js.map +1 -0
- package/dist/helpers/env-resolver.d.ts +29 -0
- package/dist/helpers/env-resolver.d.ts.map +1 -0
- package/dist/helpers/env-resolver.js +51 -0
- package/dist/helpers/env-resolver.js.map +1 -0
- package/dist/helpers/form-filler.d.ts +13 -0
- package/dist/helpers/form-filler.d.ts.map +1 -0
- package/dist/helpers/form-filler.js +98 -0
- package/dist/helpers/form-filler.js.map +1 -0
- package/dist/helpers/modal-handler.d.ts +16 -0
- package/dist/helpers/modal-handler.d.ts.map +1 -0
- package/dist/helpers/modal-handler.js +95 -0
- package/dist/helpers/modal-handler.js.map +1 -0
- package/dist/helpers/navigation.d.ts +37 -0
- package/dist/helpers/navigation.d.ts.map +1 -0
- package/dist/helpers/navigation.js +83 -0
- package/dist/helpers/navigation.js.map +1 -0
- package/dist/helpers/quality-gate.d.ts +17 -0
- package/dist/helpers/quality-gate.d.ts.map +1 -0
- package/dist/helpers/quality-gate.js +144 -0
- package/dist/helpers/quality-gate.js.map +1 -0
- package/dist/helpers/screenshot.d.ts +24 -0
- package/dist/helpers/screenshot.d.ts.map +1 -0
- package/dist/helpers/screenshot.js +76 -0
- package/dist/helpers/screenshot.js.map +1 -0
- package/dist/helpers/seed-validator.d.ts +15 -0
- package/dist/helpers/seed-validator.d.ts.map +1 -0
- package/dist/helpers/seed-validator.js +53 -0
- package/dist/helpers/seed-validator.js.map +1 -0
- package/helpers/__tests__/api-client.test.ts +199 -0
- package/helpers/__tests__/element-discovery.test.ts +202 -0
- package/helpers/__tests__/form-filler-extended.test.ts +212 -0
- package/helpers/__tests__/form-filler.test.ts +99 -0
- package/helpers/__tests__/modal-handler.test.ts +152 -0
- package/helpers/__tests__/navigation.test.ts +214 -0
- package/helpers/__tests__/quality-gate.test.ts +117 -0
- package/helpers/__tests__/screenshot.test.ts +139 -0
- package/helpers/__tests__/seed-validator.test.ts +114 -0
- package/helpers/api-client.ts +111 -0
- package/helpers/element-discovery.ts +105 -0
- package/helpers/env-resolver.ts +69 -0
- package/helpers/form-filler.ts +126 -0
- package/helpers/modal-handler.ts +108 -0
- package/helpers/navigation.ts +100 -0
- package/helpers/quality-gate.ts +180 -0
- package/helpers/screenshot.ts +111 -0
- package/helpers/seed-validator.ts +70 -0
- 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":"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"}
|
|
@@ -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"}
|