@sudobility/testomniac_runner_service 0.1.36 → 0.1.38

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 (60) hide show
  1. package/dist/adapter.d.ts +14 -1
  2. package/dist/adapter.d.ts.map +1 -1
  3. package/dist/api/client.d.ts +60 -1
  4. package/dist/api/client.d.ts.map +1 -1
  5. package/dist/api/client.js +21 -2
  6. package/dist/api/client.js.map +1 -1
  7. package/dist/crawler/link-extractor.d.ts +8 -0
  8. package/dist/crawler/link-extractor.d.ts.map +1 -0
  9. package/dist/crawler/link-extractor.js +37 -0
  10. package/dist/crawler/link-extractor.js.map +1 -0
  11. package/dist/crawler/url-normalizer.d.ts +4 -0
  12. package/dist/crawler/url-normalizer.d.ts.map +1 -0
  13. package/dist/crawler/url-normalizer.js +27 -0
  14. package/dist/crawler/url-normalizer.js.map +1 -0
  15. package/dist/expertise/accessibility-expertise.d.ts +11 -0
  16. package/dist/expertise/accessibility-expertise.d.ts.map +1 -0
  17. package/dist/expertise/accessibility-expertise.js +131 -0
  18. package/dist/expertise/accessibility-expertise.js.map +1 -0
  19. package/dist/expertise/content-expertise.d.ts +10 -0
  20. package/dist/expertise/content-expertise.d.ts.map +1 -0
  21. package/dist/expertise/content-expertise.js +102 -0
  22. package/dist/expertise/content-expertise.js.map +1 -0
  23. package/dist/expertise/index.d.ts +3 -0
  24. package/dist/expertise/index.d.ts.map +1 -1
  25. package/dist/expertise/index.js +9 -4
  26. package/dist/expertise/index.js.map +1 -1
  27. package/dist/expertise/ui-expertise.d.ts +10 -0
  28. package/dist/expertise/ui-expertise.d.ts.map +1 -0
  29. package/dist/expertise/ui-expertise.js +76 -0
  30. package/dist/expertise/ui-expertise.js.map +1 -0
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/orchestrator/decomposition.d.ts.map +1 -1
  34. package/dist/orchestrator/decomposition.js +558 -65
  35. package/dist/orchestrator/decomposition.js.map +1 -1
  36. package/dist/orchestrator/direct-navigation.d.ts +4 -0
  37. package/dist/orchestrator/direct-navigation.d.ts.map +1 -0
  38. package/dist/orchestrator/direct-navigation.js +47 -0
  39. package/dist/orchestrator/direct-navigation.js.map +1 -0
  40. package/dist/orchestrator/discovery.d.ts +10 -0
  41. package/dist/orchestrator/discovery.d.ts.map +1 -0
  42. package/dist/orchestrator/discovery.js +77 -0
  43. package/dist/orchestrator/discovery.js.map +1 -0
  44. package/dist/orchestrator/expertise.d.ts +5 -0
  45. package/dist/orchestrator/expertise.d.ts.map +1 -0
  46. package/dist/orchestrator/expertise.js +168 -0
  47. package/dist/orchestrator/expertise.js.map +1 -0
  48. package/dist/orchestrator/orchestrator.d.ts.map +1 -1
  49. package/dist/orchestrator/orchestrator.js +63 -37
  50. package/dist/orchestrator/orchestrator.js.map +1 -1
  51. package/dist/orchestrator/page-capture.d.ts +22 -0
  52. package/dist/orchestrator/page-capture.d.ts.map +1 -0
  53. package/dist/orchestrator/page-capture.js +112 -0
  54. package/dist/orchestrator/page-capture.js.map +1 -0
  55. package/dist/orchestrator/test-execution.d.ts.map +1 -1
  56. package/dist/orchestrator/test-execution.js +18 -37
  57. package/dist/orchestrator/test-execution.js.map +1 -1
  58. package/dist/orchestrator/types.d.ts +10 -0
  59. package/dist/orchestrator/types.d.ts.map +1 -1
  60. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"decomposition.js","sourceRoot":"","sources":["../../src/orchestrator/decomposition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decomposition.js","sourceRoot":"","sources":["../../src/orchestrator/decomposition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ApiClient } from "../api/client";
2
+ import type { ScanConfig, ScanEventHandler } from "./types";
3
+ export declare function ensureDirectNavigationCase(api: ApiClient, config: ScanConfig, events: ScanEventHandler, relativePath: string): Promise<void>;
4
+ //# sourceMappingURL=direct-navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct-navigation.d.ts","sourceRoot":"","sources":["../../src/orchestrator/direct-navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AA4B5D,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAgCf"}
@@ -0,0 +1,47 @@
1
+ import { PlaywrightAction } from "../domain/types";
2
+ const DIRECT_NAV_SUITE_TITLE = "Direct Navigations";
3
+ async function ensureDirectNavigationSuite(api, config, events) {
4
+ const suites = await api.getTestSuitesByRunner(config.runnerId);
5
+ const existing = suites.find(suite => suite.title === DIRECT_NAV_SUITE_TITLE);
6
+ if (existing) {
7
+ return existing.id;
8
+ }
9
+ const suite = await api.insertTestSuite(config.runnerId, {
10
+ title: DIRECT_NAV_SUITE_TITLE,
11
+ description: "Auto-created suite for directly navigated URLs",
12
+ startingPath: "/",
13
+ sizeClass: config.sizeClass,
14
+ priority: 1,
15
+ suite_tags: ["direct-navigation"],
16
+ });
17
+ events.onTestSuiteCreated({ suiteId: suite.id, title: suite.title });
18
+ return suite.id;
19
+ }
20
+ export async function ensureDirectNavigationCase(api, config, events, relativePath) {
21
+ const suiteId = await ensureDirectNavigationSuite(api, config, events);
22
+ const testCase = await api.insertTestCase(config.runnerId, {
23
+ title: `Navigate to ${relativePath || "/"}`,
24
+ type: "navigation",
25
+ sizeClass: config.sizeClass,
26
+ priority: 1,
27
+ suite_tags: ["direct-navigation"],
28
+ startingPath: relativePath || "/",
29
+ steps: [],
30
+ globalExpectations: [],
31
+ }, suiteId);
32
+ const existingActions = await api.getTestActionsByCase(testCase.id);
33
+ if (existingActions.length > 0) {
34
+ return;
35
+ }
36
+ await api.createTestAction({
37
+ testCaseId: testCase.id,
38
+ stepOrder: 1,
39
+ actionType: PlaywrightAction.Goto,
40
+ path: relativePath || "/",
41
+ playwrightCode: `await page.goto('${relativePath || "/"}');`,
42
+ description: `Navigate to ${relativePath || "/"}`,
43
+ expectations: [],
44
+ continueOnFailure: false,
45
+ });
46
+ }
47
+ //# sourceMappingURL=direct-navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct-navigation.js","sourceRoot":"","sources":["../../src/orchestrator/direct-navigation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAEpD,KAAK,UAAU,2BAA2B,CACxC,GAAc,EACd,MAAkB,EAClB,MAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,sBAAsB,CAAC,CAAC;IAC9E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvD,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,gDAAgD;QAC7D,YAAY,EAAE,GAAG;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC,mBAAmB,CAAC;KAC3B,CAAC,CAAC;IACV,MAAM,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACrE,OAAO,KAAK,CAAC,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,GAAc,EACd,MAAkB,EAClB,MAAwB,EACxB,YAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,cAAc,CACvC,MAAM,CAAC,QAAQ,EACf;QACE,KAAK,EAAE,eAAe,YAAY,IAAI,GAAG,EAAE;QAC3C,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,YAAY,EAAE,YAAY,IAAI,GAAG;QACjC,KAAK,EAAE,EAAE;QACT,kBAAkB,EAAE,EAAE;KAChB,EACR,OAAO,CACR,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,MAAM,GAAG,CAAC,gBAAgB,CAAC;QACzB,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,gBAAgB,CAAC,IAAI;QACjC,IAAI,EAAE,YAAY,IAAI,GAAG;QACzB,cAAc,EAAE,oBAAoB,YAAY,IAAI,GAAG,KAAK;QAC5D,WAAW,EAAE,eAAe,YAAY,IAAI,GAAG,EAAE;QACjD,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,KAAK;KACzB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { BrowserAdapter } from "../adapter";
2
+ import type { ApiClient } from "../api/client";
3
+ import type { ScanConfig, ScanEventHandler } from "./types";
4
+ export interface DiscoveryResult {
5
+ pageIdsByPath: Map<string, number>;
6
+ visitedPaths: Set<string>;
7
+ capturedPaths: Set<string>;
8
+ }
9
+ export declare function discoverPublicPages(adapter: BrowserAdapter, config: ScanConfig, api: ApiClient, events: ScanEventHandler): Promise<DiscoveryResult>;
10
+ //# sourceMappingURL=discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/orchestrator/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAc5D,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,eAAe,CAAC,CAkF1B"}
@@ -0,0 +1,77 @@
1
+ import { ensureDirectNavigationCase } from "./direct-navigation";
2
+ import { extractSameOriginLinks } from "../crawler/link-extractor";
3
+ import { toRelativePath } from "../crawler/url-normalizer";
4
+ import { captureCurrentPage } from "./page-capture";
5
+ const LOG = (...args) => console.warn("[discovery]", ...args);
6
+ const MAX_DISCOVERY_PAGES = 25;
7
+ function checkAbort(signal) {
8
+ if (signal?.aborted)
9
+ throw new Error("Scan aborted");
10
+ }
11
+ export async function discoverPublicPages(adapter, config, api, events) {
12
+ const queue = [config.scanUrl];
13
+ const visitedPaths = new Set();
14
+ const pageIdsByPath = new Map();
15
+ const capturedPaths = new Set();
16
+ while (queue.length > 0 && visitedPaths.size < MAX_DISCOVERY_PAGES) {
17
+ checkAbort(config.signal);
18
+ const nextUrl = queue.shift();
19
+ if (!nextUrl)
20
+ break;
21
+ LOG(`Visiting ${nextUrl}`);
22
+ try {
23
+ await adapter.goto(nextUrl, { waitUntil: "networkidle0" });
24
+ }
25
+ catch (error) {
26
+ const relativePath = toRelativePath(nextUrl);
27
+ if (config.testEnvironmentId) {
28
+ await api.createPageVisit({
29
+ testRunId: config.scanId,
30
+ testEnvironmentId: config.testEnvironmentId,
31
+ relativePath,
32
+ status: "failed",
33
+ errorMessage: error instanceof Error ? error.message : "Navigation failed",
34
+ });
35
+ }
36
+ continue;
37
+ }
38
+ const currentUrl = await adapter.getUrl();
39
+ const relativePath = toRelativePath(currentUrl);
40
+ if (visitedPaths.has(relativePath)) {
41
+ continue;
42
+ }
43
+ visitedPaths.add(relativePath);
44
+ const page = await api.findOrCreatePage(config.runnerId, relativePath);
45
+ pageIdsByPath.set(relativePath, page.id);
46
+ await ensureDirectNavigationCase(api, config, events, relativePath);
47
+ const captureResult = await captureCurrentPage(adapter, config, api, events, {
48
+ testRunId: config.scanId,
49
+ markDiscovered: true,
50
+ captureState: relativePath !== toRelativePath(config.scanUrl),
51
+ createDecompositionJob: relativePath !== toRelativePath(config.scanUrl),
52
+ });
53
+ if (captureResult?.createdNewState) {
54
+ capturedPaths.add(relativePath);
55
+ }
56
+ const discoveredLinks = await extractSameOriginLinks(adapter, config.baseUrl);
57
+ LOG(`Discovered ${discoveredLinks.length} links on ${relativePath}`);
58
+ if (config.testEnvironmentId && discoveredLinks.length > 0) {
59
+ await api.createDiscoveredPages({
60
+ testEnvironmentId: config.testEnvironmentId,
61
+ pages: discoveredLinks.map(link => ({
62
+ relativePath: link.relativePath,
63
+ sourcePagePath: relativePath,
64
+ sourceLabel: link.label,
65
+ isPublic: true,
66
+ })),
67
+ });
68
+ }
69
+ for (const link of discoveredLinks) {
70
+ if (!visitedPaths.has(link.relativePath)) {
71
+ queue.push(link.url);
72
+ }
73
+ }
74
+ }
75
+ return { pageIdsByPath, visitedPaths, capturedPaths };
76
+ }
77
+ //# sourceMappingURL=discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/orchestrator/discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { BrowserAdapter } from "../adapter";
2
+ import type { ApiClient } from "../api/client";
3
+ import type { ScanConfig, ScanEventHandler } from "./types";
4
+ export declare function executePageExpertises(adapter: BrowserAdapter, config: ScanConfig, api: ApiClient, events: ScanEventHandler, pageStateId: number, pageId: number, relativePath: string): Promise<void>;
5
+ //# sourceMappingURL=expertise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expertise.d.ts","sourceRoot":"","sources":["../../src/orchestrator/expertise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAmG5D,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAsHf"}
@@ -0,0 +1,168 @@
1
+ import { ExpectationType } from "../domain/types";
2
+ import { createDefaultExpertises } from "../expertise";
3
+ import { detectScaffoldRegions } from "../scanner/component-detector";
4
+ import { detectPatternsWithInstances } from "../scanner/pattern-detector";
5
+ const EXPERTISE_PREFIX = "Expertise:";
6
+ function buildDefaultExpectations() {
7
+ return [
8
+ {
9
+ expectationType: ExpectationType.PageLoaded,
10
+ description: "Page should load successfully",
11
+ },
12
+ {
13
+ expectationType: ExpectationType.NoConsoleErrors,
14
+ description: "Page should not produce console errors",
15
+ },
16
+ {
17
+ expectationType: ExpectationType.NoNetworkErrors,
18
+ description: "Page should not produce network errors",
19
+ },
20
+ ];
21
+ }
22
+ function normalizeOutcomes(outcomes) {
23
+ const expectedOutcome = outcomes.length > 0
24
+ ? outcomes.map(item => item.expected).join("\n")
25
+ : undefined;
26
+ const observedOutcome = outcomes.length > 0
27
+ ? outcomes.map(item => `[${item.result}] ${item.observed}`).join("\n")
28
+ : undefined;
29
+ const hasErrors = outcomes.some(item => item.result === "error");
30
+ return {
31
+ expectedOutcome,
32
+ observedOutcome,
33
+ status: hasErrors ? "failed" : "completed",
34
+ };
35
+ }
36
+ async function ensureExpertiseSuite(api, config, events, expertiseName) {
37
+ const title = `${EXPERTISE_PREFIX} ${expertiseName}`;
38
+ const suites = await api.getTestSuitesByRunner(config.runnerId);
39
+ const existing = suites.find(suite => suite.title === title);
40
+ if (existing) {
41
+ return existing.id;
42
+ }
43
+ const created = await api.insertTestSuite(config.runnerId, {
44
+ title,
45
+ description: `Auto-generated expertise suite for ${expertiseName} findings`,
46
+ startingPath: "/",
47
+ sizeClass: config.sizeClass,
48
+ priority: 2,
49
+ suite_tags: ["expertise", expertiseName],
50
+ });
51
+ events.onTestSuiteCreated({ suiteId: created.id, title: created.title });
52
+ return created.id;
53
+ }
54
+ async function ensureExpertiseCase(api, config, suiteId, expertiseName, pageStateId, pageId, relativePath) {
55
+ const testCase = await api.insertTestCase(config.runnerId, {
56
+ title: `${expertiseName}: ${relativePath || "/"}`,
57
+ type: "render",
58
+ sizeClass: config.sizeClass,
59
+ suite_tags: ["expertise", expertiseName],
60
+ page_id: pageId,
61
+ priority: 2,
62
+ startingPageStateId: pageStateId,
63
+ startingPath: relativePath || "/",
64
+ steps: [],
65
+ globalExpectations: [],
66
+ }, suiteId);
67
+ return testCase.id;
68
+ }
69
+ export async function executePageExpertises(adapter, config, api, events, pageStateId, pageId, relativePath) {
70
+ const html = await adapter.content();
71
+ const scaffolds = await detectScaffoldRegions(adapter);
72
+ const patterns = await detectPatternsWithInstances(adapter);
73
+ const expertises = createDefaultExpertises();
74
+ for (const expertise of expertises) {
75
+ const runtimeArtifacts = adapter.getRuntimeArtifacts?.() ?? {
76
+ consoleLogs: [],
77
+ networkLogs: [],
78
+ };
79
+ const context = {
80
+ html,
81
+ scaffolds,
82
+ patterns,
83
+ consoleLogs: runtimeArtifacts.consoleLogs,
84
+ networkLogs: runtimeArtifacts.networkLogs,
85
+ expectations: buildDefaultExpectations(),
86
+ };
87
+ const suiteId = await ensureExpertiseSuite(api, config, events, expertise.name);
88
+ const testCaseId = await ensureExpertiseCase(api, config, suiteId, expertise.name, pageStateId, pageId, relativePath);
89
+ const testCaseRun = await api.createTestCaseRun({ testCaseId });
90
+ const testRun = await api.createTestRun({
91
+ runnerId: config.runnerId,
92
+ testCaseRunId: testCaseRun.id,
93
+ testEnvironmentId: config.testEnvironmentId,
94
+ parentTestRunId: config.scanId,
95
+ rootTestRunId: config.scanId,
96
+ sizeClass: config.sizeClass,
97
+ runnerInstanceId: config.runnerInstanceId,
98
+ runnerInstanceName: config.runnerInstanceName,
99
+ });
100
+ const startedAt = Date.now();
101
+ try {
102
+ const outcomes = expertise.evaluate(context);
103
+ const { expectedOutcome, observedOutcome, status } = normalizeOutcomes(outcomes);
104
+ for (const outcome of outcomes) {
105
+ if (outcome.result === "warning" || outcome.result === "error") {
106
+ await api.createTestRunFinding({
107
+ testCaseRunId: testCaseRun.id,
108
+ type: outcome.result === "error" ? "error" : "warning",
109
+ title: `[${expertise.name}] ${outcome.expected}`,
110
+ description: outcome.observed,
111
+ });
112
+ events.onFindingCreated({
113
+ type: outcome.result,
114
+ title: `[${expertise.name}] ${outcome.expected}`,
115
+ });
116
+ }
117
+ }
118
+ await api.completeTestCaseRun(testCaseRun.id, {
119
+ status,
120
+ durationMs: Date.now() - startedAt,
121
+ expectedOutcome,
122
+ observedOutcome,
123
+ consoleLog: runtimeArtifacts.consoleLogs.join("\n") || undefined,
124
+ networkLog: JSON.stringify(runtimeArtifacts.networkLogs ?? []) || undefined,
125
+ });
126
+ await api.completeTestRun(testRun.id, {
127
+ status,
128
+ totalDurationMs: Date.now() - startedAt,
129
+ });
130
+ events.onTestRunCompleted({
131
+ testRunId: testRun.id,
132
+ passed: status !== "failed",
133
+ });
134
+ }
135
+ catch (error) {
136
+ const message = error instanceof Error ? error.message : "Expertise evaluation failed";
137
+ await api.completeTestCaseRun(testCaseRun.id, {
138
+ status: "failed",
139
+ durationMs: Date.now() - startedAt,
140
+ errorMessage: message,
141
+ consoleLog: runtimeArtifacts.consoleLogs.join("\n") || undefined,
142
+ networkLog: JSON.stringify(runtimeArtifacts.networkLogs ?? []) || undefined,
143
+ });
144
+ await api.completeTestRun(testRun.id, {
145
+ status: "failed",
146
+ totalDurationMs: Date.now() - startedAt,
147
+ });
148
+ await api.createTestRunFinding({
149
+ testCaseRunId: testCaseRun.id,
150
+ type: "error",
151
+ title: `[${expertise.name}] expertise execution failed`,
152
+ description: message,
153
+ });
154
+ events.onFindingCreated({
155
+ type: "error",
156
+ title: `[${expertise.name}] expertise execution failed`,
157
+ });
158
+ events.onTestRunCompleted({
159
+ testRunId: testRun.id,
160
+ passed: false,
161
+ });
162
+ }
163
+ finally {
164
+ adapter.resetRuntimeArtifacts?.();
165
+ }
166
+ }
167
+ }
168
+ //# sourceMappingURL=expertise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expertise.js","sourceRoot":"","sources":["../../src/orchestrator/expertise.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAGvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE1E,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAEtC,SAAS,wBAAwB;IAC/B,OAAO;QACL;YACE,eAAe,EAAE,eAAe,CAAC,UAAU;YAC3C,WAAW,EAAE,+BAA+B;SAC7C;QACD;YACE,eAAe,EAAE,eAAe,CAAC,eAAe;YAChD,WAAW,EAAE,wCAAwC;SACtD;QACD;YACE,eAAe,EAAE,eAAe,CAAC,eAAe;YAChD,WAAW,EAAE,wCAAwC;SACtD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAmB;IAK5C,MAAM,eAAe,GACnB,QAAQ,CAAC,MAAM,GAAG,CAAC;QACjB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,eAAe,GACnB,QAAQ,CAAC,MAAM,GAAG,CAAC;QACjB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACtE,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IAEjE,OAAO;QACL,eAAe;QACf,eAAe;QACf,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;KAC3C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,GAAc,EACd,MAAkB,EAClB,MAAwB,EACxB,aAAqB;IAErB,MAAM,KAAK,GAAG,GAAG,gBAAgB,IAAI,aAAa,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC7D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE;QACzD,KAAK;QACL,WAAW,EAAE,sCAAsC,aAAa,WAAW;QAC3E,YAAY,EAAE,GAAG;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;KAClC,CAAC,CAAC;IACV,MAAM,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACzE,OAAO,OAAO,CAAC,EAAE,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,GAAc,EACd,MAAkB,EAClB,OAAe,EACf,aAAqB,EACrB,WAAmB,EACnB,MAAc,EACd,YAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,cAAc,CACvC,MAAM,CAAC,QAAQ,EACf;QACE,KAAK,EAAE,GAAG,aAAa,KAAK,YAAY,IAAI,GAAG,EAAE;QACjD,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;QACxC,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,WAAW;QAChC,YAAY,EAAE,YAAY,IAAI,GAAG;QACjC,KAAK,EAAE,EAAE;QACT,kBAAkB,EAAE,EAAE;KAChB,EACR,OAAO,CACR,CAAC;IAEF,OAAO,QAAQ,CAAC,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAuB,EACvB,MAAkB,EAClB,GAAc,EACd,MAAwB,EACxB,WAAmB,EACnB,MAAc,EACd,YAAoB;IAEpB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,uBAAuB,EAAE,CAAC;IAE7C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,EAAE,EAAE,IAAI;YAC1D,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,EAAE;SAChB,CAAC;QACF,MAAM,OAAO,GAAqB;YAChC,IAAI;YACJ,SAAS;YACT,QAAQ;YACR,WAAW,EAAE,gBAAgB,CAAC,WAAW;YACzC,WAAW,EAAE,gBAAgB,CAAC,WAAkB;YAChD,YAAY,EAAE,wBAAwB,EAAS;SAChD,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,oBAAoB,CACxC,GAAG,EACH,MAAM,EACN,MAAM,EACN,SAAS,CAAC,IAAI,CACf,CAAC;QACF,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC1C,GAAG,EACH,MAAM,EACN,OAAO,EACP,SAAS,CAAC,IAAI,EACd,WAAW,EACX,MAAM,EACN,YAAY,CACb,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC;YACtC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,aAAa,EAAE,WAAW,CAAC,EAAE;YAC7B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,eAAe,EAAE,MAAM,CAAC,MAAM;YAC9B,aAAa,EAAE,MAAM,CAAC,MAAM;YAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;SAC9C,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,GAChD,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAE9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBAC/D,MAAM,GAAG,CAAC,oBAAoB,CAAC;wBAC7B,aAAa,EAAE,WAAW,CAAC,EAAE;wBAC7B,IAAI,EAAE,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;wBACtD,KAAK,EAAE,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,EAAE;wBAChD,WAAW,EAAE,OAAO,CAAC,QAAQ;qBAC9B,CAAC,CAAC;oBACH,MAAM,CAAC,gBAAgB,CAAC;wBACtB,IAAI,EAAE,OAAO,CAAC,MAAM;wBACpB,KAAK,EAAE,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,EAAE;qBACjD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,GAAG,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,EAAE;gBAC5C,MAAM;gBACN,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,eAAe;gBACf,eAAe;gBACf,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS;gBAChE,UAAU,EACR,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,SAAS;aAClE,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE;gBACpC,MAAM;gBACN,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACxC,CAAC,CAAC;YACH,MAAM,CAAC,kBAAkB,CAAC;gBACxB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,MAAM,EAAE,MAAM,KAAK,QAAQ;aAC5B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC;YACzE,MAAM,GAAG,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,EAAE;gBAC5C,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,YAAY,EAAE,OAAO;gBACrB,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS;gBAChE,UAAU,EACR,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,SAAS;aAClE,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE;gBACpC,MAAM,EAAE,QAAQ;gBAChB,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACxC,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,oBAAoB,CAAC;gBAC7B,aAAa,EAAE,WAAW,CAAC,EAAE;gBAC7B,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,IAAI,SAAS,CAAC,IAAI,8BAA8B;gBACvD,WAAW,EAAE,OAAO;aACrB,CAAC,CAAC;YACH,MAAM,CAAC,gBAAgB,CAAC;gBACtB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,IAAI,SAAS,CAAC,IAAI,8BAA8B;aACxD,CAAC,CAAC;YACH,MAAM,CAAC,kBAAkB,CAAC;gBACxB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAQxE,wBAAsB,OAAO,CAC3B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,SAAS,EACd,YAAY,EAAE,gBAAgB,GAC7B,OAAO,CAAC,UAAU,CAAC,CAgLrB"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA6CxE,wBAAsB,OAAO,CAC3B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,SAAS,EACd,YAAY,EAAE,gBAAgB,GAC7B,OAAO,CAAC,UAAU,CAAC,CA2LrB"}
@@ -1,14 +1,38 @@
1
+ import { discoverPublicPages } from "./discovery";
1
2
  import { processDecompositionJob } from "./decomposition";
2
3
  import { executeTestCases } from "./test-execution";
3
- import { computeHashes } from "../browser/page-utils";
4
- import { extractActionableItems } from "../extractors";
4
+ import { captureCurrentPage, resetCapturedPagePaths } from "./page-capture";
5
5
  const LOG = (...args) => console.warn("[orchestrator]", ...args);
6
+ function buildAiSummary(pagesFound, pageStatesFound, testRunsCompleted, findingsFound, expertiseSummary) {
7
+ const expertiseLines = Object.entries(expertiseSummary)
8
+ .sort(([left], [right]) => left.localeCompare(right))
9
+ .map(([name, counts]) => {
10
+ const parts = [];
11
+ if (counts.errors > 0)
12
+ parts.push(`${counts.errors} error${counts.errors === 1 ? "" : "s"}`);
13
+ if (counts.warnings > 0) {
14
+ parts.push(`${counts.warnings} warning${counts.warnings === 1 ? "" : "s"}`);
15
+ }
16
+ return parts.length > 0
17
+ ? `${name}: ${parts.join(", ")}`
18
+ : `${name}: no findings`;
19
+ });
20
+ const headline = findingsFound === 0
21
+ ? `Scan completed with no findings across ${pagesFound} page${pagesFound === 1 ? "" : "s"}.`
22
+ : `Scan completed with ${findingsFound} finding${findingsFound === 1 ? "" : "s"} across ${pagesFound} page${pagesFound === 1 ? "" : "s"}.`;
23
+ const detail = `Captured ${pageStatesFound} page state${pageStatesFound === 1 ? "" : "s"} and completed ${testRunsCompleted} test run${testRunsCompleted === 1 ? "" : "s"}.`;
24
+ if (expertiseLines.length === 0) {
25
+ return `${headline} ${detail}`;
26
+ }
27
+ return `${headline} ${detail} Findings by expertise: ${expertiseLines.join("; ")}.`;
28
+ }
6
29
  export async function runScan(adapter, config, api, eventHandler) {
7
30
  const startTime = Date.now();
8
31
  let pagesFound = 0;
9
32
  let pageStatesFound = 0;
10
33
  let testRunsCompleted = 0;
11
34
  let findingsFound = 0;
35
+ const expertiseSummary = {};
12
36
  const wrappedHandler = {
13
37
  ...eventHandler,
14
38
  onPageFound(page) {
@@ -28,6 +52,21 @@ export async function runScan(adapter, config, api, eventHandler) {
28
52
  },
29
53
  onFindingCreated(finding) {
30
54
  findingsFound++;
55
+ const match = /^\[([^\]]+)\]/.exec(finding.title);
56
+ if (match?.[1]) {
57
+ const expertiseName = match[1];
58
+ const counts = expertiseSummary[expertiseName] ?? {
59
+ warnings: 0,
60
+ errors: 0,
61
+ };
62
+ if (finding.type === "error") {
63
+ counts.errors += 1;
64
+ }
65
+ else if (finding.type === "warning") {
66
+ counts.warnings += 1;
67
+ }
68
+ expertiseSummary[expertiseName] = counts;
69
+ }
31
70
  eventHandler.onFindingCreated(finding);
32
71
  emitStats();
33
72
  },
@@ -41,42 +80,23 @@ export async function runScan(adapter, config, api, eventHandler) {
41
80
  });
42
81
  }
43
82
  try {
44
- // 1. Navigate to scan URL, capture initial page state
45
- LOG(`Step 1: Navigating to ${config.scanUrl}`);
83
+ resetCapturedPagePaths();
84
+ // 1. Crawl the site from the scan URL to inventory public pages
85
+ LOG(`Step 1: Discovering pages from ${config.scanUrl}`);
86
+ await discoverPublicPages(adapter, config, api, wrappedHandler);
87
+ // 2. Navigate back to scan URL and capture initial page state
88
+ LOG(`Step 2: Navigating to ${config.scanUrl}`);
46
89
  await adapter.goto(config.scanUrl, { waitUntil: "networkidle0" });
47
- const initialHtml = await adapter.content();
48
- LOG(`Page HTML length: ${initialHtml.length}`);
49
- // Compute relative path from scanUrl and baseUrl
50
- const scanUrlObj = new URL(config.scanUrl);
51
- const relativePath = scanUrlObj.pathname;
52
- const page = await api.findOrCreatePage(config.runnerId, relativePath);
53
- LOG(`Page created/found: id=${page.id}, path=${relativePath}`);
54
- wrappedHandler.onPageFound({ relativePath, pageId: page.id });
55
- // Extract actionable items and compute hashes
56
- const items = await extractActionableItems(adapter);
57
- LOG(`Extracted ${items.length} actionable items from page`);
58
- const hashes = await computeHashes(initialHtml, items);
59
- LOG(`Computed hashes:`, hashes);
60
- const initialPageState = await api.createPageState({
61
- pageId: page.id,
62
- sizeClass: config.sizeClass,
63
- hashes,
64
- screenshotPath: undefined,
65
- contentText: initialHtml.slice(0, 5000),
66
- });
67
- LOG(`Created page state: id=${initialPageState.id}`);
68
- wrappedHandler.onPageStateCreated({
69
- pageStateId: initialPageState.id,
70
- pageId: page.id,
71
- });
72
- // 2. Create initial AI Decomposition Job
73
- const initialJob = await api.createDecompositionJob(config.scanId, initialPageState.id);
74
- LOG(`Created decomposition job: id=${initialJob.id}`);
75
- wrappedHandler.onDecompositionJobCreated({
76
- jobId: initialJob.id,
77
- pageStateId: initialPageState.id,
90
+ const initialCapture = await captureCurrentPage(adapter, config, api, wrappedHandler, {
91
+ testRunId: config.scanId,
92
+ markDiscovered: false,
93
+ createDecompositionJob: true,
78
94
  });
79
- // 3. Generate/Run loop
95
+ if (!initialCapture?.pageStateId) {
96
+ throw new Error("Failed to capture initial page state");
97
+ }
98
+ LOG(`Captured initial page state ${initialCapture.pageStateId} for ${initialCapture.relativePath}`);
99
+ // 4. Generate/Run loop
80
100
  let iteration = 0;
81
101
  const MAX_ITERATIONS = 50;
82
102
  while (iteration < MAX_ITERATIONS) {
@@ -113,10 +133,12 @@ export async function runScan(adapter, config, api, eventHandler) {
113
133
  }
114
134
  LOG("New pages discovered — continuing to next iteration");
115
135
  }
116
- // 4. Complete test run
136
+ // 5. Complete test run
117
137
  const durationMs = Date.now() - startTime;
138
+ const aiSummary = buildAiSummary(pagesFound, pageStatesFound, testRunsCompleted, findingsFound, expertiseSummary);
118
139
  await api.completeTestRun(config.scanId, {
119
140
  status: "completed",
141
+ aiSummary,
120
142
  totalDurationMs: durationMs,
121
143
  pagesFound,
122
144
  pageStatesFound,
@@ -129,11 +151,15 @@ export async function runScan(adapter, config, api, eventHandler) {
129
151
  testRunsCompleted,
130
152
  findingsFound,
131
153
  durationMs,
154
+ aiSummary,
155
+ expertiseSummary,
132
156
  };
133
157
  wrappedHandler.onScanComplete({
134
158
  totalPages: pagesFound,
135
159
  totalFindings: findingsFound,
136
160
  durationMs,
161
+ aiSummary,
162
+ expertiseSummary,
137
163
  });
138
164
  return result;
139
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}