@zigrivers/surface-core 0.1.0 → 0.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/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { aO as Lens, A as AppType, bY as Target, v as CaptureOptions, bt as Result, C as Capture, bR as SurfaceError, d as ArtifactWriter, q as CaptureBackend, bL as SurfaceConfig, bI as StateStore, bg as ProjectStateSnapshot, p as CaptureArtifactType, aU as ModelAvailability, aq as FrameworkAdapter, av as GateEvaluator, aB as GroundingTool, aI as IssueExporter, aN as KnowledgeSource, bp as ReportRenderer, G as ComponentMap, bC as SourceFileRef, ab as FindingDraft, bk as RedactionRule, c7 as TrackedFindingsDiff, al as FindingsEnvelope, aa as Finding, B as Backlog, ba as PersistedArtifactRef, bn as Report, aM as KnowledgeEntry, bm as RelevanceQuery, c0 as Theme } from './interfaces-OHgLgNLO.js';
2
- export { a as AppTypeSchema, b as ApplyWaiversInput, c as AriaAttributeSuggestedPatchSchema, e as BacklogEntry, f as BacklogEntrySchema, g as BacklogSchema, h as Baseline, i as BrokenFindingIdentityAssignment, j as BrokenFindingIdentityAssignmentSchema, k as BrokenIdentityDriftResultSchema, r as CaptureConfig, s as CaptureConfigLayerSchema, t as CaptureConfigSchema, y as CitedHeuristicEvidence, z as CitedHeuristicEvidenceSchema, D as CliErrorEnvelope, E as CliExitCode, F as CliExitCodeSchema, I as ConfidenceBand, J as ConfidenceBandSchema, K as ConfidenceCutoffs, L as ConfidenceCutoffsLayerSchema, M as ConfidenceCutoffsSchema, N as ContrastHexSuggestedPatchSchema, O as CreateBaselineInput, P as CreateSurfaceErrorOptions, Q as CreateTrackedFindingInput, R as DEFAULT_FINDINGS_POLICY, S as DEFAULT_SURFACE_CONFIG, U as Depth, V as DepthSchema, W as DiffableTrackedFinding, X as Dimensions, Y as DimensionsSchema, Z as DomEvidence, _ as DomEvidenceSchema, $ as EdgeErrorContext, a0 as EvaluationConfig, a1 as EvaluationConfigLayerSchema, a2 as EvaluationConfigSchema, a3 as EvaluationMethod, a4 as EvaluationMethodSchema, a5 as Evidence, a6 as EvidenceSchema, a7 as ExportTarget, a8 as ExportTargetSchema, ac as FindingDraftSchema, ad as FindingIdentity, ae as FindingIdentityAssignment, af as FindingIdentityAssignmentSchema, ag as FindingIdentityCandidate, ah as FindingIdentityCandidateSchema, ai as FindingIdentitySchema, aj as FindingSchema, ak as FindingStatus, am as FindingsEnvelopeSchema, an as FindingsPolicy, ao as FindingsPolicyLayerSchema, ap as FindingsPolicySchema, at as GateDisposition, aw as GatePolicy, ay as GatePolicyLayerSchema, az as GatePolicySchema, aC as IdentityAnchorKind, aD as IdentityAnchorKindSchema, aE as IdentityDriftResult, aF as IdentityDriftResultSchema, aJ as JUDGED_COVERAGE_UNAVAILABLE_MESSAGE, aR as Location, aS as LocationSchema, aT as McpStructuredError, aV as ModelAvailabilitySchema, aW as ModelCompletionAdapter, aX as ModelLensSkip, aY as ModelLensSkipSchema, aZ as ModelPrompt, a_ as ModelPromptSchema, a$ as ModelProvider, b0 as ModelProviderConfig, b1 as ModelProviderConfigInput, b2 as ModelProviderConfigSchema, b3 as ModelProviderId, b4 as ModelProviderResolution, b5 as ModelRequest, b6 as ModelRequestSchema, b7 as ModelResponse, b8 as ModelResponseSchema, bb as Preset, bc as PresetSchema, bi as Rect, bj as RectSchema, bl as RedactionRuleSchema, bq as ReportingConfig, br as ReportingConfigLayerSchema, bs as ReportingConfigSchema, bu as SURFACE_ERROR_DEFINITIONS, bv as ScreenshotRegionEvidence, bw as ScreenshotRegionEvidenceSchema, bx as SeverityBand, by as SeverityBandSchema, bz as SeverityCutoffs, bA as SeverityCutoffsLayerSchema, bB as SeverityCutoffsSchema, bD as StableFindingIdentityAssignment, bE as StableFindingIdentityAssignmentSchema, bF as StableIdentityDriftResultSchema, bG as Stack, bH as StackSchema, bJ as SuggestedPatch, bK as SuggestedPatchSchema, bM as SurfaceConfigLayer, bN as SurfaceConfigLayerSchema, bO as SurfaceConfigLayers, bP as SurfaceConfigLayersSchema, bQ as SurfaceConfigSchema, bS as SurfaceErrorCode, bT as SurfaceErrorCodeSchema, bU as SurfaceErrorDefinition, bV as SurfaceErrorKind, bW as SurfaceErrorKindSchema, bX as SurfaceErrorSchema, b_ as TargetSizeSuggestedPatchSchema, c2 as ToolResultEvidence, c3 as ToolResultEvidenceSchema, c4 as TrackedFinding, c5 as TrackedFindingHistoryEntry, c6 as TrackedFindingTransition, c8 as TrackedFindingsDiffEntry, c9 as ValidationCheck, ca as Viewport, cd as ViewportSchema, ce as Waiver, cf as applyWaiversToTrackedFindings, cg as assignFindingIdentities, ch as createBaseline, ci as createConfiguredModelProvider, cj as createSurfaceError, ck as createTrackedFinding, cl as createUnavailableModelProvider, cm as deriveFindingIdentity, cn as deriveFindingIdentityCandidate, co as diffTrackedFindings, cp as err, cq as exitCodeForSurfaceError, cr as identityInternalsForTesting, cs as isErr, ct as isOk, cu as isWaiverActive, cv as matchFindingIdentity, cw as modelSkipForLens, cx as ok, cy as resolveModelProviderConfig, cz as resolveSurfaceConfig, cA as scoreFinding, cB as synthesizeBacklog, cC as toCliErrorEnvelope, cD as toMcpError, cE as transitionTrackedFinding } from './interfaces-OHgLgNLO.js';
1
+ import { aO as Lens, A as AppType, bu as Result, bS as SurfaceError, bJ as StateStore, aa as Finding, c5 as TrackedFinding, bZ as Target, v as CaptureOptions, C as Capture, d as ArtifactWriter, q as CaptureBackend, bM as SurfaceConfig, bg as ProjectStateSnapshot, p as CaptureArtifactType, aU as ModelAvailability, aq as FrameworkAdapter, av as GateEvaluator, aB as GroundingTool, aI as IssueExporter, aN as KnowledgeSource, bq as ReportRenderer, G as ComponentMap, bD as SourceFileRef, ab as FindingDraft, bl as RedactionRule, au as GateEvaluationContext, aw as GatePolicy, aA as GateResult, c8 as TrackedFindingsDiff, al as FindingsEnvelope, B as Backlog, ba as PersistedArtifactRef, bo as Report, aM as KnowledgeEntry, bn as RelevanceQuery, c1 as Theme } from './interfaces-DISqY_P4.js';
2
+ export { a as AppTypeSchema, b as ApplyWaiversInput, c as AriaAttributeSuggestedPatchSchema, e as BacklogEntry, f as BacklogEntrySchema, g as BacklogSchema, h as Baseline, i as BrokenFindingIdentityAssignment, j as BrokenFindingIdentityAssignmentSchema, k as BrokenIdentityDriftResultSchema, r as CaptureConfig, s as CaptureConfigLayerSchema, t as CaptureConfigSchema, y as CitedHeuristicEvidence, z as CitedHeuristicEvidenceSchema, D as CliErrorEnvelope, E as CliExitCode, F as CliExitCodeSchema, I as ConfidenceBand, J as ConfidenceBandSchema, K as ConfidenceCutoffs, L as ConfidenceCutoffsLayerSchema, M as ConfidenceCutoffsSchema, N as ContrastHexSuggestedPatchSchema, O as CreateBaselineInput, P as CreateSurfaceErrorOptions, Q as CreateTrackedFindingInput, R as DEFAULT_FINDINGS_POLICY, S as DEFAULT_SURFACE_CONFIG, U as Depth, V as DepthSchema, W as DiffableTrackedFinding, X as Dimensions, Y as DimensionsSchema, Z as DomEvidence, _ as DomEvidenceSchema, $ as EdgeErrorContext, a0 as EvaluationConfig, a1 as EvaluationConfigLayerSchema, a2 as EvaluationConfigSchema, a3 as EvaluationMethod, a4 as EvaluationMethodSchema, a5 as Evidence, a6 as EvidenceSchema, a7 as ExportTarget, a8 as ExportTargetSchema, ac as FindingDraftSchema, ad as FindingIdentity, ae as FindingIdentityAssignment, af as FindingIdentityAssignmentSchema, ag as FindingIdentityCandidate, ah as FindingIdentityCandidateSchema, ai as FindingIdentitySchema, aj as FindingSchema, ak as FindingStatus, am as FindingsEnvelopeSchema, an as FindingsPolicy, ao as FindingsPolicyLayerSchema, ap as FindingsPolicySchema, at as GateDisposition, ax as GatePolicy, ay as GatePolicyLayerSchema, az as GatePolicySchema, aC as IdentityAnchorKind, aD as IdentityAnchorKindSchema, aE as IdentityDriftResult, aF as IdentityDriftResultSchema, aJ as JUDGED_COVERAGE_UNAVAILABLE_MESSAGE, aR as Location, aS as LocationSchema, aT as McpStructuredError, aV as ModelAvailabilitySchema, aW as ModelCompletionAdapter, aX as ModelLensSkip, aY as ModelLensSkipSchema, aZ as ModelPrompt, a_ as ModelPromptSchema, a$ as ModelProvider, b0 as ModelProviderConfig, b1 as ModelProviderConfigInput, b2 as ModelProviderConfigSchema, b3 as ModelProviderId, b4 as ModelProviderResolution, b5 as ModelRequest, b6 as ModelRequestSchema, b7 as ModelResponse, b8 as ModelResponseSchema, bb as Preset, bc as PresetSchema, bj as Rect, bk as RectSchema, bm as RedactionRuleSchema, br as ReportingConfig, bs as ReportingConfigLayerSchema, bt as ReportingConfigSchema, bv as SURFACE_ERROR_DEFINITIONS, bw as ScreenshotRegionEvidence, bx as ScreenshotRegionEvidenceSchema, by as SeverityBand, bz as SeverityBandSchema, bA as SeverityCutoffs, bB as SeverityCutoffsLayerSchema, bC as SeverityCutoffsSchema, bE as StableFindingIdentityAssignment, bF as StableFindingIdentityAssignmentSchema, bG as StableIdentityDriftResultSchema, bH as Stack, bI as StackSchema, bK as SuggestedPatch, bL as SuggestedPatchSchema, bN as SurfaceConfigLayer, bO as SurfaceConfigLayerSchema, bP as SurfaceConfigLayers, bQ as SurfaceConfigLayersSchema, bR as SurfaceConfigSchema, bT as SurfaceErrorCode, bU as SurfaceErrorCodeSchema, bV as SurfaceErrorDefinition, bW as SurfaceErrorKind, bX as SurfaceErrorKindSchema, bY as SurfaceErrorSchema, b$ as TargetSizeSuggestedPatchSchema, c3 as ToolResultEvidence, c4 as ToolResultEvidenceSchema, c6 as TrackedFindingHistoryEntry, c7 as TrackedFindingTransition, c9 as TrackedFindingsDiffEntry, ca as ValidationCheck, cb as Viewport, ce as ViewportSchema, cf as Waiver, cg as applyWaiversToTrackedFindings, ch as assignFindingIdentities, ci as createBaseline, cj as createConfiguredModelProvider, ck as createSurfaceError, cl as createTrackedFinding, cm as createUnavailableModelProvider, cn as deriveFindingIdentity, co as deriveFindingIdentityCandidate, cp as diffTrackedFindings, cq as err, cr as exitCodeForSurfaceError, cs as identityInternalsForTesting, ct as isErr, cu as isOk, cv as isWaiverActive, cw as matchFindingIdentity, cx as modelSkipForLens, cy as ok, cz as resolveModelProviderConfig, cA as resolveSurfaceConfig, cB as scoreFinding, cC as synthesizeBacklog, cD as toCliErrorEnvelope, cE as toMcpError, cF as transitionTrackedFinding } from './interfaces-DISqY_P4.js';
3
3
  import { z } from 'zod';
4
4
  import { DestinationStream, Logger } from 'pino';
5
5
  import { LockOptions } from 'proper-lockfile';
@@ -70,6 +70,2048 @@ declare function getAppTypeOverlay(appType?: AppType): Readonly<AppTypeOverlay>;
70
70
  declare function listAppTypeOverlays(): readonly Readonly<AppTypeOverlay>[];
71
71
  declare function serializeAppTypeOverlayToYaml(overlay: AppTypeOverlay): string;
72
72
 
73
+ declare const QaRunIdSchema: z.ZodString;
74
+ declare const FlowRunIdSchema: z.ZodString;
75
+ declare const CandidateFindingIdSchema: z.ZodString;
76
+ declare const CandidateFlowIdSchema: z.ZodString;
77
+ declare const EvidenceBundleIdSchema: z.ZodString;
78
+ declare const QaSeveritySchema: z.ZodEnum<{
79
+ critical: "critical";
80
+ high: "high";
81
+ medium: "medium";
82
+ low: "low";
83
+ }>;
84
+ type QaSeverity = z.infer<typeof QaSeveritySchema>;
85
+ declare const QaStatusSchema: z.ZodEnum<{
86
+ completed: "completed";
87
+ degraded: "degraded";
88
+ failed: "failed";
89
+ }>;
90
+ declare const QaTargetSchema: z.ZodObject<{
91
+ kind: z.ZodEnum<{
92
+ dom: "dom";
93
+ component: "component";
94
+ screenshot: "screenshot";
95
+ url: "url";
96
+ localhost: "localhost";
97
+ route: "route";
98
+ }>;
99
+ ref: z.ZodString;
100
+ theme: z.ZodOptional<z.ZodEnum<{
101
+ light: "light";
102
+ dark: "dark";
103
+ }>>;
104
+ viewport: z.ZodOptional<z.ZodObject<{
105
+ height: z.ZodNumber;
106
+ label: z.ZodEnum<{
107
+ mobile: "mobile";
108
+ tablet: "tablet";
109
+ desktop: "desktop";
110
+ }>;
111
+ width: z.ZodNumber;
112
+ }, z.core.$strict>>;
113
+ }, z.core.$strict>;
114
+ type QaTarget = z.infer<typeof QaTargetSchema>;
115
+ declare const QaDegradationSchema: z.ZodObject<{
116
+ code: z.ZodString;
117
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
118
+ message: z.ZodString;
119
+ scope: z.ZodString;
120
+ severity: z.ZodDefault<z.ZodEnum<{
121
+ error: "error";
122
+ info: "info";
123
+ warning: "warning";
124
+ }>>;
125
+ }, z.core.$strict>;
126
+ type QaDegradation = z.infer<typeof QaDegradationSchema>;
127
+ declare const BrowserLocatorSchema: z.ZodObject<{
128
+ label: z.ZodOptional<z.ZodString>;
129
+ name: z.ZodOptional<z.ZodString>;
130
+ placeholder: z.ZodOptional<z.ZodString>;
131
+ refHint: z.ZodOptional<z.ZodString>;
132
+ role: z.ZodOptional<z.ZodString>;
133
+ selector: z.ZodOptional<z.ZodString>;
134
+ testId: z.ZodOptional<z.ZodString>;
135
+ text: z.ZodOptional<z.ZodString>;
136
+ }, z.core.$strict>;
137
+ type BrowserLocator = z.infer<typeof BrowserLocatorSchema>;
138
+ declare const BrowserActionNameSchema: z.ZodEnum<{
139
+ type: "type";
140
+ check: "check";
141
+ assert: "assert";
142
+ fill: "fill";
143
+ capture: "capture";
144
+ select: "select";
145
+ open: "open";
146
+ pushstate: "pushstate";
147
+ click: "click";
148
+ dblclick: "dblclick";
149
+ hover: "hover";
150
+ focus: "focus";
151
+ press: "press";
152
+ uncheck: "uncheck";
153
+ upload: "upload";
154
+ scroll: "scroll";
155
+ wait: "wait";
156
+ setViewport: "setViewport";
157
+ setTheme: "setTheme";
158
+ }>;
159
+ type BrowserActionName = z.infer<typeof BrowserActionNameSchema>;
160
+ declare const BrowserActionSchema: z.ZodObject<{
161
+ action: z.ZodEnum<{
162
+ type: "type";
163
+ check: "check";
164
+ assert: "assert";
165
+ fill: "fill";
166
+ capture: "capture";
167
+ select: "select";
168
+ open: "open";
169
+ pushstate: "pushstate";
170
+ click: "click";
171
+ dblclick: "dblclick";
172
+ hover: "hover";
173
+ focus: "focus";
174
+ press: "press";
175
+ uncheck: "uncheck";
176
+ upload: "upload";
177
+ scroll: "scroll";
178
+ wait: "wait";
179
+ setViewport: "setViewport";
180
+ setTheme: "setTheme";
181
+ }>;
182
+ locator: z.ZodOptional<z.ZodObject<{
183
+ label: z.ZodOptional<z.ZodString>;
184
+ name: z.ZodOptional<z.ZodString>;
185
+ placeholder: z.ZodOptional<z.ZodString>;
186
+ refHint: z.ZodOptional<z.ZodString>;
187
+ role: z.ZodOptional<z.ZodString>;
188
+ selector: z.ZodOptional<z.ZodString>;
189
+ testId: z.ZodOptional<z.ZodString>;
190
+ text: z.ZodOptional<z.ZodString>;
191
+ }, z.core.$strict>>;
192
+ url: z.ZodOptional<z.ZodString>;
193
+ value: z.ZodOptional<z.ZodString>;
194
+ }, z.core.$strict>;
195
+ type BrowserAction = z.infer<typeof BrowserActionSchema>;
196
+ declare const BrowserQaFlowStepSchema: z.ZodObject<{
197
+ action: z.ZodEnum<{
198
+ type: "type";
199
+ check: "check";
200
+ assert: "assert";
201
+ fill: "fill";
202
+ capture: "capture";
203
+ select: "select";
204
+ open: "open";
205
+ pushstate: "pushstate";
206
+ click: "click";
207
+ dblclick: "dblclick";
208
+ hover: "hover";
209
+ focus: "focus";
210
+ press: "press";
211
+ uncheck: "uncheck";
212
+ upload: "upload";
213
+ scroll: "scroll";
214
+ wait: "wait";
215
+ setViewport: "setViewport";
216
+ setTheme: "setTheme";
217
+ }>;
218
+ locator: z.ZodOptional<z.ZodObject<{
219
+ label: z.ZodOptional<z.ZodString>;
220
+ name: z.ZodOptional<z.ZodString>;
221
+ placeholder: z.ZodOptional<z.ZodString>;
222
+ refHint: z.ZodOptional<z.ZodString>;
223
+ role: z.ZodOptional<z.ZodString>;
224
+ selector: z.ZodOptional<z.ZodString>;
225
+ testId: z.ZodOptional<z.ZodString>;
226
+ text: z.ZodOptional<z.ZodString>;
227
+ }, z.core.$strict>>;
228
+ url: z.ZodOptional<z.ZodString>;
229
+ value: z.ZodOptional<z.ZodString>;
230
+ capture: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
231
+ evidence: z.ZodOptional<z.ZodEnum<{
232
+ minimal: "minimal";
233
+ failures: "failures";
234
+ full: "full";
235
+ }>>;
236
+ label: z.ZodOptional<z.ZodString>;
237
+ }, z.core.$strict>]>>;
238
+ expect: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
239
+ id: z.ZodString;
240
+ retry: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
241
+ severity: z.ZodOptional<z.ZodEnum<{
242
+ critical: "critical";
243
+ high: "high";
244
+ medium: "medium";
245
+ low: "low";
246
+ }>>;
247
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
248
+ wait: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
249
+ }, z.core.$strict>;
250
+ type BrowserQaFlowStep = z.infer<typeof BrowserQaFlowStepSchema>;
251
+ declare const BrowserQaFlowSchema: z.ZodObject<{
252
+ actionPolicy: z.ZodOptional<z.ZodObject<{
253
+ ref: z.ZodString;
254
+ }, z.core.$strict>>;
255
+ defaults: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
256
+ fixtures: z.ZodDefault<z.ZodArray<z.ZodObject<{
257
+ id: z.ZodString;
258
+ path: z.ZodString;
259
+ }, z.core.$strict>>>;
260
+ id: z.ZodString;
261
+ inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
262
+ isolation: z.ZodOptional<z.ZodObject<{
263
+ fixtureAccountId: z.ZodOptional<z.ZodString>;
264
+ mode: z.ZodDefault<z.ZodEnum<{
265
+ isolated: "isolated";
266
+ shared: "shared";
267
+ }>>;
268
+ mutatesState: z.ZodDefault<z.ZodBoolean>;
269
+ resetEndpointId: z.ZodOptional<z.ZodString>;
270
+ resetRequired: z.ZodDefault<z.ZodBoolean>;
271
+ }, z.core.$strict>>;
272
+ schemaVersion: z.ZodLiteral<"1.0">;
273
+ secrets: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
274
+ fromEnv: z.ZodString;
275
+ }, z.core.$strict>>>;
276
+ severity: z.ZodDefault<z.ZodEnum<{
277
+ critical: "critical";
278
+ high: "high";
279
+ medium: "medium";
280
+ low: "low";
281
+ }>>;
282
+ steps: z.ZodArray<z.ZodObject<{
283
+ action: z.ZodEnum<{
284
+ type: "type";
285
+ check: "check";
286
+ assert: "assert";
287
+ fill: "fill";
288
+ capture: "capture";
289
+ select: "select";
290
+ open: "open";
291
+ pushstate: "pushstate";
292
+ click: "click";
293
+ dblclick: "dblclick";
294
+ hover: "hover";
295
+ focus: "focus";
296
+ press: "press";
297
+ uncheck: "uncheck";
298
+ upload: "upload";
299
+ scroll: "scroll";
300
+ wait: "wait";
301
+ setViewport: "setViewport";
302
+ setTheme: "setTheme";
303
+ }>;
304
+ locator: z.ZodOptional<z.ZodObject<{
305
+ label: z.ZodOptional<z.ZodString>;
306
+ name: z.ZodOptional<z.ZodString>;
307
+ placeholder: z.ZodOptional<z.ZodString>;
308
+ refHint: z.ZodOptional<z.ZodString>;
309
+ role: z.ZodOptional<z.ZodString>;
310
+ selector: z.ZodOptional<z.ZodString>;
311
+ testId: z.ZodOptional<z.ZodString>;
312
+ text: z.ZodOptional<z.ZodString>;
313
+ }, z.core.$strict>>;
314
+ url: z.ZodOptional<z.ZodString>;
315
+ value: z.ZodOptional<z.ZodString>;
316
+ capture: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
317
+ evidence: z.ZodOptional<z.ZodEnum<{
318
+ minimal: "minimal";
319
+ failures: "failures";
320
+ full: "full";
321
+ }>>;
322
+ label: z.ZodOptional<z.ZodString>;
323
+ }, z.core.$strict>]>>;
324
+ expect: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
325
+ id: z.ZodString;
326
+ retry: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
327
+ severity: z.ZodOptional<z.ZodEnum<{
328
+ critical: "critical";
329
+ high: "high";
330
+ medium: "medium";
331
+ low: "low";
332
+ }>>;
333
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
334
+ wait: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
335
+ }, z.core.$strict>>;
336
+ target: z.ZodOptional<z.ZodObject<{
337
+ kind: z.ZodEnum<{
338
+ dom: "dom";
339
+ component: "component";
340
+ screenshot: "screenshot";
341
+ url: "url";
342
+ localhost: "localhost";
343
+ route: "route";
344
+ }>;
345
+ ref: z.ZodString;
346
+ theme: z.ZodOptional<z.ZodEnum<{
347
+ light: "light";
348
+ dark: "dark";
349
+ }>>;
350
+ viewport: z.ZodOptional<z.ZodObject<{
351
+ height: z.ZodNumber;
352
+ label: z.ZodEnum<{
353
+ mobile: "mobile";
354
+ tablet: "tablet";
355
+ desktop: "desktop";
356
+ }>;
357
+ width: z.ZodNumber;
358
+ }, z.core.$strict>>;
359
+ }, z.core.$strict>>;
360
+ teardown: z.ZodOptional<z.ZodObject<{
361
+ always: z.ZodDefault<z.ZodArray<z.ZodObject<{
362
+ action: z.ZodEnum<{
363
+ type: "type";
364
+ check: "check";
365
+ assert: "assert";
366
+ fill: "fill";
367
+ capture: "capture";
368
+ select: "select";
369
+ open: "open";
370
+ pushstate: "pushstate";
371
+ click: "click";
372
+ dblclick: "dblclick";
373
+ hover: "hover";
374
+ focus: "focus";
375
+ press: "press";
376
+ uncheck: "uncheck";
377
+ upload: "upload";
378
+ scroll: "scroll";
379
+ wait: "wait";
380
+ setViewport: "setViewport";
381
+ setTheme: "setTheme";
382
+ }>;
383
+ locator: z.ZodOptional<z.ZodObject<{
384
+ label: z.ZodOptional<z.ZodString>;
385
+ name: z.ZodOptional<z.ZodString>;
386
+ placeholder: z.ZodOptional<z.ZodString>;
387
+ refHint: z.ZodOptional<z.ZodString>;
388
+ role: z.ZodOptional<z.ZodString>;
389
+ selector: z.ZodOptional<z.ZodString>;
390
+ testId: z.ZodOptional<z.ZodString>;
391
+ text: z.ZodOptional<z.ZodString>;
392
+ }, z.core.$strict>>;
393
+ url: z.ZodOptional<z.ZodString>;
394
+ value: z.ZodOptional<z.ZodString>;
395
+ capture: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
396
+ evidence: z.ZodOptional<z.ZodEnum<{
397
+ minimal: "minimal";
398
+ failures: "failures";
399
+ full: "full";
400
+ }>>;
401
+ label: z.ZodOptional<z.ZodString>;
402
+ }, z.core.$strict>]>>;
403
+ expect: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
404
+ id: z.ZodString;
405
+ retry: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
406
+ severity: z.ZodOptional<z.ZodEnum<{
407
+ critical: "critical";
408
+ high: "high";
409
+ medium: "medium";
410
+ low: "low";
411
+ }>>;
412
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
413
+ wait: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
414
+ }, z.core.$strict>>>;
415
+ }, z.core.$strict>>;
416
+ title: z.ZodString;
417
+ }, z.core.$strict>;
418
+ type BrowserQaFlow = z.infer<typeof BrowserQaFlowSchema>;
419
+ declare const ActionPolicyCategorySchema: z.ZodEnum<{
420
+ unknown: "unknown";
421
+ navigation: "navigation";
422
+ form: "form";
423
+ upload: "upload";
424
+ reveal: "reveal";
425
+ submit: "submit";
426
+ save: "save";
427
+ delete: "delete";
428
+ clear: "clear";
429
+ payment: "payment";
430
+ account: "account";
431
+ "externally-visible": "externally-visible";
432
+ persistent: "persistent";
433
+ }>;
434
+ type ActionPolicyCategory = z.infer<typeof ActionPolicyCategorySchema>;
435
+ declare const ActionPolicyRuleSchema: z.ZodObject<{
436
+ actions: z.ZodOptional<z.ZodArray<z.ZodEnum<{
437
+ type: "type";
438
+ check: "check";
439
+ assert: "assert";
440
+ fill: "fill";
441
+ capture: "capture";
442
+ select: "select";
443
+ open: "open";
444
+ pushstate: "pushstate";
445
+ click: "click";
446
+ dblclick: "dblclick";
447
+ hover: "hover";
448
+ focus: "focus";
449
+ press: "press";
450
+ uncheck: "uncheck";
451
+ upload: "upload";
452
+ scroll: "scroll";
453
+ wait: "wait";
454
+ setViewport: "setViewport";
455
+ setTheme: "setTheme";
456
+ }>>>;
457
+ categories: z.ZodOptional<z.ZodArray<z.ZodEnum<{
458
+ unknown: "unknown";
459
+ navigation: "navigation";
460
+ form: "form";
461
+ upload: "upload";
462
+ reveal: "reveal";
463
+ submit: "submit";
464
+ save: "save";
465
+ delete: "delete";
466
+ clear: "clear";
467
+ payment: "payment";
468
+ account: "account";
469
+ "externally-visible": "externally-visible";
470
+ persistent: "persistent";
471
+ }>>>;
472
+ decision: z.ZodEnum<{
473
+ allow: "allow";
474
+ deny: "deny";
475
+ }>;
476
+ id: z.ZodString;
477
+ locators: z.ZodOptional<z.ZodArray<z.ZodObject<{
478
+ label: z.ZodOptional<z.ZodString>;
479
+ name: z.ZodOptional<z.ZodString>;
480
+ placeholder: z.ZodOptional<z.ZodString>;
481
+ refHint: z.ZodOptional<z.ZodString>;
482
+ role: z.ZodOptional<z.ZodString>;
483
+ selector: z.ZodOptional<z.ZodString>;
484
+ testId: z.ZodOptional<z.ZodString>;
485
+ text: z.ZodOptional<z.ZodString>;
486
+ }, z.core.$strict>>>;
487
+ origins: z.ZodOptional<z.ZodArray<z.ZodString>>;
488
+ routes: z.ZodOptional<z.ZodArray<z.ZodString>>;
489
+ }, z.core.$strict>;
490
+ type ActionPolicyRule = z.infer<typeof ActionPolicyRuleSchema>;
491
+ declare const ResetEndpointSchema: z.ZodObject<{
492
+ id: z.ZodString;
493
+ method: z.ZodDefault<z.ZodEnum<{
494
+ GET: "GET";
495
+ POST: "POST";
496
+ PUT: "PUT";
497
+ PATCH: "PATCH";
498
+ DELETE: "DELETE";
499
+ }>>;
500
+ origin: z.ZodString;
501
+ path: z.ZodString;
502
+ }, z.core.$strict>;
503
+ type ResetEndpoint = z.infer<typeof ResetEndpointSchema>;
504
+ declare const FixtureAccountSchema: z.ZodObject<{
505
+ fixtureRef: z.ZodOptional<z.ZodString>;
506
+ id: z.ZodString;
507
+ }, z.core.$strict>;
508
+ type FixtureAccount = z.infer<typeof FixtureAccountSchema>;
509
+ declare const EnvironmentGroupSchema: z.ZodObject<{
510
+ id: z.ZodString;
511
+ origins: z.ZodArray<z.ZodString>;
512
+ }, z.core.$strict>;
513
+ type EnvironmentGroup = z.infer<typeof EnvironmentGroupSchema>;
514
+ declare const ActionPolicySchema: z.ZodObject<{
515
+ allowedDomains: z.ZodDefault<z.ZodArray<z.ZodString>>;
516
+ environmentGroups: z.ZodDefault<z.ZodArray<z.ZodObject<{
517
+ id: z.ZodString;
518
+ origins: z.ZodArray<z.ZodString>;
519
+ }, z.core.$strict>>>;
520
+ fixtureAccounts: z.ZodDefault<z.ZodArray<z.ZodObject<{
521
+ fixtureRef: z.ZodOptional<z.ZodString>;
522
+ id: z.ZodString;
523
+ }, z.core.$strict>>>;
524
+ resetEndpoints: z.ZodDefault<z.ZodArray<z.ZodObject<{
525
+ id: z.ZodString;
526
+ method: z.ZodDefault<z.ZodEnum<{
527
+ GET: "GET";
528
+ POST: "POST";
529
+ PUT: "PUT";
530
+ PATCH: "PATCH";
531
+ DELETE: "DELETE";
532
+ }>>;
533
+ origin: z.ZodString;
534
+ path: z.ZodString;
535
+ }, z.core.$strict>>>;
536
+ rules: z.ZodDefault<z.ZodArray<z.ZodObject<{
537
+ actions: z.ZodOptional<z.ZodArray<z.ZodEnum<{
538
+ type: "type";
539
+ check: "check";
540
+ assert: "assert";
541
+ fill: "fill";
542
+ capture: "capture";
543
+ select: "select";
544
+ open: "open";
545
+ pushstate: "pushstate";
546
+ click: "click";
547
+ dblclick: "dblclick";
548
+ hover: "hover";
549
+ focus: "focus";
550
+ press: "press";
551
+ uncheck: "uncheck";
552
+ upload: "upload";
553
+ scroll: "scroll";
554
+ wait: "wait";
555
+ setViewport: "setViewport";
556
+ setTheme: "setTheme";
557
+ }>>>;
558
+ categories: z.ZodOptional<z.ZodArray<z.ZodEnum<{
559
+ unknown: "unknown";
560
+ navigation: "navigation";
561
+ form: "form";
562
+ upload: "upload";
563
+ reveal: "reveal";
564
+ submit: "submit";
565
+ save: "save";
566
+ delete: "delete";
567
+ clear: "clear";
568
+ payment: "payment";
569
+ account: "account";
570
+ "externally-visible": "externally-visible";
571
+ persistent: "persistent";
572
+ }>>>;
573
+ decision: z.ZodEnum<{
574
+ allow: "allow";
575
+ deny: "deny";
576
+ }>;
577
+ id: z.ZodString;
578
+ locators: z.ZodOptional<z.ZodArray<z.ZodObject<{
579
+ label: z.ZodOptional<z.ZodString>;
580
+ name: z.ZodOptional<z.ZodString>;
581
+ placeholder: z.ZodOptional<z.ZodString>;
582
+ refHint: z.ZodOptional<z.ZodString>;
583
+ role: z.ZodOptional<z.ZodString>;
584
+ selector: z.ZodOptional<z.ZodString>;
585
+ testId: z.ZodOptional<z.ZodString>;
586
+ text: z.ZodOptional<z.ZodString>;
587
+ }, z.core.$strict>>>;
588
+ origins: z.ZodOptional<z.ZodArray<z.ZodString>>;
589
+ routes: z.ZodOptional<z.ZodArray<z.ZodString>>;
590
+ }, z.core.$strict>>>;
591
+ }, z.core.$strict>;
592
+ type ActionPolicy = z.infer<typeof ActionPolicySchema>;
593
+ declare const ActionPolicyDecisionSchema: z.ZodObject<{
594
+ allowed: z.ZodBoolean;
595
+ category: z.ZodEnum<{
596
+ unknown: "unknown";
597
+ navigation: "navigation";
598
+ form: "form";
599
+ upload: "upload";
600
+ reveal: "reveal";
601
+ submit: "submit";
602
+ save: "save";
603
+ delete: "delete";
604
+ clear: "clear";
605
+ payment: "payment";
606
+ account: "account";
607
+ "externally-visible": "externally-visible";
608
+ persistent: "persistent";
609
+ }>;
610
+ code: z.ZodOptional<z.ZodEnum<{
611
+ target_not_allowed: "target_not_allowed";
612
+ action_policy_denied: "action_policy_denied";
613
+ }>>;
614
+ matchedRuleId: z.ZodOptional<z.ZodString>;
615
+ reason: z.ZodString;
616
+ }, z.core.$strict>;
617
+ type ActionPolicyDecision = z.infer<typeof ActionPolicyDecisionSchema>;
618
+ declare const FlowStepResultSchema: z.ZodObject<{
619
+ action: z.ZodObject<{
620
+ action: z.ZodEnum<{
621
+ type: "type";
622
+ check: "check";
623
+ assert: "assert";
624
+ fill: "fill";
625
+ capture: "capture";
626
+ select: "select";
627
+ open: "open";
628
+ pushstate: "pushstate";
629
+ click: "click";
630
+ dblclick: "dblclick";
631
+ hover: "hover";
632
+ focus: "focus";
633
+ press: "press";
634
+ uncheck: "uncheck";
635
+ upload: "upload";
636
+ scroll: "scroll";
637
+ wait: "wait";
638
+ setViewport: "setViewport";
639
+ setTheme: "setTheme";
640
+ }>;
641
+ locator: z.ZodOptional<z.ZodObject<{
642
+ label: z.ZodOptional<z.ZodString>;
643
+ name: z.ZodOptional<z.ZodString>;
644
+ placeholder: z.ZodOptional<z.ZodString>;
645
+ refHint: z.ZodOptional<z.ZodString>;
646
+ role: z.ZodOptional<z.ZodString>;
647
+ selector: z.ZodOptional<z.ZodString>;
648
+ testId: z.ZodOptional<z.ZodString>;
649
+ text: z.ZodOptional<z.ZodString>;
650
+ }, z.core.$strict>>;
651
+ url: z.ZodOptional<z.ZodString>;
652
+ value: z.ZodOptional<z.ZodString>;
653
+ }, z.core.$strict>;
654
+ completedAt: z.ZodOptional<z.ZodString>;
655
+ error: z.ZodOptional<z.ZodString>;
656
+ evidenceBundleIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
657
+ id: z.ZodString;
658
+ severity: z.ZodOptional<z.ZodEnum<{
659
+ critical: "critical";
660
+ high: "high";
661
+ medium: "medium";
662
+ low: "low";
663
+ }>>;
664
+ startedAt: z.ZodOptional<z.ZodString>;
665
+ status: z.ZodEnum<{
666
+ degraded: "degraded";
667
+ failed: "failed";
668
+ skipped: "skipped";
669
+ passed: "passed";
670
+ }>;
671
+ }, z.core.$strict>;
672
+ type FlowStepResult = z.infer<typeof FlowStepResultSchema>;
673
+ declare const FlowRunSummarySchema: z.ZodObject<{
674
+ findingIds: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
675
+ flowId: z.ZodString;
676
+ gateEligible: z.ZodOptional<z.ZodBoolean>;
677
+ id: z.ZodString;
678
+ status: z.ZodEnum<{
679
+ degraded: "degraded";
680
+ failed: "failed";
681
+ passed: "passed";
682
+ }>;
683
+ }, z.core.$strict>;
684
+ type FlowRunSummary = z.infer<typeof FlowRunSummarySchema>;
685
+ declare const FlowRunSchema: z.ZodObject<{
686
+ actionPolicyRef: z.ZodOptional<z.ZodString>;
687
+ evidenceBundles: z.ZodArray<z.ZodString>;
688
+ findingIds: z.ZodArray<z.ZodString>;
689
+ flowId: z.ZodString;
690
+ gateEligible: z.ZodBoolean;
691
+ highestFailedSeverity: z.ZodOptional<z.ZodEnum<{
692
+ critical: "critical";
693
+ high: "high";
694
+ medium: "medium";
695
+ low: "low";
696
+ }>>;
697
+ id: z.ZodString;
698
+ isolation: z.ZodObject<{
699
+ mode: z.ZodEnum<{
700
+ isolated: "isolated";
701
+ shared: "shared";
702
+ }>;
703
+ mutatesState: z.ZodBoolean;
704
+ resetSatisfied: z.ZodBoolean;
705
+ }, z.core.$strict>;
706
+ severity: z.ZodEnum<{
707
+ critical: "critical";
708
+ high: "high";
709
+ medium: "medium";
710
+ low: "low";
711
+ }>;
712
+ source: z.ZodObject<{
713
+ kind: z.ZodEnum<{
714
+ file: "file";
715
+ "surface-state": "surface-state";
716
+ }>;
717
+ ref: z.ZodString;
718
+ }, z.core.$strict>;
719
+ status: z.ZodEnum<{
720
+ degraded: "degraded";
721
+ failed: "failed";
722
+ passed: "passed";
723
+ }>;
724
+ steps: z.ZodArray<z.ZodObject<{
725
+ action: z.ZodObject<{
726
+ action: z.ZodEnum<{
727
+ type: "type";
728
+ check: "check";
729
+ assert: "assert";
730
+ fill: "fill";
731
+ capture: "capture";
732
+ select: "select";
733
+ open: "open";
734
+ pushstate: "pushstate";
735
+ click: "click";
736
+ dblclick: "dblclick";
737
+ hover: "hover";
738
+ focus: "focus";
739
+ press: "press";
740
+ uncheck: "uncheck";
741
+ upload: "upload";
742
+ scroll: "scroll";
743
+ wait: "wait";
744
+ setViewport: "setViewport";
745
+ setTheme: "setTheme";
746
+ }>;
747
+ locator: z.ZodOptional<z.ZodObject<{
748
+ label: z.ZodOptional<z.ZodString>;
749
+ name: z.ZodOptional<z.ZodString>;
750
+ placeholder: z.ZodOptional<z.ZodString>;
751
+ refHint: z.ZodOptional<z.ZodString>;
752
+ role: z.ZodOptional<z.ZodString>;
753
+ selector: z.ZodOptional<z.ZodString>;
754
+ testId: z.ZodOptional<z.ZodString>;
755
+ text: z.ZodOptional<z.ZodString>;
756
+ }, z.core.$strict>>;
757
+ url: z.ZodOptional<z.ZodString>;
758
+ value: z.ZodOptional<z.ZodString>;
759
+ }, z.core.$strict>;
760
+ completedAt: z.ZodOptional<z.ZodString>;
761
+ error: z.ZodOptional<z.ZodString>;
762
+ evidenceBundleIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
763
+ id: z.ZodString;
764
+ severity: z.ZodOptional<z.ZodEnum<{
765
+ critical: "critical";
766
+ high: "high";
767
+ medium: "medium";
768
+ low: "low";
769
+ }>>;
770
+ startedAt: z.ZodOptional<z.ZodString>;
771
+ status: z.ZodEnum<{
772
+ degraded: "degraded";
773
+ failed: "failed";
774
+ skipped: "skipped";
775
+ passed: "passed";
776
+ }>;
777
+ }, z.core.$strict>>;
778
+ target: z.ZodObject<{
779
+ kind: z.ZodEnum<{
780
+ dom: "dom";
781
+ component: "component";
782
+ screenshot: "screenshot";
783
+ url: "url";
784
+ localhost: "localhost";
785
+ route: "route";
786
+ }>;
787
+ ref: z.ZodString;
788
+ theme: z.ZodOptional<z.ZodEnum<{
789
+ light: "light";
790
+ dark: "dark";
791
+ }>>;
792
+ viewport: z.ZodOptional<z.ZodObject<{
793
+ height: z.ZodNumber;
794
+ label: z.ZodEnum<{
795
+ mobile: "mobile";
796
+ tablet: "tablet";
797
+ desktop: "desktop";
798
+ }>;
799
+ width: z.ZodNumber;
800
+ }, z.core.$strict>>;
801
+ }, z.core.$strict>;
802
+ }, z.core.$strict>;
803
+ type FlowRun = z.infer<typeof FlowRunSchema>;
804
+ declare const ExplorationSummarySchema: z.ZodObject<{
805
+ candidateFindings: z.ZodNumber;
806
+ candidateFlows: z.ZodNumber;
807
+ visitedStates: z.ZodNumber;
808
+ }, z.core.$strict>;
809
+ type ExplorationSummary = z.infer<typeof ExplorationSummarySchema>;
810
+ declare const QaRunSchema: z.ZodObject<{
811
+ candidateFindings: z.ZodArray<z.ZodString>;
812
+ candidateFlows: z.ZodArray<z.ZodString>;
813
+ completedAt: z.ZodOptional<z.ZodString>;
814
+ degradation: z.ZodArray<z.ZodObject<{
815
+ code: z.ZodString;
816
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
817
+ message: z.ZodString;
818
+ scope: z.ZodString;
819
+ severity: z.ZodDefault<z.ZodEnum<{
820
+ error: "error";
821
+ info: "info";
822
+ warning: "warning";
823
+ }>>;
824
+ }, z.core.$strict>>;
825
+ evidenceBundles: z.ZodArray<z.ZodString>;
826
+ exploration: z.ZodOptional<z.ZodObject<{
827
+ candidateFindings: z.ZodNumber;
828
+ candidateFlows: z.ZodNumber;
829
+ visitedStates: z.ZodNumber;
830
+ }, z.core.$strict>>;
831
+ findings: z.ZodArray<z.ZodString>;
832
+ flowRuns: z.ZodArray<z.ZodObject<{
833
+ findingIds: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
834
+ flowId: z.ZodString;
835
+ gateEligible: z.ZodOptional<z.ZodBoolean>;
836
+ id: z.ZodString;
837
+ status: z.ZodEnum<{
838
+ degraded: "degraded";
839
+ failed: "failed";
840
+ passed: "passed";
841
+ }>;
842
+ }, z.core.$strict>>;
843
+ id: z.ZodString;
844
+ manifestPath: z.ZodString;
845
+ mode: z.ZodEnum<{
846
+ flow: "flow";
847
+ explore: "explore";
848
+ hybrid: "hybrid";
849
+ }>;
850
+ startedAt: z.ZodString;
851
+ status: z.ZodEnum<{
852
+ completed: "completed";
853
+ degraded: "degraded";
854
+ failed: "failed";
855
+ }>;
856
+ target: z.ZodObject<{
857
+ kind: z.ZodEnum<{
858
+ dom: "dom";
859
+ component: "component";
860
+ screenshot: "screenshot";
861
+ url: "url";
862
+ localhost: "localhost";
863
+ route: "route";
864
+ }>;
865
+ ref: z.ZodString;
866
+ theme: z.ZodOptional<z.ZodEnum<{
867
+ light: "light";
868
+ dark: "dark";
869
+ }>>;
870
+ viewport: z.ZodOptional<z.ZodObject<{
871
+ height: z.ZodNumber;
872
+ label: z.ZodEnum<{
873
+ mobile: "mobile";
874
+ tablet: "tablet";
875
+ desktop: "desktop";
876
+ }>;
877
+ width: z.ZodNumber;
878
+ }, z.core.$strict>>;
879
+ }, z.core.$strict>;
880
+ }, z.core.$strict>;
881
+ type QaRun = z.infer<typeof QaRunSchema>;
882
+ declare const ExplorationStateSchema: z.ZodObject<{
883
+ actionPath: z.ZodArray<z.ZodObject<{
884
+ action: z.ZodEnum<{
885
+ type: "type";
886
+ check: "check";
887
+ assert: "assert";
888
+ fill: "fill";
889
+ capture: "capture";
890
+ select: "select";
891
+ open: "open";
892
+ pushstate: "pushstate";
893
+ click: "click";
894
+ dblclick: "dblclick";
895
+ hover: "hover";
896
+ focus: "focus";
897
+ press: "press";
898
+ uncheck: "uncheck";
899
+ upload: "upload";
900
+ scroll: "scroll";
901
+ wait: "wait";
902
+ setViewport: "setViewport";
903
+ setTheme: "setTheme";
904
+ }>;
905
+ locator: z.ZodOptional<z.ZodObject<{
906
+ label: z.ZodOptional<z.ZodString>;
907
+ name: z.ZodOptional<z.ZodString>;
908
+ placeholder: z.ZodOptional<z.ZodString>;
909
+ refHint: z.ZodOptional<z.ZodString>;
910
+ role: z.ZodOptional<z.ZodString>;
911
+ selector: z.ZodOptional<z.ZodString>;
912
+ testId: z.ZodOptional<z.ZodString>;
913
+ text: z.ZodOptional<z.ZodString>;
914
+ }, z.core.$strict>>;
915
+ url: z.ZodOptional<z.ZodString>;
916
+ value: z.ZodOptional<z.ZodString>;
917
+ }, z.core.$strict>>;
918
+ actionPathHash: z.ZodString;
919
+ annotatedScreenshotRef: z.ZodOptional<z.ZodString>;
920
+ authStatus: z.ZodEnum<{
921
+ authenticated: "authenticated";
922
+ anonymous: "anonymous";
923
+ "auth-drift": "auth-drift";
924
+ reauthenticated: "reauthenticated";
925
+ }>;
926
+ consoleSummary: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
927
+ depth: z.ZodNumber;
928
+ dialogState: z.ZodOptional<z.ZodString>;
929
+ discoveredElements: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
930
+ framePath: z.ZodOptional<z.ZodArray<z.ZodString>>;
931
+ id: z.ZodString;
932
+ networkSummary: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
933
+ reauthFlowRef: z.ZodOptional<z.ZodString>;
934
+ snapshotRef: z.ZodOptional<z.ZodString>;
935
+ stateId: z.ZodString;
936
+ theme: z.ZodOptional<z.ZodEnum<{
937
+ light: "light";
938
+ dark: "dark";
939
+ }>>;
940
+ title: z.ZodOptional<z.ZodString>;
941
+ url: z.ZodString;
942
+ viewport: z.ZodObject<{
943
+ height: z.ZodNumber;
944
+ label: z.ZodEnum<{
945
+ mobile: "mobile";
946
+ tablet: "tablet";
947
+ desktop: "desktop";
948
+ }>;
949
+ width: z.ZodNumber;
950
+ }, z.core.$strict>;
951
+ }, z.core.$strict>;
952
+ type ExplorationState = z.infer<typeof ExplorationStateSchema>;
953
+ declare const CandidateFindingSchema: z.ZodObject<{
954
+ actionPath: z.ZodArray<z.ZodObject<{
955
+ action: z.ZodEnum<{
956
+ type: "type";
957
+ check: "check";
958
+ assert: "assert";
959
+ fill: "fill";
960
+ capture: "capture";
961
+ select: "select";
962
+ open: "open";
963
+ pushstate: "pushstate";
964
+ click: "click";
965
+ dblclick: "dblclick";
966
+ hover: "hover";
967
+ focus: "focus";
968
+ press: "press";
969
+ uncheck: "uncheck";
970
+ upload: "upload";
971
+ scroll: "scroll";
972
+ wait: "wait";
973
+ setViewport: "setViewport";
974
+ setTheme: "setTheme";
975
+ }>;
976
+ locator: z.ZodOptional<z.ZodObject<{
977
+ label: z.ZodOptional<z.ZodString>;
978
+ name: z.ZodOptional<z.ZodString>;
979
+ placeholder: z.ZodOptional<z.ZodString>;
980
+ refHint: z.ZodOptional<z.ZodString>;
981
+ role: z.ZodOptional<z.ZodString>;
982
+ selector: z.ZodOptional<z.ZodString>;
983
+ testId: z.ZodOptional<z.ZodString>;
984
+ text: z.ZodOptional<z.ZodString>;
985
+ }, z.core.$strict>>;
986
+ url: z.ZodOptional<z.ZodString>;
987
+ value: z.ZodOptional<z.ZodString>;
988
+ }, z.core.$strict>>;
989
+ category: z.ZodEnum<{
990
+ accessibility: "accessibility";
991
+ content: "content";
992
+ visual: "visual";
993
+ functional: "functional";
994
+ ux: "ux";
995
+ performance: "performance";
996
+ console: "console";
997
+ }>;
998
+ confidence: z.ZodEnum<{
999
+ candidate: "candidate";
1000
+ replayed: "replayed";
1001
+ verified: "verified";
1002
+ }>;
1003
+ evidenceBundleId: z.ZodString;
1004
+ gateEligible: z.ZodBoolean;
1005
+ id: z.ZodString;
1006
+ identityConfidence: z.ZodEnum<{
1007
+ high: "high";
1008
+ medium: "medium";
1009
+ low: "low";
1010
+ none: "none";
1011
+ }>;
1012
+ promotion: z.ZodOptional<z.ZodObject<{
1013
+ findingId: z.ZodString;
1014
+ promotedAt: z.ZodString;
1015
+ reason: z.ZodString;
1016
+ }, z.core.$strict>>;
1017
+ promotionSource: z.ZodOptional<z.ZodEnum<{
1018
+ replay: "replay";
1019
+ measurement: "measurement";
1020
+ "human-verdict": "human-verdict";
1021
+ }>>;
1022
+ qaRunId: z.ZodString;
1023
+ replayStatus: z.ZodEnum<{
1024
+ "not-run": "not-run";
1025
+ reproduced: "reproduced";
1026
+ "not-reproduced": "not-reproduced";
1027
+ blocked: "blocked";
1028
+ "not-replayable": "not-replayable";
1029
+ }>;
1030
+ replayable: z.ZodBoolean;
1031
+ severity: z.ZodEnum<{
1032
+ critical: "critical";
1033
+ high: "high";
1034
+ medium: "medium";
1035
+ low: "low";
1036
+ }>;
1037
+ sourceRunManifestDigest: z.ZodString;
1038
+ title: z.ZodString;
1039
+ }, z.core.$strict>;
1040
+ type CandidateFinding = z.infer<typeof CandidateFindingSchema>;
1041
+ declare const CandidateFlowSchema: z.ZodObject<{
1042
+ evidenceBundleId: z.ZodOptional<z.ZodString>;
1043
+ id: z.ZodString;
1044
+ qaRunId: z.ZodString;
1045
+ sourceRunManifestDigest: z.ZodString;
1046
+ steps: z.ZodArray<z.ZodObject<{
1047
+ action: z.ZodEnum<{
1048
+ type: "type";
1049
+ check: "check";
1050
+ assert: "assert";
1051
+ fill: "fill";
1052
+ capture: "capture";
1053
+ select: "select";
1054
+ open: "open";
1055
+ pushstate: "pushstate";
1056
+ click: "click";
1057
+ dblclick: "dblclick";
1058
+ hover: "hover";
1059
+ focus: "focus";
1060
+ press: "press";
1061
+ uncheck: "uncheck";
1062
+ upload: "upload";
1063
+ scroll: "scroll";
1064
+ wait: "wait";
1065
+ setViewport: "setViewport";
1066
+ setTheme: "setTheme";
1067
+ }>;
1068
+ locator: z.ZodOptional<z.ZodObject<{
1069
+ label: z.ZodOptional<z.ZodString>;
1070
+ name: z.ZodOptional<z.ZodString>;
1071
+ placeholder: z.ZodOptional<z.ZodString>;
1072
+ refHint: z.ZodOptional<z.ZodString>;
1073
+ role: z.ZodOptional<z.ZodString>;
1074
+ selector: z.ZodOptional<z.ZodString>;
1075
+ testId: z.ZodOptional<z.ZodString>;
1076
+ text: z.ZodOptional<z.ZodString>;
1077
+ }, z.core.$strict>>;
1078
+ url: z.ZodOptional<z.ZodString>;
1079
+ value: z.ZodOptional<z.ZodString>;
1080
+ }, z.core.$strict>>;
1081
+ title: z.ZodString;
1082
+ }, z.core.$strict>;
1083
+ type CandidateFlow = z.infer<typeof CandidateFlowSchema>;
1084
+ declare const QaEvidenceArtifactSchema: z.ZodObject<{
1085
+ id: z.ZodString;
1086
+ kind: z.ZodEnum<{
1087
+ "dom-snapshot": "dom-snapshot";
1088
+ "annotated-screenshot": "annotated-screenshot";
1089
+ "step-screenshot": "step-screenshot";
1090
+ "repro-video": "repro-video";
1091
+ "browser-snapshot": "browser-snapshot";
1092
+ "console-log": "console-log";
1093
+ "network-summary": "network-summary";
1094
+ har: "har";
1095
+ "react-tree": "react-tree";
1096
+ "react-inspect": "react-inspect";
1097
+ "react-render-profile": "react-render-profile";
1098
+ vitals: "vitals";
1099
+ trace: "trace";
1100
+ }>;
1101
+ mcpReadable: z.ZodBoolean;
1102
+ mediaType: z.ZodString;
1103
+ path: z.ZodString;
1104
+ redacted: z.ZodBoolean;
1105
+ sensitiveRaw: z.ZodBoolean;
1106
+ sha256: z.ZodString;
1107
+ sizeBytes: z.ZodNumber;
1108
+ }, z.core.$strict>;
1109
+ type QaEvidenceArtifact = z.infer<typeof QaEvidenceArtifactSchema>;
1110
+ declare const ReproStepSchema: z.ZodObject<{
1111
+ action: z.ZodObject<{
1112
+ action: z.ZodEnum<{
1113
+ type: "type";
1114
+ check: "check";
1115
+ assert: "assert";
1116
+ fill: "fill";
1117
+ capture: "capture";
1118
+ select: "select";
1119
+ open: "open";
1120
+ pushstate: "pushstate";
1121
+ click: "click";
1122
+ dblclick: "dblclick";
1123
+ hover: "hover";
1124
+ focus: "focus";
1125
+ press: "press";
1126
+ uncheck: "uncheck";
1127
+ upload: "upload";
1128
+ scroll: "scroll";
1129
+ wait: "wait";
1130
+ setViewport: "setViewport";
1131
+ setTheme: "setTheme";
1132
+ }>;
1133
+ locator: z.ZodOptional<z.ZodObject<{
1134
+ label: z.ZodOptional<z.ZodString>;
1135
+ name: z.ZodOptional<z.ZodString>;
1136
+ placeholder: z.ZodOptional<z.ZodString>;
1137
+ refHint: z.ZodOptional<z.ZodString>;
1138
+ role: z.ZodOptional<z.ZodString>;
1139
+ selector: z.ZodOptional<z.ZodString>;
1140
+ testId: z.ZodOptional<z.ZodString>;
1141
+ text: z.ZodOptional<z.ZodString>;
1142
+ }, z.core.$strict>>;
1143
+ url: z.ZodOptional<z.ZodString>;
1144
+ value: z.ZodOptional<z.ZodString>;
1145
+ }, z.core.$strict>;
1146
+ index: z.ZodNumber;
1147
+ label: z.ZodString;
1148
+ }, z.core.$strict>;
1149
+ type ReproStep = z.infer<typeof ReproStepSchema>;
1150
+ declare const EvidenceBundleSchema: z.ZodObject<{
1151
+ artifacts: z.ZodArray<z.ZodObject<{
1152
+ id: z.ZodString;
1153
+ kind: z.ZodEnum<{
1154
+ "dom-snapshot": "dom-snapshot";
1155
+ "annotated-screenshot": "annotated-screenshot";
1156
+ "step-screenshot": "step-screenshot";
1157
+ "repro-video": "repro-video";
1158
+ "browser-snapshot": "browser-snapshot";
1159
+ "console-log": "console-log";
1160
+ "network-summary": "network-summary";
1161
+ har: "har";
1162
+ "react-tree": "react-tree";
1163
+ "react-inspect": "react-inspect";
1164
+ "react-render-profile": "react-render-profile";
1165
+ vitals: "vitals";
1166
+ trace: "trace";
1167
+ }>;
1168
+ mcpReadable: z.ZodBoolean;
1169
+ mediaType: z.ZodString;
1170
+ path: z.ZodString;
1171
+ redacted: z.ZodBoolean;
1172
+ sensitiveRaw: z.ZodBoolean;
1173
+ sha256: z.ZodString;
1174
+ sizeBytes: z.ZodNumber;
1175
+ }, z.core.$strict>>;
1176
+ candidateFindingId: z.ZodOptional<z.ZodString>;
1177
+ checksums: z.ZodRecord<z.ZodString, z.ZodString>;
1178
+ containsSensitiveRaw: z.ZodBoolean;
1179
+ findingId: z.ZodOptional<z.ZodString>;
1180
+ id: z.ZodString;
1181
+ manifestPath: z.ZodString;
1182
+ qaRunId: z.ZodString;
1183
+ redacted: z.ZodBoolean;
1184
+ reproSteps: z.ZodArray<z.ZodObject<{
1185
+ action: z.ZodObject<{
1186
+ action: z.ZodEnum<{
1187
+ type: "type";
1188
+ check: "check";
1189
+ assert: "assert";
1190
+ fill: "fill";
1191
+ capture: "capture";
1192
+ select: "select";
1193
+ open: "open";
1194
+ pushstate: "pushstate";
1195
+ click: "click";
1196
+ dblclick: "dblclick";
1197
+ hover: "hover";
1198
+ focus: "focus";
1199
+ press: "press";
1200
+ uncheck: "uncheck";
1201
+ upload: "upload";
1202
+ scroll: "scroll";
1203
+ wait: "wait";
1204
+ setViewport: "setViewport";
1205
+ setTheme: "setTheme";
1206
+ }>;
1207
+ locator: z.ZodOptional<z.ZodObject<{
1208
+ label: z.ZodOptional<z.ZodString>;
1209
+ name: z.ZodOptional<z.ZodString>;
1210
+ placeholder: z.ZodOptional<z.ZodString>;
1211
+ refHint: z.ZodOptional<z.ZodString>;
1212
+ role: z.ZodOptional<z.ZodString>;
1213
+ selector: z.ZodOptional<z.ZodString>;
1214
+ testId: z.ZodOptional<z.ZodString>;
1215
+ text: z.ZodOptional<z.ZodString>;
1216
+ }, z.core.$strict>>;
1217
+ url: z.ZodOptional<z.ZodString>;
1218
+ value: z.ZodOptional<z.ZodString>;
1219
+ }, z.core.$strict>;
1220
+ index: z.ZodNumber;
1221
+ label: z.ZodString;
1222
+ }, z.core.$strict>>;
1223
+ sanitizedAtCapture: z.ZodBoolean;
1224
+ sourceCaptureArtifactIds: z.ZodArray<z.ZodString>;
1225
+ sourceRunManifestDigest: z.ZodString;
1226
+ }, z.core.$strict>;
1227
+ type EvidenceBundle = z.infer<typeof EvidenceBundleSchema>;
1228
+ declare const QaRunSidecarSchema: z.ZodObject<{
1229
+ candidateFindings: z.ZodArray<z.ZodString>;
1230
+ candidateFlows: z.ZodArray<z.ZodString>;
1231
+ completedAt: z.ZodOptional<z.ZodString>;
1232
+ degradation: z.ZodArray<z.ZodObject<{
1233
+ code: z.ZodString;
1234
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1235
+ message: z.ZodString;
1236
+ scope: z.ZodString;
1237
+ severity: z.ZodDefault<z.ZodEnum<{
1238
+ error: "error";
1239
+ info: "info";
1240
+ warning: "warning";
1241
+ }>>;
1242
+ }, z.core.$strict>>;
1243
+ evidenceBundles: z.ZodArray<z.ZodString>;
1244
+ exploration: z.ZodOptional<z.ZodObject<{
1245
+ candidateFindings: z.ZodNumber;
1246
+ candidateFlows: z.ZodNumber;
1247
+ visitedStates: z.ZodNumber;
1248
+ }, z.core.$strict>>;
1249
+ findings: z.ZodArray<z.ZodString>;
1250
+ flowRuns: z.ZodArray<z.ZodObject<{
1251
+ findingIds: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
1252
+ flowId: z.ZodString;
1253
+ gateEligible: z.ZodOptional<z.ZodBoolean>;
1254
+ id: z.ZodString;
1255
+ status: z.ZodEnum<{
1256
+ degraded: "degraded";
1257
+ failed: "failed";
1258
+ passed: "passed";
1259
+ }>;
1260
+ }, z.core.$strict>>;
1261
+ id: z.ZodString;
1262
+ manifestPath: z.ZodString;
1263
+ mode: z.ZodEnum<{
1264
+ flow: "flow";
1265
+ explore: "explore";
1266
+ hybrid: "hybrid";
1267
+ }>;
1268
+ startedAt: z.ZodString;
1269
+ status: z.ZodEnum<{
1270
+ completed: "completed";
1271
+ degraded: "degraded";
1272
+ failed: "failed";
1273
+ }>;
1274
+ target: z.ZodObject<{
1275
+ kind: z.ZodEnum<{
1276
+ dom: "dom";
1277
+ component: "component";
1278
+ screenshot: "screenshot";
1279
+ url: "url";
1280
+ localhost: "localhost";
1281
+ route: "route";
1282
+ }>;
1283
+ ref: z.ZodString;
1284
+ theme: z.ZodOptional<z.ZodEnum<{
1285
+ light: "light";
1286
+ dark: "dark";
1287
+ }>>;
1288
+ viewport: z.ZodOptional<z.ZodObject<{
1289
+ height: z.ZodNumber;
1290
+ label: z.ZodEnum<{
1291
+ mobile: "mobile";
1292
+ tablet: "tablet";
1293
+ desktop: "desktop";
1294
+ }>;
1295
+ width: z.ZodNumber;
1296
+ }, z.core.$strict>>;
1297
+ }, z.core.$strict>;
1298
+ manifestDigest: z.ZodOptional<z.ZodString>;
1299
+ }, z.core.$strict>;
1300
+ type QaRunSidecar = z.infer<typeof QaRunSidecarSchema>;
1301
+ declare const CandidateFindingSidecarSchema: z.ZodObject<{
1302
+ actionPath: z.ZodArray<z.ZodObject<{
1303
+ action: z.ZodEnum<{
1304
+ type: "type";
1305
+ check: "check";
1306
+ assert: "assert";
1307
+ fill: "fill";
1308
+ capture: "capture";
1309
+ select: "select";
1310
+ open: "open";
1311
+ pushstate: "pushstate";
1312
+ click: "click";
1313
+ dblclick: "dblclick";
1314
+ hover: "hover";
1315
+ focus: "focus";
1316
+ press: "press";
1317
+ uncheck: "uncheck";
1318
+ upload: "upload";
1319
+ scroll: "scroll";
1320
+ wait: "wait";
1321
+ setViewport: "setViewport";
1322
+ setTheme: "setTheme";
1323
+ }>;
1324
+ locator: z.ZodOptional<z.ZodObject<{
1325
+ label: z.ZodOptional<z.ZodString>;
1326
+ name: z.ZodOptional<z.ZodString>;
1327
+ placeholder: z.ZodOptional<z.ZodString>;
1328
+ refHint: z.ZodOptional<z.ZodString>;
1329
+ role: z.ZodOptional<z.ZodString>;
1330
+ selector: z.ZodOptional<z.ZodString>;
1331
+ testId: z.ZodOptional<z.ZodString>;
1332
+ text: z.ZodOptional<z.ZodString>;
1333
+ }, z.core.$strict>>;
1334
+ url: z.ZodOptional<z.ZodString>;
1335
+ value: z.ZodOptional<z.ZodString>;
1336
+ }, z.core.$strict>>;
1337
+ category: z.ZodEnum<{
1338
+ accessibility: "accessibility";
1339
+ content: "content";
1340
+ visual: "visual";
1341
+ functional: "functional";
1342
+ ux: "ux";
1343
+ performance: "performance";
1344
+ console: "console";
1345
+ }>;
1346
+ confidence: z.ZodEnum<{
1347
+ candidate: "candidate";
1348
+ replayed: "replayed";
1349
+ verified: "verified";
1350
+ }>;
1351
+ evidenceBundleId: z.ZodString;
1352
+ gateEligible: z.ZodBoolean;
1353
+ id: z.ZodString;
1354
+ identityConfidence: z.ZodEnum<{
1355
+ high: "high";
1356
+ medium: "medium";
1357
+ low: "low";
1358
+ none: "none";
1359
+ }>;
1360
+ promotion: z.ZodOptional<z.ZodObject<{
1361
+ findingId: z.ZodString;
1362
+ promotedAt: z.ZodString;
1363
+ reason: z.ZodString;
1364
+ }, z.core.$strict>>;
1365
+ promotionSource: z.ZodOptional<z.ZodEnum<{
1366
+ replay: "replay";
1367
+ measurement: "measurement";
1368
+ "human-verdict": "human-verdict";
1369
+ }>>;
1370
+ qaRunId: z.ZodString;
1371
+ replayStatus: z.ZodEnum<{
1372
+ "not-run": "not-run";
1373
+ reproduced: "reproduced";
1374
+ "not-reproduced": "not-reproduced";
1375
+ blocked: "blocked";
1376
+ "not-replayable": "not-replayable";
1377
+ }>;
1378
+ replayable: z.ZodBoolean;
1379
+ severity: z.ZodEnum<{
1380
+ critical: "critical";
1381
+ high: "high";
1382
+ medium: "medium";
1383
+ low: "low";
1384
+ }>;
1385
+ sourceRunManifestDigest: z.ZodString;
1386
+ title: z.ZodString;
1387
+ sidecarDigest: z.ZodOptional<z.ZodString>;
1388
+ }, z.core.$strict>;
1389
+ type CandidateFindingSidecar = z.infer<typeof CandidateFindingSidecarSchema>;
1390
+ declare const CandidateFlowSidecarSchema: z.ZodObject<{
1391
+ evidenceBundleId: z.ZodOptional<z.ZodString>;
1392
+ id: z.ZodString;
1393
+ qaRunId: z.ZodString;
1394
+ sourceRunManifestDigest: z.ZodString;
1395
+ steps: z.ZodArray<z.ZodObject<{
1396
+ action: z.ZodEnum<{
1397
+ type: "type";
1398
+ check: "check";
1399
+ assert: "assert";
1400
+ fill: "fill";
1401
+ capture: "capture";
1402
+ select: "select";
1403
+ open: "open";
1404
+ pushstate: "pushstate";
1405
+ click: "click";
1406
+ dblclick: "dblclick";
1407
+ hover: "hover";
1408
+ focus: "focus";
1409
+ press: "press";
1410
+ uncheck: "uncheck";
1411
+ upload: "upload";
1412
+ scroll: "scroll";
1413
+ wait: "wait";
1414
+ setViewport: "setViewport";
1415
+ setTheme: "setTheme";
1416
+ }>;
1417
+ locator: z.ZodOptional<z.ZodObject<{
1418
+ label: z.ZodOptional<z.ZodString>;
1419
+ name: z.ZodOptional<z.ZodString>;
1420
+ placeholder: z.ZodOptional<z.ZodString>;
1421
+ refHint: z.ZodOptional<z.ZodString>;
1422
+ role: z.ZodOptional<z.ZodString>;
1423
+ selector: z.ZodOptional<z.ZodString>;
1424
+ testId: z.ZodOptional<z.ZodString>;
1425
+ text: z.ZodOptional<z.ZodString>;
1426
+ }, z.core.$strict>>;
1427
+ url: z.ZodOptional<z.ZodString>;
1428
+ value: z.ZodOptional<z.ZodString>;
1429
+ }, z.core.$strict>>;
1430
+ title: z.ZodString;
1431
+ sidecarDigest: z.ZodOptional<z.ZodString>;
1432
+ }, z.core.$strict>;
1433
+ type CandidateFlowSidecar = z.infer<typeof CandidateFlowSidecarSchema>;
1434
+ declare const EvidenceBundleSidecarSchema: z.ZodObject<{
1435
+ artifacts: z.ZodArray<z.ZodObject<{
1436
+ id: z.ZodString;
1437
+ kind: z.ZodEnum<{
1438
+ "dom-snapshot": "dom-snapshot";
1439
+ "annotated-screenshot": "annotated-screenshot";
1440
+ "step-screenshot": "step-screenshot";
1441
+ "repro-video": "repro-video";
1442
+ "browser-snapshot": "browser-snapshot";
1443
+ "console-log": "console-log";
1444
+ "network-summary": "network-summary";
1445
+ har: "har";
1446
+ "react-tree": "react-tree";
1447
+ "react-inspect": "react-inspect";
1448
+ "react-render-profile": "react-render-profile";
1449
+ vitals: "vitals";
1450
+ trace: "trace";
1451
+ }>;
1452
+ mcpReadable: z.ZodBoolean;
1453
+ mediaType: z.ZodString;
1454
+ path: z.ZodString;
1455
+ redacted: z.ZodBoolean;
1456
+ sensitiveRaw: z.ZodBoolean;
1457
+ sha256: z.ZodString;
1458
+ sizeBytes: z.ZodNumber;
1459
+ }, z.core.$strict>>;
1460
+ candidateFindingId: z.ZodOptional<z.ZodString>;
1461
+ checksums: z.ZodRecord<z.ZodString, z.ZodString>;
1462
+ containsSensitiveRaw: z.ZodBoolean;
1463
+ findingId: z.ZodOptional<z.ZodString>;
1464
+ id: z.ZodString;
1465
+ manifestPath: z.ZodString;
1466
+ qaRunId: z.ZodString;
1467
+ redacted: z.ZodBoolean;
1468
+ reproSteps: z.ZodArray<z.ZodObject<{
1469
+ action: z.ZodObject<{
1470
+ action: z.ZodEnum<{
1471
+ type: "type";
1472
+ check: "check";
1473
+ assert: "assert";
1474
+ fill: "fill";
1475
+ capture: "capture";
1476
+ select: "select";
1477
+ open: "open";
1478
+ pushstate: "pushstate";
1479
+ click: "click";
1480
+ dblclick: "dblclick";
1481
+ hover: "hover";
1482
+ focus: "focus";
1483
+ press: "press";
1484
+ uncheck: "uncheck";
1485
+ upload: "upload";
1486
+ scroll: "scroll";
1487
+ wait: "wait";
1488
+ setViewport: "setViewport";
1489
+ setTheme: "setTheme";
1490
+ }>;
1491
+ locator: z.ZodOptional<z.ZodObject<{
1492
+ label: z.ZodOptional<z.ZodString>;
1493
+ name: z.ZodOptional<z.ZodString>;
1494
+ placeholder: z.ZodOptional<z.ZodString>;
1495
+ refHint: z.ZodOptional<z.ZodString>;
1496
+ role: z.ZodOptional<z.ZodString>;
1497
+ selector: z.ZodOptional<z.ZodString>;
1498
+ testId: z.ZodOptional<z.ZodString>;
1499
+ text: z.ZodOptional<z.ZodString>;
1500
+ }, z.core.$strict>>;
1501
+ url: z.ZodOptional<z.ZodString>;
1502
+ value: z.ZodOptional<z.ZodString>;
1503
+ }, z.core.$strict>;
1504
+ index: z.ZodNumber;
1505
+ label: z.ZodString;
1506
+ }, z.core.$strict>>;
1507
+ sanitizedAtCapture: z.ZodBoolean;
1508
+ sourceCaptureArtifactIds: z.ZodArray<z.ZodString>;
1509
+ sourceRunManifestDigest: z.ZodString;
1510
+ sidecarDigest: z.ZodOptional<z.ZodString>;
1511
+ }, z.core.$strict>;
1512
+ type EvidenceBundleSidecar = z.infer<typeof EvidenceBundleSidecarSchema>;
1513
+ declare const PromotedFindingSidecarSchema: z.ZodObject<{
1514
+ artifactChecksums: z.ZodRecord<z.ZodString, z.ZodString>;
1515
+ candidateFindingId: z.ZodString;
1516
+ evidenceBundleId: z.ZodString;
1517
+ findingId: z.ZodString;
1518
+ promotedAt: z.ZodString;
1519
+ promotionSource: z.ZodEnum<{
1520
+ replay: "replay";
1521
+ measurement: "measurement";
1522
+ "human-verdict": "human-verdict";
1523
+ }>;
1524
+ qaRunId: z.ZodString;
1525
+ reason: z.ZodString;
1526
+ sourceRunManifestDigest: z.ZodString;
1527
+ }, z.core.$strict>;
1528
+ type PromotedFindingSidecar = z.infer<typeof PromotedFindingSidecarSchema>;
1529
+
1530
+ type ClassifyBrowserActionInput = {
1531
+ readonly action: BrowserAction;
1532
+ readonly effectiveTarget: QaTarget;
1533
+ readonly policy: ActionPolicy;
1534
+ readonly runTarget?: QaTarget;
1535
+ };
1536
+ type ResolveActionPolicyInput = {
1537
+ readonly fixtureRoots?: readonly string[];
1538
+ readonly policyRef?: string;
1539
+ readonly projectRoot?: string;
1540
+ };
1541
+ type ResolvedActionPolicy = {
1542
+ readonly policy: ActionPolicy;
1543
+ readonly source: "builtin" | "file";
1544
+ readonly sourcePath?: string;
1545
+ };
1546
+ type ValidateFlowIsolationPolicyInput = {
1547
+ readonly ci: boolean;
1548
+ readonly flow: {
1549
+ readonly isolation?: {
1550
+ readonly fixtureAccountId?: string;
1551
+ readonly mutatesState?: boolean;
1552
+ readonly resetEndpointId?: string;
1553
+ readonly resetRequired?: boolean;
1554
+ };
1555
+ readonly teardown?: {
1556
+ readonly always?: readonly BrowserAction[];
1557
+ };
1558
+ };
1559
+ readonly policy: ActionPolicy;
1560
+ readonly target: QaTarget;
1561
+ };
1562
+ type FlowIsolationPolicyValidation = {
1563
+ readonly gateEligible: boolean;
1564
+ readonly resetSatisfied: boolean;
1565
+ };
1566
+ declare function createBuiltInSafeActionPolicy(): ActionPolicy;
1567
+ declare function classifyBrowserAction(input: ClassifyBrowserActionInput): ActionPolicyDecision;
1568
+ declare function resolveActionPolicy(input: ResolveActionPolicyInput): Promise<Result<ResolvedActionPolicy, SurfaceError>>;
1569
+ declare function validateFlowIsolationPolicy(input: ValidateFlowIsolationPolicyInput): Result<FlowIsolationPolicyValidation, SurfaceError>;
1570
+ declare function effectiveTargetForAction(action: BrowserAction, fallback: QaTarget): QaTarget;
1571
+
1572
+ type BrowserQaAgentBrowserCommandResult = {
1573
+ readonly exitCode: number;
1574
+ readonly stderr: string;
1575
+ readonly stdout: string;
1576
+ };
1577
+ type BrowserQaAgentBrowserCommandInvocation = {
1578
+ readonly args: readonly string[];
1579
+ readonly command: string;
1580
+ readonly env: Readonly<Record<string, string>>;
1581
+ readonly result: BrowserQaAgentBrowserCommandResult;
1582
+ readonly stdin?: string;
1583
+ };
1584
+ type BrowserQaAgentBrowserCommandInput = Omit<BrowserQaAgentBrowserCommandInvocation, "result">;
1585
+ type BrowserQaAgentBrowserCommandRunner = (input: BrowserQaAgentBrowserCommandInput) => Promise<BrowserQaAgentBrowserCommandResult>;
1586
+ type AgentBrowserCliDriverOptions = {
1587
+ readonly baseEnv?: NodeJS.ProcessEnv;
1588
+ readonly binary?: string;
1589
+ readonly projectRoot?: string;
1590
+ readonly runCommand?: BrowserQaAgentBrowserCommandRunner;
1591
+ readonly stateDir?: string;
1592
+ };
1593
+ type AgentBrowserEnvironmentInput = {
1594
+ readonly baseEnv?: NodeJS.ProcessEnv;
1595
+ readonly extraAllowlist?: readonly string[];
1596
+ };
1597
+ type BrowserQaSession = {
1598
+ readonly createdAt: string;
1599
+ readonly executableSignature: string;
1600
+ readonly id: string;
1601
+ readonly lockfilePath: string;
1602
+ readonly manifestPath: string;
1603
+ readonly owner: "surface";
1604
+ readonly ownerToken: string;
1605
+ readonly processGroup: string;
1606
+ readonly profileDir: string;
1607
+ readonly qaRunId: string;
1608
+ readonly startedAt: string;
1609
+ readonly target: QaTarget;
1610
+ };
1611
+ type BrowserQaDriverValueRef = {
1612
+ readonly kind: "literal";
1613
+ readonly value: string;
1614
+ } | {
1615
+ readonly kind: "secret";
1616
+ readonly name: string;
1617
+ readonly value: string;
1618
+ };
1619
+ type BrowserQaDriverActionInput = {
1620
+ readonly expect?: Readonly<Record<string, unknown>>;
1621
+ readonly locator?: BrowserLocator;
1622
+ readonly stepId?: string;
1623
+ readonly theme?: string;
1624
+ readonly timeoutMs?: number;
1625
+ readonly url?: string;
1626
+ readonly value?: string;
1627
+ readonly valueRef?: BrowserQaDriverValueRef;
1628
+ readonly viewport?: QaTarget["viewport"];
1629
+ readonly wait?: Readonly<Record<string, unknown>>;
1630
+ };
1631
+ type BrowserQaDriver = {
1632
+ startSession(input: {
1633
+ readonly qaRunId: string;
1634
+ readonly target: QaTarget;
1635
+ }): Promise<Result<BrowserQaSession, SurfaceError>>;
1636
+ stopSession(sessionId: string): Promise<Result<{
1637
+ readonly stopped: true;
1638
+ }, SurfaceError>>;
1639
+ navigate(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1640
+ click(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1641
+ dblclick(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1642
+ focus(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1643
+ fill(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1644
+ type(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1645
+ press(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1646
+ hover(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1647
+ select(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1648
+ upload(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1649
+ check(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1650
+ uncheck(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1651
+ scroll(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1652
+ wait(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1653
+ pushState(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1654
+ setViewport(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1655
+ setTheme(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1656
+ assertText(input: BrowserQaDriverActionInput): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1657
+ assertElementState(input: BrowserQaDriverActionInput & {
1658
+ readonly state: "checked" | "enabled" | "visible";
1659
+ }): Promise<Result<BrowserQaAgentBrowserCommandResult, SurfaceError>>;
1660
+ captureState(): Promise<Result<Record<string, unknown>, SurfaceError>>;
1661
+ getConsoleSummary(): Promise<Result<Record<string, unknown>, SurfaceError>>;
1662
+ getNetworkSummary(): Promise<Result<Record<string, unknown>, SurfaceError>>;
1663
+ getReactDiagnostics(): Promise<Result<Record<string, unknown>, SurfaceError>>;
1664
+ getVitals(): Promise<Result<Record<string, unknown>, SurfaceError>>;
1665
+ cleanupStaleSessions(input?: {
1666
+ readonly dryRun?: boolean;
1667
+ }): Promise<Result<{
1668
+ readonly cleaned: readonly string[];
1669
+ readonly skipped: readonly string[];
1670
+ }, SurfaceError>>;
1671
+ };
1672
+ declare function createAgentBrowserCliDriver(options?: AgentBrowserCliDriverOptions): BrowserQaDriver;
1673
+ declare function createAgentBrowserEnvironment(input?: AgentBrowserEnvironmentInput): Record<string, string>;
1674
+ declare function redactAgentBrowserCommand(command: readonly string[], secrets: readonly string[]): string[];
1675
+
1676
+ type FileQaEvidenceStoreOptions = {
1677
+ readonly projectRoot?: string;
1678
+ readonly stateDir?: string;
1679
+ readonly stateStore: StateStore;
1680
+ };
1681
+ type QaEvidenceArtifactInput = {
1682
+ readonly bytes: Uint8Array;
1683
+ readonly id: string;
1684
+ readonly mcpReadable?: boolean;
1685
+ readonly mediaType: string;
1686
+ readonly qaKind: QaEvidenceArtifact["kind"];
1687
+ readonly sensitiveRaw?: boolean;
1688
+ };
1689
+ type WriteEvidenceBundleInput = {
1690
+ readonly artifacts: readonly QaEvidenceArtifactInput[];
1691
+ readonly bundle: EvidenceBundle;
1692
+ };
1693
+ type ReadArtifactByRegisteredRefInput = {
1694
+ readonly artifactId: string;
1695
+ readonly maxBytes?: number;
1696
+ readonly refId: string;
1697
+ };
1698
+ type QaArtifactReadResult = {
1699
+ readonly artifactId: string;
1700
+ readonly mediaType: string;
1701
+ readonly sha256: string;
1702
+ readonly sizeBytes: number;
1703
+ readonly text?: string;
1704
+ readonly truncated: boolean;
1705
+ };
1706
+ type QaEvidenceStore = {
1707
+ writeBundle(input: WriteEvidenceBundleInput): Promise<Result<EvidenceBundle, SurfaceError>>;
1708
+ readBundle(id: string): Promise<Result<EvidenceBundle, SurfaceError>>;
1709
+ readArtifactByRegisteredRef(input: ReadArtifactByRegisteredRefInput): Promise<Result<QaArtifactReadResult, SurfaceError>>;
1710
+ };
1711
+ declare function createFileQaEvidenceStore(options: FileQaEvidenceStoreOptions): QaEvidenceStore;
1712
+
1713
+ type BrowserQaExploreInput = {
1714
+ readonly actionPolicyRef?: string;
1715
+ readonly allowedDomains?: readonly string[];
1716
+ readonly evidence?: "minimal" | "failures" | "full";
1717
+ readonly maxActions: number;
1718
+ readonly maxDepth: number;
1719
+ readonly maxStates: number;
1720
+ readonly network?: "summary" | "har" | "off";
1721
+ readonly qaRunId: string;
1722
+ readonly scope?: string;
1723
+ readonly sessionMode?: "isolated" | "shared";
1724
+ readonly stateLockTimeoutMs?: number;
1725
+ readonly target: QaTarget;
1726
+ readonly task?: string;
1727
+ readonly video?: "off" | "failures" | "all";
1728
+ };
1729
+ type BrowserQaLoadedState = {
1730
+ readonly actions: readonly BrowserAction[];
1731
+ readonly authStatus: "authenticated" | "anonymous" | "auth-drift" | "reauthenticated";
1732
+ readonly depth: number;
1733
+ readonly dialogState?: string;
1734
+ readonly framePath?: readonly string[];
1735
+ readonly snapshotRef?: string;
1736
+ readonly theme?: "light" | "dark";
1737
+ readonly title?: string;
1738
+ readonly url: string;
1739
+ };
1740
+ type BrowserQaExploreResult = {
1741
+ readonly attemptedActions: number;
1742
+ readonly candidateFindings: readonly CandidateFinding[];
1743
+ readonly candidateFlows: readonly CandidateFlow[];
1744
+ readonly degradation: readonly QaDegradation[];
1745
+ readonly deniedActions: number;
1746
+ readonly visitedStates: number;
1747
+ };
1748
+ type BrowserQaExplorerHarness = {
1749
+ readonly actionPolicy: ActionPolicy;
1750
+ readonly executeAction: (action: BrowserAction) => Promise<Result<undefined, SurfaceError>>;
1751
+ readonly loadState: (input: {
1752
+ readonly actionPath: readonly BrowserAction[];
1753
+ readonly depth: number;
1754
+ readonly target: QaTarget;
1755
+ }) => Promise<Result<BrowserQaLoadedState, SurfaceError>>;
1756
+ readonly now?: () => string;
1757
+ readonly shouldCreateCandidateFlow?: (state: BrowserQaLoadedState) => boolean;
1758
+ readonly writeCandidate: (candidate: CandidateFinding) => Promise<Result<CandidateFinding, SurfaceError>>;
1759
+ readonly writeCandidateFlow: (flow: CandidateFlow) => Promise<Result<CandidateFlow, SurfaceError>>;
1760
+ readonly writeEvidenceBundle: (input: WriteEvidenceBundleInput) => Promise<Result<EvidenceBundle, SurfaceError>>;
1761
+ };
1762
+ type BrowserQaExplorer = {
1763
+ explore(input: BrowserQaExploreInput): Promise<Result<BrowserQaExploreResult, SurfaceError>>;
1764
+ };
1765
+ declare function createBrowserQaExplorer(harness: BrowserQaExplorerHarness): BrowserQaExplorer;
1766
+ declare function deriveExplorationStateId(state: BrowserQaLoadedState): string;
1767
+
1768
+ type ParseBrowserQaFlowOptions = {
1769
+ readonly sourcePath: string;
1770
+ };
1771
+ type FlowTargetCliOptions = {
1772
+ readonly baseUrl?: string;
1773
+ readonly localhost?: boolean;
1774
+ readonly target?: string;
1775
+ readonly url?: string;
1776
+ };
1777
+ type ResolveFlowTargetInput = {
1778
+ readonly cli?: FlowTargetCliOptions;
1779
+ readonly configTarget?: QaTarget;
1780
+ readonly defaultTarget?: QaTarget;
1781
+ readonly flowTarget?: QaTarget;
1782
+ };
1783
+ type LegacyRouteFlowInput = {
1784
+ readonly id: string;
1785
+ readonly targets: readonly string[];
1786
+ };
1787
+ type ImportedLegacyRouteFlow = BrowserQaFlow & {
1788
+ readonly degradation: readonly QaDegradation[];
1789
+ };
1790
+ declare function parseBrowserQaFlow(source: string, options: ParseBrowserQaFlowOptions): Result<BrowserQaFlow, SurfaceError>;
1791
+ declare function resolveFlowTarget(input: ResolveFlowTargetInput): QaTarget | undefined;
1792
+ declare function validateFlowTargetCli(cli: FlowTargetCliOptions | undefined): Result<undefined, SurfaceError>;
1793
+ declare function importLegacyRouteFlow(input: LegacyRouteFlowInput): Result<ImportedLegacyRouteFlow, SurfaceError>;
1794
+
1795
+ type FileQaRunStoreOptions = {
1796
+ readonly projectRoot?: string;
1797
+ readonly stateDir?: string;
1798
+ readonly stateStore: StateStore;
1799
+ };
1800
+ type QaRunStore = {
1801
+ writeRun(run: QaRun): Promise<Result<QaRun, SurfaceError>>;
1802
+ readRun(id: string): Promise<Result<QaRun, SurfaceError>>;
1803
+ readRunManifestRef(id: string): Promise<Result<SharedRunRef, SurfaceError>>;
1804
+ writeCandidate(candidate: CandidateFinding): Promise<Result<CandidateFinding, SurfaceError>>;
1805
+ readCandidate(id: string): Promise<Result<CandidateFinding, SurfaceError>>;
1806
+ writeCandidateFlow(flow: CandidateFlow): Promise<Result<CandidateFlow, SurfaceError>>;
1807
+ readCandidateFlow(id: string): Promise<Result<CandidateFlow, SurfaceError>>;
1808
+ writeFlowRun(flowRun: FlowRun): Promise<Result<FlowRun, SurfaceError>>;
1809
+ readFlowRun(id: string): Promise<Result<FlowRun, SurfaceError>>;
1810
+ listFlowRuns(): Promise<Result<readonly FlowRun[], SurfaceError>>;
1811
+ writeEvidenceBundle(bundle: EvidenceBundle): Promise<Result<EvidenceBundle, SurfaceError>>;
1812
+ readEvidenceBundle(id: string): Promise<Result<EvidenceBundle, SurfaceError>>;
1813
+ writePromotedFinding(promotedFinding: PromotedFindingSidecar): Promise<Result<PromotedFindingSidecar, SurfaceError>>;
1814
+ readPromotedFinding(id: string): Promise<Result<PromotedFindingSidecar, SurfaceError>>;
1815
+ };
1816
+ type SharedRunRef = {
1817
+ readonly id: string;
1818
+ readonly manifestDigest: string;
1819
+ readonly manifestPath: string;
1820
+ };
1821
+ declare function createFileQaRunStore(options: FileQaRunStoreOptions): QaRunStore;
1822
+
1823
+ type FlowRunnerDriver = BrowserQaDriver;
1824
+ type FlowRunnerRunContext = {
1825
+ readonly actionPolicy?: ActionPolicy;
1826
+ readonly actionPolicyRef?: string;
1827
+ readonly ci?: boolean;
1828
+ readonly qaRunId: string;
1829
+ readonly source?: FlowRun["source"];
1830
+ readonly target: QaTarget;
1831
+ };
1832
+ type FlowRunnerResult = FlowRun & {
1833
+ readonly degradation: readonly QaDegradation[];
1834
+ };
1835
+ type FlowRunner = {
1836
+ runFlow(flow: BrowserQaFlow, context: FlowRunnerRunContext): Promise<Result<FlowRunnerResult, SurfaceError>>;
1837
+ };
1838
+ type FlowRunnerOptions = {
1839
+ readonly actionPolicy?: ActionPolicy;
1840
+ readonly driver: FlowRunnerDriver;
1841
+ readonly evidenceStore: Pick<QaEvidenceStore, "writeBundle">;
1842
+ readonly now?: () => string;
1843
+ readonly qaStore: Pick<QaRunStore, "writeFlowRun">;
1844
+ };
1845
+ type BrowserQaFlowServiceRunInput = {
1846
+ readonly actionPolicyRef?: string;
1847
+ readonly allowedDomains?: readonly string[];
1848
+ readonly ci?: boolean;
1849
+ readonly flowPath: string;
1850
+ readonly qaRunId?: string;
1851
+ readonly targetCli?: FlowTargetCliOptions;
1852
+ readonly writeRun?: boolean;
1853
+ };
1854
+ type BrowserQaFlowServiceRunOutput = {
1855
+ readonly flowRun: FlowRunnerResult;
1856
+ readonly qaRunId: string;
1857
+ };
1858
+ type BrowserQaFlowService = {
1859
+ runFlowFile(input: BrowserQaFlowServiceRunInput): Promise<Result<BrowserQaFlowServiceRunOutput, SurfaceError>>;
1860
+ listFlows(input?: {
1861
+ readonly candidates?: boolean;
1862
+ }): Promise<Result<{
1863
+ readonly flows: readonly unknown[];
1864
+ }, SurfaceError>>;
1865
+ showFlow(id: string): Promise<Result<{
1866
+ readonly flow: unknown;
1867
+ }, SurfaceError>>;
1868
+ promoteFlow(input: {
1869
+ readonly candidateFlowId: string;
1870
+ readonly outPath: string;
1871
+ }): Promise<Result<{
1872
+ readonly candidateFlowId: string;
1873
+ readonly outPath: string;
1874
+ readonly status: "written";
1875
+ }, SurfaceError>>;
1876
+ updateFlowRefs(input: {
1877
+ readonly flowPath: string;
1878
+ }): Promise<Result<{
1879
+ readonly flowId: string;
1880
+ readonly updatedRefs: number;
1881
+ }, SurfaceError>>;
1882
+ };
1883
+ type BrowserQaFlowServiceOptions = {
1884
+ readonly flowRunner: FlowRunner;
1885
+ readonly projectRoot?: string;
1886
+ readonly qaStore: Pick<QaRunStore, "listFlowRuns" | "readCandidateFlow" | "readFlowRun" | "writeRun">;
1887
+ readonly stateDir?: string;
1888
+ };
1889
+ declare function createFlowRunner(options: FlowRunnerOptions): FlowRunner;
1890
+ declare function createBrowserQaFlowService(options: BrowserQaFlowServiceOptions): BrowserQaFlowService;
1891
+
1892
+ type BrowserQaFlowRunForGate = {
1893
+ readonly flowId?: string;
1894
+ readonly gateEligible?: boolean;
1895
+ readonly highestFailedSeverity?: QaSeverity;
1896
+ readonly id: string;
1897
+ readonly source?: {
1898
+ readonly ref?: string;
1899
+ };
1900
+ readonly status: "passed" | "failed" | "degraded";
1901
+ };
1902
+ type BrowserQaGateTargetCliOptions = {
1903
+ readonly baseUrl?: string | undefined;
1904
+ readonly localhost?: boolean | string | undefined;
1905
+ readonly target?: string | undefined;
1906
+ readonly url?: string | undefined;
1907
+ };
1908
+ type BrowserQaGateFlowRunsInput = {
1909
+ readonly actionPolicyRef?: string;
1910
+ readonly ci: boolean;
1911
+ readonly projectRoot?: string;
1912
+ readonly targetCli?: FlowTargetCliOptions;
1913
+ readonly withFlows: boolean | string;
1914
+ };
1915
+ declare function browserQaFlowRunsForGate(composition: unknown, input: BrowserQaGateFlowRunsInput): Promise<Result<readonly BrowserQaFlowRunForGate[], SurfaceError>>;
1916
+ declare function browserQaGateTargetCli(options: BrowserQaGateTargetCliOptions): Result<FlowTargetCliOptions | undefined, SurfaceError>;
1917
+ declare function browserQaFlowSeverityFromWithFlows(withFlows: boolean | string): QaSeverity;
1918
+
1919
+ type QaReportArtifactSummary = {
1920
+ readonly checksum: string;
1921
+ readonly id: string;
1922
+ readonly kind: QaEvidenceArtifact["kind"];
1923
+ readonly mcpReadable: boolean;
1924
+ readonly mediaType: string;
1925
+ readonly path: string;
1926
+ readonly redacted: boolean;
1927
+ readonly sensitiveRaw: boolean;
1928
+ readonly sizeBytes: number;
1929
+ };
1930
+ type QaReportEvidenceBundleSummary = {
1931
+ readonly artifacts: readonly QaReportArtifactSummary[];
1932
+ readonly containsSensitiveRaw: boolean;
1933
+ readonly id: string;
1934
+ readonly manifestPath: string;
1935
+ readonly qaRunId: string;
1936
+ readonly redacted: boolean;
1937
+ readonly sanitizedAtCapture: boolean;
1938
+ readonly sourceRunManifestDigest: string;
1939
+ };
1940
+ type QaReportManifest = {
1941
+ readonly candidateFindings: readonly string[];
1942
+ readonly candidateFlows: readonly string[];
1943
+ readonly completedAt?: string;
1944
+ readonly degradation: readonly QaDegradation[];
1945
+ readonly evidenceBundles: readonly QaReportEvidenceBundleSummary[];
1946
+ readonly flowRuns: QaRun["flowRuns"];
1947
+ readonly findings: readonly string[];
1948
+ readonly mode: QaRun["mode"];
1949
+ readonly qaRunId: string;
1950
+ readonly reportId: string;
1951
+ readonly startedAt: string;
1952
+ readonly status: QaRun["status"];
1953
+ readonly target: QaTarget;
1954
+ };
1955
+ type QaReportInput = {
1956
+ readonly artifactSummaries?: readonly string[];
1957
+ readonly evidenceBundles: readonly EvidenceBundle[];
1958
+ readonly qaRun: QaRun;
1959
+ readonly reportId: string;
1960
+ };
1961
+ declare function createQaReportManifest(input: QaReportInput): QaReportManifest;
1962
+ declare function createQaJsonReport(input: QaReportInput): string;
1963
+ declare function createQaMarkdownReport(input: QaReportInput): string;
1964
+
1965
+ type BrowserQaRunInput = {
1966
+ readonly actionPolicyRef?: string;
1967
+ readonly allowedDomains?: readonly string[];
1968
+ readonly ci?: boolean;
1969
+ readonly evidence?: "minimal" | "failures" | "full";
1970
+ readonly explore?: boolean;
1971
+ readonly flows?: readonly string[];
1972
+ readonly maxActions?: number;
1973
+ readonly maxDepth?: number;
1974
+ readonly maxStates?: number;
1975
+ readonly network?: "summary" | "har" | "off";
1976
+ readonly qaRunId?: string;
1977
+ readonly scope?: string;
1978
+ readonly sessionMode?: "isolated" | "shared";
1979
+ readonly stateLockTimeoutMs?: number;
1980
+ readonly target: QaTarget;
1981
+ readonly task?: string;
1982
+ readonly video?: "off" | "failures" | "all";
1983
+ };
1984
+ type BrowserQaRunResult = {
1985
+ readonly candidateFindings: readonly CandidateFinding[];
1986
+ readonly candidateFlows: readonly CandidateFlow[];
1987
+ readonly degradation: readonly QaDegradation[];
1988
+ readonly evidenceBundles: readonly string[];
1989
+ readonly exploration?: {
1990
+ readonly candidateFindings: number;
1991
+ readonly candidateFlows: number;
1992
+ readonly visitedStates: number;
1993
+ };
1994
+ readonly findings: readonly string[];
1995
+ readonly flowRuns: readonly FlowRunSummary[];
1996
+ readonly mode: "flow" | "explore" | "hybrid";
1997
+ readonly qaRunId: string;
1998
+ readonly target: QaTarget;
1999
+ };
2000
+ type BrowserQaExploreCommandInput = Omit<BrowserQaExploreInput, "qaRunId"> & {
2001
+ readonly qaRunId?: string;
2002
+ };
2003
+ type BrowserQaExploreCommandResult = BrowserQaExploreResult & {
2004
+ readonly qaRunId: string;
2005
+ };
2006
+ type BrowserQaEvidenceSummary = {
2007
+ readonly refId: string;
2008
+ readonly summaries: readonly unknown[];
2009
+ };
2010
+ type BrowserQaReportFormat = "md" | "json" | "manifest";
2011
+ type BrowserQaReportResult = {
2012
+ readonly format: BrowserQaReportFormat;
2013
+ readonly report: string | QaReportManifest;
2014
+ };
2015
+ type BrowserQaReplayResult = {
2016
+ readonly promotion?: unknown;
2017
+ readonly replayStatus: string;
2018
+ };
2019
+ type BrowserQaCleanupResult = {
2020
+ readonly cleaned: readonly string[];
2021
+ readonly dryRun: boolean;
2022
+ readonly skipped: readonly string[];
2023
+ };
2024
+ type BrowserQaOrchestratorHarness = {
2025
+ readonly cleanupStaleSessions: (input: {
2026
+ readonly dryRun: boolean;
2027
+ }) => Promise<Result<{
2028
+ readonly cleaned: readonly string[];
2029
+ readonly skipped: readonly string[];
2030
+ }, SurfaceError>>;
2031
+ readonly now?: () => string;
2032
+ readonly readEvidence: (input: {
2033
+ readonly refId: string;
2034
+ }) => Promise<Result<BrowserQaEvidenceSummary, SurfaceError>>;
2035
+ readonly readEvidenceBundle?: (input: {
2036
+ readonly refId: string;
2037
+ }) => Promise<Result<EvidenceBundle, SurfaceError>>;
2038
+ readonly readRun?: (input: {
2039
+ readonly runId: string;
2040
+ }) => Promise<Result<QaRun, SurfaceError>>;
2041
+ readonly replay: (input: {
2042
+ readonly promoteOnRepro: boolean;
2043
+ readonly refId: string;
2044
+ }) => Promise<Result<BrowserQaReplayResult, SurfaceError>>;
2045
+ readonly promoteCandidateByVerdict?: (input: {
2046
+ readonly refId: string;
2047
+ readonly reason: string;
2048
+ readonly verdictId: string;
2049
+ }) => Promise<Result<BrowserQaReplayResult, SurfaceError>>;
2050
+ readonly resolveFlows?: (patterns: readonly string[]) => Promise<Result<{
2051
+ readonly matched: readonly string[];
2052
+ readonly unmatched: readonly string[];
2053
+ }, SurfaceError>>;
2054
+ readonly runExplore: (input: BrowserQaExploreInput) => Promise<Result<BrowserQaExploreResult, SurfaceError>>;
2055
+ readonly runFlow: (flowRef: string, input: BrowserQaRunInput) => Promise<Result<FlowRun, SurfaceError>>;
2056
+ readonly writeRun: (run: QaRun) => Promise<Result<QaRun, SurfaceError>>;
2057
+ };
2058
+ type BrowserQaOrchestrator = {
2059
+ cleanup(input: {
2060
+ readonly dryRun?: boolean;
2061
+ }): Promise<Result<BrowserQaCleanupResult, SurfaceError>>;
2062
+ readEvidence(input: {
2063
+ readonly refId: string;
2064
+ }): Promise<Result<BrowserQaEvidenceSummary, SurfaceError>>;
2065
+ reportQa(input: {
2066
+ readonly format?: BrowserQaReportFormat;
2067
+ readonly runId: string;
2068
+ }): Promise<Result<BrowserQaReportResult, SurfaceError>>;
2069
+ replay(input: {
2070
+ readonly promoteOnRepro?: boolean;
2071
+ readonly refId: string;
2072
+ }): Promise<Result<BrowserQaReplayResult, SurfaceError>>;
2073
+ promoteCandidateByVerdict(input: {
2074
+ readonly refId: string;
2075
+ readonly reason: string;
2076
+ readonly verdictId: string;
2077
+ }): Promise<Result<BrowserQaReplayResult, SurfaceError>>;
2078
+ runExplore(input: BrowserQaExploreCommandInput): Promise<Result<BrowserQaExploreCommandResult, SurfaceError>>;
2079
+ runQa(input: BrowserQaRunInput): Promise<Result<BrowserQaRunResult, SurfaceError>>;
2080
+ };
2081
+ declare function createBrowserQaOrchestrator(harness: BrowserQaOrchestratorHarness): BrowserQaOrchestrator;
2082
+
2083
+ type ReplayCandidateContext = {
2084
+ readonly promoteOnRepro?: boolean;
2085
+ readonly qaRunId: string;
2086
+ };
2087
+ type VerdictPromotionContext = {
2088
+ readonly reason: string;
2089
+ readonly verdictId: string;
2090
+ };
2091
+ type ReplayConditionResult = {
2092
+ readonly evidenceBundleId?: string;
2093
+ readonly reproduced: boolean;
2094
+ };
2095
+ type PromotedCandidateFinding = CandidateFinding & {
2096
+ readonly finding?: Finding;
2097
+ readonly promotedFinding?: PromotedFindingSidecar;
2098
+ readonly trackedFinding?: TrackedFinding;
2099
+ };
2100
+ type ReplayPromoterHarness = {
2101
+ readonly now?: () => string;
2102
+ readonly readCandidate: (id: string) => Promise<Result<CandidateFinding, SurfaceError>>;
2103
+ readonly readEvidenceBundle?: (id: string) => Promise<Result<EvidenceBundle, SurfaceError>>;
2104
+ readonly replayCandidateCondition: (candidate: CandidateFinding, context: ReplayCandidateContext) => Promise<Result<ReplayConditionResult, SurfaceError>>;
2105
+ readonly writeCandidate: (candidate: CandidateFinding) => Promise<Result<CandidateFinding, SurfaceError>>;
2106
+ readonly writePromotedFinding: (promotion: PromotedFindingSidecar) => Promise<Result<PromotedFindingSidecar, SurfaceError>>;
2107
+ readonly writeTrackedFinding?: (trackedFinding: TrackedFinding, finding?: Finding) => Promise<Result<TrackedFinding, SurfaceError>>;
2108
+ };
2109
+ type ReplayPromoter = {
2110
+ replayCandidate(id: string, context: ReplayCandidateContext): Promise<Result<PromotedCandidateFinding, SurfaceError>>;
2111
+ promoteCandidateByVerdict(id: string, context: VerdictPromotionContext): Promise<Result<PromotedCandidateFinding, SurfaceError>>;
2112
+ };
2113
+ declare function createReplayPromoter(harness: ReplayPromoterHarness): ReplayPromoter;
2114
+
73
2115
  type CaptureIdFactory = (target: Target) => string;
74
2116
  type CaptureClock = () => string;
75
2117
  type CaptureRandomHex = () => string;
@@ -136,9 +2178,9 @@ declare const ExecutablePipelineStageIdSchema: z.ZodEnum<{
136
2178
  routes: "routes";
137
2179
  content: "content";
138
2180
  responsiveness: "responsiveness";
2181
+ visual: "visual";
139
2182
  discovery: "discovery";
140
2183
  heuristic: "heuristic";
141
- visual: "visual";
142
2184
  "cognitive-walkthrough": "cognitive-walkthrough";
143
2185
  innovation: "innovation";
144
2186
  synthesis: "synthesis";
@@ -154,9 +2196,9 @@ declare const PipelineStageIdSchema: z.ZodEnum<{
154
2196
  routes: "routes";
155
2197
  content: "content";
156
2198
  responsiveness: "responsiveness";
2199
+ visual: "visual";
157
2200
  discovery: "discovery";
158
2201
  heuristic: "heuristic";
159
- visual: "visual";
160
2202
  "cognitive-walkthrough": "cognitive-walkthrough";
161
2203
  innovation: "innovation";
162
2204
  synthesis: "synthesis";
@@ -175,9 +2217,9 @@ declare const PipelineEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
175
2217
  routes: "routes";
176
2218
  content: "content";
177
2219
  responsiveness: "responsiveness";
2220
+ visual: "visual";
178
2221
  discovery: "discovery";
179
2222
  heuristic: "heuristic";
180
- visual: "visual";
181
2223
  "cognitive-walkthrough": "cognitive-walkthrough";
182
2224
  innovation: "innovation";
183
2225
  synthesis: "synthesis";
@@ -195,9 +2237,9 @@ declare const PipelineEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
195
2237
  routes: "routes";
196
2238
  content: "content";
197
2239
  responsiveness: "responsiveness";
2240
+ visual: "visual";
198
2241
  discovery: "discovery";
199
2242
  heuristic: "heuristic";
200
- visual: "visual";
201
2243
  "cognitive-walkthrough": "cognitive-walkthrough";
202
2244
  innovation: "innovation";
203
2245
  synthesis: "synthesis";
@@ -216,9 +2258,9 @@ declare const PipelineEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
216
2258
  routes: "routes";
217
2259
  content: "content";
218
2260
  responsiveness: "responsiveness";
2261
+ visual: "visual";
219
2262
  discovery: "discovery";
220
2263
  heuristic: "heuristic";
221
- visual: "visual";
222
2264
  "cognitive-walkthrough": "cognitive-walkthrough";
223
2265
  innovation: "innovation";
224
2266
  synthesis: "synthesis";
@@ -483,6 +2525,7 @@ declare function synthesizeMeasuredWinsDecision(input: SynthesizeMeasuredWinsInp
483
2525
 
484
2526
  type SurfaceCompositionGeneratedAt = string | (() => string);
485
2527
  type SurfaceCompositionOptions = {
2528
+ readonly browserQa?: Partial<BrowserQaComposition>;
486
2529
  readonly captureBackends?: readonly CaptureBackend[];
487
2530
  readonly frameworkAdapters?: readonly FrameworkAdapter[];
488
2531
  readonly generatedAt?: SurfaceCompositionGeneratedAt;
@@ -500,7 +2543,16 @@ type SurfaceCompositionOptions = {
500
2543
  readonly stateStore?: StateStore;
501
2544
  readonly staticFallback?: CaptureBackend;
502
2545
  };
2546
+ type BrowserQaComposition = {
2547
+ readonly driver: BrowserQaDriver;
2548
+ readonly evidenceStore: QaEvidenceStore;
2549
+ readonly flowRunner: FlowRunner;
2550
+ readonly flowService: BrowserQaFlowService;
2551
+ readonly orchestrator: BrowserQaOrchestrator;
2552
+ readonly qaStore: QaRunStore;
2553
+ };
503
2554
  type SurfaceComposition = {
2555
+ readonly browserQa: BrowserQaComposition;
504
2556
  readonly captureBackends: readonly CaptureBackend[];
505
2557
  readonly captureService: CaptureService;
506
2558
  readonly frameworkAdapters: readonly FrameworkAdapter[];
@@ -522,7 +2574,7 @@ type SurfaceComposition = {
522
2574
  * package dependencies stay one-way: plugins depend on core, never the reverse.
523
2575
  */
524
2576
  declare function createSurfaceComposition(options?: SurfaceCompositionOptions): SurfaceComposition;
525
- declare const DEFAULT_COMPOSITION_STAGE_IDS: ("capture" | "validation" | "accessibility" | "conversion" | "persona" | "routes" | "content" | "responsiveness" | "discovery" | "heuristic" | "visual" | "cognitive-walkthrough" | "innovation" | "synthesis")[];
2577
+ declare const DEFAULT_COMPOSITION_STAGE_IDS: ("capture" | "validation" | "accessibility" | "conversion" | "persona" | "routes" | "content" | "responsiveness" | "visual" | "discovery" | "heuristic" | "cognitive-walkthrough" | "innovation" | "synthesis")[];
526
2578
 
527
2579
  declare const TextInputSchema: z.ZodObject<{
528
2580
  path: z.ZodOptional<z.ZodString>;
@@ -865,8 +2917,35 @@ type ConversionLensOptions = LensFactoryOptions & {
865
2917
  declare function createTaskCompletionLens(options?: TaskCompletionLensOptions): Lens;
866
2918
  declare function createConversionLens(options?: ConversionLensOptions): Lens;
867
2919
 
2920
+ type QaGateFlowRun = {
2921
+ readonly flowId?: string;
2922
+ readonly gateEligible?: boolean;
2923
+ readonly highestFailedSeverity?: QaSeverity;
2924
+ readonly id: string;
2925
+ readonly status: "passed" | "failed" | "degraded";
2926
+ };
2927
+ type QaGateCandidateFinding = {
2928
+ readonly gateEligible: boolean;
2929
+ readonly id: string;
2930
+ readonly severity: QaSeverity;
2931
+ };
2932
+ type FlowAwareGatePolicy = GatePolicy & {
2933
+ readonly failOnFlowSeverityAtOrAbove?: QaSeverity;
2934
+ };
2935
+ type FlowAwareGateInput = {
2936
+ readonly candidateFindings?: readonly QaGateCandidateFinding[];
2937
+ readonly context?: GateEvaluationContext;
2938
+ readonly findings: readonly Finding[];
2939
+ readonly policy: FlowAwareGatePolicy;
2940
+ readonly qaFlowRuns?: readonly QaGateFlowRun[];
2941
+ };
2942
+ type FlowAwareGateResult = GateResult & {
2943
+ readonly failingCandidateIds: readonly string[];
2944
+ readonly failingFlowRunIds: readonly string[];
2945
+ };
868
2946
  /** Create the default release gate evaluator for measured findings. */
869
2947
  declare function createGateEvaluator(): GateEvaluator;
2948
+ declare function evaluateGateWithQaFlows(input: FlowAwareGateInput): Result<FlowAwareGateResult, SurfaceError>;
870
2949
 
871
2950
  type FindingsJsonRendererOptions = {
872
2951
  readonly generatedAt: string;
@@ -1043,6 +3122,14 @@ type GitHubIssueExporterOptions = {
1043
3122
  };
1044
3123
  declare function createGitHubIssueExporter(options: GitHubIssueExporterOptions): IssueExporter;
1045
3124
 
3125
+ type ExpandExistingFilePatternOptions = {
3126
+ readonly projectRoot?: string;
3127
+ };
3128
+ declare function expandExistingFilePattern(pattern: string, options?: ExpandExistingFilePatternOptions): Promise<readonly string[]>;
3129
+ declare function projectRelativePath(projectRoot: string, filePath: string): string;
3130
+ declare function toPosixPath(value: string): string;
3131
+ declare function wildcardMatches(pattern: string, value: string): boolean;
3132
+
1046
3133
  declare const KnowledgeCategorySchema: z.ZodEnum<{
1047
3134
  "e-commerce": "e-commerce";
1048
3135
  admin: "admin";
@@ -1712,6 +3799,16 @@ declare const VerdictSchema: z.ZodObject<{
1712
3799
  }>;
1713
3800
  }, z.core.$strict>;
1714
3801
  type Verdict = z.infer<typeof VerdictSchema>;
3802
+ declare const CandidateVerdictPromotionSchema: z.ZodObject<{
3803
+ candidateFindingId: z.ZodString;
3804
+ gateEligible: z.ZodLiteral<true>;
3805
+ promotionSource: z.ZodLiteral<"human-verdict">;
3806
+ reason: z.ZodString;
3807
+ recordedAt: z.ZodString;
3808
+ replayEligible: z.ZodLiteral<false>;
3809
+ verdictId: z.ZodOptional<z.ZodString>;
3810
+ }, z.core.$strict>;
3811
+ type CandidateVerdictPromotion = z.infer<typeof CandidateVerdictPromotionSchema>;
1715
3812
  declare const SelfGroundingReportSchema: z.ZodObject<{
1716
3813
  sampleSize: z.ZodNumber;
1717
3814
  measuredGroundTruthCount: z.ZodNumber;
@@ -1726,6 +3823,12 @@ type CreateVerdictInput = {
1726
3823
  readonly recordedAt?: string | Date;
1727
3824
  readonly reusePolicy?: VerdictReusePolicy;
1728
3825
  };
3826
+ type CreateCandidateVerdictPromotionInput = {
3827
+ readonly candidate: CandidateFinding;
3828
+ readonly reason: string;
3829
+ readonly recordedAt?: string | Date;
3830
+ readonly verdictId?: string;
3831
+ };
1729
3832
  type CreateSelfGroundingReportInput = {
1730
3833
  readonly findings: readonly Finding[];
1731
3834
  readonly verdicts: readonly Verdict[];
@@ -1735,6 +3838,7 @@ type ApplyVerdictsToBacklogInput = {
1735
3838
  readonly verdicts: readonly Verdict[];
1736
3839
  };
1737
3840
  declare function createVerdict(input: CreateVerdictInput): Result<Verdict>;
3841
+ declare function createCandidateVerdictPromotion(input: CreateCandidateVerdictPromotionInput): Result<CandidateVerdictPromotion>;
1738
3842
  declare function createSelfGroundingReport(input: CreateSelfGroundingReportInput): Result<SelfGroundingReport>;
1739
3843
  declare function applyVerdictsToBacklog(input: ApplyVerdictsToBacklogInput): Result<Backlog>;
1740
3844
 
@@ -1750,4 +3854,4 @@ declare function createVisualHierarchyLens(options?: VisualHierarchyLensOptions)
1750
3854
 
1751
3855
  declare const CORE_PACKAGE_NAME = "@zigrivers/surface-core";
1752
3856
 
1753
- export { APP_TYPE_OVERLAY_REGISTRY, APP_TYPE_OVERLAY_YAML_HEADER, type AgentBrowserCaptureBackendOptions, type AgentBrowserCommandResult, type AgentBrowserCommandRunner, type AlternativeProposal, type AlternativesRendererOptions, type AlternativesReportData, AppType, type AppTypeClassification, AppTypeClassificationSchema, type AppTypeOverlay, AppTypeOverlaySchema, type ApplyVerdictsToBacklogInput, BUILT_IN_LENS_REGISTRY, Backlog, CIRCULAR_LOG_VALUE, COMMITTED_WEB_APP_TYPE_OVERLAYS, CORE_PACKAGE_NAME, type CaptureClock, type CaptureContext, type CaptureContextFinding, type CaptureIdFactory, type CaptureRandomHex, type CaptureService, type CaptureServiceOptions, CitationSchema, type CognitivePersona, type CognitiveTaskDefinition, type ContentMicrocopyLensOptions, type ContextIngestion, type ContextIngestionInput, type ContextIngestor, type ContextIngestorClock, type ContextIngestorOptions, type ContextInputKind, type ConversionLensOptions, type CreateSelfGroundingReportInput, type CreateSurfaceLoggerOptions, type CreateVerdictInput, DEFAULT_COMPOSITION_STAGE_IDS, DEFAULT_PIPELINE_STAGE_DEFINITIONS, type DesignToken, type DiffRendererOptions, type DiscoveryEvent, DiscoveryEventSchema, type DiscoveryResult, DiscoveryResultSchema, type DiscoveryRunInput, type ExecutablePipelineStageId, ExecutablePipelineStageIdSchema, type ExplainRendererOptions, type FileSystemKnowledgeSourceOptions, Finding, FindingDraft, FindingsEnvelope, type FindingsJsonRendererOptions, FreshnessSchema, FreshnessVolatilitySchema, type GitHubChecksExport, type GitHubChecksExportInput, type GitHubChecksExporterOptions, type GitHubIssueExporterOptions, type IngestedContext, type InputProvenance, type InstantiatedLens, type JiraIssueClient, type JiraIssueExporterOptions, KnowledgeCategorySchema, LIGHTHOUSE_ACCESSIBILITY_AUDIT_IDS, type LensExecutionPlan, type LensExecutionSkip, type LensFactoryOptions, type LensRegistration, type LensSkipReason, type LinearIssueClient, type LinearIssueExporterOptions, ModelAvailability, type OverlayAcceptanceCriteria, OverlayAcceptanceCriteriaSchema, type OverlayReleaseTier, OverlayReleaseTierSchema, type Persona, type PersonaTask, PersonaTaskSchema, type PipelineEvent, PipelineEventSchema, type PipelineOrchestrator, type PipelineOrchestratorOptions, type PipelineRunInput, type PipelineRunResult, type PipelineStageContext, type PipelineStageDefinition, type PipelineStageHandler, type PipelineStageId, PipelineStageIdSchema, type PlaywrightCaptureBackendOptions, REDACTED_EXPORT_VALUE, REDACTED_LOG_KEY, REDACTED_LOG_VALUE, REGISTERED_APP_TYPE_OVERLAYS, type ReconciledFinding, ReconciledFindingSchema, type ReconciliationChannel, ReconciliationChannelSchema, type ReconciliationInput, ReconciliationInputSchema, type ReconciliationQuestion, ReconciliationQuestionSchema, type ReconciliationResult, ReconciliationResultSchema, type ReconciliationService, type ReconciliationUnavailableChannel, ReconciliationUnavailableChannelSchema, type ReconciliationUnavailableReason, ReconciliationUnavailableReasonSchema, RedactionRule, type RegisteredAppTypeOverlay, type RenderAndWriteReportArtifactsOptions, type ReportArtifactSpec, type ReportRendererRedactionOptions, type ResponsivenessStatesLensOptions, Result, type RouteInventory, type RouteInventoryEntry, RouteInventoryEntrySchema, RouteInventorySchema, type RouteSkipped, RouteSkippedSchema, type RunTaskFlowCaptureInput, SURFACE_STATE_DIR, SURFACE_STATE_FILE, SURFACE_STATE_VERSION, type SelectLensExecutionPlanInput, type SelfGroundingReport, SelfGroundingReportSchema, type StaticCaptureBackendOptions, type SurfaceComposition, type SurfaceCompositionGeneratedAt, type SurfaceCompositionOptions, SurfaceConfig, SurfaceError, type SurfaceLogFields, type SurfaceSarifLog, SurfaceSarifLogSchema, type SynthesisDecision, type SynthesizeMeasuredWinsInput, TRUNCATED_LOG_VALUE, type TaskCompletionLensOptions, type TaskDefinition, type TaskFlowCaptureRecipe, type TaskFlowCaptureResult, type TaskFlowCapturedState, type TaskFlowStep, type TaskFlowUnreachableStep, type TextInput, TrackedFindingsDiff, type UsabilityHeuristicLensOptions, type Verdict, type VerdictDecision, VerdictDecisionSchema, type VerdictReusePolicy, VerdictReusePolicySchema, VerdictSchema, type VisualHierarchyLensOptions, type WrittenReportArtifact, applyVerdictsToBacklog, createAccessibilityLens, createAgentBrowserCaptureBackend, createAgentPlanMarkdownRenderer, createAlternativesJsonRenderer, createBacklogMarkdownRenderer, createBoundedAlternatives, createCaptureService, createContentMicrocopyLens, createContextIngestor, createConversionLens, createDefaultCaptureIdFactory, createDiffJsonRenderer, createExplainJsonRenderer, createExplainMarkdownRenderer, createFileStateStore, createFileSystemKnowledgeSource, createFindingsJsonRenderer, createFindingsMarkdownRenderer, createGateEvaluator, createGitHubChecksExporter, createGitHubIssueExporter, createJiraIssueExporter, createLinearIssueExporter, createNoopPipelineHandlers, createPipelineOrchestrator, createPlaywrightCaptureBackend, createReconciliationService, createResponsivenessStatesLens, createSarifRenderer, createSelfGroundingReport, createStaticCaptureBackend, createSurfaceComposition, createSurfaceLogger, createTaskCompletionLens, createUsabilityHeuristicLens, createValidationReportMarkdownRenderer, createVerdict, createVisualHierarchyLens, defaultPlanningReportArtifactSpecs, getAppTypeOverlay, hasRegisteredAppTypeOverlay, instantiateLensExecutionPlan, listAppTypeOverlays, loadKnowledgeEntries, queryKnowledgeEntries, reconcileFindings, redactExportString, redactExportValue, renderAndWriteReportArtifacts, runDiscovery, runTaskFlowCapture, sanitizeLogFields, selectCaptureBackend, selectLensExecutionPlan, selectPipelineStages, serializeAppTypeOverlayToYaml, synthesizeMeasuredWinsDecision, tagFindingsWithCaptureContext };
3857
+ export { APP_TYPE_OVERLAY_REGISTRY, APP_TYPE_OVERLAY_YAML_HEADER, type ActionPolicy, type ActionPolicyCategory, ActionPolicyCategorySchema, type ActionPolicyDecision, ActionPolicyDecisionSchema, type ActionPolicyRule, ActionPolicyRuleSchema, ActionPolicySchema, type AgentBrowserCaptureBackendOptions, type AgentBrowserCliDriverOptions, type AgentBrowserCommandResult, type AgentBrowserCommandRunner, type AgentBrowserEnvironmentInput, type AlternativeProposal, type AlternativesRendererOptions, type AlternativesReportData, AppType, type AppTypeClassification, AppTypeClassificationSchema, type AppTypeOverlay, AppTypeOverlaySchema, type ApplyVerdictsToBacklogInput, BUILT_IN_LENS_REGISTRY, Backlog, type BrowserAction, type BrowserActionName, BrowserActionNameSchema, BrowserActionSchema, type BrowserLocator, BrowserLocatorSchema, type BrowserQaAgentBrowserCommandInput, type BrowserQaAgentBrowserCommandInvocation, type BrowserQaAgentBrowserCommandResult, type BrowserQaAgentBrowserCommandRunner, type BrowserQaCleanupResult, type BrowserQaComposition, type BrowserQaDriver, type BrowserQaDriverActionInput, type BrowserQaDriverValueRef, type BrowserQaEvidenceSummary, type BrowserQaExploreCommandInput, type BrowserQaExploreCommandResult, type BrowserQaExploreInput, type BrowserQaExploreResult, type BrowserQaExplorer, type BrowserQaExplorerHarness, type BrowserQaFlow, type BrowserQaFlowRunForGate, BrowserQaFlowSchema, type BrowserQaFlowService, type BrowserQaFlowServiceOptions, type BrowserQaFlowServiceRunInput, type BrowserQaFlowServiceRunOutput, type BrowserQaFlowStep, BrowserQaFlowStepSchema, type BrowserQaGateFlowRunsInput, type BrowserQaGateTargetCliOptions, type BrowserQaLoadedState, type BrowserQaOrchestrator, type BrowserQaOrchestratorHarness, type BrowserQaReplayResult, type BrowserQaReportFormat, type BrowserQaReportResult, type BrowserQaRunInput, type BrowserQaRunResult, type BrowserQaSession, CIRCULAR_LOG_VALUE, COMMITTED_WEB_APP_TYPE_OVERLAYS, CORE_PACKAGE_NAME, type CandidateFinding, CandidateFindingIdSchema, CandidateFindingSchema, type CandidateFindingSidecar, CandidateFindingSidecarSchema, type CandidateFlow, CandidateFlowIdSchema, CandidateFlowSchema, type CandidateFlowSidecar, CandidateFlowSidecarSchema, type CandidateVerdictPromotion, CandidateVerdictPromotionSchema, type CaptureClock, type CaptureContext, type CaptureContextFinding, type CaptureIdFactory, type CaptureRandomHex, type CaptureService, type CaptureServiceOptions, CitationSchema, type ClassifyBrowserActionInput, type CognitivePersona, type CognitiveTaskDefinition, type ContentMicrocopyLensOptions, type ContextIngestion, type ContextIngestionInput, type ContextIngestor, type ContextIngestorClock, type ContextIngestorOptions, type ContextInputKind, type ConversionLensOptions, type CreateCandidateVerdictPromotionInput, type CreateSelfGroundingReportInput, type CreateSurfaceLoggerOptions, type CreateVerdictInput, DEFAULT_COMPOSITION_STAGE_IDS, DEFAULT_PIPELINE_STAGE_DEFINITIONS, type DesignToken, type DiffRendererOptions, type DiscoveryEvent, DiscoveryEventSchema, type DiscoveryResult, DiscoveryResultSchema, type DiscoveryRunInput, type EnvironmentGroup, EnvironmentGroupSchema, type EvidenceBundle, EvidenceBundleIdSchema, EvidenceBundleSchema, type EvidenceBundleSidecar, EvidenceBundleSidecarSchema, type ExecutablePipelineStageId, ExecutablePipelineStageIdSchema, type ExpandExistingFilePatternOptions, type ExplainRendererOptions, type ExplorationState, ExplorationStateSchema, type ExplorationSummary, ExplorationSummarySchema, type FileQaEvidenceStoreOptions, type FileQaRunStoreOptions, type FileSystemKnowledgeSourceOptions, Finding, FindingDraft, FindingsEnvelope, type FindingsJsonRendererOptions, type FixtureAccount, FixtureAccountSchema, type FlowAwareGateInput, type FlowAwareGatePolicy, type FlowAwareGateResult, type FlowIsolationPolicyValidation, type FlowRun, FlowRunIdSchema, FlowRunSchema, type FlowRunSummary, FlowRunSummarySchema, type FlowRunner, type FlowRunnerDriver, type FlowRunnerOptions, type FlowRunnerResult, type FlowRunnerRunContext, type FlowStepResult, FlowStepResultSchema, type FlowTargetCliOptions, FreshnessSchema, FreshnessVolatilitySchema, type GitHubChecksExport, type GitHubChecksExportInput, type GitHubChecksExporterOptions, type GitHubIssueExporterOptions, type ImportedLegacyRouteFlow, type IngestedContext, type InputProvenance, type InstantiatedLens, type JiraIssueClient, type JiraIssueExporterOptions, KnowledgeCategorySchema, LIGHTHOUSE_ACCESSIBILITY_AUDIT_IDS, type LegacyRouteFlowInput, type LensExecutionPlan, type LensExecutionSkip, type LensFactoryOptions, type LensRegistration, type LensSkipReason, type LinearIssueClient, type LinearIssueExporterOptions, ModelAvailability, type OverlayAcceptanceCriteria, OverlayAcceptanceCriteriaSchema, type OverlayReleaseTier, OverlayReleaseTierSchema, type ParseBrowserQaFlowOptions, type Persona, type PersonaTask, PersonaTaskSchema, type PipelineEvent, PipelineEventSchema, type PipelineOrchestrator, type PipelineOrchestratorOptions, type PipelineRunInput, type PipelineRunResult, type PipelineStageContext, type PipelineStageDefinition, type PipelineStageHandler, type PipelineStageId, PipelineStageIdSchema, type PlaywrightCaptureBackendOptions, type PromotedCandidateFinding, type PromotedFindingSidecar, PromotedFindingSidecarSchema, type QaArtifactReadResult, type QaDegradation, QaDegradationSchema, type QaEvidenceArtifact, type QaEvidenceArtifactInput, QaEvidenceArtifactSchema, type QaEvidenceStore, type QaGateCandidateFinding, type QaGateFlowRun, type QaReportArtifactSummary, type QaReportEvidenceBundleSummary, type QaReportInput, type QaReportManifest, type QaRun, QaRunIdSchema, QaRunSchema, type QaRunSidecar, QaRunSidecarSchema, type QaRunStore, type QaSeverity, QaSeveritySchema, QaStatusSchema, type QaTarget, QaTargetSchema, REDACTED_EXPORT_VALUE, REDACTED_LOG_KEY, REDACTED_LOG_VALUE, REGISTERED_APP_TYPE_OVERLAYS, type ReadArtifactByRegisteredRefInput, type ReconciledFinding, ReconciledFindingSchema, type ReconciliationChannel, ReconciliationChannelSchema, type ReconciliationInput, ReconciliationInputSchema, type ReconciliationQuestion, ReconciliationQuestionSchema, type ReconciliationResult, ReconciliationResultSchema, type ReconciliationService, type ReconciliationUnavailableChannel, ReconciliationUnavailableChannelSchema, type ReconciliationUnavailableReason, ReconciliationUnavailableReasonSchema, RedactionRule, type RegisteredAppTypeOverlay, type RenderAndWriteReportArtifactsOptions, type ReplayCandidateContext, type ReplayConditionResult, type ReplayPromoter, type ReplayPromoterHarness, type ReportArtifactSpec, type ReportRendererRedactionOptions, type ReproStep, ReproStepSchema, type ResetEndpoint, ResetEndpointSchema, type ResolveActionPolicyInput, type ResolveFlowTargetInput, type ResolvedActionPolicy, type ResponsivenessStatesLensOptions, Result, type RouteInventory, type RouteInventoryEntry, RouteInventoryEntrySchema, RouteInventorySchema, type RouteSkipped, RouteSkippedSchema, type RunTaskFlowCaptureInput, SURFACE_STATE_DIR, SURFACE_STATE_FILE, SURFACE_STATE_VERSION, type SelectLensExecutionPlanInput, type SelfGroundingReport, SelfGroundingReportSchema, type SharedRunRef, type StaticCaptureBackendOptions, type SurfaceComposition, type SurfaceCompositionGeneratedAt, type SurfaceCompositionOptions, SurfaceConfig, SurfaceError, type SurfaceLogFields, type SurfaceSarifLog, SurfaceSarifLogSchema, type SynthesisDecision, type SynthesizeMeasuredWinsInput, TRUNCATED_LOG_VALUE, type TaskCompletionLensOptions, type TaskDefinition, type TaskFlowCaptureRecipe, type TaskFlowCaptureResult, type TaskFlowCapturedState, type TaskFlowStep, type TaskFlowUnreachableStep, type TextInput, TrackedFinding, TrackedFindingsDiff, type UsabilityHeuristicLensOptions, type ValidateFlowIsolationPolicyInput, type Verdict, type VerdictDecision, VerdictDecisionSchema, type VerdictPromotionContext, type VerdictReusePolicy, VerdictReusePolicySchema, VerdictSchema, type VisualHierarchyLensOptions, type WriteEvidenceBundleInput, type WrittenReportArtifact, applyVerdictsToBacklog, browserQaFlowRunsForGate, browserQaFlowSeverityFromWithFlows, browserQaGateTargetCli, classifyBrowserAction, createAccessibilityLens, createAgentBrowserCaptureBackend, createAgentBrowserCliDriver, createAgentBrowserEnvironment, createAgentPlanMarkdownRenderer, createAlternativesJsonRenderer, createBacklogMarkdownRenderer, createBoundedAlternatives, createBrowserQaExplorer, createBrowserQaFlowService, createBrowserQaOrchestrator, createBuiltInSafeActionPolicy, createCandidateVerdictPromotion, createCaptureService, createContentMicrocopyLens, createContextIngestor, createConversionLens, createDefaultCaptureIdFactory, createDiffJsonRenderer, createExplainJsonRenderer, createExplainMarkdownRenderer, createFileQaEvidenceStore, createFileQaRunStore, createFileStateStore, createFileSystemKnowledgeSource, createFindingsJsonRenderer, createFindingsMarkdownRenderer, createFlowRunner, createGateEvaluator, createGitHubChecksExporter, createGitHubIssueExporter, createJiraIssueExporter, createLinearIssueExporter, createNoopPipelineHandlers, createPipelineOrchestrator, createPlaywrightCaptureBackend, createQaJsonReport, createQaMarkdownReport, createQaReportManifest, createReconciliationService, createReplayPromoter, createResponsivenessStatesLens, createSarifRenderer, createSelfGroundingReport, createStaticCaptureBackend, createSurfaceComposition, createSurfaceLogger, createTaskCompletionLens, createUsabilityHeuristicLens, createValidationReportMarkdownRenderer, createVerdict, createVisualHierarchyLens, defaultPlanningReportArtifactSpecs, deriveExplorationStateId, effectiveTargetForAction, evaluateGateWithQaFlows, expandExistingFilePattern, getAppTypeOverlay, hasRegisteredAppTypeOverlay, importLegacyRouteFlow, instantiateLensExecutionPlan, listAppTypeOverlays, loadKnowledgeEntries, parseBrowserQaFlow, projectRelativePath, queryKnowledgeEntries, reconcileFindings, redactAgentBrowserCommand, redactExportString, redactExportValue, renderAndWriteReportArtifacts, resolveActionPolicy, resolveFlowTarget, runDiscovery, runTaskFlowCapture, sanitizeLogFields, selectCaptureBackend, selectLensExecutionPlan, selectPipelineStages, serializeAppTypeOverlayToYaml, synthesizeMeasuredWinsDecision, tagFindingsWithCaptureContext, toPosixPath, validateFlowIsolationPolicy, validateFlowTargetCli, wildcardMatches };