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.
- package/LICENSE +21 -0
- package/README.md +119 -0
- package/app/profile-session.ts +812 -0
- package/core/config-template.json +41 -0
- package/dist/core/agent-summary.d.ts +15 -0
- package/dist/core/agent-summary.js +177 -0
- package/dist/core/artifact-contract.d.ts +151 -0
- package/dist/core/artifact-contract.js +897 -0
- package/dist/core/artifact-layout.d.ts +56 -0
- package/dist/core/artifact-layout.js +61 -0
- package/dist/core/artifact-writer.d.ts +44 -0
- package/dist/core/artifact-writer.js +55 -0
- package/dist/core/comparison.d.ts +133 -0
- package/dist/core/comparison.js +294 -0
- package/dist/core/evidence-interpreter.d.ts +28 -0
- package/dist/core/evidence-interpreter.js +69 -0
- package/dist/core/execution-plan.d.ts +44 -0
- package/dist/core/execution-plan.js +95 -0
- package/dist/core/planner.d.ts +132 -0
- package/dist/core/planner.js +812 -0
- package/dist/core/ports.d.ts +198 -0
- package/dist/core/ports.js +146 -0
- package/dist/core/run-index.d.ts +62 -0
- package/dist/core/run-index.js +143 -0
- package/dist/core/schema-validator.d.ts +86 -0
- package/dist/core/schema-validator.js +407 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +27 -0
- package/dist/runner/agent-device-driver.d.ts +126 -0
- package/dist/runner/agent-device-driver.js +168 -0
- package/dist/runner/agent-device.d.ts +295 -0
- package/dist/runner/agent-device.js +1271 -0
- package/dist/runner/android-adb-driver.d.ts +175 -0
- package/dist/runner/android-adb-driver.js +399 -0
- package/dist/runner/android-adb.d.ts +254 -0
- package/dist/runner/android-adb.js +1618 -0
- package/dist/runner/argent-driver.d.ts +183 -0
- package/dist/runner/argent-driver.js +297 -0
- package/dist/runner/argent.d.ts +349 -0
- package/dist/runner/argent.js +1211 -0
- package/dist/runner/check-plan.d.ts +45 -0
- package/dist/runner/check-plan.js +210 -0
- package/dist/runner/cli.d.ts +20 -0
- package/dist/runner/cli.js +23 -0
- package/dist/runner/compare-latest.d.ts +99 -0
- package/dist/runner/compare-latest.js +233 -0
- package/dist/runner/compare.d.ts +58 -0
- package/dist/runner/compare.js +157 -0
- package/dist/runner/demo-loop.d.ts +45 -0
- package/dist/runner/demo-loop.js +170 -0
- package/dist/runner/example-android-live.d.ts +137 -0
- package/dist/runner/example-android-live.js +454 -0
- package/dist/runner/example-ios-live.d.ts +137 -0
- package/dist/runner/example-ios-live.js +471 -0
- package/dist/runner/host-doctor.d.ts +131 -0
- package/dist/runner/host-doctor.js +628 -0
- package/dist/runner/init-project.d.ts +88 -0
- package/dist/runner/init-project.js +263 -0
- package/dist/runner/ios-simctl-driver.d.ts +69 -0
- package/dist/runner/ios-simctl-driver.js +97 -0
- package/dist/runner/ios-simctl.d.ts +254 -0
- package/dist/runner/ios-simctl.js +1415 -0
- package/dist/runner/live-android.d.ts +137 -0
- package/dist/runner/live-android.js +539 -0
- package/dist/runner/live-comparison.d.ts +67 -0
- package/dist/runner/live-comparison.js +147 -0
- package/dist/runner/live-ios.d.ts +137 -0
- package/dist/runner/live-ios.js +460 -0
- package/dist/runner/live-proof-summary.d.ts +263 -0
- package/dist/runner/live-proof-summary.js +465 -0
- package/dist/runner/live-proof.d.ts +467 -0
- package/dist/runner/live-proof.js +920 -0
- package/dist/runner/local-env.d.ts +64 -0
- package/dist/runner/local-env.js +155 -0
- package/dist/runner/profile-android.d.ts +82 -0
- package/dist/runner/profile-android.js +671 -0
- package/dist/runner/profile-ios.d.ts +108 -0
- package/dist/runner/profile-ios.js +532 -0
- package/dist/runner/profile-mobile.d.ts +254 -0
- package/dist/runner/profile-mobile.js +1307 -0
- package/dist/runner/validate-project.d.ts +273 -0
- package/dist/runner/validate-project.js +1501 -0
- package/docs/adapters.md +145 -0
- package/docs/api.md +94 -0
- package/docs/authoring.md +196 -0
- package/docs/concepts.md +136 -0
- package/docs/consumer-rehearsal.md +115 -0
- package/docs/contracts.md +267 -0
- package/docs/live-proofs.md +270 -0
- package/docs/principles.md +46 -0
- package/examples/event-logs/app-startup-baseline.log +4 -0
- package/examples/event-logs/app-startup-current.log +4 -0
- package/examples/minimal-app/README.md +70 -0
- package/examples/mobile-app/README.md +302 -0
- package/examples/mobile-app/app.json +22 -0
- package/examples/mobile-app/asl/package-scripts.json +32 -0
- package/examples/mobile-app/asl.config.json +37 -0
- package/examples/mobile-app/event-logs/android-app-startup.log +4 -0
- package/examples/mobile-app/event-logs/android-open-close-cycle.log +12 -0
- package/examples/mobile-app/event-logs/android-scroll-settle.log +12 -0
- package/examples/mobile-app/event-logs/app-startup.log +4 -0
- package/examples/mobile-app/event-logs/open-close-cycle.log +12 -0
- package/examples/mobile-app/event-logs/scroll-settle.log +12 -0
- package/examples/mobile-app/index.ts +20 -0
- package/examples/mobile-app/metro.config.js +20 -0
- package/examples/mobile-app/package.json +62 -0
- package/examples/mobile-app/patches/expo-modules-jsi@56.0.10.patch +19 -0
- package/examples/mobile-app/plugins/with-ios-build-compat.js +271 -0
- package/examples/mobile-app/pnpm-lock.yaml +4440 -0
- package/examples/mobile-app/runner-manifests/evidence-provider.json +79 -0
- package/examples/mobile-app/runner-manifests/primary-runner.json +19 -0
- package/examples/mobile-app/scenarios/android/app-startup-video.json +73 -0
- package/examples/mobile-app/scenarios/android/app-startup.json +44 -0
- package/examples/mobile-app/scenarios/android/open-close-cycle.json +54 -0
- package/examples/mobile-app/scenarios/android/scroll-settle.json +49 -0
- package/examples/mobile-app/scenarios/ios/app-startup.json +44 -0
- package/examples/mobile-app/scenarios/ios/open-close-cycle.json +54 -0
- package/examples/mobile-app/scenarios/ios/scroll-settle.json +49 -0
- package/examples/mobile-app/scenarios/mobile/app-startup.json +91 -0
- package/examples/mobile-app/scenarios/mobile/open-close-cycle.json +160 -0
- package/examples/mobile-app/scenarios/mobile/scroll-settle.json +148 -0
- package/examples/mobile-app/scripts/asl-capture-accessibility-provider.mjs +112 -0
- package/examples/mobile-app/scripts/asl-capture-profiler-provider.mjs +127 -0
- package/examples/mobile-app/src/devtools/profile-session.ts +7 -0
- package/examples/mobile-app/src/example-screen.tsx +322 -0
- package/examples/mobile-app/tsconfig.json +16 -0
- package/examples/mobile-app/tsconfig.typecheck.json +13 -0
- package/examples/runners/README.md +44 -0
- package/examples/runners/adb-android.json +25 -0
- package/examples/runners/agent-device-android.json +27 -0
- package/examples/runners/agent-device-ios.json +27 -0
- package/examples/runners/argent-android.json +32 -0
- package/examples/runners/argent-ios.json +32 -0
- package/examples/runners/argent-react-profiler-provider.json +15 -0
- package/examples/runners/axe-accessibility-provider.json +24 -0
- package/examples/runners/manual-log-ingest.json +9 -0
- package/examples/runners/rozenite-profiler-provider.json +9 -0
- package/examples/runners/script-accessibility-provider.json +24 -0
- package/examples/runners/script-memory-provider.json +24 -0
- package/examples/runners/script-network-provider.json +24 -0
- package/examples/runners/script-profiler-provider.json +30 -0
- package/examples/runners/xcodebuildmcp-ios.json +29 -0
- package/examples/scenarios/ios/app-startup.json +28 -0
- package/examples/scenarios/ios/open-close-cycle.json +35 -0
- package/examples/scenarios/mobile/app-startup.json +72 -0
- package/examples/scenarios/mobile/media-open-close.json +141 -0
- package/examples/scenarios/mobile/open-close-cycle.json +135 -0
- package/examples/scenarios/mobile/scroll-settle.json +106 -0
- package/package.json +240 -0
- package/schemas/budget-verdict.schema.json +115 -0
- package/schemas/causal-run.schema.json +279 -0
- package/schemas/comparison.schema.json +196 -0
- package/schemas/health.schema.json +108 -0
- package/schemas/live-proof-set.schema.json +195 -0
- package/schemas/live-proof.schema.json +413 -0
- package/schemas/manifest.schema.json +204 -0
- package/schemas/metrics.schema.json +137 -0
- package/schemas/project-validation.schema.json +343 -0
- package/schemas/runner-capabilities.schema.json +217 -0
- package/schemas/scenario.schema.json +400 -0
- package/schemas/verdict.schema.json +88 -0
- package/templates/evidence-provider.json +83 -0
- package/templates/gitignore-snippet +9 -0
- package/templates/integration-readme.md +125 -0
- package/templates/mobile-scenario.json +133 -0
- package/templates/package-scripts.json +32 -0
- package/templates/primary-runner.json +19 -0
- package/templates/project.config.json +37 -0
- package/templates/scripts/asl-capture-accessibility-provider.mjs +112 -0
- 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, };
|