lootforge 0.3.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 (243) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/README.md +764 -0
  3. package/bin/lootforge.js +28 -0
  4. package/dist/benchmarks/coarseToFineCost.d.ts +21 -0
  5. package/dist/benchmarks/coarseToFineCost.js +49 -0
  6. package/dist/benchmarks/coarseToFineCost.js.map +1 -0
  7. package/dist/checks/boundaryMetrics.d.ts +12 -0
  8. package/dist/checks/boundaryMetrics.js +102 -0
  9. package/dist/checks/boundaryMetrics.js.map +1 -0
  10. package/dist/checks/candidateScore.d.ts +11 -0
  11. package/dist/checks/candidateScore.js +462 -0
  12. package/dist/checks/candidateScore.js.map +1 -0
  13. package/dist/checks/commandParser.d.ts +5 -0
  14. package/dist/checks/commandParser.js +99 -0
  15. package/dist/checks/commandParser.js.map +1 -0
  16. package/dist/checks/consistencyOutliers.d.ts +42 -0
  17. package/dist/checks/consistencyOutliers.js +156 -0
  18. package/dist/checks/consistencyOutliers.js.map +1 -0
  19. package/dist/checks/imageAcceptance.d.ts +67 -0
  20. package/dist/checks/imageAcceptance.js +967 -0
  21. package/dist/checks/imageAcceptance.js.map +1 -0
  22. package/dist/checks/packInvariants.d.ts +56 -0
  23. package/dist/checks/packInvariants.js +1064 -0
  24. package/dist/checks/packInvariants.js.map +1 -0
  25. package/dist/checks/softAdapters.d.ts +25 -0
  26. package/dist/checks/softAdapters.js +275 -0
  27. package/dist/checks/softAdapters.js.map +1 -0
  28. package/dist/checks/vlmGate.d.ts +8 -0
  29. package/dist/checks/vlmGate.js +200 -0
  30. package/dist/checks/vlmGate.js.map +1 -0
  31. package/dist/cli/commands/atlas.d.ts +5 -0
  32. package/dist/cli/commands/atlas.js +18 -0
  33. package/dist/cli/commands/atlas.js.map +1 -0
  34. package/dist/cli/commands/eval.d.ts +6 -0
  35. package/dist/cli/commands/eval.js +23 -0
  36. package/dist/cli/commands/eval.js.map +1 -0
  37. package/dist/cli/commands/generate.d.ts +18 -0
  38. package/dist/cli/commands/generate.js +66 -0
  39. package/dist/cli/commands/generate.js.map +1 -0
  40. package/dist/cli/commands/init.d.ts +15 -0
  41. package/dist/cli/commands/init.js +146 -0
  42. package/dist/cli/commands/init.js.map +1 -0
  43. package/dist/cli/commands/package.d.ts +6 -0
  44. package/dist/cli/commands/package.js +27 -0
  45. package/dist/cli/commands/package.js.map +1 -0
  46. package/dist/cli/commands/plan.d.ts +16 -0
  47. package/dist/cli/commands/plan.js +49 -0
  48. package/dist/cli/commands/plan.js.map +1 -0
  49. package/dist/cli/commands/process.d.ts +14 -0
  50. package/dist/cli/commands/process.js +29 -0
  51. package/dist/cli/commands/process.js.map +1 -0
  52. package/dist/cli/commands/regenerate.d.ts +29 -0
  53. package/dist/cli/commands/regenerate.js +244 -0
  54. package/dist/cli/commands/regenerate.js.map +1 -0
  55. package/dist/cli/commands/review.d.ts +5 -0
  56. package/dist/cli/commands/review.js +18 -0
  57. package/dist/cli/commands/review.js.map +1 -0
  58. package/dist/cli/commands/select.d.ts +6 -0
  59. package/dist/cli/commands/select.js +21 -0
  60. package/dist/cli/commands/select.js.map +1 -0
  61. package/dist/cli/commands/serve.d.ts +16 -0
  62. package/dist/cli/commands/serve.js +100 -0
  63. package/dist/cli/commands/serve.js.map +1 -0
  64. package/dist/cli/commands/validate.d.ts +17 -0
  65. package/dist/cli/commands/validate.js +108 -0
  66. package/dist/cli/commands/validate.js.map +1 -0
  67. package/dist/cli/index.d.ts +1 -0
  68. package/dist/cli/index.js +157 -0
  69. package/dist/cli/index.js.map +1 -0
  70. package/dist/cli/parseArgs.d.ts +3 -0
  71. package/dist/cli/parseArgs.js +37 -0
  72. package/dist/cli/parseArgs.js.map +1 -0
  73. package/dist/contracts/stageArtifacts.d.ts +4031 -0
  74. package/dist/contracts/stageArtifacts.js +663 -0
  75. package/dist/contracts/stageArtifacts.js.map +1 -0
  76. package/dist/manifest/load.d.ts +3 -0
  77. package/dist/manifest/load.js +50 -0
  78. package/dist/manifest/load.js.map +1 -0
  79. package/dist/manifest/normalize-palette.d.ts +17 -0
  80. package/dist/manifest/normalize-palette.js +235 -0
  81. package/dist/manifest/normalize-palette.js.map +1 -0
  82. package/dist/manifest/normalize-policy.d.ts +48 -0
  83. package/dist/manifest/normalize-policy.js +239 -0
  84. package/dist/manifest/normalize-policy.js.map +1 -0
  85. package/dist/manifest/normalize-prompt.d.ts +14 -0
  86. package/dist/manifest/normalize-prompt.js +73 -0
  87. package/dist/manifest/normalize-prompt.js.map +1 -0
  88. package/dist/manifest/normalize-target.d.ts +49 -0
  89. package/dist/manifest/normalize-target.js +542 -0
  90. package/dist/manifest/normalize-target.js.map +1 -0
  91. package/dist/manifest/schema.d.ts +7570 -0
  92. package/dist/manifest/schema.js +373 -0
  93. package/dist/manifest/schema.js.map +1 -0
  94. package/dist/manifest/semantic-validation.d.ts +4 -0
  95. package/dist/manifest/semantic-validation.js +526 -0
  96. package/dist/manifest/semantic-validation.js.map +1 -0
  97. package/dist/manifest/types.d.ts +263 -0
  98. package/dist/manifest/types.js +2 -0
  99. package/dist/manifest/types.js.map +1 -0
  100. package/dist/manifest/validate.d.ts +12 -0
  101. package/dist/manifest/validate.js +221 -0
  102. package/dist/manifest/validate.js.map +1 -0
  103. package/dist/output/assetPackManifest.d.ts +19 -0
  104. package/dist/output/assetPackManifest.js +20 -0
  105. package/dist/output/assetPackManifest.js.map +1 -0
  106. package/dist/output/catalog.d.ts +60 -0
  107. package/dist/output/catalog.js +107 -0
  108. package/dist/output/catalog.js.map +1 -0
  109. package/dist/output/contactSheet.d.ts +13 -0
  110. package/dist/output/contactSheet.js +124 -0
  111. package/dist/output/contactSheet.js.map +1 -0
  112. package/dist/output/phaserManifest.d.ts +8 -0
  113. package/dist/output/phaserManifest.js +25 -0
  114. package/dist/output/phaserManifest.js.map +1 -0
  115. package/dist/output/pixiManifest.d.ts +8 -0
  116. package/dist/output/pixiManifest.js +37 -0
  117. package/dist/output/pixiManifest.js.map +1 -0
  118. package/dist/output/provenance.d.ts +121 -0
  119. package/dist/output/provenance.js +10 -0
  120. package/dist/output/provenance.js.map +1 -0
  121. package/dist/output/runtimeManifests.d.ts +21 -0
  122. package/dist/output/runtimeManifests.js +82 -0
  123. package/dist/output/runtimeManifests.js.map +1 -0
  124. package/dist/output/unityImportManifest.d.ts +10 -0
  125. package/dist/output/unityImportManifest.js +58 -0
  126. package/dist/output/unityImportManifest.js.map +1 -0
  127. package/dist/output/zip.d.ts +5 -0
  128. package/dist/output/zip.js +68 -0
  129. package/dist/output/zip.js.map +1 -0
  130. package/dist/pipeline/atlas.d.ts +33 -0
  131. package/dist/pipeline/atlas.js +286 -0
  132. package/dist/pipeline/atlas.js.map +1 -0
  133. package/dist/pipeline/eval.d.ts +104 -0
  134. package/dist/pipeline/eval.js +246 -0
  135. package/dist/pipeline/eval.js.map +1 -0
  136. package/dist/pipeline/generate.d.ts +44 -0
  137. package/dist/pipeline/generate.js +1088 -0
  138. package/dist/pipeline/generate.js.map +1 -0
  139. package/dist/pipeline/package.d.ts +18 -0
  140. package/dist/pipeline/package.js +218 -0
  141. package/dist/pipeline/package.js.map +1 -0
  142. package/dist/pipeline/process.d.ts +15 -0
  143. package/dist/pipeline/process.js +776 -0
  144. package/dist/pipeline/process.js.map +1 -0
  145. package/dist/pipeline/review.d.ts +10 -0
  146. package/dist/pipeline/review.js +341 -0
  147. package/dist/pipeline/review.js.map +1 -0
  148. package/dist/pipeline/seamHeal.d.ts +2 -0
  149. package/dist/pipeline/seamHeal.js +70 -0
  150. package/dist/pipeline/seamHeal.js.map +1 -0
  151. package/dist/pipeline/select.d.ts +39 -0
  152. package/dist/pipeline/select.js +79 -0
  153. package/dist/pipeline/select.js.map +1 -0
  154. package/dist/providers/job.d.ts +29 -0
  155. package/dist/providers/job.js +113 -0
  156. package/dist/providers/job.js.map +1 -0
  157. package/dist/providers/localDiffusion.d.ts +28 -0
  158. package/dist/providers/localDiffusion.js +235 -0
  159. package/dist/providers/localDiffusion.js.map +1 -0
  160. package/dist/providers/nano.d.ts +36 -0
  161. package/dist/providers/nano.js +402 -0
  162. package/dist/providers/nano.js.map +1 -0
  163. package/dist/providers/openai.d.ts +37 -0
  164. package/dist/providers/openai.js +378 -0
  165. package/dist/providers/openai.js.map +1 -0
  166. package/dist/providers/policy.d.ts +9 -0
  167. package/dist/providers/policy.js +192 -0
  168. package/dist/providers/policy.js.map +1 -0
  169. package/dist/providers/prompt.d.ts +3 -0
  170. package/dist/providers/prompt.js +63 -0
  171. package/dist/providers/prompt.js.map +1 -0
  172. package/dist/providers/registry.d.ts +24 -0
  173. package/dist/providers/registry.js +92 -0
  174. package/dist/providers/registry.js.map +1 -0
  175. package/dist/providers/runtime.d.ts +15 -0
  176. package/dist/providers/runtime.js +101 -0
  177. package/dist/providers/runtime.js.map +1 -0
  178. package/dist/providers/runtimeConfig.d.ts +20 -0
  179. package/dist/providers/runtimeConfig.js +146 -0
  180. package/dist/providers/runtimeConfig.js.map +1 -0
  181. package/dist/providers/types-core.d.ts +514 -0
  182. package/dist/providers/types-core.js +60 -0
  183. package/dist/providers/types-core.js.map +1 -0
  184. package/dist/providers/types.d.ts +4 -0
  185. package/dist/providers/types.js +5 -0
  186. package/dist/providers/types.js.map +1 -0
  187. package/dist/service/generationRequest.d.ts +58 -0
  188. package/dist/service/generationRequest.js +203 -0
  189. package/dist/service/generationRequest.js.map +1 -0
  190. package/dist/service/providerCapabilities.d.ts +40 -0
  191. package/dist/service/providerCapabilities.js +114 -0
  192. package/dist/service/providerCapabilities.js.map +1 -0
  193. package/dist/service/server.d.ts +31 -0
  194. package/dist/service/server.js +774 -0
  195. package/dist/service/server.js.map +1 -0
  196. package/dist/shared/errors.d.ts +13 -0
  197. package/dist/shared/errors.js +24 -0
  198. package/dist/shared/errors.js.map +1 -0
  199. package/dist/shared/fs.d.ts +6 -0
  200. package/dist/shared/fs.js +30 -0
  201. package/dist/shared/fs.js.map +1 -0
  202. package/dist/shared/image.d.ts +25 -0
  203. package/dist/shared/image.js +136 -0
  204. package/dist/shared/image.js.map +1 -0
  205. package/dist/shared/paths.d.ts +30 -0
  206. package/dist/shared/paths.js +103 -0
  207. package/dist/shared/paths.js.map +1 -0
  208. package/dist/shared/schemas.d.ts +209 -0
  209. package/dist/shared/schemas.js +93 -0
  210. package/dist/shared/schemas.js.map +1 -0
  211. package/dist/shared/typeGuards.d.ts +1 -0
  212. package/dist/shared/typeGuards.js +4 -0
  213. package/dist/shared/typeGuards.js.map +1 -0
  214. package/dist/shared/zod.d.ts +1 -0
  215. package/dist/shared/zod.js +14 -0
  216. package/dist/shared/zod.js.map +1 -0
  217. package/dist/showcase/format.d.ts +9 -0
  218. package/dist/showcase/format.js +61 -0
  219. package/dist/showcase/format.js.map +1 -0
  220. package/dist/showcase/panelRenderer.d.ts +59 -0
  221. package/dist/showcase/panelRenderer.js +294 -0
  222. package/dist/showcase/panelRenderer.js.map +1 -0
  223. package/dist/showcase/releaseConfig.d.ts +233 -0
  224. package/dist/showcase/releaseConfig.js +75 -0
  225. package/dist/showcase/releaseConfig.js.map +1 -0
  226. package/dist/showcase/releaseEvidence.d.ts +25 -0
  227. package/dist/showcase/releaseEvidence.js +540 -0
  228. package/dist/showcase/releaseEvidence.js.map +1 -0
  229. package/dist/showcase/releaseEvidenceSchema.d.ts +1611 -0
  230. package/dist/showcase/releaseEvidenceSchema.js +165 -0
  231. package/dist/showcase/releaseEvidenceSchema.js.map +1 -0
  232. package/dist/showcase/scenarioRenderer.d.ts +19 -0
  233. package/dist/showcase/scenarioRenderer.js +488 -0
  234. package/dist/showcase/scenarioRenderer.js.map +1 -0
  235. package/docs/ADAPTER_CONTRACT.md +141 -0
  236. package/docs/ENGINE_TARGETING.md +86 -0
  237. package/docs/MANIFEST_POLICY_COVERAGE.md +130 -0
  238. package/docs/RELEASE_WORKFLOW.md +117 -0
  239. package/docs/ROADMAP.md +411 -0
  240. package/docs/ROADMAP_ISSUES.md +244 -0
  241. package/docs/SERVICE_MODE.md +137 -0
  242. package/docs/manifest-schema.md +254 -0
  243. package/package.json +70 -0
@@ -0,0 +1,1611 @@
1
+ import { z } from "zod";
2
+ export declare const numberOrNullSchema: z.ZodNullable<z.ZodNumber>;
3
+ export declare const providerQualitySchema: z.ZodObject<{
4
+ targetCount: z.ZodNumber;
5
+ passedHardGates: z.ZodNumber;
6
+ failedHardGates: z.ZodNumber;
7
+ hardErrors: z.ZodNumber;
8
+ passRate: z.ZodNullable<z.ZodNumber>;
9
+ finalScoreMean: z.ZodNullable<z.ZodNumber>;
10
+ finalScoreMedian: z.ZodNullable<z.ZodNumber>;
11
+ candidateScoreMean: z.ZodNullable<z.ZodNumber>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ targetCount: number;
14
+ hardErrors: number;
15
+ passedHardGates: number;
16
+ failedHardGates: number;
17
+ passRate: number | null;
18
+ finalScoreMean: number | null;
19
+ finalScoreMedian: number | null;
20
+ candidateScoreMean: number | null;
21
+ }, {
22
+ targetCount: number;
23
+ hardErrors: number;
24
+ passedHardGates: number;
25
+ failedHardGates: number;
26
+ passRate: number | null;
27
+ finalScoreMean: number | null;
28
+ finalScoreMedian: number | null;
29
+ candidateScoreMean: number | null;
30
+ }>;
31
+ export declare const providerCoarseToFineSchema: z.ZodObject<{
32
+ enabledJobs: z.ZodNumber;
33
+ promotedCandidates: z.ZodNumber;
34
+ discardedCandidates: z.ZodNumber;
35
+ skippedJobs: z.ZodNumber;
36
+ }, "strip", z.ZodTypeAny, {
37
+ enabledJobs: number;
38
+ promotedCandidates: number;
39
+ discardedCandidates: number;
40
+ skippedJobs: number;
41
+ }, {
42
+ enabledJobs: number;
43
+ promotedCandidates: number;
44
+ discardedCandidates: number;
45
+ skippedJobs: number;
46
+ }>;
47
+ export declare const providerAgenticRetrySchema: z.ZodObject<{
48
+ enabledJobs: z.ZodNumber;
49
+ attemptedJobs: z.ZodNumber;
50
+ attemptedTotal: z.ZodNumber;
51
+ succeededJobs: z.ZodNumber;
52
+ triggerCodes: z.ZodRecord<z.ZodString, z.ZodNumber>;
53
+ }, "strip", z.ZodTypeAny, {
54
+ enabledJobs: number;
55
+ attemptedJobs: number;
56
+ attemptedTotal: number;
57
+ succeededJobs: number;
58
+ triggerCodes: Record<string, number>;
59
+ }, {
60
+ enabledJobs: number;
61
+ attemptedJobs: number;
62
+ attemptedTotal: number;
63
+ succeededJobs: number;
64
+ triggerCodes: Record<string, number>;
65
+ }>;
66
+ export declare const providerPackInvariantsSchema: z.ZodObject<{
67
+ errors: z.ZodNumber;
68
+ warnings: z.ZodNumber;
69
+ issueCodes: z.ZodArray<z.ZodString, "many">;
70
+ }, "strip", z.ZodTypeAny, {
71
+ warnings: number;
72
+ errors: number;
73
+ issueCodes: string[];
74
+ }, {
75
+ warnings: number;
76
+ errors: number;
77
+ issueCodes: string[];
78
+ }>;
79
+ export declare const providerConsistencySchema: z.ZodObject<{
80
+ groups: z.ZodNumber;
81
+ warningTargets: z.ZodNumber;
82
+ outlierTargets: z.ZodNumber;
83
+ totalPenalty: z.ZodNumber;
84
+ maxScore: z.ZodNullable<z.ZodNumber>;
85
+ }, "strip", z.ZodTypeAny, {
86
+ maxScore: number | null;
87
+ groups: number;
88
+ totalPenalty: number;
89
+ warningTargets: number;
90
+ outlierTargets: number;
91
+ }, {
92
+ maxScore: number | null;
93
+ groups: number;
94
+ totalPenalty: number;
95
+ warningTargets: number;
96
+ outlierTargets: number;
97
+ }>;
98
+ export declare const providerStylePolicySchema: z.ZodObject<{
99
+ errorCount: z.ZodNumber;
100
+ warningCount: z.ZodNumber;
101
+ codes: z.ZodArray<z.ZodString, "many">;
102
+ }, "strip", z.ZodTypeAny, {
103
+ warningCount: number;
104
+ errorCount: number;
105
+ codes: string[];
106
+ }, {
107
+ warningCount: number;
108
+ errorCount: number;
109
+ codes: string[];
110
+ }>;
111
+ export declare const providerSpritesheetSchema: z.ZodObject<{
112
+ issueCount: z.ZodNumber;
113
+ animationsMeasured: z.ZodNumber;
114
+ maxSilhouetteDrift: z.ZodNullable<z.ZodNumber>;
115
+ maxAnchorDrift: z.ZodNullable<z.ZodNumber>;
116
+ maxIdentityDrift: z.ZodNullable<z.ZodNumber>;
117
+ maxPoseDrift: z.ZodNullable<z.ZodNumber>;
118
+ }, "strip", z.ZodTypeAny, {
119
+ maxSilhouetteDrift: number | null;
120
+ maxAnchorDrift: number | null;
121
+ maxIdentityDrift: number | null;
122
+ maxPoseDrift: number | null;
123
+ issueCount: number;
124
+ animationsMeasured: number;
125
+ }, {
126
+ maxSilhouetteDrift: number | null;
127
+ maxAnchorDrift: number | null;
128
+ maxIdentityDrift: number | null;
129
+ maxPoseDrift: number | null;
130
+ issueCount: number;
131
+ animationsMeasured: number;
132
+ }>;
133
+ export declare const providerFeatureSchema: z.ZodObject<{
134
+ coarseToFine: z.ZodObject<{
135
+ enabledJobs: z.ZodNumber;
136
+ promotedCandidates: z.ZodNumber;
137
+ discardedCandidates: z.ZodNumber;
138
+ skippedJobs: z.ZodNumber;
139
+ }, "strip", z.ZodTypeAny, {
140
+ enabledJobs: number;
141
+ promotedCandidates: number;
142
+ discardedCandidates: number;
143
+ skippedJobs: number;
144
+ }, {
145
+ enabledJobs: number;
146
+ promotedCandidates: number;
147
+ discardedCandidates: number;
148
+ skippedJobs: number;
149
+ }>;
150
+ agenticRetry: z.ZodObject<{
151
+ enabledJobs: z.ZodNumber;
152
+ attemptedJobs: z.ZodNumber;
153
+ attemptedTotal: z.ZodNumber;
154
+ succeededJobs: z.ZodNumber;
155
+ triggerCodes: z.ZodRecord<z.ZodString, z.ZodNumber>;
156
+ }, "strip", z.ZodTypeAny, {
157
+ enabledJobs: number;
158
+ attemptedJobs: number;
159
+ attemptedTotal: number;
160
+ succeededJobs: number;
161
+ triggerCodes: Record<string, number>;
162
+ }, {
163
+ enabledJobs: number;
164
+ attemptedJobs: number;
165
+ attemptedTotal: number;
166
+ succeededJobs: number;
167
+ triggerCodes: Record<string, number>;
168
+ }>;
169
+ packInvariants: z.ZodObject<{
170
+ errors: z.ZodNumber;
171
+ warnings: z.ZodNumber;
172
+ issueCodes: z.ZodArray<z.ZodString, "many">;
173
+ }, "strip", z.ZodTypeAny, {
174
+ warnings: number;
175
+ errors: number;
176
+ issueCodes: string[];
177
+ }, {
178
+ warnings: number;
179
+ errors: number;
180
+ issueCodes: string[];
181
+ }>;
182
+ consistencyOutliers: z.ZodObject<{
183
+ groups: z.ZodNumber;
184
+ warningTargets: z.ZodNumber;
185
+ outlierTargets: z.ZodNumber;
186
+ totalPenalty: z.ZodNumber;
187
+ maxScore: z.ZodNullable<z.ZodNumber>;
188
+ }, "strip", z.ZodTypeAny, {
189
+ maxScore: number | null;
190
+ groups: number;
191
+ totalPenalty: number;
192
+ warningTargets: number;
193
+ outlierTargets: number;
194
+ }, {
195
+ maxScore: number | null;
196
+ groups: number;
197
+ totalPenalty: number;
198
+ warningTargets: number;
199
+ outlierTargets: number;
200
+ }>;
201
+ stylePolicy: z.ZodObject<{
202
+ errorCount: z.ZodNumber;
203
+ warningCount: z.ZodNumber;
204
+ codes: z.ZodArray<z.ZodString, "many">;
205
+ }, "strip", z.ZodTypeAny, {
206
+ warningCount: number;
207
+ errorCount: number;
208
+ codes: string[];
209
+ }, {
210
+ warningCount: number;
211
+ errorCount: number;
212
+ codes: string[];
213
+ }>;
214
+ spritesheetDrift: z.ZodObject<{
215
+ issueCount: z.ZodNumber;
216
+ animationsMeasured: z.ZodNumber;
217
+ maxSilhouetteDrift: z.ZodNullable<z.ZodNumber>;
218
+ maxAnchorDrift: z.ZodNullable<z.ZodNumber>;
219
+ maxIdentityDrift: z.ZodNullable<z.ZodNumber>;
220
+ maxPoseDrift: z.ZodNullable<z.ZodNumber>;
221
+ }, "strip", z.ZodTypeAny, {
222
+ maxSilhouetteDrift: number | null;
223
+ maxAnchorDrift: number | null;
224
+ maxIdentityDrift: number | null;
225
+ maxPoseDrift: number | null;
226
+ issueCount: number;
227
+ animationsMeasured: number;
228
+ }, {
229
+ maxSilhouetteDrift: number | null;
230
+ maxAnchorDrift: number | null;
231
+ maxIdentityDrift: number | null;
232
+ maxPoseDrift: number | null;
233
+ issueCount: number;
234
+ animationsMeasured: number;
235
+ }>;
236
+ }, "strip", z.ZodTypeAny, {
237
+ coarseToFine: {
238
+ enabledJobs: number;
239
+ promotedCandidates: number;
240
+ discardedCandidates: number;
241
+ skippedJobs: number;
242
+ };
243
+ agenticRetry: {
244
+ enabledJobs: number;
245
+ attemptedJobs: number;
246
+ attemptedTotal: number;
247
+ succeededJobs: number;
248
+ triggerCodes: Record<string, number>;
249
+ };
250
+ packInvariants: {
251
+ warnings: number;
252
+ errors: number;
253
+ issueCodes: string[];
254
+ };
255
+ consistencyOutliers: {
256
+ maxScore: number | null;
257
+ groups: number;
258
+ totalPenalty: number;
259
+ warningTargets: number;
260
+ outlierTargets: number;
261
+ };
262
+ stylePolicy: {
263
+ warningCount: number;
264
+ errorCount: number;
265
+ codes: string[];
266
+ };
267
+ spritesheetDrift: {
268
+ maxSilhouetteDrift: number | null;
269
+ maxAnchorDrift: number | null;
270
+ maxIdentityDrift: number | null;
271
+ maxPoseDrift: number | null;
272
+ issueCount: number;
273
+ animationsMeasured: number;
274
+ };
275
+ }, {
276
+ coarseToFine: {
277
+ enabledJobs: number;
278
+ promotedCandidates: number;
279
+ discardedCandidates: number;
280
+ skippedJobs: number;
281
+ };
282
+ agenticRetry: {
283
+ enabledJobs: number;
284
+ attemptedJobs: number;
285
+ attemptedTotal: number;
286
+ succeededJobs: number;
287
+ triggerCodes: Record<string, number>;
288
+ };
289
+ packInvariants: {
290
+ warnings: number;
291
+ errors: number;
292
+ issueCodes: string[];
293
+ };
294
+ consistencyOutliers: {
295
+ maxScore: number | null;
296
+ groups: number;
297
+ totalPenalty: number;
298
+ warningTargets: number;
299
+ outlierTargets: number;
300
+ };
301
+ stylePolicy: {
302
+ warningCount: number;
303
+ errorCount: number;
304
+ codes: string[];
305
+ };
306
+ spritesheetDrift: {
307
+ maxSilhouetteDrift: number | null;
308
+ maxAnchorDrift: number | null;
309
+ maxIdentityDrift: number | null;
310
+ maxPoseDrift: number | null;
311
+ issueCount: number;
312
+ animationsMeasured: number;
313
+ };
314
+ }>;
315
+ export declare const providerEvidenceSchema: z.ZodObject<{
316
+ id: z.ZodString;
317
+ label: z.ZodString;
318
+ provider: z.ZodString;
319
+ manifestPath: z.ZodString;
320
+ outDir: z.ZodString;
321
+ generatedAt: z.ZodString;
322
+ quality: z.ZodObject<{
323
+ targetCount: z.ZodNumber;
324
+ passedHardGates: z.ZodNumber;
325
+ failedHardGates: z.ZodNumber;
326
+ hardErrors: z.ZodNumber;
327
+ passRate: z.ZodNullable<z.ZodNumber>;
328
+ finalScoreMean: z.ZodNullable<z.ZodNumber>;
329
+ finalScoreMedian: z.ZodNullable<z.ZodNumber>;
330
+ candidateScoreMean: z.ZodNullable<z.ZodNumber>;
331
+ }, "strip", z.ZodTypeAny, {
332
+ targetCount: number;
333
+ hardErrors: number;
334
+ passedHardGates: number;
335
+ failedHardGates: number;
336
+ passRate: number | null;
337
+ finalScoreMean: number | null;
338
+ finalScoreMedian: number | null;
339
+ candidateScoreMean: number | null;
340
+ }, {
341
+ targetCount: number;
342
+ hardErrors: number;
343
+ passedHardGates: number;
344
+ failedHardGates: number;
345
+ passRate: number | null;
346
+ finalScoreMean: number | null;
347
+ finalScoreMedian: number | null;
348
+ candidateScoreMean: number | null;
349
+ }>;
350
+ features: z.ZodObject<{
351
+ coarseToFine: z.ZodObject<{
352
+ enabledJobs: z.ZodNumber;
353
+ promotedCandidates: z.ZodNumber;
354
+ discardedCandidates: z.ZodNumber;
355
+ skippedJobs: z.ZodNumber;
356
+ }, "strip", z.ZodTypeAny, {
357
+ enabledJobs: number;
358
+ promotedCandidates: number;
359
+ discardedCandidates: number;
360
+ skippedJobs: number;
361
+ }, {
362
+ enabledJobs: number;
363
+ promotedCandidates: number;
364
+ discardedCandidates: number;
365
+ skippedJobs: number;
366
+ }>;
367
+ agenticRetry: z.ZodObject<{
368
+ enabledJobs: z.ZodNumber;
369
+ attemptedJobs: z.ZodNumber;
370
+ attemptedTotal: z.ZodNumber;
371
+ succeededJobs: z.ZodNumber;
372
+ triggerCodes: z.ZodRecord<z.ZodString, z.ZodNumber>;
373
+ }, "strip", z.ZodTypeAny, {
374
+ enabledJobs: number;
375
+ attemptedJobs: number;
376
+ attemptedTotal: number;
377
+ succeededJobs: number;
378
+ triggerCodes: Record<string, number>;
379
+ }, {
380
+ enabledJobs: number;
381
+ attemptedJobs: number;
382
+ attemptedTotal: number;
383
+ succeededJobs: number;
384
+ triggerCodes: Record<string, number>;
385
+ }>;
386
+ packInvariants: z.ZodObject<{
387
+ errors: z.ZodNumber;
388
+ warnings: z.ZodNumber;
389
+ issueCodes: z.ZodArray<z.ZodString, "many">;
390
+ }, "strip", z.ZodTypeAny, {
391
+ warnings: number;
392
+ errors: number;
393
+ issueCodes: string[];
394
+ }, {
395
+ warnings: number;
396
+ errors: number;
397
+ issueCodes: string[];
398
+ }>;
399
+ consistencyOutliers: z.ZodObject<{
400
+ groups: z.ZodNumber;
401
+ warningTargets: z.ZodNumber;
402
+ outlierTargets: z.ZodNumber;
403
+ totalPenalty: z.ZodNumber;
404
+ maxScore: z.ZodNullable<z.ZodNumber>;
405
+ }, "strip", z.ZodTypeAny, {
406
+ maxScore: number | null;
407
+ groups: number;
408
+ totalPenalty: number;
409
+ warningTargets: number;
410
+ outlierTargets: number;
411
+ }, {
412
+ maxScore: number | null;
413
+ groups: number;
414
+ totalPenalty: number;
415
+ warningTargets: number;
416
+ outlierTargets: number;
417
+ }>;
418
+ stylePolicy: z.ZodObject<{
419
+ errorCount: z.ZodNumber;
420
+ warningCount: z.ZodNumber;
421
+ codes: z.ZodArray<z.ZodString, "many">;
422
+ }, "strip", z.ZodTypeAny, {
423
+ warningCount: number;
424
+ errorCount: number;
425
+ codes: string[];
426
+ }, {
427
+ warningCount: number;
428
+ errorCount: number;
429
+ codes: string[];
430
+ }>;
431
+ spritesheetDrift: z.ZodObject<{
432
+ issueCount: z.ZodNumber;
433
+ animationsMeasured: z.ZodNumber;
434
+ maxSilhouetteDrift: z.ZodNullable<z.ZodNumber>;
435
+ maxAnchorDrift: z.ZodNullable<z.ZodNumber>;
436
+ maxIdentityDrift: z.ZodNullable<z.ZodNumber>;
437
+ maxPoseDrift: z.ZodNullable<z.ZodNumber>;
438
+ }, "strip", z.ZodTypeAny, {
439
+ maxSilhouetteDrift: number | null;
440
+ maxAnchorDrift: number | null;
441
+ maxIdentityDrift: number | null;
442
+ maxPoseDrift: number | null;
443
+ issueCount: number;
444
+ animationsMeasured: number;
445
+ }, {
446
+ maxSilhouetteDrift: number | null;
447
+ maxAnchorDrift: number | null;
448
+ maxIdentityDrift: number | null;
449
+ maxPoseDrift: number | null;
450
+ issueCount: number;
451
+ animationsMeasured: number;
452
+ }>;
453
+ }, "strip", z.ZodTypeAny, {
454
+ coarseToFine: {
455
+ enabledJobs: number;
456
+ promotedCandidates: number;
457
+ discardedCandidates: number;
458
+ skippedJobs: number;
459
+ };
460
+ agenticRetry: {
461
+ enabledJobs: number;
462
+ attemptedJobs: number;
463
+ attemptedTotal: number;
464
+ succeededJobs: number;
465
+ triggerCodes: Record<string, number>;
466
+ };
467
+ packInvariants: {
468
+ warnings: number;
469
+ errors: number;
470
+ issueCodes: string[];
471
+ };
472
+ consistencyOutliers: {
473
+ maxScore: number | null;
474
+ groups: number;
475
+ totalPenalty: number;
476
+ warningTargets: number;
477
+ outlierTargets: number;
478
+ };
479
+ stylePolicy: {
480
+ warningCount: number;
481
+ errorCount: number;
482
+ codes: string[];
483
+ };
484
+ spritesheetDrift: {
485
+ maxSilhouetteDrift: number | null;
486
+ maxAnchorDrift: number | null;
487
+ maxIdentityDrift: number | null;
488
+ maxPoseDrift: number | null;
489
+ issueCount: number;
490
+ animationsMeasured: number;
491
+ };
492
+ }, {
493
+ coarseToFine: {
494
+ enabledJobs: number;
495
+ promotedCandidates: number;
496
+ discardedCandidates: number;
497
+ skippedJobs: number;
498
+ };
499
+ agenticRetry: {
500
+ enabledJobs: number;
501
+ attemptedJobs: number;
502
+ attemptedTotal: number;
503
+ succeededJobs: number;
504
+ triggerCodes: Record<string, number>;
505
+ };
506
+ packInvariants: {
507
+ warnings: number;
508
+ errors: number;
509
+ issueCodes: string[];
510
+ };
511
+ consistencyOutliers: {
512
+ maxScore: number | null;
513
+ groups: number;
514
+ totalPenalty: number;
515
+ warningTargets: number;
516
+ outlierTargets: number;
517
+ };
518
+ stylePolicy: {
519
+ warningCount: number;
520
+ errorCount: number;
521
+ codes: string[];
522
+ };
523
+ spritesheetDrift: {
524
+ maxSilhouetteDrift: number | null;
525
+ maxAnchorDrift: number | null;
526
+ maxIdentityDrift: number | null;
527
+ maxPoseDrift: number | null;
528
+ issueCount: number;
529
+ animationsMeasured: number;
530
+ };
531
+ }>;
532
+ }, "strip", z.ZodTypeAny, {
533
+ quality: {
534
+ targetCount: number;
535
+ hardErrors: number;
536
+ passedHardGates: number;
537
+ failedHardGates: number;
538
+ passRate: number | null;
539
+ finalScoreMean: number | null;
540
+ finalScoreMedian: number | null;
541
+ candidateScoreMean: number | null;
542
+ };
543
+ provider: string;
544
+ id: string;
545
+ generatedAt: string;
546
+ manifestPath: string;
547
+ outDir: string;
548
+ label: string;
549
+ features: {
550
+ coarseToFine: {
551
+ enabledJobs: number;
552
+ promotedCandidates: number;
553
+ discardedCandidates: number;
554
+ skippedJobs: number;
555
+ };
556
+ agenticRetry: {
557
+ enabledJobs: number;
558
+ attemptedJobs: number;
559
+ attemptedTotal: number;
560
+ succeededJobs: number;
561
+ triggerCodes: Record<string, number>;
562
+ };
563
+ packInvariants: {
564
+ warnings: number;
565
+ errors: number;
566
+ issueCodes: string[];
567
+ };
568
+ consistencyOutliers: {
569
+ maxScore: number | null;
570
+ groups: number;
571
+ totalPenalty: number;
572
+ warningTargets: number;
573
+ outlierTargets: number;
574
+ };
575
+ stylePolicy: {
576
+ warningCount: number;
577
+ errorCount: number;
578
+ codes: string[];
579
+ };
580
+ spritesheetDrift: {
581
+ maxSilhouetteDrift: number | null;
582
+ maxAnchorDrift: number | null;
583
+ maxIdentityDrift: number | null;
584
+ maxPoseDrift: number | null;
585
+ issueCount: number;
586
+ animationsMeasured: number;
587
+ };
588
+ };
589
+ }, {
590
+ quality: {
591
+ targetCount: number;
592
+ hardErrors: number;
593
+ passedHardGates: number;
594
+ failedHardGates: number;
595
+ passRate: number | null;
596
+ finalScoreMean: number | null;
597
+ finalScoreMedian: number | null;
598
+ candidateScoreMean: number | null;
599
+ };
600
+ provider: string;
601
+ id: string;
602
+ generatedAt: string;
603
+ manifestPath: string;
604
+ outDir: string;
605
+ label: string;
606
+ features: {
607
+ coarseToFine: {
608
+ enabledJobs: number;
609
+ promotedCandidates: number;
610
+ discardedCandidates: number;
611
+ skippedJobs: number;
612
+ };
613
+ agenticRetry: {
614
+ enabledJobs: number;
615
+ attemptedJobs: number;
616
+ attemptedTotal: number;
617
+ succeededJobs: number;
618
+ triggerCodes: Record<string, number>;
619
+ };
620
+ packInvariants: {
621
+ warnings: number;
622
+ errors: number;
623
+ issueCodes: string[];
624
+ };
625
+ consistencyOutliers: {
626
+ maxScore: number | null;
627
+ groups: number;
628
+ totalPenalty: number;
629
+ warningTargets: number;
630
+ outlierTargets: number;
631
+ };
632
+ stylePolicy: {
633
+ warningCount: number;
634
+ errorCount: number;
635
+ codes: string[];
636
+ };
637
+ spritesheetDrift: {
638
+ maxSilhouetteDrift: number | null;
639
+ maxAnchorDrift: number | null;
640
+ maxIdentityDrift: number | null;
641
+ maxPoseDrift: number | null;
642
+ issueCount: number;
643
+ animationsMeasured: number;
644
+ };
645
+ };
646
+ }>;
647
+ export declare const aggregateQualitySchema: z.ZodObject<{
648
+ providerCount: z.ZodNumber;
649
+ targetCount: z.ZodNumber;
650
+ passedHardGates: z.ZodNumber;
651
+ failedHardGates: z.ZodNumber;
652
+ hardErrors: z.ZodNumber;
653
+ passRate: z.ZodNullable<z.ZodNumber>;
654
+ finalScoreMean: z.ZodNullable<z.ZodNumber>;
655
+ finalScoreMedian: z.ZodNullable<z.ZodNumber>;
656
+ }, "strip", z.ZodTypeAny, {
657
+ targetCount: number;
658
+ hardErrors: number;
659
+ passedHardGates: number;
660
+ failedHardGates: number;
661
+ passRate: number | null;
662
+ finalScoreMean: number | null;
663
+ finalScoreMedian: number | null;
664
+ providerCount: number;
665
+ }, {
666
+ targetCount: number;
667
+ hardErrors: number;
668
+ passedHardGates: number;
669
+ failedHardGates: number;
670
+ passRate: number | null;
671
+ finalScoreMean: number | null;
672
+ finalScoreMedian: number | null;
673
+ providerCount: number;
674
+ }>;
675
+ export declare const aggregateFeaturesSchema: z.ZodObject<{
676
+ coarseToFineEnabledJobs: z.ZodNumber;
677
+ coarseToFinePromotedCandidates: z.ZodNumber;
678
+ coarseToFineDiscardedCandidates: z.ZodNumber;
679
+ agenticRetryAttemptedJobs: z.ZodNumber;
680
+ agenticRetryAttempts: z.ZodNumber;
681
+ packInvariantErrors: z.ZodNumber;
682
+ packInvariantWarnings: z.ZodNumber;
683
+ consistencyOutlierTargets: z.ZodNumber;
684
+ stylePolicyErrors: z.ZodNumber;
685
+ spritesheetIssueCount: z.ZodNumber;
686
+ }, "strip", z.ZodTypeAny, {
687
+ coarseToFineEnabledJobs: number;
688
+ coarseToFinePromotedCandidates: number;
689
+ coarseToFineDiscardedCandidates: number;
690
+ agenticRetryAttemptedJobs: number;
691
+ agenticRetryAttempts: number;
692
+ packInvariantErrors: number;
693
+ packInvariantWarnings: number;
694
+ consistencyOutlierTargets: number;
695
+ stylePolicyErrors: number;
696
+ spritesheetIssueCount: number;
697
+ }, {
698
+ coarseToFineEnabledJobs: number;
699
+ coarseToFinePromotedCandidates: number;
700
+ coarseToFineDiscardedCandidates: number;
701
+ agenticRetryAttemptedJobs: number;
702
+ agenticRetryAttempts: number;
703
+ packInvariantErrors: number;
704
+ packInvariantWarnings: number;
705
+ consistencyOutlierTargets: number;
706
+ stylePolicyErrors: number;
707
+ spritesheetIssueCount: number;
708
+ }>;
709
+ export declare const scenarioValueSchema: z.ZodObject<{
710
+ label: z.ZodString;
711
+ value: z.ZodString;
712
+ }, "strip", z.ZodTypeAny, {
713
+ value: string;
714
+ label: string;
715
+ }, {
716
+ value: string;
717
+ label: string;
718
+ }>;
719
+ export declare const scenarioEvidenceSchema: z.ZodObject<{
720
+ id: z.ZodString;
721
+ title: z.ZodString;
722
+ panelFile: z.ZodString;
723
+ summary: z.ZodString;
724
+ values: z.ZodArray<z.ZodObject<{
725
+ label: z.ZodString;
726
+ value: z.ZodString;
727
+ }, "strip", z.ZodTypeAny, {
728
+ value: string;
729
+ label: string;
730
+ }, {
731
+ value: string;
732
+ label: string;
733
+ }>, "many">;
734
+ }, "strip", z.ZodTypeAny, {
735
+ values: {
736
+ value: string;
737
+ label: string;
738
+ }[];
739
+ summary: string;
740
+ id: string;
741
+ title: string;
742
+ panelFile: string;
743
+ }, {
744
+ values: {
745
+ value: string;
746
+ label: string;
747
+ }[];
748
+ summary: string;
749
+ id: string;
750
+ title: string;
751
+ panelFile: string;
752
+ }>;
753
+ export declare const providerComparisonSchema: z.ZodObject<{
754
+ id: z.ZodString;
755
+ leftId: z.ZodString;
756
+ rightId: z.ZodString;
757
+ finalScoreMeanDelta: z.ZodNullable<z.ZodNumber>;
758
+ passRateDelta: z.ZodNullable<z.ZodNumber>;
759
+ hardErrorDelta: z.ZodNumber;
760
+ }, "strip", z.ZodTypeAny, {
761
+ id: string;
762
+ leftId: string;
763
+ rightId: string;
764
+ finalScoreMeanDelta: number | null;
765
+ passRateDelta: number | null;
766
+ hardErrorDelta: number;
767
+ }, {
768
+ id: string;
769
+ leftId: string;
770
+ rightId: string;
771
+ finalScoreMeanDelta: number | null;
772
+ passRateDelta: number | null;
773
+ hardErrorDelta: number;
774
+ }>;
775
+ export declare const baselineDeltaSchema: z.ZodObject<{
776
+ baselineVersion: z.ZodString;
777
+ finalScoreMeanDelta: z.ZodNullable<z.ZodNumber>;
778
+ passRateDelta: z.ZodNullable<z.ZodNumber>;
779
+ hardErrorDelta: z.ZodNumber;
780
+ }, "strip", z.ZodTypeAny, {
781
+ baselineVersion: string;
782
+ finalScoreMeanDelta: number | null;
783
+ passRateDelta: number | null;
784
+ hardErrorDelta: number;
785
+ }, {
786
+ baselineVersion: string;
787
+ finalScoreMeanDelta: number | null;
788
+ passRateDelta: number | null;
789
+ hardErrorDelta: number;
790
+ }>;
791
+ export declare const ReleaseEvidenceReportSchema: z.ZodObject<{
792
+ schemaVersion: z.ZodLiteral<"release-showcase-v2">;
793
+ generatedAt: z.ZodString;
794
+ release: z.ZodObject<{
795
+ version: z.ZodString;
796
+ codename: z.ZodString;
797
+ comparisonPolicy: z.ZodString;
798
+ }, "strip", z.ZodTypeAny, {
799
+ version: string;
800
+ codename: string;
801
+ comparisonPolicy: string;
802
+ }, {
803
+ version: string;
804
+ codename: string;
805
+ comparisonPolicy: string;
806
+ }>;
807
+ baseline: z.ZodOptional<z.ZodObject<{
808
+ version: z.ZodString;
809
+ evidencePath: z.ZodOptional<z.ZodString>;
810
+ available: z.ZodBoolean;
811
+ }, "strip", z.ZodTypeAny, {
812
+ version: string;
813
+ available: boolean;
814
+ evidencePath?: string | undefined;
815
+ }, {
816
+ version: string;
817
+ available: boolean;
818
+ evidencePath?: string | undefined;
819
+ }>>;
820
+ providers: z.ZodArray<z.ZodObject<{
821
+ id: z.ZodString;
822
+ label: z.ZodString;
823
+ provider: z.ZodString;
824
+ manifestPath: z.ZodString;
825
+ outDir: z.ZodString;
826
+ generatedAt: z.ZodString;
827
+ quality: z.ZodObject<{
828
+ targetCount: z.ZodNumber;
829
+ passedHardGates: z.ZodNumber;
830
+ failedHardGates: z.ZodNumber;
831
+ hardErrors: z.ZodNumber;
832
+ passRate: z.ZodNullable<z.ZodNumber>;
833
+ finalScoreMean: z.ZodNullable<z.ZodNumber>;
834
+ finalScoreMedian: z.ZodNullable<z.ZodNumber>;
835
+ candidateScoreMean: z.ZodNullable<z.ZodNumber>;
836
+ }, "strip", z.ZodTypeAny, {
837
+ targetCount: number;
838
+ hardErrors: number;
839
+ passedHardGates: number;
840
+ failedHardGates: number;
841
+ passRate: number | null;
842
+ finalScoreMean: number | null;
843
+ finalScoreMedian: number | null;
844
+ candidateScoreMean: number | null;
845
+ }, {
846
+ targetCount: number;
847
+ hardErrors: number;
848
+ passedHardGates: number;
849
+ failedHardGates: number;
850
+ passRate: number | null;
851
+ finalScoreMean: number | null;
852
+ finalScoreMedian: number | null;
853
+ candidateScoreMean: number | null;
854
+ }>;
855
+ features: z.ZodObject<{
856
+ coarseToFine: z.ZodObject<{
857
+ enabledJobs: z.ZodNumber;
858
+ promotedCandidates: z.ZodNumber;
859
+ discardedCandidates: z.ZodNumber;
860
+ skippedJobs: z.ZodNumber;
861
+ }, "strip", z.ZodTypeAny, {
862
+ enabledJobs: number;
863
+ promotedCandidates: number;
864
+ discardedCandidates: number;
865
+ skippedJobs: number;
866
+ }, {
867
+ enabledJobs: number;
868
+ promotedCandidates: number;
869
+ discardedCandidates: number;
870
+ skippedJobs: number;
871
+ }>;
872
+ agenticRetry: z.ZodObject<{
873
+ enabledJobs: z.ZodNumber;
874
+ attemptedJobs: z.ZodNumber;
875
+ attemptedTotal: z.ZodNumber;
876
+ succeededJobs: z.ZodNumber;
877
+ triggerCodes: z.ZodRecord<z.ZodString, z.ZodNumber>;
878
+ }, "strip", z.ZodTypeAny, {
879
+ enabledJobs: number;
880
+ attemptedJobs: number;
881
+ attemptedTotal: number;
882
+ succeededJobs: number;
883
+ triggerCodes: Record<string, number>;
884
+ }, {
885
+ enabledJobs: number;
886
+ attemptedJobs: number;
887
+ attemptedTotal: number;
888
+ succeededJobs: number;
889
+ triggerCodes: Record<string, number>;
890
+ }>;
891
+ packInvariants: z.ZodObject<{
892
+ errors: z.ZodNumber;
893
+ warnings: z.ZodNumber;
894
+ issueCodes: z.ZodArray<z.ZodString, "many">;
895
+ }, "strip", z.ZodTypeAny, {
896
+ warnings: number;
897
+ errors: number;
898
+ issueCodes: string[];
899
+ }, {
900
+ warnings: number;
901
+ errors: number;
902
+ issueCodes: string[];
903
+ }>;
904
+ consistencyOutliers: z.ZodObject<{
905
+ groups: z.ZodNumber;
906
+ warningTargets: z.ZodNumber;
907
+ outlierTargets: z.ZodNumber;
908
+ totalPenalty: z.ZodNumber;
909
+ maxScore: z.ZodNullable<z.ZodNumber>;
910
+ }, "strip", z.ZodTypeAny, {
911
+ maxScore: number | null;
912
+ groups: number;
913
+ totalPenalty: number;
914
+ warningTargets: number;
915
+ outlierTargets: number;
916
+ }, {
917
+ maxScore: number | null;
918
+ groups: number;
919
+ totalPenalty: number;
920
+ warningTargets: number;
921
+ outlierTargets: number;
922
+ }>;
923
+ stylePolicy: z.ZodObject<{
924
+ errorCount: z.ZodNumber;
925
+ warningCount: z.ZodNumber;
926
+ codes: z.ZodArray<z.ZodString, "many">;
927
+ }, "strip", z.ZodTypeAny, {
928
+ warningCount: number;
929
+ errorCount: number;
930
+ codes: string[];
931
+ }, {
932
+ warningCount: number;
933
+ errorCount: number;
934
+ codes: string[];
935
+ }>;
936
+ spritesheetDrift: z.ZodObject<{
937
+ issueCount: z.ZodNumber;
938
+ animationsMeasured: z.ZodNumber;
939
+ maxSilhouetteDrift: z.ZodNullable<z.ZodNumber>;
940
+ maxAnchorDrift: z.ZodNullable<z.ZodNumber>;
941
+ maxIdentityDrift: z.ZodNullable<z.ZodNumber>;
942
+ maxPoseDrift: z.ZodNullable<z.ZodNumber>;
943
+ }, "strip", z.ZodTypeAny, {
944
+ maxSilhouetteDrift: number | null;
945
+ maxAnchorDrift: number | null;
946
+ maxIdentityDrift: number | null;
947
+ maxPoseDrift: number | null;
948
+ issueCount: number;
949
+ animationsMeasured: number;
950
+ }, {
951
+ maxSilhouetteDrift: number | null;
952
+ maxAnchorDrift: number | null;
953
+ maxIdentityDrift: number | null;
954
+ maxPoseDrift: number | null;
955
+ issueCount: number;
956
+ animationsMeasured: number;
957
+ }>;
958
+ }, "strip", z.ZodTypeAny, {
959
+ coarseToFine: {
960
+ enabledJobs: number;
961
+ promotedCandidates: number;
962
+ discardedCandidates: number;
963
+ skippedJobs: number;
964
+ };
965
+ agenticRetry: {
966
+ enabledJobs: number;
967
+ attemptedJobs: number;
968
+ attemptedTotal: number;
969
+ succeededJobs: number;
970
+ triggerCodes: Record<string, number>;
971
+ };
972
+ packInvariants: {
973
+ warnings: number;
974
+ errors: number;
975
+ issueCodes: string[];
976
+ };
977
+ consistencyOutliers: {
978
+ maxScore: number | null;
979
+ groups: number;
980
+ totalPenalty: number;
981
+ warningTargets: number;
982
+ outlierTargets: number;
983
+ };
984
+ stylePolicy: {
985
+ warningCount: number;
986
+ errorCount: number;
987
+ codes: string[];
988
+ };
989
+ spritesheetDrift: {
990
+ maxSilhouetteDrift: number | null;
991
+ maxAnchorDrift: number | null;
992
+ maxIdentityDrift: number | null;
993
+ maxPoseDrift: number | null;
994
+ issueCount: number;
995
+ animationsMeasured: number;
996
+ };
997
+ }, {
998
+ coarseToFine: {
999
+ enabledJobs: number;
1000
+ promotedCandidates: number;
1001
+ discardedCandidates: number;
1002
+ skippedJobs: number;
1003
+ };
1004
+ agenticRetry: {
1005
+ enabledJobs: number;
1006
+ attemptedJobs: number;
1007
+ attemptedTotal: number;
1008
+ succeededJobs: number;
1009
+ triggerCodes: Record<string, number>;
1010
+ };
1011
+ packInvariants: {
1012
+ warnings: number;
1013
+ errors: number;
1014
+ issueCodes: string[];
1015
+ };
1016
+ consistencyOutliers: {
1017
+ maxScore: number | null;
1018
+ groups: number;
1019
+ totalPenalty: number;
1020
+ warningTargets: number;
1021
+ outlierTargets: number;
1022
+ };
1023
+ stylePolicy: {
1024
+ warningCount: number;
1025
+ errorCount: number;
1026
+ codes: string[];
1027
+ };
1028
+ spritesheetDrift: {
1029
+ maxSilhouetteDrift: number | null;
1030
+ maxAnchorDrift: number | null;
1031
+ maxIdentityDrift: number | null;
1032
+ maxPoseDrift: number | null;
1033
+ issueCount: number;
1034
+ animationsMeasured: number;
1035
+ };
1036
+ }>;
1037
+ }, "strip", z.ZodTypeAny, {
1038
+ quality: {
1039
+ targetCount: number;
1040
+ hardErrors: number;
1041
+ passedHardGates: number;
1042
+ failedHardGates: number;
1043
+ passRate: number | null;
1044
+ finalScoreMean: number | null;
1045
+ finalScoreMedian: number | null;
1046
+ candidateScoreMean: number | null;
1047
+ };
1048
+ provider: string;
1049
+ id: string;
1050
+ generatedAt: string;
1051
+ manifestPath: string;
1052
+ outDir: string;
1053
+ label: string;
1054
+ features: {
1055
+ coarseToFine: {
1056
+ enabledJobs: number;
1057
+ promotedCandidates: number;
1058
+ discardedCandidates: number;
1059
+ skippedJobs: number;
1060
+ };
1061
+ agenticRetry: {
1062
+ enabledJobs: number;
1063
+ attemptedJobs: number;
1064
+ attemptedTotal: number;
1065
+ succeededJobs: number;
1066
+ triggerCodes: Record<string, number>;
1067
+ };
1068
+ packInvariants: {
1069
+ warnings: number;
1070
+ errors: number;
1071
+ issueCodes: string[];
1072
+ };
1073
+ consistencyOutliers: {
1074
+ maxScore: number | null;
1075
+ groups: number;
1076
+ totalPenalty: number;
1077
+ warningTargets: number;
1078
+ outlierTargets: number;
1079
+ };
1080
+ stylePolicy: {
1081
+ warningCount: number;
1082
+ errorCount: number;
1083
+ codes: string[];
1084
+ };
1085
+ spritesheetDrift: {
1086
+ maxSilhouetteDrift: number | null;
1087
+ maxAnchorDrift: number | null;
1088
+ maxIdentityDrift: number | null;
1089
+ maxPoseDrift: number | null;
1090
+ issueCount: number;
1091
+ animationsMeasured: number;
1092
+ };
1093
+ };
1094
+ }, {
1095
+ quality: {
1096
+ targetCount: number;
1097
+ hardErrors: number;
1098
+ passedHardGates: number;
1099
+ failedHardGates: number;
1100
+ passRate: number | null;
1101
+ finalScoreMean: number | null;
1102
+ finalScoreMedian: number | null;
1103
+ candidateScoreMean: number | null;
1104
+ };
1105
+ provider: string;
1106
+ id: string;
1107
+ generatedAt: string;
1108
+ manifestPath: string;
1109
+ outDir: string;
1110
+ label: string;
1111
+ features: {
1112
+ coarseToFine: {
1113
+ enabledJobs: number;
1114
+ promotedCandidates: number;
1115
+ discardedCandidates: number;
1116
+ skippedJobs: number;
1117
+ };
1118
+ agenticRetry: {
1119
+ enabledJobs: number;
1120
+ attemptedJobs: number;
1121
+ attemptedTotal: number;
1122
+ succeededJobs: number;
1123
+ triggerCodes: Record<string, number>;
1124
+ };
1125
+ packInvariants: {
1126
+ warnings: number;
1127
+ errors: number;
1128
+ issueCodes: string[];
1129
+ };
1130
+ consistencyOutliers: {
1131
+ maxScore: number | null;
1132
+ groups: number;
1133
+ totalPenalty: number;
1134
+ warningTargets: number;
1135
+ outlierTargets: number;
1136
+ };
1137
+ stylePolicy: {
1138
+ warningCount: number;
1139
+ errorCount: number;
1140
+ codes: string[];
1141
+ };
1142
+ spritesheetDrift: {
1143
+ maxSilhouetteDrift: number | null;
1144
+ maxAnchorDrift: number | null;
1145
+ maxIdentityDrift: number | null;
1146
+ maxPoseDrift: number | null;
1147
+ issueCount: number;
1148
+ animationsMeasured: number;
1149
+ };
1150
+ };
1151
+ }>, "many">;
1152
+ aggregate: z.ZodObject<{
1153
+ quality: z.ZodObject<{
1154
+ providerCount: z.ZodNumber;
1155
+ targetCount: z.ZodNumber;
1156
+ passedHardGates: z.ZodNumber;
1157
+ failedHardGates: z.ZodNumber;
1158
+ hardErrors: z.ZodNumber;
1159
+ passRate: z.ZodNullable<z.ZodNumber>;
1160
+ finalScoreMean: z.ZodNullable<z.ZodNumber>;
1161
+ finalScoreMedian: z.ZodNullable<z.ZodNumber>;
1162
+ }, "strip", z.ZodTypeAny, {
1163
+ targetCount: number;
1164
+ hardErrors: number;
1165
+ passedHardGates: number;
1166
+ failedHardGates: number;
1167
+ passRate: number | null;
1168
+ finalScoreMean: number | null;
1169
+ finalScoreMedian: number | null;
1170
+ providerCount: number;
1171
+ }, {
1172
+ targetCount: number;
1173
+ hardErrors: number;
1174
+ passedHardGates: number;
1175
+ failedHardGates: number;
1176
+ passRate: number | null;
1177
+ finalScoreMean: number | null;
1178
+ finalScoreMedian: number | null;
1179
+ providerCount: number;
1180
+ }>;
1181
+ features: z.ZodObject<{
1182
+ coarseToFineEnabledJobs: z.ZodNumber;
1183
+ coarseToFinePromotedCandidates: z.ZodNumber;
1184
+ coarseToFineDiscardedCandidates: z.ZodNumber;
1185
+ agenticRetryAttemptedJobs: z.ZodNumber;
1186
+ agenticRetryAttempts: z.ZodNumber;
1187
+ packInvariantErrors: z.ZodNumber;
1188
+ packInvariantWarnings: z.ZodNumber;
1189
+ consistencyOutlierTargets: z.ZodNumber;
1190
+ stylePolicyErrors: z.ZodNumber;
1191
+ spritesheetIssueCount: z.ZodNumber;
1192
+ }, "strip", z.ZodTypeAny, {
1193
+ coarseToFineEnabledJobs: number;
1194
+ coarseToFinePromotedCandidates: number;
1195
+ coarseToFineDiscardedCandidates: number;
1196
+ agenticRetryAttemptedJobs: number;
1197
+ agenticRetryAttempts: number;
1198
+ packInvariantErrors: number;
1199
+ packInvariantWarnings: number;
1200
+ consistencyOutlierTargets: number;
1201
+ stylePolicyErrors: number;
1202
+ spritesheetIssueCount: number;
1203
+ }, {
1204
+ coarseToFineEnabledJobs: number;
1205
+ coarseToFinePromotedCandidates: number;
1206
+ coarseToFineDiscardedCandidates: number;
1207
+ agenticRetryAttemptedJobs: number;
1208
+ agenticRetryAttempts: number;
1209
+ packInvariantErrors: number;
1210
+ packInvariantWarnings: number;
1211
+ consistencyOutlierTargets: number;
1212
+ stylePolicyErrors: number;
1213
+ spritesheetIssueCount: number;
1214
+ }>;
1215
+ }, "strip", z.ZodTypeAny, {
1216
+ quality: {
1217
+ targetCount: number;
1218
+ hardErrors: number;
1219
+ passedHardGates: number;
1220
+ failedHardGates: number;
1221
+ passRate: number | null;
1222
+ finalScoreMean: number | null;
1223
+ finalScoreMedian: number | null;
1224
+ providerCount: number;
1225
+ };
1226
+ features: {
1227
+ coarseToFineEnabledJobs: number;
1228
+ coarseToFinePromotedCandidates: number;
1229
+ coarseToFineDiscardedCandidates: number;
1230
+ agenticRetryAttemptedJobs: number;
1231
+ agenticRetryAttempts: number;
1232
+ packInvariantErrors: number;
1233
+ packInvariantWarnings: number;
1234
+ consistencyOutlierTargets: number;
1235
+ stylePolicyErrors: number;
1236
+ spritesheetIssueCount: number;
1237
+ };
1238
+ }, {
1239
+ quality: {
1240
+ targetCount: number;
1241
+ hardErrors: number;
1242
+ passedHardGates: number;
1243
+ failedHardGates: number;
1244
+ passRate: number | null;
1245
+ finalScoreMean: number | null;
1246
+ finalScoreMedian: number | null;
1247
+ providerCount: number;
1248
+ };
1249
+ features: {
1250
+ coarseToFineEnabledJobs: number;
1251
+ coarseToFinePromotedCandidates: number;
1252
+ coarseToFineDiscardedCandidates: number;
1253
+ agenticRetryAttemptedJobs: number;
1254
+ agenticRetryAttempts: number;
1255
+ packInvariantErrors: number;
1256
+ packInvariantWarnings: number;
1257
+ consistencyOutlierTargets: number;
1258
+ stylePolicyErrors: number;
1259
+ spritesheetIssueCount: number;
1260
+ };
1261
+ }>;
1262
+ comparisons: z.ZodObject<{
1263
+ providerPairs: z.ZodDefault<z.ZodArray<z.ZodObject<{
1264
+ id: z.ZodString;
1265
+ leftId: z.ZodString;
1266
+ rightId: z.ZodString;
1267
+ finalScoreMeanDelta: z.ZodNullable<z.ZodNumber>;
1268
+ passRateDelta: z.ZodNullable<z.ZodNumber>;
1269
+ hardErrorDelta: z.ZodNumber;
1270
+ }, "strip", z.ZodTypeAny, {
1271
+ id: string;
1272
+ leftId: string;
1273
+ rightId: string;
1274
+ finalScoreMeanDelta: number | null;
1275
+ passRateDelta: number | null;
1276
+ hardErrorDelta: number;
1277
+ }, {
1278
+ id: string;
1279
+ leftId: string;
1280
+ rightId: string;
1281
+ finalScoreMeanDelta: number | null;
1282
+ passRateDelta: number | null;
1283
+ hardErrorDelta: number;
1284
+ }>, "many">>;
1285
+ baselineDelta: z.ZodOptional<z.ZodObject<{
1286
+ baselineVersion: z.ZodString;
1287
+ finalScoreMeanDelta: z.ZodNullable<z.ZodNumber>;
1288
+ passRateDelta: z.ZodNullable<z.ZodNumber>;
1289
+ hardErrorDelta: z.ZodNumber;
1290
+ }, "strip", z.ZodTypeAny, {
1291
+ baselineVersion: string;
1292
+ finalScoreMeanDelta: number | null;
1293
+ passRateDelta: number | null;
1294
+ hardErrorDelta: number;
1295
+ }, {
1296
+ baselineVersion: string;
1297
+ finalScoreMeanDelta: number | null;
1298
+ passRateDelta: number | null;
1299
+ hardErrorDelta: number;
1300
+ }>>;
1301
+ }, "strip", z.ZodTypeAny, {
1302
+ providerPairs: {
1303
+ id: string;
1304
+ leftId: string;
1305
+ rightId: string;
1306
+ finalScoreMeanDelta: number | null;
1307
+ passRateDelta: number | null;
1308
+ hardErrorDelta: number;
1309
+ }[];
1310
+ baselineDelta?: {
1311
+ baselineVersion: string;
1312
+ finalScoreMeanDelta: number | null;
1313
+ passRateDelta: number | null;
1314
+ hardErrorDelta: number;
1315
+ } | undefined;
1316
+ }, {
1317
+ providerPairs?: {
1318
+ id: string;
1319
+ leftId: string;
1320
+ rightId: string;
1321
+ finalScoreMeanDelta: number | null;
1322
+ passRateDelta: number | null;
1323
+ hardErrorDelta: number;
1324
+ }[] | undefined;
1325
+ baselineDelta?: {
1326
+ baselineVersion: string;
1327
+ finalScoreMeanDelta: number | null;
1328
+ passRateDelta: number | null;
1329
+ hardErrorDelta: number;
1330
+ } | undefined;
1331
+ }>;
1332
+ scenarios: z.ZodArray<z.ZodObject<{
1333
+ id: z.ZodString;
1334
+ title: z.ZodString;
1335
+ panelFile: z.ZodString;
1336
+ summary: z.ZodString;
1337
+ values: z.ZodArray<z.ZodObject<{
1338
+ label: z.ZodString;
1339
+ value: z.ZodString;
1340
+ }, "strip", z.ZodTypeAny, {
1341
+ value: string;
1342
+ label: string;
1343
+ }, {
1344
+ value: string;
1345
+ label: string;
1346
+ }>, "many">;
1347
+ }, "strip", z.ZodTypeAny, {
1348
+ values: {
1349
+ value: string;
1350
+ label: string;
1351
+ }[];
1352
+ summary: string;
1353
+ id: string;
1354
+ title: string;
1355
+ panelFile: string;
1356
+ }, {
1357
+ values: {
1358
+ value: string;
1359
+ label: string;
1360
+ }[];
1361
+ summary: string;
1362
+ id: string;
1363
+ title: string;
1364
+ panelFile: string;
1365
+ }>, "many">;
1366
+ }, "strip", z.ZodTypeAny, {
1367
+ comparisons: {
1368
+ providerPairs: {
1369
+ id: string;
1370
+ leftId: string;
1371
+ rightId: string;
1372
+ finalScoreMeanDelta: number | null;
1373
+ passRateDelta: number | null;
1374
+ hardErrorDelta: number;
1375
+ }[];
1376
+ baselineDelta?: {
1377
+ baselineVersion: string;
1378
+ finalScoreMeanDelta: number | null;
1379
+ passRateDelta: number | null;
1380
+ hardErrorDelta: number;
1381
+ } | undefined;
1382
+ };
1383
+ generatedAt: string;
1384
+ providers: {
1385
+ quality: {
1386
+ targetCount: number;
1387
+ hardErrors: number;
1388
+ passedHardGates: number;
1389
+ failedHardGates: number;
1390
+ passRate: number | null;
1391
+ finalScoreMean: number | null;
1392
+ finalScoreMedian: number | null;
1393
+ candidateScoreMean: number | null;
1394
+ };
1395
+ provider: string;
1396
+ id: string;
1397
+ generatedAt: string;
1398
+ manifestPath: string;
1399
+ outDir: string;
1400
+ label: string;
1401
+ features: {
1402
+ coarseToFine: {
1403
+ enabledJobs: number;
1404
+ promotedCandidates: number;
1405
+ discardedCandidates: number;
1406
+ skippedJobs: number;
1407
+ };
1408
+ agenticRetry: {
1409
+ enabledJobs: number;
1410
+ attemptedJobs: number;
1411
+ attemptedTotal: number;
1412
+ succeededJobs: number;
1413
+ triggerCodes: Record<string, number>;
1414
+ };
1415
+ packInvariants: {
1416
+ warnings: number;
1417
+ errors: number;
1418
+ issueCodes: string[];
1419
+ };
1420
+ consistencyOutliers: {
1421
+ maxScore: number | null;
1422
+ groups: number;
1423
+ totalPenalty: number;
1424
+ warningTargets: number;
1425
+ outlierTargets: number;
1426
+ };
1427
+ stylePolicy: {
1428
+ warningCount: number;
1429
+ errorCount: number;
1430
+ codes: string[];
1431
+ };
1432
+ spritesheetDrift: {
1433
+ maxSilhouetteDrift: number | null;
1434
+ maxAnchorDrift: number | null;
1435
+ maxIdentityDrift: number | null;
1436
+ maxPoseDrift: number | null;
1437
+ issueCount: number;
1438
+ animationsMeasured: number;
1439
+ };
1440
+ };
1441
+ }[];
1442
+ scenarios: {
1443
+ values: {
1444
+ value: string;
1445
+ label: string;
1446
+ }[];
1447
+ summary: string;
1448
+ id: string;
1449
+ title: string;
1450
+ panelFile: string;
1451
+ }[];
1452
+ schemaVersion: "release-showcase-v2";
1453
+ release: {
1454
+ version: string;
1455
+ codename: string;
1456
+ comparisonPolicy: string;
1457
+ };
1458
+ aggregate: {
1459
+ quality: {
1460
+ targetCount: number;
1461
+ hardErrors: number;
1462
+ passedHardGates: number;
1463
+ failedHardGates: number;
1464
+ passRate: number | null;
1465
+ finalScoreMean: number | null;
1466
+ finalScoreMedian: number | null;
1467
+ providerCount: number;
1468
+ };
1469
+ features: {
1470
+ coarseToFineEnabledJobs: number;
1471
+ coarseToFinePromotedCandidates: number;
1472
+ coarseToFineDiscardedCandidates: number;
1473
+ agenticRetryAttemptedJobs: number;
1474
+ agenticRetryAttempts: number;
1475
+ packInvariantErrors: number;
1476
+ packInvariantWarnings: number;
1477
+ consistencyOutlierTargets: number;
1478
+ stylePolicyErrors: number;
1479
+ spritesheetIssueCount: number;
1480
+ };
1481
+ };
1482
+ baseline?: {
1483
+ version: string;
1484
+ available: boolean;
1485
+ evidencePath?: string | undefined;
1486
+ } | undefined;
1487
+ }, {
1488
+ comparisons: {
1489
+ providerPairs?: {
1490
+ id: string;
1491
+ leftId: string;
1492
+ rightId: string;
1493
+ finalScoreMeanDelta: number | null;
1494
+ passRateDelta: number | null;
1495
+ hardErrorDelta: number;
1496
+ }[] | undefined;
1497
+ baselineDelta?: {
1498
+ baselineVersion: string;
1499
+ finalScoreMeanDelta: number | null;
1500
+ passRateDelta: number | null;
1501
+ hardErrorDelta: number;
1502
+ } | undefined;
1503
+ };
1504
+ generatedAt: string;
1505
+ providers: {
1506
+ quality: {
1507
+ targetCount: number;
1508
+ hardErrors: number;
1509
+ passedHardGates: number;
1510
+ failedHardGates: number;
1511
+ passRate: number | null;
1512
+ finalScoreMean: number | null;
1513
+ finalScoreMedian: number | null;
1514
+ candidateScoreMean: number | null;
1515
+ };
1516
+ provider: string;
1517
+ id: string;
1518
+ generatedAt: string;
1519
+ manifestPath: string;
1520
+ outDir: string;
1521
+ label: string;
1522
+ features: {
1523
+ coarseToFine: {
1524
+ enabledJobs: number;
1525
+ promotedCandidates: number;
1526
+ discardedCandidates: number;
1527
+ skippedJobs: number;
1528
+ };
1529
+ agenticRetry: {
1530
+ enabledJobs: number;
1531
+ attemptedJobs: number;
1532
+ attemptedTotal: number;
1533
+ succeededJobs: number;
1534
+ triggerCodes: Record<string, number>;
1535
+ };
1536
+ packInvariants: {
1537
+ warnings: number;
1538
+ errors: number;
1539
+ issueCodes: string[];
1540
+ };
1541
+ consistencyOutliers: {
1542
+ maxScore: number | null;
1543
+ groups: number;
1544
+ totalPenalty: number;
1545
+ warningTargets: number;
1546
+ outlierTargets: number;
1547
+ };
1548
+ stylePolicy: {
1549
+ warningCount: number;
1550
+ errorCount: number;
1551
+ codes: string[];
1552
+ };
1553
+ spritesheetDrift: {
1554
+ maxSilhouetteDrift: number | null;
1555
+ maxAnchorDrift: number | null;
1556
+ maxIdentityDrift: number | null;
1557
+ maxPoseDrift: number | null;
1558
+ issueCount: number;
1559
+ animationsMeasured: number;
1560
+ };
1561
+ };
1562
+ }[];
1563
+ scenarios: {
1564
+ values: {
1565
+ value: string;
1566
+ label: string;
1567
+ }[];
1568
+ summary: string;
1569
+ id: string;
1570
+ title: string;
1571
+ panelFile: string;
1572
+ }[];
1573
+ schemaVersion: "release-showcase-v2";
1574
+ release: {
1575
+ version: string;
1576
+ codename: string;
1577
+ comparisonPolicy: string;
1578
+ };
1579
+ aggregate: {
1580
+ quality: {
1581
+ targetCount: number;
1582
+ hardErrors: number;
1583
+ passedHardGates: number;
1584
+ failedHardGates: number;
1585
+ passRate: number | null;
1586
+ finalScoreMean: number | null;
1587
+ finalScoreMedian: number | null;
1588
+ providerCount: number;
1589
+ };
1590
+ features: {
1591
+ coarseToFineEnabledJobs: number;
1592
+ coarseToFinePromotedCandidates: number;
1593
+ coarseToFineDiscardedCandidates: number;
1594
+ agenticRetryAttemptedJobs: number;
1595
+ agenticRetryAttempts: number;
1596
+ packInvariantErrors: number;
1597
+ packInvariantWarnings: number;
1598
+ consistencyOutlierTargets: number;
1599
+ stylePolicyErrors: number;
1600
+ spritesheetIssueCount: number;
1601
+ };
1602
+ };
1603
+ baseline?: {
1604
+ version: string;
1605
+ available: boolean;
1606
+ evidencePath?: string | undefined;
1607
+ } | undefined;
1608
+ }>;
1609
+ export type ReleaseEvidenceReport = z.infer<typeof ReleaseEvidenceReportSchema>;
1610
+ /** Read v1 or v2 reports, normalizing v1 to v2. */
1611
+ export declare function normalizeReportSchema(raw: unknown): unknown;