agent-scenario-loop 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/app/profile-session.ts +812 -0
  4. package/core/config-template.json +41 -0
  5. package/dist/core/agent-summary.d.ts +15 -0
  6. package/dist/core/agent-summary.js +177 -0
  7. package/dist/core/artifact-contract.d.ts +151 -0
  8. package/dist/core/artifact-contract.js +897 -0
  9. package/dist/core/artifact-layout.d.ts +56 -0
  10. package/dist/core/artifact-layout.js +61 -0
  11. package/dist/core/artifact-writer.d.ts +44 -0
  12. package/dist/core/artifact-writer.js +55 -0
  13. package/dist/core/comparison.d.ts +133 -0
  14. package/dist/core/comparison.js +294 -0
  15. package/dist/core/evidence-interpreter.d.ts +28 -0
  16. package/dist/core/evidence-interpreter.js +69 -0
  17. package/dist/core/execution-plan.d.ts +44 -0
  18. package/dist/core/execution-plan.js +95 -0
  19. package/dist/core/planner.d.ts +132 -0
  20. package/dist/core/planner.js +812 -0
  21. package/dist/core/ports.d.ts +198 -0
  22. package/dist/core/ports.js +146 -0
  23. package/dist/core/run-index.d.ts +62 -0
  24. package/dist/core/run-index.js +143 -0
  25. package/dist/core/schema-validator.d.ts +86 -0
  26. package/dist/core/schema-validator.js +407 -0
  27. package/dist/index.d.ts +11 -0
  28. package/dist/index.js +27 -0
  29. package/dist/runner/agent-device-driver.d.ts +126 -0
  30. package/dist/runner/agent-device-driver.js +168 -0
  31. package/dist/runner/agent-device.d.ts +295 -0
  32. package/dist/runner/agent-device.js +1271 -0
  33. package/dist/runner/android-adb-driver.d.ts +175 -0
  34. package/dist/runner/android-adb-driver.js +399 -0
  35. package/dist/runner/android-adb.d.ts +254 -0
  36. package/dist/runner/android-adb.js +1618 -0
  37. package/dist/runner/argent-driver.d.ts +183 -0
  38. package/dist/runner/argent-driver.js +297 -0
  39. package/dist/runner/argent.d.ts +349 -0
  40. package/dist/runner/argent.js +1211 -0
  41. package/dist/runner/check-plan.d.ts +45 -0
  42. package/dist/runner/check-plan.js +210 -0
  43. package/dist/runner/cli.d.ts +20 -0
  44. package/dist/runner/cli.js +23 -0
  45. package/dist/runner/compare-latest.d.ts +99 -0
  46. package/dist/runner/compare-latest.js +233 -0
  47. package/dist/runner/compare.d.ts +58 -0
  48. package/dist/runner/compare.js +157 -0
  49. package/dist/runner/demo-loop.d.ts +45 -0
  50. package/dist/runner/demo-loop.js +170 -0
  51. package/dist/runner/example-android-live.d.ts +137 -0
  52. package/dist/runner/example-android-live.js +454 -0
  53. package/dist/runner/example-ios-live.d.ts +137 -0
  54. package/dist/runner/example-ios-live.js +471 -0
  55. package/dist/runner/host-doctor.d.ts +131 -0
  56. package/dist/runner/host-doctor.js +628 -0
  57. package/dist/runner/init-project.d.ts +88 -0
  58. package/dist/runner/init-project.js +263 -0
  59. package/dist/runner/ios-simctl-driver.d.ts +69 -0
  60. package/dist/runner/ios-simctl-driver.js +97 -0
  61. package/dist/runner/ios-simctl.d.ts +254 -0
  62. package/dist/runner/ios-simctl.js +1415 -0
  63. package/dist/runner/live-android.d.ts +137 -0
  64. package/dist/runner/live-android.js +539 -0
  65. package/dist/runner/live-comparison.d.ts +67 -0
  66. package/dist/runner/live-comparison.js +147 -0
  67. package/dist/runner/live-ios.d.ts +137 -0
  68. package/dist/runner/live-ios.js +460 -0
  69. package/dist/runner/live-proof-summary.d.ts +263 -0
  70. package/dist/runner/live-proof-summary.js +465 -0
  71. package/dist/runner/live-proof.d.ts +467 -0
  72. package/dist/runner/live-proof.js +920 -0
  73. package/dist/runner/local-env.d.ts +64 -0
  74. package/dist/runner/local-env.js +155 -0
  75. package/dist/runner/profile-android.d.ts +82 -0
  76. package/dist/runner/profile-android.js +671 -0
  77. package/dist/runner/profile-ios.d.ts +108 -0
  78. package/dist/runner/profile-ios.js +532 -0
  79. package/dist/runner/profile-mobile.d.ts +254 -0
  80. package/dist/runner/profile-mobile.js +1307 -0
  81. package/dist/runner/validate-project.d.ts +273 -0
  82. package/dist/runner/validate-project.js +1501 -0
  83. package/docs/adapters.md +145 -0
  84. package/docs/api.md +94 -0
  85. package/docs/authoring.md +196 -0
  86. package/docs/concepts.md +136 -0
  87. package/docs/consumer-rehearsal.md +115 -0
  88. package/docs/contracts.md +267 -0
  89. package/docs/live-proofs.md +270 -0
  90. package/docs/principles.md +46 -0
  91. package/examples/event-logs/app-startup-baseline.log +4 -0
  92. package/examples/event-logs/app-startup-current.log +4 -0
  93. package/examples/minimal-app/README.md +70 -0
  94. package/examples/mobile-app/README.md +302 -0
  95. package/examples/mobile-app/app.json +22 -0
  96. package/examples/mobile-app/asl/package-scripts.json +32 -0
  97. package/examples/mobile-app/asl.config.json +37 -0
  98. package/examples/mobile-app/event-logs/android-app-startup.log +4 -0
  99. package/examples/mobile-app/event-logs/android-open-close-cycle.log +12 -0
  100. package/examples/mobile-app/event-logs/android-scroll-settle.log +12 -0
  101. package/examples/mobile-app/event-logs/app-startup.log +4 -0
  102. package/examples/mobile-app/event-logs/open-close-cycle.log +12 -0
  103. package/examples/mobile-app/event-logs/scroll-settle.log +12 -0
  104. package/examples/mobile-app/index.ts +20 -0
  105. package/examples/mobile-app/metro.config.js +20 -0
  106. package/examples/mobile-app/package.json +62 -0
  107. package/examples/mobile-app/patches/expo-modules-jsi@56.0.10.patch +19 -0
  108. package/examples/mobile-app/plugins/with-ios-build-compat.js +271 -0
  109. package/examples/mobile-app/pnpm-lock.yaml +4440 -0
  110. package/examples/mobile-app/runner-manifests/evidence-provider.json +79 -0
  111. package/examples/mobile-app/runner-manifests/primary-runner.json +19 -0
  112. package/examples/mobile-app/scenarios/android/app-startup-video.json +73 -0
  113. package/examples/mobile-app/scenarios/android/app-startup.json +44 -0
  114. package/examples/mobile-app/scenarios/android/open-close-cycle.json +54 -0
  115. package/examples/mobile-app/scenarios/android/scroll-settle.json +49 -0
  116. package/examples/mobile-app/scenarios/ios/app-startup.json +44 -0
  117. package/examples/mobile-app/scenarios/ios/open-close-cycle.json +54 -0
  118. package/examples/mobile-app/scenarios/ios/scroll-settle.json +49 -0
  119. package/examples/mobile-app/scenarios/mobile/app-startup.json +91 -0
  120. package/examples/mobile-app/scenarios/mobile/open-close-cycle.json +160 -0
  121. package/examples/mobile-app/scenarios/mobile/scroll-settle.json +148 -0
  122. package/examples/mobile-app/scripts/asl-capture-accessibility-provider.mjs +112 -0
  123. package/examples/mobile-app/scripts/asl-capture-profiler-provider.mjs +127 -0
  124. package/examples/mobile-app/src/devtools/profile-session.ts +7 -0
  125. package/examples/mobile-app/src/example-screen.tsx +322 -0
  126. package/examples/mobile-app/tsconfig.json +16 -0
  127. package/examples/mobile-app/tsconfig.typecheck.json +13 -0
  128. package/examples/runners/README.md +44 -0
  129. package/examples/runners/adb-android.json +25 -0
  130. package/examples/runners/agent-device-android.json +27 -0
  131. package/examples/runners/agent-device-ios.json +27 -0
  132. package/examples/runners/argent-android.json +32 -0
  133. package/examples/runners/argent-ios.json +32 -0
  134. package/examples/runners/argent-react-profiler-provider.json +15 -0
  135. package/examples/runners/axe-accessibility-provider.json +24 -0
  136. package/examples/runners/manual-log-ingest.json +9 -0
  137. package/examples/runners/rozenite-profiler-provider.json +9 -0
  138. package/examples/runners/script-accessibility-provider.json +24 -0
  139. package/examples/runners/script-memory-provider.json +24 -0
  140. package/examples/runners/script-network-provider.json +24 -0
  141. package/examples/runners/script-profiler-provider.json +30 -0
  142. package/examples/runners/xcodebuildmcp-ios.json +29 -0
  143. package/examples/scenarios/ios/app-startup.json +28 -0
  144. package/examples/scenarios/ios/open-close-cycle.json +35 -0
  145. package/examples/scenarios/mobile/app-startup.json +72 -0
  146. package/examples/scenarios/mobile/media-open-close.json +141 -0
  147. package/examples/scenarios/mobile/open-close-cycle.json +135 -0
  148. package/examples/scenarios/mobile/scroll-settle.json +106 -0
  149. package/package.json +240 -0
  150. package/schemas/budget-verdict.schema.json +115 -0
  151. package/schemas/causal-run.schema.json +279 -0
  152. package/schemas/comparison.schema.json +196 -0
  153. package/schemas/health.schema.json +108 -0
  154. package/schemas/live-proof-set.schema.json +195 -0
  155. package/schemas/live-proof.schema.json +413 -0
  156. package/schemas/manifest.schema.json +204 -0
  157. package/schemas/metrics.schema.json +137 -0
  158. package/schemas/project-validation.schema.json +343 -0
  159. package/schemas/runner-capabilities.schema.json +217 -0
  160. package/schemas/scenario.schema.json +400 -0
  161. package/schemas/verdict.schema.json +88 -0
  162. package/templates/evidence-provider.json +83 -0
  163. package/templates/gitignore-snippet +9 -0
  164. package/templates/integration-readme.md +125 -0
  165. package/templates/mobile-scenario.json +133 -0
  166. package/templates/package-scripts.json +32 -0
  167. package/templates/primary-runner.json +19 -0
  168. package/templates/project.config.json +37 -0
  169. package/templates/scripts/asl-capture-accessibility-provider.mjs +112 -0
  170. package/templates/scripts/asl-capture-profiler-provider.mjs +127 -0
@@ -0,0 +1,467 @@
1
+ #!/usr/bin/env node
2
+ type CliArgs = {
3
+ 'artifact-base-dir'?: string | boolean;
4
+ file?: string | string[] | boolean;
5
+ 'fail-on-regression'?: string | boolean;
6
+ out?: string | boolean;
7
+ 'require-artifacts'?: string | boolean;
8
+ 'require-platforms'?: string | boolean;
9
+ 'run-id'?: string | boolean;
10
+ [key: string]: string | string[] | boolean | undefined;
11
+ };
12
+ type LiveProofArtifact = {
13
+ comparisonCounts: {
14
+ better: number;
15
+ inconclusive: number;
16
+ mixed: number;
17
+ skipped: number;
18
+ unchanged: number;
19
+ worse: number;
20
+ };
21
+ comparisonStatus: string;
22
+ comparisons: LiveProofComparisonPointer[];
23
+ nextAction: {
24
+ code: string;
25
+ summary: string;
26
+ };
27
+ interactionProofs?: Array<{
28
+ captures?: {
29
+ screenshots?: string[];
30
+ };
31
+ healthStatus: string;
32
+ label: string;
33
+ runDir: string;
34
+ runId: string;
35
+ runnerId: string;
36
+ scenarioId: string;
37
+ summaryPath: string;
38
+ verdictStatus: string;
39
+ warnings?: {
40
+ checks?: Array<{
41
+ code?: string;
42
+ message?: string;
43
+ name?: string;
44
+ nextAction?: {
45
+ code?: string;
46
+ summary?: string;
47
+ };
48
+ }>;
49
+ count?: number;
50
+ };
51
+ }>;
52
+ skippedInteractionProofs?: Array<{
53
+ label: string;
54
+ nextAction: {
55
+ code: string;
56
+ summary: string;
57
+ };
58
+ reason: string;
59
+ runId: string;
60
+ runnerId: string;
61
+ scenarioId: string;
62
+ }>;
63
+ platform: 'android' | 'ios';
64
+ preflight: {
65
+ healthStatus: string;
66
+ runId: string;
67
+ runDir: string;
68
+ summaryPath: string;
69
+ verdictStatus: string;
70
+ };
71
+ profiles: Array<{
72
+ healthStatus: string;
73
+ label: string;
74
+ runId: string;
75
+ runDir: string;
76
+ scenarioId: string;
77
+ summaryPath: string;
78
+ verdictStatus: string;
79
+ }>;
80
+ runId: string;
81
+ status: string;
82
+ summary: string;
83
+ };
84
+ type LiveProofComparisonCounts = LiveProofArtifact['comparisonCounts'];
85
+ type LiveProofMetricStatus = 'better' | 'worse' | 'unchanged' | 'inconclusive';
86
+ type LiveProofPlatform = LiveProofArtifact['platform'];
87
+ type LiveProofComparisonPointer = {
88
+ baselineDir?: string | null;
89
+ comparisonDir?: string | null;
90
+ label?: string;
91
+ metricSummary?: {
92
+ counts?: Record<LiveProofMetricStatus, number>;
93
+ notableMetrics?: Array<{
94
+ delta?: number | null;
95
+ name?: string;
96
+ status?: Exclude<LiveProofMetricStatus, 'unchanged'>;
97
+ unit?: string;
98
+ }>;
99
+ };
100
+ runId?: string;
101
+ scenarioId?: string;
102
+ status?: string;
103
+ summaryPath?: string | null;
104
+ };
105
+ type LiveProofAggregateStatus = ('baseline_missing' | 'improved' | 'inconclusive' | 'mixed' | 'not_compared' | 'regressed' | 'unchanged');
106
+ type LiveProofNextActionCode = LiveProofArtifact['nextAction']['code'];
107
+ type LiveProofSetArtifact = {
108
+ failureReasons: string[];
109
+ missingPlatforms: LiveProofPlatform[];
110
+ nextAction: {
111
+ code: string;
112
+ summary: string;
113
+ };
114
+ presentPlatforms: LiveProofPlatform[];
115
+ proofCount: number;
116
+ proofs: LiveProofSetProofPointer[];
117
+ requiredPlatforms: LiveProofPlatform[];
118
+ runId: string;
119
+ schemaVersion: '1.0.0';
120
+ status: 'failed' | 'passed';
121
+ summary: string;
122
+ };
123
+ type LiveProofSetProofPointer = {
124
+ comparisonStatus: string;
125
+ filePath: string;
126
+ interactionProofCount: number;
127
+ interactionWarnings?: LiveProofSetInteractionWarningPointer[];
128
+ interactionWarningCount: number;
129
+ nextAction: {
130
+ code: string;
131
+ summary: string;
132
+ };
133
+ platform: LiveProofPlatform;
134
+ profileCount: number;
135
+ runId: string;
136
+ status: string;
137
+ summaryPath: string;
138
+ };
139
+ type LiveProofSetInteractionWarningPointer = {
140
+ checks: Array<{
141
+ code: string;
142
+ message: string;
143
+ name: string;
144
+ nextAction?: {
145
+ code: string;
146
+ summary: string;
147
+ };
148
+ }>;
149
+ label: string;
150
+ runId: string;
151
+ runnerId: string;
152
+ scenarioId: string;
153
+ };
154
+ type LiveProofArtifactPointerIssue = {
155
+ expected: 'directory' | 'file';
156
+ label: string;
157
+ path: string;
158
+ reason: string;
159
+ };
160
+ type LiveProofArtifactReadOptions = {
161
+ artifactBaseDir?: string;
162
+ requireArtifacts?: boolean;
163
+ };
164
+ /**
165
+ * Prints CLI usage.
166
+ *
167
+ * @param {{write: (message: string) => unknown}} [output]
168
+ * @returns {void}
169
+ */
170
+ declare function usage(output?: {
171
+ write: (message: string) => unknown;
172
+ }): void;
173
+ /**
174
+ * Parses a small flag set for the live-proof CLI.
175
+ *
176
+ * @param {string[]} argv
177
+ * @returns {CliArgs}
178
+ */
179
+ declare function parseArgs(argv: string[]): CliArgs;
180
+ /**
181
+ * Resolves one or more --file values into a stable list.
182
+ *
183
+ * @param {CliArgs} args
184
+ * @returns {string[]}
185
+ */
186
+ declare function resolveLiveProofFiles(args: CliArgs): string[];
187
+ /**
188
+ * Parses required platform names for a live-proof set gate.
189
+ *
190
+ * @param {string | boolean | undefined} value
191
+ * @returns {LiveProofPlatform[]}
192
+ */
193
+ declare function parseRequiredPlatforms(value: string | boolean | undefined): LiveProofPlatform[];
194
+ /**
195
+ * Counts comparison outcomes from one live-proof comparison list.
196
+ *
197
+ * @param {Array<{status?: string}>} comparisons
198
+ * @returns {LiveProofComparisonCounts}
199
+ */
200
+ declare function countLiveProofComparisons(comparisons: Array<{
201
+ status?: string;
202
+ }>): LiveProofComparisonCounts;
203
+ /**
204
+ * Collapses live-proof comparison pointers into the expected aggregate status.
205
+ *
206
+ * @param {Array<{status?: string}>} comparisons
207
+ * @returns {LiveProofAggregateStatus}
208
+ */
209
+ declare function deriveLiveProofComparisonStatus(comparisons: Array<{
210
+ status?: string;
211
+ }>): LiveProofAggregateStatus;
212
+ /**
213
+ * Resolves the expected next-action code for an aggregate proof status.
214
+ *
215
+ * @param {LiveProofAggregateStatus} comparisonStatus
216
+ * @param {string} [status]
217
+ * @returns {LiveProofNextActionCode}
218
+ */
219
+ declare function expectedLiveProofNextActionCode(comparisonStatus: LiveProofAggregateStatus, status?: string): LiveProofNextActionCode;
220
+ /**
221
+ * Verifies that aggregate comparison counts match the comparison pointers.
222
+ *
223
+ * @param {LiveProofArtifact} proof
224
+ * @returns {void}
225
+ */
226
+ declare function assertLiveProofComparisonCounts(proof: LiveProofArtifact): void;
227
+ /**
228
+ * Verifies that aggregate comparison status and next action match the pointers.
229
+ *
230
+ * @param {LiveProofArtifact} proof
231
+ * @returns {void}
232
+ */
233
+ declare function assertLiveProofAggregateSignals(proof: LiveProofArtifact): void;
234
+ /**
235
+ * Collects missing local evidence pointers from one live-proof artifact.
236
+ *
237
+ * @param {LiveProofArtifact} proof
238
+ * @param {{artifactBaseDir?: string}} [options]
239
+ * @returns {LiveProofArtifactPointerIssue[]}
240
+ */
241
+ declare function collectLiveProofArtifactPointerIssues(proof: LiveProofArtifact, { artifactBaseDir }?: {
242
+ artifactBaseDir?: string;
243
+ }): LiveProofArtifactPointerIssue[];
244
+ /**
245
+ * Fails when a live-proof artifact references missing local evidence.
246
+ *
247
+ * @param {LiveProofArtifact} proof
248
+ * @param {{artifactBaseDir?: string}} [options]
249
+ * @returns {void}
250
+ */
251
+ declare function assertLiveProofArtifactPointers(proof: LiveProofArtifact, options?: {
252
+ artifactBaseDir?: string;
253
+ }): void;
254
+ /**
255
+ * Formats compact metric summary details for one comparison pointer.
256
+ *
257
+ * @param {LiveProofComparisonPointer} comparison
258
+ * @returns {string}
259
+ */
260
+ declare function formatComparisonPointerMetrics(comparison: LiveProofComparisonPointer): string;
261
+ /**
262
+ * Formats capture counts for one interaction proof pointer.
263
+ *
264
+ * @param {{captures?: {screenshots?: string[]}}} proofPointer
265
+ * @returns {string}
266
+ */
267
+ declare function formatInteractionProofCaptures(proofPointer: {
268
+ captures?: {
269
+ screenshots?: string[];
270
+ };
271
+ }): string;
272
+ /**
273
+ * Formats warning counts for one interaction proof pointer.
274
+ *
275
+ * @param {{warnings?: {count?: number}}} proofPointer
276
+ * @returns {string}
277
+ */
278
+ declare function formatInteractionProofWarnings(proofPointer: {
279
+ warnings?: {
280
+ count?: number;
281
+ };
282
+ }): string;
283
+ /**
284
+ * Formats warning check details for one interaction proof pointer.
285
+ *
286
+ * @param {{warnings?: {checks?: Array<{code?: string, message?: string, name?: string, nextAction?: {code?: string, summary?: string}}>}}} proofPointer
287
+ * @returns {string[]}
288
+ */
289
+ declare function formatInteractionProofWarningDetails(proofPointer: {
290
+ warnings?: {
291
+ checks?: Array<{
292
+ code?: string;
293
+ message?: string;
294
+ name?: string;
295
+ nextAction?: {
296
+ code?: string;
297
+ summary?: string;
298
+ };
299
+ }>;
300
+ };
301
+ }): string[];
302
+ /**
303
+ * Reads and validates a live-proof artifact.
304
+ *
305
+ * @param {string} filePath
306
+ * @param {LiveProofArtifactReadOptions} [options]
307
+ * @returns {LiveProofArtifact}
308
+ */
309
+ declare function readLiveProof(filePath: string, options?: LiveProofArtifactReadOptions): LiveProofArtifact;
310
+ /**
311
+ * Verifies that a multi-proof gate includes every required platform.
312
+ *
313
+ * @param {LiveProofArtifact[]} proofs
314
+ * @param {LiveProofPlatform[]} requiredPlatforms
315
+ * @returns {void}
316
+ */
317
+ declare function assertLiveProofSetRequiredPlatforms(proofs: LiveProofArtifact[], requiredPlatforms: LiveProofPlatform[]): void;
318
+ /**
319
+ * Reads and validates a platform proof set.
320
+ *
321
+ * @param {{artifactBaseDir?: string, files: string[], requiredPlatforms?: LiveProofPlatform[], requireArtifacts?: boolean}} options
322
+ * @returns {LiveProofArtifact[]}
323
+ */
324
+ declare function readLiveProofSet({ artifactBaseDir, files, requiredPlatforms, requireArtifacts, }: {
325
+ artifactBaseDir?: string;
326
+ files: string[];
327
+ requiredPlatforms?: LiveProofPlatform[];
328
+ requireArtifacts?: boolean;
329
+ }): LiveProofArtifact[];
330
+ /**
331
+ * Resolves the optional proof-set artifact output directory.
332
+ *
333
+ * @param {CliArgs} args
334
+ * @returns {string | null}
335
+ */
336
+ declare function resolveLiveProofSetOutputDir(args: CliArgs): string | null;
337
+ /**
338
+ * Resolves the proof-set run id used for written artifacts.
339
+ *
340
+ * @param {CliArgs} args
341
+ * @returns {string}
342
+ */
343
+ declare function resolveLiveProofSetRunId(args: CliArgs): string;
344
+ /**
345
+ * Resolves the base directory for local artifact pointer checks.
346
+ *
347
+ * @param {CliArgs} args
348
+ * @returns {string | undefined}
349
+ */
350
+ declare function resolveLiveProofArtifactBaseDir(args: CliArgs): string | undefined;
351
+ /**
352
+ * Returns whether the caller requested local artifact pointer checks.
353
+ *
354
+ * @param {CliArgs} args
355
+ * @returns {boolean}
356
+ */
357
+ declare function shouldRequireArtifacts(args: CliArgs): boolean;
358
+ /**
359
+ * Builds human-readable failure reasons for one proof set.
360
+ *
361
+ * @param {{failOnRegression: boolean, missingPlatforms: LiveProofPlatform[], proofs: LiveProofArtifact[]}} options
362
+ * @returns {string[]}
363
+ */
364
+ declare function buildLiveProofSetFailureReasons({ failOnRegression, missingPlatforms, proofs, }: {
365
+ failOnRegression: boolean;
366
+ missingPlatforms: LiveProofPlatform[];
367
+ proofs: LiveProofArtifact[];
368
+ }): string[];
369
+ /**
370
+ * Builds the next action for a proof-set artifact.
371
+ *
372
+ * @param {{failureReasons: string[], missingPlatforms: LiveProofPlatform[], proofs: LiveProofArtifact[]}} options
373
+ * @returns {{code: string, summary: string}}
374
+ */
375
+ declare function buildLiveProofSetNextAction({ failureReasons, missingPlatforms, proofs, }: {
376
+ failureReasons: string[];
377
+ missingPlatforms: LiveProofPlatform[];
378
+ proofs: LiveProofArtifact[];
379
+ }): {
380
+ code: string;
381
+ summary: string;
382
+ };
383
+ /**
384
+ * Builds the durable platform proof-set artifact.
385
+ *
386
+ * @param {{failOnRegression: boolean, files: string[], proofs: LiveProofArtifact[], requiredPlatforms?: LiveProofPlatform[], runId?: string}} options
387
+ * @returns {LiveProofSetArtifact}
388
+ */
389
+ declare function buildLiveProofSetArtifact({ failOnRegression, files, proofs, requiredPlatforms, runId, }: {
390
+ failOnRegression: boolean;
391
+ files: string[];
392
+ proofs: LiveProofArtifact[];
393
+ requiredPlatforms?: LiveProofPlatform[];
394
+ runId?: string;
395
+ }): LiveProofSetArtifact;
396
+ /**
397
+ * Formats proof-set interaction warning details for agent-readable markdown.
398
+ *
399
+ * @param {LiveProofSetProofPointer} proof
400
+ * @returns {string[]}
401
+ */
402
+ declare function formatLiveProofSetWarningDetails(proof: LiveProofSetProofPointer): string[];
403
+ /**
404
+ * Formats a proof-set artifact for agent-readable markdown.
405
+ *
406
+ * @param {LiveProofSetArtifact} artifact
407
+ * @returns {string}
408
+ */
409
+ declare function formatLiveProofSetArtifactMarkdown(artifact: LiveProofSetArtifact): string;
410
+ /**
411
+ * Writes durable proof-set artifacts under an output directory.
412
+ *
413
+ * @param {{artifact: LiveProofSetArtifact, outputDir: string}} options
414
+ * @returns {Promise<{liveProofSetPath: string, summaryPath: string}>}
415
+ */
416
+ declare function writeLiveProofSetArtifact({ artifact, outputDir, }: {
417
+ artifact: LiveProofSetArtifact;
418
+ outputDir: string;
419
+ }): Promise<{
420
+ liveProofSetPath: string;
421
+ summaryPath: string;
422
+ }>;
423
+ /**
424
+ * Formats a live-proof artifact for CLI output.
425
+ *
426
+ * @param {LiveProofArtifact} proof
427
+ * @returns {string}
428
+ */
429
+ declare function formatLiveProof(proof: LiveProofArtifact): string;
430
+ /**
431
+ * Formats one or more live-proof artifacts for CLI output.
432
+ *
433
+ * @param {{proofs: LiveProofArtifact[], requiredPlatforms?: LiveProofPlatform[]}} options
434
+ * @returns {string}
435
+ */
436
+ declare function formatLiveProofSet({ proofs, requiredPlatforms, }: {
437
+ proofs: LiveProofArtifact[];
438
+ requiredPlatforms?: LiveProofPlatform[];
439
+ }): string;
440
+ /**
441
+ * Returns whether the caller requested a regression gate and the proof regressed.
442
+ *
443
+ * @param {{failOnRegression: boolean, proof: LiveProofArtifact}} options
444
+ * @returns {boolean}
445
+ */
446
+ declare function shouldFailOnRegression({ failOnRegression, proof, }: {
447
+ failOnRegression: boolean;
448
+ proof: LiveProofArtifact;
449
+ }): boolean;
450
+ /**
451
+ * Returns whether a live-proof set should make the CLI exit nonzero.
452
+ *
453
+ * @param {{failOnRegression: boolean, proofs: LiveProofArtifact[]}} options
454
+ * @returns {boolean}
455
+ */
456
+ declare function shouldFailLiveProofSet({ failOnRegression, proofs, }: {
457
+ failOnRegression: boolean;
458
+ proofs: LiveProofArtifact[];
459
+ }): boolean;
460
+ /**
461
+ * Runs the live-proof inspection CLI.
462
+ *
463
+ * @returns {Promise<void>}
464
+ */
465
+ declare function main(): Promise<void>;
466
+ export { assertLiveProofArtifactPointers, assertLiveProofAggregateSignals, assertLiveProofComparisonCounts, assertLiveProofSetRequiredPlatforms, buildLiveProofSetArtifact, buildLiveProofSetFailureReasons, buildLiveProofSetNextAction, collectLiveProofArtifactPointerIssues, countLiveProofComparisons, deriveLiveProofComparisonStatus, expectedLiveProofNextActionCode, formatComparisonPointerMetrics, formatInteractionProofCaptures, formatInteractionProofWarningDetails, formatInteractionProofWarnings, formatLiveProofSetWarningDetails, formatLiveProof, formatLiveProofSet, formatLiveProofSetArtifactMarkdown, main, parseArgs, parseRequiredPlatforms, readLiveProof, readLiveProofSet, resolveLiveProofSetOutputDir, resolveLiveProofArtifactBaseDir, resolveLiveProofFiles, resolveLiveProofSetRunId, shouldRequireArtifacts, shouldFailLiveProofSet, shouldFailOnRegression, usage, writeLiveProofSetArtifact, };
467
+ export type { CliArgs, LiveProofArtifact, LiveProofArtifactPointerIssue, LiveProofArtifactReadOptions, LiveProofSetArtifact, LiveProofSetProofPointer, };