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,4031 @@
1
+ import { z } from "zod";
2
+ declare const stageArtifactSchemas: {
3
+ readonly "targets-index": z.ZodObject<{
4
+ generatedAt: z.ZodOptional<z.ZodString>;
5
+ manifestPath: z.ZodOptional<z.ZodString>;
6
+ targets: z.ZodArray<z.ZodObject<{
7
+ id: z.ZodString;
8
+ kind: z.ZodOptional<z.ZodString>;
9
+ out: z.ZodString;
10
+ templateId: z.ZodOptional<z.ZodString>;
11
+ dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
12
+ styleReferenceFrom: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
13
+ atlasGroup: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNull]>>;
14
+ styleKitId: z.ZodOptional<z.ZodString>;
15
+ styleReferenceImages: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
16
+ loraPath: z.ZodOptional<z.ZodString>;
17
+ loraStrength: z.ZodOptional<z.ZodNumber>;
18
+ visualStylePolicy: z.ZodOptional<z.ZodObject<{
19
+ lineContrastMin: z.ZodOptional<z.ZodNumber>;
20
+ shadingBandCountMax: z.ZodOptional<z.ZodNumber>;
21
+ uiRectilinearityMin: z.ZodOptional<z.ZodNumber>;
22
+ }, "strip", z.ZodTypeAny, {
23
+ lineContrastMin?: number | undefined;
24
+ shadingBandCountMax?: number | undefined;
25
+ uiRectilinearityMin?: number | undefined;
26
+ }, {
27
+ lineContrastMin?: number | undefined;
28
+ shadingBandCountMax?: number | undefined;
29
+ uiRectilinearityMin?: number | undefined;
30
+ }>>;
31
+ consistencyGroup: z.ZodOptional<z.ZodString>;
32
+ consistencyGroupScoring: z.ZodOptional<z.ZodObject<{
33
+ warningThreshold: z.ZodOptional<z.ZodNumber>;
34
+ penaltyThreshold: z.ZodOptional<z.ZodNumber>;
35
+ penaltyWeight: z.ZodOptional<z.ZodNumber>;
36
+ }, "strip", z.ZodTypeAny, {
37
+ warningThreshold?: number | undefined;
38
+ penaltyThreshold?: number | undefined;
39
+ penaltyWeight?: number | undefined;
40
+ }, {
41
+ warningThreshold?: number | undefined;
42
+ penaltyThreshold?: number | undefined;
43
+ penaltyWeight?: number | undefined;
44
+ }>>;
45
+ generationMode: z.ZodOptional<z.ZodEnum<["text", "edit-first"]>>;
46
+ evaluationProfileId: z.ZodOptional<z.ZodString>;
47
+ scoringProfile: z.ZodOptional<z.ZodString>;
48
+ controlImage: z.ZodOptional<z.ZodString>;
49
+ controlMode: z.ZodOptional<z.ZodEnum<["canny", "depth", "openpose"]>>;
50
+ facing: z.ZodOptional<z.ZodEnum<["left", "right"]>>;
51
+ scoreWeights: z.ZodOptional<z.ZodObject<{
52
+ readability: z.ZodOptional<z.ZodNumber>;
53
+ fileSize: z.ZodOptional<z.ZodNumber>;
54
+ consistency: z.ZodOptional<z.ZodNumber>;
55
+ clip: z.ZodOptional<z.ZodNumber>;
56
+ lpips: z.ZodOptional<z.ZodNumber>;
57
+ ssim: z.ZodOptional<z.ZodNumber>;
58
+ }, "strip", z.ZodTypeAny, {
59
+ clip?: number | undefined;
60
+ lpips?: number | undefined;
61
+ ssim?: number | undefined;
62
+ readability?: number | undefined;
63
+ fileSize?: number | undefined;
64
+ consistency?: number | undefined;
65
+ }, {
66
+ clip?: number | undefined;
67
+ lpips?: number | undefined;
68
+ ssim?: number | undefined;
69
+ readability?: number | undefined;
70
+ fileSize?: number | undefined;
71
+ consistency?: number | undefined;
72
+ }>>;
73
+ tileable: z.ZodOptional<z.ZodBoolean>;
74
+ seamThreshold: z.ZodOptional<z.ZodNumber>;
75
+ seamStripPx: z.ZodOptional<z.ZodNumber>;
76
+ alphaHaloRiskMax: z.ZodOptional<z.ZodNumber>;
77
+ alphaStrayNoiseMax: z.ZodOptional<z.ZodNumber>;
78
+ alphaEdgeSharpnessMin: z.ZodOptional<z.ZodNumber>;
79
+ mattingHiddenRgbLeakMax: z.ZodOptional<z.ZodNumber>;
80
+ mattingMaskConsistencyMin: z.ZodOptional<z.ZodNumber>;
81
+ mattingSemiTransparencyRatioMax: z.ZodOptional<z.ZodNumber>;
82
+ packTextureBudgetMB: z.ZodOptional<z.ZodNumber>;
83
+ spritesheetSilhouetteDriftMax: z.ZodOptional<z.ZodNumber>;
84
+ spritesheetAnchorDriftMax: z.ZodOptional<z.ZodNumber>;
85
+ spritesheetIdentityDriftMax: z.ZodOptional<z.ZodNumber>;
86
+ spritesheetPoseDriftMax: z.ZodOptional<z.ZodNumber>;
87
+ spritesheetWalkLowerBodyMotionMin: z.ZodOptional<z.ZodNumber>;
88
+ spritesheetWalkFootMotionMin: z.ZodOptional<z.ZodNumber>;
89
+ spritesheetWalkFootToUpperMotionRatioMin: z.ZodOptional<z.ZodNumber>;
90
+ seamHeal: z.ZodOptional<z.ZodObject<{
91
+ enabled: z.ZodOptional<z.ZodBoolean>;
92
+ stripPx: z.ZodOptional<z.ZodNumber>;
93
+ strength: z.ZodOptional<z.ZodNumber>;
94
+ }, "strip", z.ZodTypeAny, {
95
+ enabled?: boolean | undefined;
96
+ stripPx?: number | undefined;
97
+ strength?: number | undefined;
98
+ }, {
99
+ enabled?: boolean | undefined;
100
+ stripPx?: number | undefined;
101
+ strength?: number | undefined;
102
+ }>>;
103
+ wrapGrid: z.ZodOptional<z.ZodObject<{
104
+ columns: z.ZodNumber;
105
+ rows: z.ZodNumber;
106
+ seamThreshold: z.ZodOptional<z.ZodNumber>;
107
+ seamStripPx: z.ZodOptional<z.ZodNumber>;
108
+ topology: z.ZodOptional<z.ZodObject<{
109
+ mode: z.ZodEnum<["self", "one-to-one", "many-to-many"]>;
110
+ maxMismatchRatio: z.ZodOptional<z.ZodNumber>;
111
+ colorTolerance: z.ZodOptional<z.ZodNumber>;
112
+ }, "strip", z.ZodTypeAny, {
113
+ mode: "self" | "one-to-one" | "many-to-many";
114
+ maxMismatchRatio?: number | undefined;
115
+ colorTolerance?: number | undefined;
116
+ }, {
117
+ mode: "self" | "one-to-one" | "many-to-many";
118
+ maxMismatchRatio?: number | undefined;
119
+ colorTolerance?: number | undefined;
120
+ }>>;
121
+ }, "strip", z.ZodTypeAny, {
122
+ columns: number;
123
+ rows: number;
124
+ seamStripPx?: number | undefined;
125
+ seamThreshold?: number | undefined;
126
+ topology?: {
127
+ mode: "self" | "one-to-one" | "many-to-many";
128
+ maxMismatchRatio?: number | undefined;
129
+ colorTolerance?: number | undefined;
130
+ } | undefined;
131
+ }, {
132
+ columns: number;
133
+ rows: number;
134
+ seamStripPx?: number | undefined;
135
+ seamThreshold?: number | undefined;
136
+ topology?: {
137
+ mode: "self" | "one-to-one" | "many-to-many";
138
+ maxMismatchRatio?: number | undefined;
139
+ colorTolerance?: number | undefined;
140
+ } | undefined;
141
+ }>>;
142
+ palette: z.ZodOptional<z.ZodObject<{
143
+ mode: z.ZodEnum<["exact", "max-colors"]>;
144
+ colors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
145
+ maxColors: z.ZodOptional<z.ZodNumber>;
146
+ dither: z.ZodOptional<z.ZodNumber>;
147
+ strict: z.ZodOptional<z.ZodBoolean>;
148
+ }, "strip", z.ZodTypeAny, {
149
+ mode: "exact" | "max-colors";
150
+ strict?: boolean | undefined;
151
+ colors?: string[] | undefined;
152
+ dither?: number | undefined;
153
+ maxColors?: number | undefined;
154
+ }, {
155
+ mode: "exact" | "max-colors";
156
+ strict?: boolean | undefined;
157
+ colors?: string[] | undefined;
158
+ dither?: number | undefined;
159
+ maxColors?: number | undefined;
160
+ }>>;
161
+ generationDisabled: z.ZodOptional<z.ZodBoolean>;
162
+ catalogDisabled: z.ZodOptional<z.ZodBoolean>;
163
+ spritesheet: z.ZodOptional<z.ZodObject<{
164
+ sheetTargetId: z.ZodString;
165
+ isSheet: z.ZodOptional<z.ZodBoolean>;
166
+ animations: z.ZodOptional<z.ZodArray<z.ZodObject<{
167
+ name: z.ZodString;
168
+ count: z.ZodNumber;
169
+ fps: z.ZodOptional<z.ZodNumber>;
170
+ loop: z.ZodOptional<z.ZodBoolean>;
171
+ facing: z.ZodOptional<z.ZodEnum<["left", "right"]>>;
172
+ pivot: z.ZodOptional<z.ZodObject<{
173
+ x: z.ZodNumber;
174
+ y: z.ZodNumber;
175
+ }, "strip", z.ZodTypeAny, {
176
+ y: number;
177
+ x: number;
178
+ }, {
179
+ y: number;
180
+ x: number;
181
+ }>>;
182
+ }, "strip", z.ZodTypeAny, {
183
+ name: string;
184
+ count: number;
185
+ facing?: "left" | "right" | undefined;
186
+ fps?: number | undefined;
187
+ loop?: boolean | undefined;
188
+ pivot?: {
189
+ y: number;
190
+ x: number;
191
+ } | undefined;
192
+ }, {
193
+ name: string;
194
+ count: number;
195
+ facing?: "left" | "right" | undefined;
196
+ fps?: number | undefined;
197
+ loop?: boolean | undefined;
198
+ pivot?: {
199
+ y: number;
200
+ x: number;
201
+ } | undefined;
202
+ }>, "many">>;
203
+ animationName: z.ZodOptional<z.ZodString>;
204
+ facing: z.ZodOptional<z.ZodEnum<["left", "right"]>>;
205
+ frameIndex: z.ZodOptional<z.ZodNumber>;
206
+ frameCount: z.ZodOptional<z.ZodNumber>;
207
+ fps: z.ZodOptional<z.ZodNumber>;
208
+ loop: z.ZodOptional<z.ZodBoolean>;
209
+ pivot: z.ZodOptional<z.ZodObject<{
210
+ x: z.ZodNumber;
211
+ y: z.ZodNumber;
212
+ }, "strip", z.ZodTypeAny, {
213
+ y: number;
214
+ x: number;
215
+ }, {
216
+ y: number;
217
+ x: number;
218
+ }>>;
219
+ }, "strip", z.ZodTypeAny, {
220
+ sheetTargetId: string;
221
+ animationName?: string | undefined;
222
+ facing?: "left" | "right" | undefined;
223
+ fps?: number | undefined;
224
+ loop?: boolean | undefined;
225
+ pivot?: {
226
+ y: number;
227
+ x: number;
228
+ } | undefined;
229
+ animations?: {
230
+ name: string;
231
+ count: number;
232
+ facing?: "left" | "right" | undefined;
233
+ fps?: number | undefined;
234
+ loop?: boolean | undefined;
235
+ pivot?: {
236
+ y: number;
237
+ x: number;
238
+ } | undefined;
239
+ }[] | undefined;
240
+ frameIndex?: number | undefined;
241
+ frameCount?: number | undefined;
242
+ isSheet?: boolean | undefined;
243
+ }, {
244
+ sheetTargetId: string;
245
+ animationName?: string | undefined;
246
+ facing?: "left" | "right" | undefined;
247
+ fps?: number | undefined;
248
+ loop?: boolean | undefined;
249
+ pivot?: {
250
+ y: number;
251
+ x: number;
252
+ } | undefined;
253
+ animations?: {
254
+ name: string;
255
+ count: number;
256
+ facing?: "left" | "right" | undefined;
257
+ fps?: number | undefined;
258
+ loop?: boolean | undefined;
259
+ pivot?: {
260
+ y: number;
261
+ x: number;
262
+ } | undefined;
263
+ }[] | undefined;
264
+ frameIndex?: number | undefined;
265
+ frameCount?: number | undefined;
266
+ isSheet?: boolean | undefined;
267
+ }>>;
268
+ acceptance: z.ZodOptional<z.ZodObject<{
269
+ size: z.ZodOptional<z.ZodString>;
270
+ alpha: z.ZodOptional<z.ZodBoolean>;
271
+ maxFileSizeKB: z.ZodOptional<z.ZodNumber>;
272
+ }, "strip", z.ZodTypeAny, {
273
+ size?: string | undefined;
274
+ alpha?: boolean | undefined;
275
+ maxFileSizeKB?: number | undefined;
276
+ }, {
277
+ size?: string | undefined;
278
+ alpha?: boolean | undefined;
279
+ maxFileSizeKB?: number | undefined;
280
+ }>>;
281
+ runtimeSpec: z.ZodOptional<z.ZodObject<{
282
+ alphaRequired: z.ZodOptional<z.ZodBoolean>;
283
+ previewWidth: z.ZodOptional<z.ZodNumber>;
284
+ previewHeight: z.ZodOptional<z.ZodNumber>;
285
+ anchorX: z.ZodOptional<z.ZodNumber>;
286
+ anchorY: z.ZodOptional<z.ZodNumber>;
287
+ }, "strip", z.ZodTypeAny, {
288
+ anchorX?: number | undefined;
289
+ anchorY?: number | undefined;
290
+ alphaRequired?: boolean | undefined;
291
+ previewWidth?: number | undefined;
292
+ previewHeight?: number | undefined;
293
+ }, {
294
+ anchorX?: number | undefined;
295
+ anchorY?: number | undefined;
296
+ alphaRequired?: boolean | undefined;
297
+ previewWidth?: number | undefined;
298
+ previewHeight?: number | undefined;
299
+ }>>;
300
+ promptSpec: z.ZodObject<{
301
+ primary: z.ZodString;
302
+ useCase: z.ZodOptional<z.ZodString>;
303
+ stylePreset: z.ZodOptional<z.ZodString>;
304
+ scene: z.ZodOptional<z.ZodString>;
305
+ subject: z.ZodOptional<z.ZodString>;
306
+ style: z.ZodOptional<z.ZodString>;
307
+ composition: z.ZodOptional<z.ZodString>;
308
+ lighting: z.ZodOptional<z.ZodString>;
309
+ palette: z.ZodOptional<z.ZodString>;
310
+ materials: z.ZodOptional<z.ZodString>;
311
+ constraints: z.ZodOptional<z.ZodString>;
312
+ negative: z.ZodOptional<z.ZodString>;
313
+ }, "strip", z.ZodTypeAny, {
314
+ primary: string;
315
+ stylePreset?: string | undefined;
316
+ useCase?: string | undefined;
317
+ scene?: string | undefined;
318
+ subject?: string | undefined;
319
+ style?: string | undefined;
320
+ composition?: string | undefined;
321
+ lighting?: string | undefined;
322
+ palette?: string | undefined;
323
+ materials?: string | undefined;
324
+ constraints?: string | undefined;
325
+ negative?: string | undefined;
326
+ }, {
327
+ primary: string;
328
+ stylePreset?: string | undefined;
329
+ useCase?: string | undefined;
330
+ scene?: string | undefined;
331
+ subject?: string | undefined;
332
+ style?: string | undefined;
333
+ composition?: string | undefined;
334
+ lighting?: string | undefined;
335
+ palette?: string | undefined;
336
+ materials?: string | undefined;
337
+ constraints?: string | undefined;
338
+ negative?: string | undefined;
339
+ }>;
340
+ generationPolicy: z.ZodOptional<z.ZodObject<{
341
+ size: z.ZodString;
342
+ quality: z.ZodString;
343
+ draftQuality: z.ZodOptional<z.ZodString>;
344
+ finalQuality: z.ZodOptional<z.ZodString>;
345
+ background: z.ZodString;
346
+ outputFormat: z.ZodEnum<["png", "jpeg", "webp"]>;
347
+ highQuality: z.ZodOptional<z.ZodBoolean>;
348
+ hiresFix: z.ZodOptional<z.ZodObject<{
349
+ enabled: z.ZodOptional<z.ZodBoolean>;
350
+ upscale: z.ZodOptional<z.ZodNumber>;
351
+ denoiseStrength: z.ZodOptional<z.ZodNumber>;
352
+ }, "strip", z.ZodTypeAny, {
353
+ enabled?: boolean | undefined;
354
+ upscale?: number | undefined;
355
+ denoiseStrength?: number | undefined;
356
+ }, {
357
+ enabled?: boolean | undefined;
358
+ upscale?: number | undefined;
359
+ denoiseStrength?: number | undefined;
360
+ }>>;
361
+ candidates: z.ZodNumber;
362
+ maxRetries: z.ZodNumber;
363
+ fallbackProviders: z.ZodArray<z.ZodEnum<["openai", "nano", "local"]>, "many">;
364
+ providerConcurrency: z.ZodOptional<z.ZodNumber>;
365
+ rateLimitPerMinute: z.ZodOptional<z.ZodNumber>;
366
+ vlmGate: z.ZodOptional<z.ZodObject<{
367
+ threshold: z.ZodOptional<z.ZodNumber>;
368
+ rubric: z.ZodOptional<z.ZodString>;
369
+ }, "strip", z.ZodTypeAny, {
370
+ threshold?: number | undefined;
371
+ rubric?: string | undefined;
372
+ }, {
373
+ threshold?: number | undefined;
374
+ rubric?: string | undefined;
375
+ }>>;
376
+ coarseToFine: z.ZodOptional<z.ZodObject<{
377
+ minDraftScore: z.ZodOptional<z.ZodNumber>;
378
+ } & {
379
+ enabled: z.ZodBoolean;
380
+ promoteTopK: z.ZodNumber;
381
+ requireDraftAcceptance: z.ZodBoolean;
382
+ }, "strip", z.ZodTypeAny, {
383
+ enabled: boolean;
384
+ promoteTopK: number;
385
+ requireDraftAcceptance: boolean;
386
+ minDraftScore?: number | undefined;
387
+ }, {
388
+ enabled: boolean;
389
+ promoteTopK: number;
390
+ requireDraftAcceptance: boolean;
391
+ minDraftScore?: number | undefined;
392
+ }>>;
393
+ agenticRetry: z.ZodOptional<z.ZodObject<{} & {
394
+ enabled: z.ZodBoolean;
395
+ maxRetries: z.ZodNumber;
396
+ }, "strip", z.ZodTypeAny, {
397
+ maxRetries: number;
398
+ enabled: boolean;
399
+ }, {
400
+ maxRetries: number;
401
+ enabled: boolean;
402
+ }>>;
403
+ }, "strip", z.ZodTypeAny, {
404
+ background: string;
405
+ maxRetries: number;
406
+ size: string;
407
+ quality: string;
408
+ outputFormat: "png" | "jpeg" | "webp";
409
+ candidates: number;
410
+ fallbackProviders: ("openai" | "nano" | "local")[];
411
+ hiresFix?: {
412
+ enabled?: boolean | undefined;
413
+ upscale?: number | undefined;
414
+ denoiseStrength?: number | undefined;
415
+ } | undefined;
416
+ draftQuality?: string | undefined;
417
+ finalQuality?: string | undefined;
418
+ highQuality?: boolean | undefined;
419
+ coarseToFine?: {
420
+ enabled: boolean;
421
+ promoteTopK: number;
422
+ requireDraftAcceptance: boolean;
423
+ minDraftScore?: number | undefined;
424
+ } | undefined;
425
+ agenticRetry?: {
426
+ maxRetries: number;
427
+ enabled: boolean;
428
+ } | undefined;
429
+ providerConcurrency?: number | undefined;
430
+ rateLimitPerMinute?: number | undefined;
431
+ vlmGate?: {
432
+ threshold?: number | undefined;
433
+ rubric?: string | undefined;
434
+ } | undefined;
435
+ }, {
436
+ background: string;
437
+ maxRetries: number;
438
+ size: string;
439
+ quality: string;
440
+ outputFormat: "png" | "jpeg" | "webp";
441
+ candidates: number;
442
+ fallbackProviders: ("openai" | "nano" | "local")[];
443
+ hiresFix?: {
444
+ enabled?: boolean | undefined;
445
+ upscale?: number | undefined;
446
+ denoiseStrength?: number | undefined;
447
+ } | undefined;
448
+ draftQuality?: string | undefined;
449
+ finalQuality?: string | undefined;
450
+ highQuality?: boolean | undefined;
451
+ coarseToFine?: {
452
+ enabled: boolean;
453
+ promoteTopK: number;
454
+ requireDraftAcceptance: boolean;
455
+ minDraftScore?: number | undefined;
456
+ } | undefined;
457
+ agenticRetry?: {
458
+ maxRetries: number;
459
+ enabled: boolean;
460
+ } | undefined;
461
+ providerConcurrency?: number | undefined;
462
+ rateLimitPerMinute?: number | undefined;
463
+ vlmGate?: {
464
+ threshold?: number | undefined;
465
+ rubric?: string | undefined;
466
+ } | undefined;
467
+ }>>;
468
+ postProcess: z.ZodOptional<z.ZodObject<{
469
+ resizeTo: z.ZodOptional<z.ZodObject<{
470
+ width: z.ZodNumber;
471
+ height: z.ZodNumber;
472
+ }, "strip", z.ZodTypeAny, {
473
+ width: number;
474
+ height: number;
475
+ }, {
476
+ width: number;
477
+ height: number;
478
+ }>>;
479
+ algorithm: z.ZodOptional<z.ZodEnum<["nearest", "lanczos3"]>>;
480
+ stripMetadata: z.ZodOptional<z.ZodBoolean>;
481
+ pngPaletteColors: z.ZodOptional<z.ZodNumber>;
482
+ operations: z.ZodOptional<z.ZodObject<{
483
+ trim: z.ZodOptional<z.ZodObject<{
484
+ enabled: z.ZodOptional<z.ZodBoolean>;
485
+ threshold: z.ZodOptional<z.ZodNumber>;
486
+ }, "strip", z.ZodTypeAny, {
487
+ enabled?: boolean | undefined;
488
+ threshold?: number | undefined;
489
+ }, {
490
+ enabled?: boolean | undefined;
491
+ threshold?: number | undefined;
492
+ }>>;
493
+ pad: z.ZodOptional<z.ZodObject<{
494
+ pixels: z.ZodNumber;
495
+ extrude: z.ZodOptional<z.ZodBoolean>;
496
+ background: z.ZodOptional<z.ZodString>;
497
+ }, "strip", z.ZodTypeAny, {
498
+ pixels: number;
499
+ background?: string | undefined;
500
+ extrude?: boolean | undefined;
501
+ }, {
502
+ pixels: number;
503
+ background?: string | undefined;
504
+ extrude?: boolean | undefined;
505
+ }>>;
506
+ quantize: z.ZodOptional<z.ZodObject<{
507
+ colors: z.ZodNumber;
508
+ dither: z.ZodOptional<z.ZodNumber>;
509
+ }, "strip", z.ZodTypeAny, {
510
+ colors: number;
511
+ dither?: number | undefined;
512
+ }, {
513
+ colors: number;
514
+ dither?: number | undefined;
515
+ }>>;
516
+ outline: z.ZodOptional<z.ZodObject<{
517
+ size: z.ZodNumber;
518
+ color: z.ZodOptional<z.ZodString>;
519
+ }, "strip", z.ZodTypeAny, {
520
+ size: number;
521
+ color?: string | undefined;
522
+ }, {
523
+ size: number;
524
+ color?: string | undefined;
525
+ }>>;
526
+ resizeVariants: z.ZodOptional<z.ZodObject<{
527
+ variants: z.ZodArray<z.ZodObject<{
528
+ name: z.ZodString;
529
+ width: z.ZodNumber;
530
+ height: z.ZodNumber;
531
+ algorithm: z.ZodOptional<z.ZodEnum<["nearest", "lanczos3"]>>;
532
+ }, "strip", z.ZodTypeAny, {
533
+ width: number;
534
+ height: number;
535
+ name: string;
536
+ algorithm?: "nearest" | "lanczos3" | undefined;
537
+ }, {
538
+ width: number;
539
+ height: number;
540
+ name: string;
541
+ algorithm?: "nearest" | "lanczos3" | undefined;
542
+ }>, "many">;
543
+ }, "strip", z.ZodTypeAny, {
544
+ variants: {
545
+ width: number;
546
+ height: number;
547
+ name: string;
548
+ algorithm?: "nearest" | "lanczos3" | undefined;
549
+ }[];
550
+ }, {
551
+ variants: {
552
+ width: number;
553
+ height: number;
554
+ name: string;
555
+ algorithm?: "nearest" | "lanczos3" | undefined;
556
+ }[];
557
+ }>>;
558
+ pixelPerfect: z.ZodOptional<z.ZodObject<{
559
+ enabled: z.ZodOptional<z.ZodBoolean>;
560
+ scale: z.ZodOptional<z.ZodNumber>;
561
+ }, "strip", z.ZodTypeAny, {
562
+ enabled?: boolean | undefined;
563
+ scale?: number | undefined;
564
+ }, {
565
+ enabled?: boolean | undefined;
566
+ scale?: number | undefined;
567
+ }>>;
568
+ smartCrop: z.ZodOptional<z.ZodObject<{
569
+ enabled: z.ZodOptional<z.ZodBoolean>;
570
+ mode: z.ZodOptional<z.ZodEnum<["alpha-bounds", "center"]>>;
571
+ padding: z.ZodOptional<z.ZodNumber>;
572
+ }, "strip", z.ZodTypeAny, {
573
+ enabled?: boolean | undefined;
574
+ mode?: "alpha-bounds" | "center" | undefined;
575
+ padding?: number | undefined;
576
+ }, {
577
+ enabled?: boolean | undefined;
578
+ mode?: "alpha-bounds" | "center" | undefined;
579
+ padding?: number | undefined;
580
+ }>>;
581
+ emitVariants: z.ZodOptional<z.ZodObject<{
582
+ raw: z.ZodOptional<z.ZodBoolean>;
583
+ pixel: z.ZodOptional<z.ZodBoolean>;
584
+ styleRef: z.ZodOptional<z.ZodBoolean>;
585
+ layerColor: z.ZodOptional<z.ZodBoolean>;
586
+ layerMatte: z.ZodOptional<z.ZodBoolean>;
587
+ }, "strip", z.ZodTypeAny, {
588
+ raw?: boolean | undefined;
589
+ styleRef?: boolean | undefined;
590
+ layerColor?: boolean | undefined;
591
+ layerMatte?: boolean | undefined;
592
+ pixel?: boolean | undefined;
593
+ }, {
594
+ raw?: boolean | undefined;
595
+ styleRef?: boolean | undefined;
596
+ layerColor?: boolean | undefined;
597
+ layerMatte?: boolean | undefined;
598
+ pixel?: boolean | undefined;
599
+ }>>;
600
+ }, "strip", z.ZodTypeAny, {
601
+ trim?: {
602
+ enabled?: boolean | undefined;
603
+ threshold?: number | undefined;
604
+ } | undefined;
605
+ emitVariants?: {
606
+ raw?: boolean | undefined;
607
+ styleRef?: boolean | undefined;
608
+ layerColor?: boolean | undefined;
609
+ layerMatte?: boolean | undefined;
610
+ pixel?: boolean | undefined;
611
+ } | undefined;
612
+ pad?: {
613
+ pixels: number;
614
+ background?: string | undefined;
615
+ extrude?: boolean | undefined;
616
+ } | undefined;
617
+ quantize?: {
618
+ colors: number;
619
+ dither?: number | undefined;
620
+ } | undefined;
621
+ outline?: {
622
+ size: number;
623
+ color?: string | undefined;
624
+ } | undefined;
625
+ resizeVariants?: {
626
+ variants: {
627
+ width: number;
628
+ height: number;
629
+ name: string;
630
+ algorithm?: "nearest" | "lanczos3" | undefined;
631
+ }[];
632
+ } | undefined;
633
+ pixelPerfect?: {
634
+ enabled?: boolean | undefined;
635
+ scale?: number | undefined;
636
+ } | undefined;
637
+ smartCrop?: {
638
+ enabled?: boolean | undefined;
639
+ mode?: "alpha-bounds" | "center" | undefined;
640
+ padding?: number | undefined;
641
+ } | undefined;
642
+ }, {
643
+ trim?: {
644
+ enabled?: boolean | undefined;
645
+ threshold?: number | undefined;
646
+ } | undefined;
647
+ emitVariants?: {
648
+ raw?: boolean | undefined;
649
+ styleRef?: boolean | undefined;
650
+ layerColor?: boolean | undefined;
651
+ layerMatte?: boolean | undefined;
652
+ pixel?: boolean | undefined;
653
+ } | undefined;
654
+ pad?: {
655
+ pixels: number;
656
+ background?: string | undefined;
657
+ extrude?: boolean | undefined;
658
+ } | undefined;
659
+ quantize?: {
660
+ colors: number;
661
+ dither?: number | undefined;
662
+ } | undefined;
663
+ outline?: {
664
+ size: number;
665
+ color?: string | undefined;
666
+ } | undefined;
667
+ resizeVariants?: {
668
+ variants: {
669
+ width: number;
670
+ height: number;
671
+ name: string;
672
+ algorithm?: "nearest" | "lanczos3" | undefined;
673
+ }[];
674
+ } | undefined;
675
+ pixelPerfect?: {
676
+ enabled?: boolean | undefined;
677
+ scale?: number | undefined;
678
+ } | undefined;
679
+ smartCrop?: {
680
+ enabled?: boolean | undefined;
681
+ mode?: "alpha-bounds" | "center" | undefined;
682
+ padding?: number | undefined;
683
+ } | undefined;
684
+ }>>;
685
+ }, "strip", z.ZodTypeAny, {
686
+ resizeTo?: {
687
+ width: number;
688
+ height: number;
689
+ } | undefined;
690
+ algorithm?: "nearest" | "lanczos3" | undefined;
691
+ stripMetadata?: boolean | undefined;
692
+ operations?: {
693
+ trim?: {
694
+ enabled?: boolean | undefined;
695
+ threshold?: number | undefined;
696
+ } | undefined;
697
+ emitVariants?: {
698
+ raw?: boolean | undefined;
699
+ styleRef?: boolean | undefined;
700
+ layerColor?: boolean | undefined;
701
+ layerMatte?: boolean | undefined;
702
+ pixel?: boolean | undefined;
703
+ } | undefined;
704
+ pad?: {
705
+ pixels: number;
706
+ background?: string | undefined;
707
+ extrude?: boolean | undefined;
708
+ } | undefined;
709
+ quantize?: {
710
+ colors: number;
711
+ dither?: number | undefined;
712
+ } | undefined;
713
+ outline?: {
714
+ size: number;
715
+ color?: string | undefined;
716
+ } | undefined;
717
+ resizeVariants?: {
718
+ variants: {
719
+ width: number;
720
+ height: number;
721
+ name: string;
722
+ algorithm?: "nearest" | "lanczos3" | undefined;
723
+ }[];
724
+ } | undefined;
725
+ pixelPerfect?: {
726
+ enabled?: boolean | undefined;
727
+ scale?: number | undefined;
728
+ } | undefined;
729
+ smartCrop?: {
730
+ enabled?: boolean | undefined;
731
+ mode?: "alpha-bounds" | "center" | undefined;
732
+ padding?: number | undefined;
733
+ } | undefined;
734
+ } | undefined;
735
+ pngPaletteColors?: number | undefined;
736
+ }, {
737
+ resizeTo?: {
738
+ width: number;
739
+ height: number;
740
+ } | undefined;
741
+ algorithm?: "nearest" | "lanczos3" | undefined;
742
+ stripMetadata?: boolean | undefined;
743
+ operations?: {
744
+ trim?: {
745
+ enabled?: boolean | undefined;
746
+ threshold?: number | undefined;
747
+ } | undefined;
748
+ emitVariants?: {
749
+ raw?: boolean | undefined;
750
+ styleRef?: boolean | undefined;
751
+ layerColor?: boolean | undefined;
752
+ layerMatte?: boolean | undefined;
753
+ pixel?: boolean | undefined;
754
+ } | undefined;
755
+ pad?: {
756
+ pixels: number;
757
+ background?: string | undefined;
758
+ extrude?: boolean | undefined;
759
+ } | undefined;
760
+ quantize?: {
761
+ colors: number;
762
+ dither?: number | undefined;
763
+ } | undefined;
764
+ outline?: {
765
+ size: number;
766
+ color?: string | undefined;
767
+ } | undefined;
768
+ resizeVariants?: {
769
+ variants: {
770
+ width: number;
771
+ height: number;
772
+ name: string;
773
+ algorithm?: "nearest" | "lanczos3" | undefined;
774
+ }[];
775
+ } | undefined;
776
+ pixelPerfect?: {
777
+ enabled?: boolean | undefined;
778
+ scale?: number | undefined;
779
+ } | undefined;
780
+ smartCrop?: {
781
+ enabled?: boolean | undefined;
782
+ mode?: "alpha-bounds" | "center" | undefined;
783
+ padding?: number | undefined;
784
+ } | undefined;
785
+ } | undefined;
786
+ pngPaletteColors?: number | undefined;
787
+ }>>;
788
+ provider: z.ZodOptional<z.ZodEnum<["openai", "nano", "local"]>>;
789
+ model: z.ZodOptional<z.ZodString>;
790
+ edit: z.ZodOptional<z.ZodObject<{
791
+ mode: z.ZodOptional<z.ZodEnum<["edit", "iterate"]>>;
792
+ instruction: z.ZodOptional<z.ZodString>;
793
+ inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
794
+ path: z.ZodString;
795
+ role: z.ZodOptional<z.ZodEnum<["base", "mask", "reference"]>>;
796
+ fidelity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
797
+ }, "strip", z.ZodTypeAny, {
798
+ path: string;
799
+ role?: "base" | "mask" | "reference" | undefined;
800
+ fidelity?: "low" | "medium" | "high" | undefined;
801
+ }, {
802
+ path: string;
803
+ role?: "base" | "mask" | "reference" | undefined;
804
+ fidelity?: "low" | "medium" | "high" | undefined;
805
+ }>, "many">>;
806
+ preserveComposition: z.ZodOptional<z.ZodBoolean>;
807
+ }, "strip", z.ZodTypeAny, {
808
+ mode?: "edit" | "iterate" | undefined;
809
+ instruction?: string | undefined;
810
+ preserveComposition?: boolean | undefined;
811
+ inputs?: {
812
+ path: string;
813
+ role?: "base" | "mask" | "reference" | undefined;
814
+ fidelity?: "low" | "medium" | "high" | undefined;
815
+ }[] | undefined;
816
+ }, {
817
+ mode?: "edit" | "iterate" | undefined;
818
+ instruction?: string | undefined;
819
+ preserveComposition?: boolean | undefined;
820
+ inputs?: {
821
+ path: string;
822
+ role?: "base" | "mask" | "reference" | undefined;
823
+ fidelity?: "low" | "medium" | "high" | undefined;
824
+ }[] | undefined;
825
+ }>>;
826
+ regenerationSource: z.ZodOptional<z.ZodObject<{
827
+ mode: z.ZodEnum<["selection-lock", "selection-lock-edit"]>;
828
+ selectionLockPath: z.ZodString;
829
+ selectionLockGeneratedAt: z.ZodOptional<z.ZodString>;
830
+ lockInputHash: z.ZodString;
831
+ lockSelectedOutputPath: z.ZodString;
832
+ }, "strip", z.ZodTypeAny, {
833
+ mode: "selection-lock" | "selection-lock-edit";
834
+ selectionLockPath: string;
835
+ lockInputHash: string;
836
+ lockSelectedOutputPath: string;
837
+ selectionLockGeneratedAt?: string | undefined;
838
+ }, {
839
+ mode: "selection-lock" | "selection-lock-edit";
840
+ selectionLockPath: string;
841
+ lockInputHash: string;
842
+ lockSelectedOutputPath: string;
843
+ selectionLockGeneratedAt?: string | undefined;
844
+ }>>;
845
+ auxiliaryMaps: z.ZodOptional<z.ZodObject<{
846
+ normalFromHeight: z.ZodOptional<z.ZodBoolean>;
847
+ specularFromLuma: z.ZodOptional<z.ZodBoolean>;
848
+ aoFromLuma: z.ZodOptional<z.ZodBoolean>;
849
+ }, "strip", z.ZodTypeAny, {
850
+ normalFromHeight?: boolean | undefined;
851
+ specularFromLuma?: boolean | undefined;
852
+ aoFromLuma?: boolean | undefined;
853
+ }, {
854
+ normalFromHeight?: boolean | undefined;
855
+ specularFromLuma?: boolean | undefined;
856
+ aoFromLuma?: boolean | undefined;
857
+ }>>;
858
+ }, "strip", z.ZodTypeAny, {
859
+ id: string;
860
+ out: string;
861
+ promptSpec: {
862
+ primary: string;
863
+ stylePreset?: string | undefined;
864
+ useCase?: string | undefined;
865
+ scene?: string | undefined;
866
+ subject?: string | undefined;
867
+ style?: string | undefined;
868
+ composition?: string | undefined;
869
+ lighting?: string | undefined;
870
+ palette?: string | undefined;
871
+ materials?: string | undefined;
872
+ constraints?: string | undefined;
873
+ negative?: string | undefined;
874
+ };
875
+ spritesheet?: {
876
+ sheetTargetId: string;
877
+ animationName?: string | undefined;
878
+ facing?: "left" | "right" | undefined;
879
+ fps?: number | undefined;
880
+ loop?: boolean | undefined;
881
+ pivot?: {
882
+ y: number;
883
+ x: number;
884
+ } | undefined;
885
+ animations?: {
886
+ name: string;
887
+ count: number;
888
+ facing?: "left" | "right" | undefined;
889
+ fps?: number | undefined;
890
+ loop?: boolean | undefined;
891
+ pivot?: {
892
+ y: number;
893
+ x: number;
894
+ } | undefined;
895
+ }[] | undefined;
896
+ frameIndex?: number | undefined;
897
+ frameCount?: number | undefined;
898
+ isSheet?: boolean | undefined;
899
+ } | undefined;
900
+ edit?: {
901
+ mode?: "edit" | "iterate" | undefined;
902
+ instruction?: string | undefined;
903
+ preserveComposition?: boolean | undefined;
904
+ inputs?: {
905
+ path: string;
906
+ role?: "base" | "mask" | "reference" | undefined;
907
+ fidelity?: "low" | "medium" | "high" | undefined;
908
+ }[] | undefined;
909
+ } | undefined;
910
+ provider?: "openai" | "nano" | "local" | undefined;
911
+ model?: string | undefined;
912
+ generationMode?: "text" | "edit-first" | undefined;
913
+ regenerationSource?: {
914
+ mode: "selection-lock" | "selection-lock-edit";
915
+ selectionLockPath: string;
916
+ lockInputHash: string;
917
+ lockSelectedOutputPath: string;
918
+ selectionLockGeneratedAt?: string | undefined;
919
+ } | undefined;
920
+ consistencyGroup?: string | undefined;
921
+ facing?: "left" | "right" | undefined;
922
+ seamStripPx?: number | undefined;
923
+ seamThreshold?: number | undefined;
924
+ palette?: {
925
+ mode: "exact" | "max-colors";
926
+ strict?: boolean | undefined;
927
+ colors?: string[] | undefined;
928
+ dither?: number | undefined;
929
+ maxColors?: number | undefined;
930
+ } | undefined;
931
+ kind?: string | undefined;
932
+ templateId?: string | undefined;
933
+ dependsOn?: string[] | undefined;
934
+ styleReferenceFrom?: string[] | undefined;
935
+ atlasGroup?: string | null | undefined;
936
+ styleKitId?: string | undefined;
937
+ evaluationProfileId?: string | undefined;
938
+ scoringProfile?: string | undefined;
939
+ tileable?: boolean | undefined;
940
+ seamHeal?: {
941
+ enabled?: boolean | undefined;
942
+ stripPx?: number | undefined;
943
+ strength?: number | undefined;
944
+ } | undefined;
945
+ wrapGrid?: {
946
+ columns: number;
947
+ rows: number;
948
+ seamStripPx?: number | undefined;
949
+ seamThreshold?: number | undefined;
950
+ topology?: {
951
+ mode: "self" | "one-to-one" | "many-to-many";
952
+ maxMismatchRatio?: number | undefined;
953
+ colorTolerance?: number | undefined;
954
+ } | undefined;
955
+ } | undefined;
956
+ generationPolicy?: {
957
+ background: string;
958
+ maxRetries: number;
959
+ size: string;
960
+ quality: string;
961
+ outputFormat: "png" | "jpeg" | "webp";
962
+ candidates: number;
963
+ fallbackProviders: ("openai" | "nano" | "local")[];
964
+ hiresFix?: {
965
+ enabled?: boolean | undefined;
966
+ upscale?: number | undefined;
967
+ denoiseStrength?: number | undefined;
968
+ } | undefined;
969
+ draftQuality?: string | undefined;
970
+ finalQuality?: string | undefined;
971
+ highQuality?: boolean | undefined;
972
+ coarseToFine?: {
973
+ enabled: boolean;
974
+ promoteTopK: number;
975
+ requireDraftAcceptance: boolean;
976
+ minDraftScore?: number | undefined;
977
+ } | undefined;
978
+ agenticRetry?: {
979
+ maxRetries: number;
980
+ enabled: boolean;
981
+ } | undefined;
982
+ providerConcurrency?: number | undefined;
983
+ rateLimitPerMinute?: number | undefined;
984
+ vlmGate?: {
985
+ threshold?: number | undefined;
986
+ rubric?: string | undefined;
987
+ } | undefined;
988
+ } | undefined;
989
+ postProcess?: {
990
+ resizeTo?: {
991
+ width: number;
992
+ height: number;
993
+ } | undefined;
994
+ algorithm?: "nearest" | "lanczos3" | undefined;
995
+ stripMetadata?: boolean | undefined;
996
+ operations?: {
997
+ trim?: {
998
+ enabled?: boolean | undefined;
999
+ threshold?: number | undefined;
1000
+ } | undefined;
1001
+ emitVariants?: {
1002
+ raw?: boolean | undefined;
1003
+ styleRef?: boolean | undefined;
1004
+ layerColor?: boolean | undefined;
1005
+ layerMatte?: boolean | undefined;
1006
+ pixel?: boolean | undefined;
1007
+ } | undefined;
1008
+ pad?: {
1009
+ pixels: number;
1010
+ background?: string | undefined;
1011
+ extrude?: boolean | undefined;
1012
+ } | undefined;
1013
+ quantize?: {
1014
+ colors: number;
1015
+ dither?: number | undefined;
1016
+ } | undefined;
1017
+ outline?: {
1018
+ size: number;
1019
+ color?: string | undefined;
1020
+ } | undefined;
1021
+ resizeVariants?: {
1022
+ variants: {
1023
+ width: number;
1024
+ height: number;
1025
+ name: string;
1026
+ algorithm?: "nearest" | "lanczos3" | undefined;
1027
+ }[];
1028
+ } | undefined;
1029
+ pixelPerfect?: {
1030
+ enabled?: boolean | undefined;
1031
+ scale?: number | undefined;
1032
+ } | undefined;
1033
+ smartCrop?: {
1034
+ enabled?: boolean | undefined;
1035
+ mode?: "alpha-bounds" | "center" | undefined;
1036
+ padding?: number | undefined;
1037
+ } | undefined;
1038
+ } | undefined;
1039
+ pngPaletteColors?: number | undefined;
1040
+ } | undefined;
1041
+ acceptance?: {
1042
+ size?: string | undefined;
1043
+ alpha?: boolean | undefined;
1044
+ maxFileSizeKB?: number | undefined;
1045
+ } | undefined;
1046
+ runtimeSpec?: {
1047
+ anchorX?: number | undefined;
1048
+ anchorY?: number | undefined;
1049
+ alphaRequired?: boolean | undefined;
1050
+ previewWidth?: number | undefined;
1051
+ previewHeight?: number | undefined;
1052
+ } | undefined;
1053
+ controlImage?: string | undefined;
1054
+ controlMode?: "canny" | "depth" | "openpose" | undefined;
1055
+ auxiliaryMaps?: {
1056
+ normalFromHeight?: boolean | undefined;
1057
+ specularFromLuma?: boolean | undefined;
1058
+ aoFromLuma?: boolean | undefined;
1059
+ } | undefined;
1060
+ styleReferenceImages?: string[] | undefined;
1061
+ loraPath?: string | undefined;
1062
+ loraStrength?: number | undefined;
1063
+ alphaHaloRiskMax?: number | undefined;
1064
+ alphaStrayNoiseMax?: number | undefined;
1065
+ alphaEdgeSharpnessMin?: number | undefined;
1066
+ mattingHiddenRgbLeakMax?: number | undefined;
1067
+ mattingMaskConsistencyMin?: number | undefined;
1068
+ mattingSemiTransparencyRatioMax?: number | undefined;
1069
+ packTextureBudgetMB?: number | undefined;
1070
+ spritesheetSilhouetteDriftMax?: number | undefined;
1071
+ spritesheetAnchorDriftMax?: number | undefined;
1072
+ spritesheetIdentityDriftMax?: number | undefined;
1073
+ spritesheetPoseDriftMax?: number | undefined;
1074
+ spritesheetWalkLowerBodyMotionMin?: number | undefined;
1075
+ spritesheetWalkFootMotionMin?: number | undefined;
1076
+ spritesheetWalkFootToUpperMotionRatioMin?: number | undefined;
1077
+ consistencyGroupScoring?: {
1078
+ warningThreshold?: number | undefined;
1079
+ penaltyThreshold?: number | undefined;
1080
+ penaltyWeight?: number | undefined;
1081
+ } | undefined;
1082
+ scoreWeights?: {
1083
+ clip?: number | undefined;
1084
+ lpips?: number | undefined;
1085
+ ssim?: number | undefined;
1086
+ readability?: number | undefined;
1087
+ fileSize?: number | undefined;
1088
+ consistency?: number | undefined;
1089
+ } | undefined;
1090
+ visualStylePolicy?: {
1091
+ lineContrastMin?: number | undefined;
1092
+ shadingBandCountMax?: number | undefined;
1093
+ uiRectilinearityMin?: number | undefined;
1094
+ } | undefined;
1095
+ generationDisabled?: boolean | undefined;
1096
+ catalogDisabled?: boolean | undefined;
1097
+ }, {
1098
+ id: string;
1099
+ out: string;
1100
+ promptSpec: {
1101
+ primary: string;
1102
+ stylePreset?: string | undefined;
1103
+ useCase?: string | undefined;
1104
+ scene?: string | undefined;
1105
+ subject?: string | undefined;
1106
+ style?: string | undefined;
1107
+ composition?: string | undefined;
1108
+ lighting?: string | undefined;
1109
+ palette?: string | undefined;
1110
+ materials?: string | undefined;
1111
+ constraints?: string | undefined;
1112
+ negative?: string | undefined;
1113
+ };
1114
+ spritesheet?: {
1115
+ sheetTargetId: string;
1116
+ animationName?: string | undefined;
1117
+ facing?: "left" | "right" | undefined;
1118
+ fps?: number | undefined;
1119
+ loop?: boolean | undefined;
1120
+ pivot?: {
1121
+ y: number;
1122
+ x: number;
1123
+ } | undefined;
1124
+ animations?: {
1125
+ name: string;
1126
+ count: number;
1127
+ facing?: "left" | "right" | undefined;
1128
+ fps?: number | undefined;
1129
+ loop?: boolean | undefined;
1130
+ pivot?: {
1131
+ y: number;
1132
+ x: number;
1133
+ } | undefined;
1134
+ }[] | undefined;
1135
+ frameIndex?: number | undefined;
1136
+ frameCount?: number | undefined;
1137
+ isSheet?: boolean | undefined;
1138
+ } | undefined;
1139
+ edit?: {
1140
+ mode?: "edit" | "iterate" | undefined;
1141
+ instruction?: string | undefined;
1142
+ preserveComposition?: boolean | undefined;
1143
+ inputs?: {
1144
+ path: string;
1145
+ role?: "base" | "mask" | "reference" | undefined;
1146
+ fidelity?: "low" | "medium" | "high" | undefined;
1147
+ }[] | undefined;
1148
+ } | undefined;
1149
+ provider?: "openai" | "nano" | "local" | undefined;
1150
+ model?: string | undefined;
1151
+ generationMode?: "text" | "edit-first" | undefined;
1152
+ regenerationSource?: {
1153
+ mode: "selection-lock" | "selection-lock-edit";
1154
+ selectionLockPath: string;
1155
+ lockInputHash: string;
1156
+ lockSelectedOutputPath: string;
1157
+ selectionLockGeneratedAt?: string | undefined;
1158
+ } | undefined;
1159
+ consistencyGroup?: string | undefined;
1160
+ facing?: "left" | "right" | undefined;
1161
+ seamStripPx?: number | undefined;
1162
+ seamThreshold?: number | undefined;
1163
+ palette?: {
1164
+ mode: "exact" | "max-colors";
1165
+ strict?: boolean | undefined;
1166
+ colors?: string[] | undefined;
1167
+ dither?: number | undefined;
1168
+ maxColors?: number | undefined;
1169
+ } | undefined;
1170
+ kind?: string | undefined;
1171
+ templateId?: string | undefined;
1172
+ dependsOn?: string[] | undefined;
1173
+ styleReferenceFrom?: string[] | undefined;
1174
+ atlasGroup?: string | null | undefined;
1175
+ styleKitId?: string | undefined;
1176
+ evaluationProfileId?: string | undefined;
1177
+ scoringProfile?: string | undefined;
1178
+ tileable?: boolean | undefined;
1179
+ seamHeal?: {
1180
+ enabled?: boolean | undefined;
1181
+ stripPx?: number | undefined;
1182
+ strength?: number | undefined;
1183
+ } | undefined;
1184
+ wrapGrid?: {
1185
+ columns: number;
1186
+ rows: number;
1187
+ seamStripPx?: number | undefined;
1188
+ seamThreshold?: number | undefined;
1189
+ topology?: {
1190
+ mode: "self" | "one-to-one" | "many-to-many";
1191
+ maxMismatchRatio?: number | undefined;
1192
+ colorTolerance?: number | undefined;
1193
+ } | undefined;
1194
+ } | undefined;
1195
+ generationPolicy?: {
1196
+ background: string;
1197
+ maxRetries: number;
1198
+ size: string;
1199
+ quality: string;
1200
+ outputFormat: "png" | "jpeg" | "webp";
1201
+ candidates: number;
1202
+ fallbackProviders: ("openai" | "nano" | "local")[];
1203
+ hiresFix?: {
1204
+ enabled?: boolean | undefined;
1205
+ upscale?: number | undefined;
1206
+ denoiseStrength?: number | undefined;
1207
+ } | undefined;
1208
+ draftQuality?: string | undefined;
1209
+ finalQuality?: string | undefined;
1210
+ highQuality?: boolean | undefined;
1211
+ coarseToFine?: {
1212
+ enabled: boolean;
1213
+ promoteTopK: number;
1214
+ requireDraftAcceptance: boolean;
1215
+ minDraftScore?: number | undefined;
1216
+ } | undefined;
1217
+ agenticRetry?: {
1218
+ maxRetries: number;
1219
+ enabled: boolean;
1220
+ } | undefined;
1221
+ providerConcurrency?: number | undefined;
1222
+ rateLimitPerMinute?: number | undefined;
1223
+ vlmGate?: {
1224
+ threshold?: number | undefined;
1225
+ rubric?: string | undefined;
1226
+ } | undefined;
1227
+ } | undefined;
1228
+ postProcess?: {
1229
+ resizeTo?: {
1230
+ width: number;
1231
+ height: number;
1232
+ } | undefined;
1233
+ algorithm?: "nearest" | "lanczos3" | undefined;
1234
+ stripMetadata?: boolean | undefined;
1235
+ operations?: {
1236
+ trim?: {
1237
+ enabled?: boolean | undefined;
1238
+ threshold?: number | undefined;
1239
+ } | undefined;
1240
+ emitVariants?: {
1241
+ raw?: boolean | undefined;
1242
+ styleRef?: boolean | undefined;
1243
+ layerColor?: boolean | undefined;
1244
+ layerMatte?: boolean | undefined;
1245
+ pixel?: boolean | undefined;
1246
+ } | undefined;
1247
+ pad?: {
1248
+ pixels: number;
1249
+ background?: string | undefined;
1250
+ extrude?: boolean | undefined;
1251
+ } | undefined;
1252
+ quantize?: {
1253
+ colors: number;
1254
+ dither?: number | undefined;
1255
+ } | undefined;
1256
+ outline?: {
1257
+ size: number;
1258
+ color?: string | undefined;
1259
+ } | undefined;
1260
+ resizeVariants?: {
1261
+ variants: {
1262
+ width: number;
1263
+ height: number;
1264
+ name: string;
1265
+ algorithm?: "nearest" | "lanczos3" | undefined;
1266
+ }[];
1267
+ } | undefined;
1268
+ pixelPerfect?: {
1269
+ enabled?: boolean | undefined;
1270
+ scale?: number | undefined;
1271
+ } | undefined;
1272
+ smartCrop?: {
1273
+ enabled?: boolean | undefined;
1274
+ mode?: "alpha-bounds" | "center" | undefined;
1275
+ padding?: number | undefined;
1276
+ } | undefined;
1277
+ } | undefined;
1278
+ pngPaletteColors?: number | undefined;
1279
+ } | undefined;
1280
+ acceptance?: {
1281
+ size?: string | undefined;
1282
+ alpha?: boolean | undefined;
1283
+ maxFileSizeKB?: number | undefined;
1284
+ } | undefined;
1285
+ runtimeSpec?: {
1286
+ anchorX?: number | undefined;
1287
+ anchorY?: number | undefined;
1288
+ alphaRequired?: boolean | undefined;
1289
+ previewWidth?: number | undefined;
1290
+ previewHeight?: number | undefined;
1291
+ } | undefined;
1292
+ controlImage?: string | undefined;
1293
+ controlMode?: "canny" | "depth" | "openpose" | undefined;
1294
+ auxiliaryMaps?: {
1295
+ normalFromHeight?: boolean | undefined;
1296
+ specularFromLuma?: boolean | undefined;
1297
+ aoFromLuma?: boolean | undefined;
1298
+ } | undefined;
1299
+ styleReferenceImages?: string[] | undefined;
1300
+ loraPath?: string | undefined;
1301
+ loraStrength?: number | undefined;
1302
+ alphaHaloRiskMax?: number | undefined;
1303
+ alphaStrayNoiseMax?: number | undefined;
1304
+ alphaEdgeSharpnessMin?: number | undefined;
1305
+ mattingHiddenRgbLeakMax?: number | undefined;
1306
+ mattingMaskConsistencyMin?: number | undefined;
1307
+ mattingSemiTransparencyRatioMax?: number | undefined;
1308
+ packTextureBudgetMB?: number | undefined;
1309
+ spritesheetSilhouetteDriftMax?: number | undefined;
1310
+ spritesheetAnchorDriftMax?: number | undefined;
1311
+ spritesheetIdentityDriftMax?: number | undefined;
1312
+ spritesheetPoseDriftMax?: number | undefined;
1313
+ spritesheetWalkLowerBodyMotionMin?: number | undefined;
1314
+ spritesheetWalkFootMotionMin?: number | undefined;
1315
+ spritesheetWalkFootToUpperMotionRatioMin?: number | undefined;
1316
+ consistencyGroupScoring?: {
1317
+ warningThreshold?: number | undefined;
1318
+ penaltyThreshold?: number | undefined;
1319
+ penaltyWeight?: number | undefined;
1320
+ } | undefined;
1321
+ scoreWeights?: {
1322
+ clip?: number | undefined;
1323
+ lpips?: number | undefined;
1324
+ ssim?: number | undefined;
1325
+ readability?: number | undefined;
1326
+ fileSize?: number | undefined;
1327
+ consistency?: number | undefined;
1328
+ } | undefined;
1329
+ visualStylePolicy?: {
1330
+ lineContrastMin?: number | undefined;
1331
+ shadingBandCountMax?: number | undefined;
1332
+ uiRectilinearityMin?: number | undefined;
1333
+ } | undefined;
1334
+ generationDisabled?: boolean | undefined;
1335
+ catalogDisabled?: boolean | undefined;
1336
+ }>, "many">;
1337
+ }, "strip", z.ZodTypeAny, {
1338
+ targets: {
1339
+ id: string;
1340
+ out: string;
1341
+ promptSpec: {
1342
+ primary: string;
1343
+ stylePreset?: string | undefined;
1344
+ useCase?: string | undefined;
1345
+ scene?: string | undefined;
1346
+ subject?: string | undefined;
1347
+ style?: string | undefined;
1348
+ composition?: string | undefined;
1349
+ lighting?: string | undefined;
1350
+ palette?: string | undefined;
1351
+ materials?: string | undefined;
1352
+ constraints?: string | undefined;
1353
+ negative?: string | undefined;
1354
+ };
1355
+ spritesheet?: {
1356
+ sheetTargetId: string;
1357
+ animationName?: string | undefined;
1358
+ facing?: "left" | "right" | undefined;
1359
+ fps?: number | undefined;
1360
+ loop?: boolean | undefined;
1361
+ pivot?: {
1362
+ y: number;
1363
+ x: number;
1364
+ } | undefined;
1365
+ animations?: {
1366
+ name: string;
1367
+ count: number;
1368
+ facing?: "left" | "right" | undefined;
1369
+ fps?: number | undefined;
1370
+ loop?: boolean | undefined;
1371
+ pivot?: {
1372
+ y: number;
1373
+ x: number;
1374
+ } | undefined;
1375
+ }[] | undefined;
1376
+ frameIndex?: number | undefined;
1377
+ frameCount?: number | undefined;
1378
+ isSheet?: boolean | undefined;
1379
+ } | undefined;
1380
+ edit?: {
1381
+ mode?: "edit" | "iterate" | undefined;
1382
+ instruction?: string | undefined;
1383
+ preserveComposition?: boolean | undefined;
1384
+ inputs?: {
1385
+ path: string;
1386
+ role?: "base" | "mask" | "reference" | undefined;
1387
+ fidelity?: "low" | "medium" | "high" | undefined;
1388
+ }[] | undefined;
1389
+ } | undefined;
1390
+ provider?: "openai" | "nano" | "local" | undefined;
1391
+ model?: string | undefined;
1392
+ generationMode?: "text" | "edit-first" | undefined;
1393
+ regenerationSource?: {
1394
+ mode: "selection-lock" | "selection-lock-edit";
1395
+ selectionLockPath: string;
1396
+ lockInputHash: string;
1397
+ lockSelectedOutputPath: string;
1398
+ selectionLockGeneratedAt?: string | undefined;
1399
+ } | undefined;
1400
+ consistencyGroup?: string | undefined;
1401
+ facing?: "left" | "right" | undefined;
1402
+ seamStripPx?: number | undefined;
1403
+ seamThreshold?: number | undefined;
1404
+ palette?: {
1405
+ mode: "exact" | "max-colors";
1406
+ strict?: boolean | undefined;
1407
+ colors?: string[] | undefined;
1408
+ dither?: number | undefined;
1409
+ maxColors?: number | undefined;
1410
+ } | undefined;
1411
+ kind?: string | undefined;
1412
+ templateId?: string | undefined;
1413
+ dependsOn?: string[] | undefined;
1414
+ styleReferenceFrom?: string[] | undefined;
1415
+ atlasGroup?: string | null | undefined;
1416
+ styleKitId?: string | undefined;
1417
+ evaluationProfileId?: string | undefined;
1418
+ scoringProfile?: string | undefined;
1419
+ tileable?: boolean | undefined;
1420
+ seamHeal?: {
1421
+ enabled?: boolean | undefined;
1422
+ stripPx?: number | undefined;
1423
+ strength?: number | undefined;
1424
+ } | undefined;
1425
+ wrapGrid?: {
1426
+ columns: number;
1427
+ rows: number;
1428
+ seamStripPx?: number | undefined;
1429
+ seamThreshold?: number | undefined;
1430
+ topology?: {
1431
+ mode: "self" | "one-to-one" | "many-to-many";
1432
+ maxMismatchRatio?: number | undefined;
1433
+ colorTolerance?: number | undefined;
1434
+ } | undefined;
1435
+ } | undefined;
1436
+ generationPolicy?: {
1437
+ background: string;
1438
+ maxRetries: number;
1439
+ size: string;
1440
+ quality: string;
1441
+ outputFormat: "png" | "jpeg" | "webp";
1442
+ candidates: number;
1443
+ fallbackProviders: ("openai" | "nano" | "local")[];
1444
+ hiresFix?: {
1445
+ enabled?: boolean | undefined;
1446
+ upscale?: number | undefined;
1447
+ denoiseStrength?: number | undefined;
1448
+ } | undefined;
1449
+ draftQuality?: string | undefined;
1450
+ finalQuality?: string | undefined;
1451
+ highQuality?: boolean | undefined;
1452
+ coarseToFine?: {
1453
+ enabled: boolean;
1454
+ promoteTopK: number;
1455
+ requireDraftAcceptance: boolean;
1456
+ minDraftScore?: number | undefined;
1457
+ } | undefined;
1458
+ agenticRetry?: {
1459
+ maxRetries: number;
1460
+ enabled: boolean;
1461
+ } | undefined;
1462
+ providerConcurrency?: number | undefined;
1463
+ rateLimitPerMinute?: number | undefined;
1464
+ vlmGate?: {
1465
+ threshold?: number | undefined;
1466
+ rubric?: string | undefined;
1467
+ } | undefined;
1468
+ } | undefined;
1469
+ postProcess?: {
1470
+ resizeTo?: {
1471
+ width: number;
1472
+ height: number;
1473
+ } | undefined;
1474
+ algorithm?: "nearest" | "lanczos3" | undefined;
1475
+ stripMetadata?: boolean | undefined;
1476
+ operations?: {
1477
+ trim?: {
1478
+ enabled?: boolean | undefined;
1479
+ threshold?: number | undefined;
1480
+ } | undefined;
1481
+ emitVariants?: {
1482
+ raw?: boolean | undefined;
1483
+ styleRef?: boolean | undefined;
1484
+ layerColor?: boolean | undefined;
1485
+ layerMatte?: boolean | undefined;
1486
+ pixel?: boolean | undefined;
1487
+ } | undefined;
1488
+ pad?: {
1489
+ pixels: number;
1490
+ background?: string | undefined;
1491
+ extrude?: boolean | undefined;
1492
+ } | undefined;
1493
+ quantize?: {
1494
+ colors: number;
1495
+ dither?: number | undefined;
1496
+ } | undefined;
1497
+ outline?: {
1498
+ size: number;
1499
+ color?: string | undefined;
1500
+ } | undefined;
1501
+ resizeVariants?: {
1502
+ variants: {
1503
+ width: number;
1504
+ height: number;
1505
+ name: string;
1506
+ algorithm?: "nearest" | "lanczos3" | undefined;
1507
+ }[];
1508
+ } | undefined;
1509
+ pixelPerfect?: {
1510
+ enabled?: boolean | undefined;
1511
+ scale?: number | undefined;
1512
+ } | undefined;
1513
+ smartCrop?: {
1514
+ enabled?: boolean | undefined;
1515
+ mode?: "alpha-bounds" | "center" | undefined;
1516
+ padding?: number | undefined;
1517
+ } | undefined;
1518
+ } | undefined;
1519
+ pngPaletteColors?: number | undefined;
1520
+ } | undefined;
1521
+ acceptance?: {
1522
+ size?: string | undefined;
1523
+ alpha?: boolean | undefined;
1524
+ maxFileSizeKB?: number | undefined;
1525
+ } | undefined;
1526
+ runtimeSpec?: {
1527
+ anchorX?: number | undefined;
1528
+ anchorY?: number | undefined;
1529
+ alphaRequired?: boolean | undefined;
1530
+ previewWidth?: number | undefined;
1531
+ previewHeight?: number | undefined;
1532
+ } | undefined;
1533
+ controlImage?: string | undefined;
1534
+ controlMode?: "canny" | "depth" | "openpose" | undefined;
1535
+ auxiliaryMaps?: {
1536
+ normalFromHeight?: boolean | undefined;
1537
+ specularFromLuma?: boolean | undefined;
1538
+ aoFromLuma?: boolean | undefined;
1539
+ } | undefined;
1540
+ styleReferenceImages?: string[] | undefined;
1541
+ loraPath?: string | undefined;
1542
+ loraStrength?: number | undefined;
1543
+ alphaHaloRiskMax?: number | undefined;
1544
+ alphaStrayNoiseMax?: number | undefined;
1545
+ alphaEdgeSharpnessMin?: number | undefined;
1546
+ mattingHiddenRgbLeakMax?: number | undefined;
1547
+ mattingMaskConsistencyMin?: number | undefined;
1548
+ mattingSemiTransparencyRatioMax?: number | undefined;
1549
+ packTextureBudgetMB?: number | undefined;
1550
+ spritesheetSilhouetteDriftMax?: number | undefined;
1551
+ spritesheetAnchorDriftMax?: number | undefined;
1552
+ spritesheetIdentityDriftMax?: number | undefined;
1553
+ spritesheetPoseDriftMax?: number | undefined;
1554
+ spritesheetWalkLowerBodyMotionMin?: number | undefined;
1555
+ spritesheetWalkFootMotionMin?: number | undefined;
1556
+ spritesheetWalkFootToUpperMotionRatioMin?: number | undefined;
1557
+ consistencyGroupScoring?: {
1558
+ warningThreshold?: number | undefined;
1559
+ penaltyThreshold?: number | undefined;
1560
+ penaltyWeight?: number | undefined;
1561
+ } | undefined;
1562
+ scoreWeights?: {
1563
+ clip?: number | undefined;
1564
+ lpips?: number | undefined;
1565
+ ssim?: number | undefined;
1566
+ readability?: number | undefined;
1567
+ fileSize?: number | undefined;
1568
+ consistency?: number | undefined;
1569
+ } | undefined;
1570
+ visualStylePolicy?: {
1571
+ lineContrastMin?: number | undefined;
1572
+ shadingBandCountMax?: number | undefined;
1573
+ uiRectilinearityMin?: number | undefined;
1574
+ } | undefined;
1575
+ generationDisabled?: boolean | undefined;
1576
+ catalogDisabled?: boolean | undefined;
1577
+ }[];
1578
+ generatedAt?: string | undefined;
1579
+ manifestPath?: string | undefined;
1580
+ }, {
1581
+ targets: {
1582
+ id: string;
1583
+ out: string;
1584
+ promptSpec: {
1585
+ primary: string;
1586
+ stylePreset?: string | undefined;
1587
+ useCase?: string | undefined;
1588
+ scene?: string | undefined;
1589
+ subject?: string | undefined;
1590
+ style?: string | undefined;
1591
+ composition?: string | undefined;
1592
+ lighting?: string | undefined;
1593
+ palette?: string | undefined;
1594
+ materials?: string | undefined;
1595
+ constraints?: string | undefined;
1596
+ negative?: string | undefined;
1597
+ };
1598
+ spritesheet?: {
1599
+ sheetTargetId: string;
1600
+ animationName?: string | undefined;
1601
+ facing?: "left" | "right" | undefined;
1602
+ fps?: number | undefined;
1603
+ loop?: boolean | undefined;
1604
+ pivot?: {
1605
+ y: number;
1606
+ x: number;
1607
+ } | undefined;
1608
+ animations?: {
1609
+ name: string;
1610
+ count: number;
1611
+ facing?: "left" | "right" | undefined;
1612
+ fps?: number | undefined;
1613
+ loop?: boolean | undefined;
1614
+ pivot?: {
1615
+ y: number;
1616
+ x: number;
1617
+ } | undefined;
1618
+ }[] | undefined;
1619
+ frameIndex?: number | undefined;
1620
+ frameCount?: number | undefined;
1621
+ isSheet?: boolean | undefined;
1622
+ } | undefined;
1623
+ edit?: {
1624
+ mode?: "edit" | "iterate" | undefined;
1625
+ instruction?: string | undefined;
1626
+ preserveComposition?: boolean | undefined;
1627
+ inputs?: {
1628
+ path: string;
1629
+ role?: "base" | "mask" | "reference" | undefined;
1630
+ fidelity?: "low" | "medium" | "high" | undefined;
1631
+ }[] | undefined;
1632
+ } | undefined;
1633
+ provider?: "openai" | "nano" | "local" | undefined;
1634
+ model?: string | undefined;
1635
+ generationMode?: "text" | "edit-first" | undefined;
1636
+ regenerationSource?: {
1637
+ mode: "selection-lock" | "selection-lock-edit";
1638
+ selectionLockPath: string;
1639
+ lockInputHash: string;
1640
+ lockSelectedOutputPath: string;
1641
+ selectionLockGeneratedAt?: string | undefined;
1642
+ } | undefined;
1643
+ consistencyGroup?: string | undefined;
1644
+ facing?: "left" | "right" | undefined;
1645
+ seamStripPx?: number | undefined;
1646
+ seamThreshold?: number | undefined;
1647
+ palette?: {
1648
+ mode: "exact" | "max-colors";
1649
+ strict?: boolean | undefined;
1650
+ colors?: string[] | undefined;
1651
+ dither?: number | undefined;
1652
+ maxColors?: number | undefined;
1653
+ } | undefined;
1654
+ kind?: string | undefined;
1655
+ templateId?: string | undefined;
1656
+ dependsOn?: string[] | undefined;
1657
+ styleReferenceFrom?: string[] | undefined;
1658
+ atlasGroup?: string | null | undefined;
1659
+ styleKitId?: string | undefined;
1660
+ evaluationProfileId?: string | undefined;
1661
+ scoringProfile?: string | undefined;
1662
+ tileable?: boolean | undefined;
1663
+ seamHeal?: {
1664
+ enabled?: boolean | undefined;
1665
+ stripPx?: number | undefined;
1666
+ strength?: number | undefined;
1667
+ } | undefined;
1668
+ wrapGrid?: {
1669
+ columns: number;
1670
+ rows: number;
1671
+ seamStripPx?: number | undefined;
1672
+ seamThreshold?: number | undefined;
1673
+ topology?: {
1674
+ mode: "self" | "one-to-one" | "many-to-many";
1675
+ maxMismatchRatio?: number | undefined;
1676
+ colorTolerance?: number | undefined;
1677
+ } | undefined;
1678
+ } | undefined;
1679
+ generationPolicy?: {
1680
+ background: string;
1681
+ maxRetries: number;
1682
+ size: string;
1683
+ quality: string;
1684
+ outputFormat: "png" | "jpeg" | "webp";
1685
+ candidates: number;
1686
+ fallbackProviders: ("openai" | "nano" | "local")[];
1687
+ hiresFix?: {
1688
+ enabled?: boolean | undefined;
1689
+ upscale?: number | undefined;
1690
+ denoiseStrength?: number | undefined;
1691
+ } | undefined;
1692
+ draftQuality?: string | undefined;
1693
+ finalQuality?: string | undefined;
1694
+ highQuality?: boolean | undefined;
1695
+ coarseToFine?: {
1696
+ enabled: boolean;
1697
+ promoteTopK: number;
1698
+ requireDraftAcceptance: boolean;
1699
+ minDraftScore?: number | undefined;
1700
+ } | undefined;
1701
+ agenticRetry?: {
1702
+ maxRetries: number;
1703
+ enabled: boolean;
1704
+ } | undefined;
1705
+ providerConcurrency?: number | undefined;
1706
+ rateLimitPerMinute?: number | undefined;
1707
+ vlmGate?: {
1708
+ threshold?: number | undefined;
1709
+ rubric?: string | undefined;
1710
+ } | undefined;
1711
+ } | undefined;
1712
+ postProcess?: {
1713
+ resizeTo?: {
1714
+ width: number;
1715
+ height: number;
1716
+ } | undefined;
1717
+ algorithm?: "nearest" | "lanczos3" | undefined;
1718
+ stripMetadata?: boolean | undefined;
1719
+ operations?: {
1720
+ trim?: {
1721
+ enabled?: boolean | undefined;
1722
+ threshold?: number | undefined;
1723
+ } | undefined;
1724
+ emitVariants?: {
1725
+ raw?: boolean | undefined;
1726
+ styleRef?: boolean | undefined;
1727
+ layerColor?: boolean | undefined;
1728
+ layerMatte?: boolean | undefined;
1729
+ pixel?: boolean | undefined;
1730
+ } | undefined;
1731
+ pad?: {
1732
+ pixels: number;
1733
+ background?: string | undefined;
1734
+ extrude?: boolean | undefined;
1735
+ } | undefined;
1736
+ quantize?: {
1737
+ colors: number;
1738
+ dither?: number | undefined;
1739
+ } | undefined;
1740
+ outline?: {
1741
+ size: number;
1742
+ color?: string | undefined;
1743
+ } | undefined;
1744
+ resizeVariants?: {
1745
+ variants: {
1746
+ width: number;
1747
+ height: number;
1748
+ name: string;
1749
+ algorithm?: "nearest" | "lanczos3" | undefined;
1750
+ }[];
1751
+ } | undefined;
1752
+ pixelPerfect?: {
1753
+ enabled?: boolean | undefined;
1754
+ scale?: number | undefined;
1755
+ } | undefined;
1756
+ smartCrop?: {
1757
+ enabled?: boolean | undefined;
1758
+ mode?: "alpha-bounds" | "center" | undefined;
1759
+ padding?: number | undefined;
1760
+ } | undefined;
1761
+ } | undefined;
1762
+ pngPaletteColors?: number | undefined;
1763
+ } | undefined;
1764
+ acceptance?: {
1765
+ size?: string | undefined;
1766
+ alpha?: boolean | undefined;
1767
+ maxFileSizeKB?: number | undefined;
1768
+ } | undefined;
1769
+ runtimeSpec?: {
1770
+ anchorX?: number | undefined;
1771
+ anchorY?: number | undefined;
1772
+ alphaRequired?: boolean | undefined;
1773
+ previewWidth?: number | undefined;
1774
+ previewHeight?: number | undefined;
1775
+ } | undefined;
1776
+ controlImage?: string | undefined;
1777
+ controlMode?: "canny" | "depth" | "openpose" | undefined;
1778
+ auxiliaryMaps?: {
1779
+ normalFromHeight?: boolean | undefined;
1780
+ specularFromLuma?: boolean | undefined;
1781
+ aoFromLuma?: boolean | undefined;
1782
+ } | undefined;
1783
+ styleReferenceImages?: string[] | undefined;
1784
+ loraPath?: string | undefined;
1785
+ loraStrength?: number | undefined;
1786
+ alphaHaloRiskMax?: number | undefined;
1787
+ alphaStrayNoiseMax?: number | undefined;
1788
+ alphaEdgeSharpnessMin?: number | undefined;
1789
+ mattingHiddenRgbLeakMax?: number | undefined;
1790
+ mattingMaskConsistencyMin?: number | undefined;
1791
+ mattingSemiTransparencyRatioMax?: number | undefined;
1792
+ packTextureBudgetMB?: number | undefined;
1793
+ spritesheetSilhouetteDriftMax?: number | undefined;
1794
+ spritesheetAnchorDriftMax?: number | undefined;
1795
+ spritesheetIdentityDriftMax?: number | undefined;
1796
+ spritesheetPoseDriftMax?: number | undefined;
1797
+ spritesheetWalkLowerBodyMotionMin?: number | undefined;
1798
+ spritesheetWalkFootMotionMin?: number | undefined;
1799
+ spritesheetWalkFootToUpperMotionRatioMin?: number | undefined;
1800
+ consistencyGroupScoring?: {
1801
+ warningThreshold?: number | undefined;
1802
+ penaltyThreshold?: number | undefined;
1803
+ penaltyWeight?: number | undefined;
1804
+ } | undefined;
1805
+ scoreWeights?: {
1806
+ clip?: number | undefined;
1807
+ lpips?: number | undefined;
1808
+ ssim?: number | undefined;
1809
+ readability?: number | undefined;
1810
+ fileSize?: number | undefined;
1811
+ consistency?: number | undefined;
1812
+ } | undefined;
1813
+ visualStylePolicy?: {
1814
+ lineContrastMin?: number | undefined;
1815
+ shadingBandCountMax?: number | undefined;
1816
+ uiRectilinearityMin?: number | undefined;
1817
+ } | undefined;
1818
+ generationDisabled?: boolean | undefined;
1819
+ catalogDisabled?: boolean | undefined;
1820
+ }[];
1821
+ generatedAt?: string | undefined;
1822
+ manifestPath?: string | undefined;
1823
+ }>;
1824
+ readonly "provenance-run": z.ZodObject<{
1825
+ runId: z.ZodString;
1826
+ inputHash: z.ZodString;
1827
+ startedAt: z.ZodString;
1828
+ finishedAt: z.ZodString;
1829
+ generatedAt: z.ZodString;
1830
+ jobs: z.ZodArray<z.ZodObject<{
1831
+ jobId: z.ZodString;
1832
+ provider: z.ZodEnum<["openai", "nano", "local"]>;
1833
+ model: z.ZodString;
1834
+ targetId: z.ZodString;
1835
+ inputHash: z.ZodString;
1836
+ startedAt: z.ZodString;
1837
+ finishedAt: z.ZodString;
1838
+ outputPath: z.ZodString;
1839
+ bytesWritten: z.ZodOptional<z.ZodNumber>;
1840
+ skipped: z.ZodOptional<z.ZodBoolean>;
1841
+ candidateOutputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
1842
+ outputPath: z.ZodString;
1843
+ bytesWritten: z.ZodNumber;
1844
+ }, "strip", z.ZodTypeAny, {
1845
+ outputPath: string;
1846
+ bytesWritten: number;
1847
+ }, {
1848
+ outputPath: string;
1849
+ bytesWritten: number;
1850
+ }>, "many">>;
1851
+ candidateScores: z.ZodOptional<z.ZodArray<z.ZodObject<{
1852
+ outputPath: z.ZodString;
1853
+ score: z.ZodNumber;
1854
+ passedAcceptance: z.ZodBoolean;
1855
+ reasons: z.ZodArray<z.ZodString, "many">;
1856
+ stage: z.ZodOptional<z.ZodEnum<["draft", "refine", "autocorrect"]>>;
1857
+ promoted: z.ZodOptional<z.ZodBoolean>;
1858
+ sourceOutputPath: z.ZodOptional<z.ZodString>;
1859
+ autoCorrectAttempt: z.ZodOptional<z.ZodNumber>;
1860
+ components: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1861
+ metrics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1862
+ vlm: z.ZodOptional<z.ZodObject<{
1863
+ score: z.ZodNumber;
1864
+ threshold: z.ZodNumber;
1865
+ maxScore: z.ZodNumber;
1866
+ passed: z.ZodBoolean;
1867
+ reason: z.ZodString;
1868
+ rubric: z.ZodOptional<z.ZodString>;
1869
+ evaluator: z.ZodEnum<["command", "http"]>;
1870
+ }, "strip", z.ZodTypeAny, {
1871
+ threshold: number;
1872
+ score: number;
1873
+ maxScore: number;
1874
+ passed: boolean;
1875
+ evaluator: "command" | "http";
1876
+ reason: string;
1877
+ rubric?: string | undefined;
1878
+ }, {
1879
+ threshold: number;
1880
+ score: number;
1881
+ maxScore: number;
1882
+ passed: boolean;
1883
+ evaluator: "command" | "http";
1884
+ reason: string;
1885
+ rubric?: string | undefined;
1886
+ }>>;
1887
+ warnings: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1888
+ selected: z.ZodOptional<z.ZodBoolean>;
1889
+ }, "strip", z.ZodTypeAny, {
1890
+ outputPath: string;
1891
+ score: number;
1892
+ passedAcceptance: boolean;
1893
+ reasons: string[];
1894
+ warnings?: string[] | undefined;
1895
+ metrics?: Record<string, number> | undefined;
1896
+ vlm?: {
1897
+ threshold: number;
1898
+ score: number;
1899
+ maxScore: number;
1900
+ passed: boolean;
1901
+ evaluator: "command" | "http";
1902
+ reason: string;
1903
+ rubric?: string | undefined;
1904
+ } | undefined;
1905
+ promoted?: boolean | undefined;
1906
+ stage?: "draft" | "refine" | "autocorrect" | undefined;
1907
+ sourceOutputPath?: string | undefined;
1908
+ autoCorrectAttempt?: number | undefined;
1909
+ components?: Record<string, number> | undefined;
1910
+ selected?: boolean | undefined;
1911
+ }, {
1912
+ outputPath: string;
1913
+ score: number;
1914
+ passedAcceptance: boolean;
1915
+ reasons: string[];
1916
+ warnings?: string[] | undefined;
1917
+ metrics?: Record<string, number> | undefined;
1918
+ vlm?: {
1919
+ threshold: number;
1920
+ score: number;
1921
+ maxScore: number;
1922
+ passed: boolean;
1923
+ evaluator: "command" | "http";
1924
+ reason: string;
1925
+ rubric?: string | undefined;
1926
+ } | undefined;
1927
+ promoted?: boolean | undefined;
1928
+ stage?: "draft" | "refine" | "autocorrect" | undefined;
1929
+ sourceOutputPath?: string | undefined;
1930
+ autoCorrectAttempt?: number | undefined;
1931
+ components?: Record<string, number> | undefined;
1932
+ selected?: boolean | undefined;
1933
+ }>, "many">>;
1934
+ coarseToFine: z.ZodOptional<z.ZodObject<{
1935
+ enabled: z.ZodBoolean;
1936
+ draftQuality: z.ZodString;
1937
+ finalQuality: z.ZodString;
1938
+ promoteTopK: z.ZodNumber;
1939
+ minDraftScore: z.ZodOptional<z.ZodNumber>;
1940
+ requireDraftAcceptance: z.ZodBoolean;
1941
+ draftCandidateCount: z.ZodNumber;
1942
+ promoted: z.ZodArray<z.ZodObject<{
1943
+ outputPath: z.ZodString;
1944
+ score: z.ZodNumber;
1945
+ passedAcceptance: z.ZodBoolean;
1946
+ refinedOutputPath: z.ZodOptional<z.ZodString>;
1947
+ }, "strip", z.ZodTypeAny, {
1948
+ outputPath: string;
1949
+ score: number;
1950
+ passedAcceptance: boolean;
1951
+ refinedOutputPath?: string | undefined;
1952
+ }, {
1953
+ outputPath: string;
1954
+ score: number;
1955
+ passedAcceptance: boolean;
1956
+ refinedOutputPath?: string | undefined;
1957
+ }>, "many">;
1958
+ discarded: z.ZodArray<z.ZodObject<{
1959
+ outputPath: z.ZodString;
1960
+ score: z.ZodNumber;
1961
+ passedAcceptance: z.ZodBoolean;
1962
+ reason: z.ZodString;
1963
+ }, "strip", z.ZodTypeAny, {
1964
+ outputPath: string;
1965
+ score: number;
1966
+ reason: string;
1967
+ passedAcceptance: boolean;
1968
+ }, {
1969
+ outputPath: string;
1970
+ score: number;
1971
+ reason: string;
1972
+ passedAcceptance: boolean;
1973
+ }>, "many">;
1974
+ skippedReason: z.ZodOptional<z.ZodString>;
1975
+ warnings: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1976
+ }, "strip", z.ZodTypeAny, {
1977
+ draftQuality: string;
1978
+ finalQuality: string;
1979
+ enabled: boolean;
1980
+ promoteTopK: number;
1981
+ discarded: {
1982
+ outputPath: string;
1983
+ score: number;
1984
+ reason: string;
1985
+ passedAcceptance: boolean;
1986
+ }[];
1987
+ promoted: {
1988
+ outputPath: string;
1989
+ score: number;
1990
+ passedAcceptance: boolean;
1991
+ refinedOutputPath?: string | undefined;
1992
+ }[];
1993
+ requireDraftAcceptance: boolean;
1994
+ draftCandidateCount: number;
1995
+ minDraftScore?: number | undefined;
1996
+ warnings?: string[] | undefined;
1997
+ skippedReason?: string | undefined;
1998
+ }, {
1999
+ draftQuality: string;
2000
+ finalQuality: string;
2001
+ enabled: boolean;
2002
+ promoteTopK: number;
2003
+ discarded: {
2004
+ outputPath: string;
2005
+ score: number;
2006
+ reason: string;
2007
+ passedAcceptance: boolean;
2008
+ }[];
2009
+ promoted: {
2010
+ outputPath: string;
2011
+ score: number;
2012
+ passedAcceptance: boolean;
2013
+ refinedOutputPath?: string | undefined;
2014
+ }[];
2015
+ requireDraftAcceptance: boolean;
2016
+ draftCandidateCount: number;
2017
+ minDraftScore?: number | undefined;
2018
+ warnings?: string[] | undefined;
2019
+ skippedReason?: string | undefined;
2020
+ }>>;
2021
+ agenticRetry: z.ZodOptional<z.ZodObject<{
2022
+ enabled: z.ZodBoolean;
2023
+ maxRetries: z.ZodNumber;
2024
+ attempted: z.ZodNumber;
2025
+ succeeded: z.ZodBoolean;
2026
+ skippedReason: z.ZodOptional<z.ZodString>;
2027
+ attempts: z.ZodArray<z.ZodObject<{
2028
+ attempt: z.ZodNumber;
2029
+ sourceOutputPath: z.ZodString;
2030
+ outputPath: z.ZodString;
2031
+ critique: z.ZodString;
2032
+ triggeredBy: z.ZodArray<z.ZodString, "many">;
2033
+ scoreBefore: z.ZodNumber;
2034
+ scoreAfter: z.ZodNumber;
2035
+ passedBefore: z.ZodBoolean;
2036
+ passedAfter: z.ZodBoolean;
2037
+ reasonsBefore: z.ZodArray<z.ZodString, "many">;
2038
+ reasonsAfter: z.ZodArray<z.ZodString, "many">;
2039
+ }, "strip", z.ZodTypeAny, {
2040
+ outputPath: string;
2041
+ triggeredBy: string[];
2042
+ sourceOutputPath: string;
2043
+ attempt: number;
2044
+ critique: string;
2045
+ scoreBefore: number;
2046
+ scoreAfter: number;
2047
+ passedBefore: boolean;
2048
+ passedAfter: boolean;
2049
+ reasonsBefore: string[];
2050
+ reasonsAfter: string[];
2051
+ }, {
2052
+ outputPath: string;
2053
+ triggeredBy: string[];
2054
+ sourceOutputPath: string;
2055
+ attempt: number;
2056
+ critique: string;
2057
+ scoreBefore: number;
2058
+ scoreAfter: number;
2059
+ passedBefore: boolean;
2060
+ passedAfter: boolean;
2061
+ reasonsBefore: string[];
2062
+ reasonsAfter: string[];
2063
+ }>, "many">;
2064
+ }, "strip", z.ZodTypeAny, {
2065
+ maxRetries: number;
2066
+ enabled: boolean;
2067
+ attempted: number;
2068
+ succeeded: boolean;
2069
+ attempts: {
2070
+ outputPath: string;
2071
+ triggeredBy: string[];
2072
+ sourceOutputPath: string;
2073
+ attempt: number;
2074
+ critique: string;
2075
+ scoreBefore: number;
2076
+ scoreAfter: number;
2077
+ passedBefore: boolean;
2078
+ passedAfter: boolean;
2079
+ reasonsBefore: string[];
2080
+ reasonsAfter: string[];
2081
+ }[];
2082
+ skippedReason?: string | undefined;
2083
+ }, {
2084
+ maxRetries: number;
2085
+ enabled: boolean;
2086
+ attempted: number;
2087
+ succeeded: boolean;
2088
+ attempts: {
2089
+ outputPath: string;
2090
+ triggeredBy: string[];
2091
+ sourceOutputPath: string;
2092
+ attempt: number;
2093
+ critique: string;
2094
+ scoreBefore: number;
2095
+ scoreAfter: number;
2096
+ passedBefore: boolean;
2097
+ passedAfter: boolean;
2098
+ reasonsBefore: string[];
2099
+ reasonsAfter: string[];
2100
+ }[];
2101
+ skippedReason?: string | undefined;
2102
+ }>>;
2103
+ styleReferenceLineage: z.ZodOptional<z.ZodArray<z.ZodObject<{
2104
+ source: z.ZodEnum<["style-kit", "target-output"]>;
2105
+ reference: z.ZodString;
2106
+ sourceTargetId: z.ZodOptional<z.ZodString>;
2107
+ resolvedPath: z.ZodOptional<z.ZodString>;
2108
+ }, "strip", z.ZodTypeAny, {
2109
+ reference: string;
2110
+ source: "style-kit" | "target-output";
2111
+ sourceTargetId?: string | undefined;
2112
+ resolvedPath?: string | undefined;
2113
+ }, {
2114
+ reference: string;
2115
+ source: "style-kit" | "target-output";
2116
+ sourceTargetId?: string | undefined;
2117
+ resolvedPath?: string | undefined;
2118
+ }>, "many">>;
2119
+ generationMode: z.ZodOptional<z.ZodEnum<["text", "edit-first"]>>;
2120
+ edit: z.ZodOptional<z.ZodObject<{
2121
+ mode: z.ZodOptional<z.ZodEnum<["edit", "iterate"]>>;
2122
+ instruction: z.ZodOptional<z.ZodString>;
2123
+ inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
2124
+ path: z.ZodString;
2125
+ role: z.ZodOptional<z.ZodEnum<["base", "mask", "reference"]>>;
2126
+ fidelity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
2127
+ }, "strip", z.ZodTypeAny, {
2128
+ path: string;
2129
+ role?: "base" | "mask" | "reference" | undefined;
2130
+ fidelity?: "low" | "medium" | "high" | undefined;
2131
+ }, {
2132
+ path: string;
2133
+ role?: "base" | "mask" | "reference" | undefined;
2134
+ fidelity?: "low" | "medium" | "high" | undefined;
2135
+ }>, "many">>;
2136
+ preserveComposition: z.ZodOptional<z.ZodBoolean>;
2137
+ }, "strip", z.ZodTypeAny, {
2138
+ mode?: "edit" | "iterate" | undefined;
2139
+ instruction?: string | undefined;
2140
+ preserveComposition?: boolean | undefined;
2141
+ inputs?: {
2142
+ path: string;
2143
+ role?: "base" | "mask" | "reference" | undefined;
2144
+ fidelity?: "low" | "medium" | "high" | undefined;
2145
+ }[] | undefined;
2146
+ }, {
2147
+ mode?: "edit" | "iterate" | undefined;
2148
+ instruction?: string | undefined;
2149
+ preserveComposition?: boolean | undefined;
2150
+ inputs?: {
2151
+ path: string;
2152
+ role?: "base" | "mask" | "reference" | undefined;
2153
+ fidelity?: "low" | "medium" | "high" | undefined;
2154
+ }[] | undefined;
2155
+ }>>;
2156
+ regenerationSource: z.ZodOptional<z.ZodObject<{
2157
+ mode: z.ZodEnum<["selection-lock", "selection-lock-edit"]>;
2158
+ selectionLockPath: z.ZodString;
2159
+ selectionLockGeneratedAt: z.ZodOptional<z.ZodString>;
2160
+ lockInputHash: z.ZodString;
2161
+ lockSelectedOutputPath: z.ZodString;
2162
+ }, "strip", z.ZodTypeAny, {
2163
+ mode: "selection-lock" | "selection-lock-edit";
2164
+ selectionLockPath: string;
2165
+ lockInputHash: string;
2166
+ lockSelectedOutputPath: string;
2167
+ selectionLockGeneratedAt?: string | undefined;
2168
+ }, {
2169
+ mode: "selection-lock" | "selection-lock-edit";
2170
+ selectionLockPath: string;
2171
+ lockInputHash: string;
2172
+ lockSelectedOutputPath: string;
2173
+ selectionLockGeneratedAt?: string | undefined;
2174
+ }>>;
2175
+ warnings: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2176
+ }, "strip", z.ZodTypeAny, {
2177
+ jobId: string;
2178
+ provider: "openai" | "nano" | "local";
2179
+ model: string;
2180
+ targetId: string;
2181
+ outputPath: string;
2182
+ inputHash: string;
2183
+ startedAt: string;
2184
+ finishedAt: string;
2185
+ edit?: {
2186
+ mode?: "edit" | "iterate" | undefined;
2187
+ instruction?: string | undefined;
2188
+ preserveComposition?: boolean | undefined;
2189
+ inputs?: {
2190
+ path: string;
2191
+ role?: "base" | "mask" | "reference" | undefined;
2192
+ fidelity?: "low" | "medium" | "high" | undefined;
2193
+ }[] | undefined;
2194
+ } | undefined;
2195
+ coarseToFine?: {
2196
+ draftQuality: string;
2197
+ finalQuality: string;
2198
+ enabled: boolean;
2199
+ promoteTopK: number;
2200
+ discarded: {
2201
+ outputPath: string;
2202
+ score: number;
2203
+ reason: string;
2204
+ passedAcceptance: boolean;
2205
+ }[];
2206
+ promoted: {
2207
+ outputPath: string;
2208
+ score: number;
2209
+ passedAcceptance: boolean;
2210
+ refinedOutputPath?: string | undefined;
2211
+ }[];
2212
+ requireDraftAcceptance: boolean;
2213
+ draftCandidateCount: number;
2214
+ minDraftScore?: number | undefined;
2215
+ warnings?: string[] | undefined;
2216
+ skippedReason?: string | undefined;
2217
+ } | undefined;
2218
+ agenticRetry?: {
2219
+ maxRetries: number;
2220
+ enabled: boolean;
2221
+ attempted: number;
2222
+ succeeded: boolean;
2223
+ attempts: {
2224
+ outputPath: string;
2225
+ triggeredBy: string[];
2226
+ sourceOutputPath: string;
2227
+ attempt: number;
2228
+ critique: string;
2229
+ scoreBefore: number;
2230
+ scoreAfter: number;
2231
+ passedBefore: boolean;
2232
+ passedAfter: boolean;
2233
+ reasonsBefore: string[];
2234
+ reasonsAfter: string[];
2235
+ }[];
2236
+ skippedReason?: string | undefined;
2237
+ } | undefined;
2238
+ candidateScores?: {
2239
+ outputPath: string;
2240
+ score: number;
2241
+ passedAcceptance: boolean;
2242
+ reasons: string[];
2243
+ warnings?: string[] | undefined;
2244
+ metrics?: Record<string, number> | undefined;
2245
+ vlm?: {
2246
+ threshold: number;
2247
+ score: number;
2248
+ maxScore: number;
2249
+ passed: boolean;
2250
+ evaluator: "command" | "http";
2251
+ reason: string;
2252
+ rubric?: string | undefined;
2253
+ } | undefined;
2254
+ promoted?: boolean | undefined;
2255
+ stage?: "draft" | "refine" | "autocorrect" | undefined;
2256
+ sourceOutputPath?: string | undefined;
2257
+ autoCorrectAttempt?: number | undefined;
2258
+ components?: Record<string, number> | undefined;
2259
+ selected?: boolean | undefined;
2260
+ }[] | undefined;
2261
+ bytesWritten?: number | undefined;
2262
+ skipped?: boolean | undefined;
2263
+ candidateOutputs?: {
2264
+ outputPath: string;
2265
+ bytesWritten: number;
2266
+ }[] | undefined;
2267
+ styleReferenceLineage?: {
2268
+ reference: string;
2269
+ source: "style-kit" | "target-output";
2270
+ sourceTargetId?: string | undefined;
2271
+ resolvedPath?: string | undefined;
2272
+ }[] | undefined;
2273
+ generationMode?: "text" | "edit-first" | undefined;
2274
+ regenerationSource?: {
2275
+ mode: "selection-lock" | "selection-lock-edit";
2276
+ selectionLockPath: string;
2277
+ lockInputHash: string;
2278
+ lockSelectedOutputPath: string;
2279
+ selectionLockGeneratedAt?: string | undefined;
2280
+ } | undefined;
2281
+ warnings?: string[] | undefined;
2282
+ }, {
2283
+ jobId: string;
2284
+ provider: "openai" | "nano" | "local";
2285
+ model: string;
2286
+ targetId: string;
2287
+ outputPath: string;
2288
+ inputHash: string;
2289
+ startedAt: string;
2290
+ finishedAt: string;
2291
+ edit?: {
2292
+ mode?: "edit" | "iterate" | undefined;
2293
+ instruction?: string | undefined;
2294
+ preserveComposition?: boolean | undefined;
2295
+ inputs?: {
2296
+ path: string;
2297
+ role?: "base" | "mask" | "reference" | undefined;
2298
+ fidelity?: "low" | "medium" | "high" | undefined;
2299
+ }[] | undefined;
2300
+ } | undefined;
2301
+ coarseToFine?: {
2302
+ draftQuality: string;
2303
+ finalQuality: string;
2304
+ enabled: boolean;
2305
+ promoteTopK: number;
2306
+ discarded: {
2307
+ outputPath: string;
2308
+ score: number;
2309
+ reason: string;
2310
+ passedAcceptance: boolean;
2311
+ }[];
2312
+ promoted: {
2313
+ outputPath: string;
2314
+ score: number;
2315
+ passedAcceptance: boolean;
2316
+ refinedOutputPath?: string | undefined;
2317
+ }[];
2318
+ requireDraftAcceptance: boolean;
2319
+ draftCandidateCount: number;
2320
+ minDraftScore?: number | undefined;
2321
+ warnings?: string[] | undefined;
2322
+ skippedReason?: string | undefined;
2323
+ } | undefined;
2324
+ agenticRetry?: {
2325
+ maxRetries: number;
2326
+ enabled: boolean;
2327
+ attempted: number;
2328
+ succeeded: boolean;
2329
+ attempts: {
2330
+ outputPath: string;
2331
+ triggeredBy: string[];
2332
+ sourceOutputPath: string;
2333
+ attempt: number;
2334
+ critique: string;
2335
+ scoreBefore: number;
2336
+ scoreAfter: number;
2337
+ passedBefore: boolean;
2338
+ passedAfter: boolean;
2339
+ reasonsBefore: string[];
2340
+ reasonsAfter: string[];
2341
+ }[];
2342
+ skippedReason?: string | undefined;
2343
+ } | undefined;
2344
+ candidateScores?: {
2345
+ outputPath: string;
2346
+ score: number;
2347
+ passedAcceptance: boolean;
2348
+ reasons: string[];
2349
+ warnings?: string[] | undefined;
2350
+ metrics?: Record<string, number> | undefined;
2351
+ vlm?: {
2352
+ threshold: number;
2353
+ score: number;
2354
+ maxScore: number;
2355
+ passed: boolean;
2356
+ evaluator: "command" | "http";
2357
+ reason: string;
2358
+ rubric?: string | undefined;
2359
+ } | undefined;
2360
+ promoted?: boolean | undefined;
2361
+ stage?: "draft" | "refine" | "autocorrect" | undefined;
2362
+ sourceOutputPath?: string | undefined;
2363
+ autoCorrectAttempt?: number | undefined;
2364
+ components?: Record<string, number> | undefined;
2365
+ selected?: boolean | undefined;
2366
+ }[] | undefined;
2367
+ bytesWritten?: number | undefined;
2368
+ skipped?: boolean | undefined;
2369
+ candidateOutputs?: {
2370
+ outputPath: string;
2371
+ bytesWritten: number;
2372
+ }[] | undefined;
2373
+ styleReferenceLineage?: {
2374
+ reference: string;
2375
+ source: "style-kit" | "target-output";
2376
+ sourceTargetId?: string | undefined;
2377
+ resolvedPath?: string | undefined;
2378
+ }[] | undefined;
2379
+ generationMode?: "text" | "edit-first" | undefined;
2380
+ regenerationSource?: {
2381
+ mode: "selection-lock" | "selection-lock-edit";
2382
+ selectionLockPath: string;
2383
+ lockInputHash: string;
2384
+ lockSelectedOutputPath: string;
2385
+ selectionLockGeneratedAt?: string | undefined;
2386
+ } | undefined;
2387
+ warnings?: string[] | undefined;
2388
+ }>, "many">;
2389
+ failures: z.ZodOptional<z.ZodArray<z.ZodObject<{
2390
+ targetId: z.ZodString;
2391
+ provider: z.ZodEnum<["openai", "nano", "local"]>;
2392
+ attemptedProviders: z.ZodArray<z.ZodEnum<["openai", "nano", "local"]>, "many">;
2393
+ message: z.ZodString;
2394
+ }, "strip", z.ZodTypeAny, {
2395
+ provider: "openai" | "nano" | "local";
2396
+ targetId: string;
2397
+ message: string;
2398
+ attemptedProviders: ("openai" | "nano" | "local")[];
2399
+ }, {
2400
+ provider: "openai" | "nano" | "local";
2401
+ targetId: string;
2402
+ message: string;
2403
+ attemptedProviders: ("openai" | "nano" | "local")[];
2404
+ }>, "many">>;
2405
+ }, "strip", z.ZodTypeAny, {
2406
+ jobs: {
2407
+ jobId: string;
2408
+ provider: "openai" | "nano" | "local";
2409
+ model: string;
2410
+ targetId: string;
2411
+ outputPath: string;
2412
+ inputHash: string;
2413
+ startedAt: string;
2414
+ finishedAt: string;
2415
+ edit?: {
2416
+ mode?: "edit" | "iterate" | undefined;
2417
+ instruction?: string | undefined;
2418
+ preserveComposition?: boolean | undefined;
2419
+ inputs?: {
2420
+ path: string;
2421
+ role?: "base" | "mask" | "reference" | undefined;
2422
+ fidelity?: "low" | "medium" | "high" | undefined;
2423
+ }[] | undefined;
2424
+ } | undefined;
2425
+ coarseToFine?: {
2426
+ draftQuality: string;
2427
+ finalQuality: string;
2428
+ enabled: boolean;
2429
+ promoteTopK: number;
2430
+ discarded: {
2431
+ outputPath: string;
2432
+ score: number;
2433
+ reason: string;
2434
+ passedAcceptance: boolean;
2435
+ }[];
2436
+ promoted: {
2437
+ outputPath: string;
2438
+ score: number;
2439
+ passedAcceptance: boolean;
2440
+ refinedOutputPath?: string | undefined;
2441
+ }[];
2442
+ requireDraftAcceptance: boolean;
2443
+ draftCandidateCount: number;
2444
+ minDraftScore?: number | undefined;
2445
+ warnings?: string[] | undefined;
2446
+ skippedReason?: string | undefined;
2447
+ } | undefined;
2448
+ agenticRetry?: {
2449
+ maxRetries: number;
2450
+ enabled: boolean;
2451
+ attempted: number;
2452
+ succeeded: boolean;
2453
+ attempts: {
2454
+ outputPath: string;
2455
+ triggeredBy: string[];
2456
+ sourceOutputPath: string;
2457
+ attempt: number;
2458
+ critique: string;
2459
+ scoreBefore: number;
2460
+ scoreAfter: number;
2461
+ passedBefore: boolean;
2462
+ passedAfter: boolean;
2463
+ reasonsBefore: string[];
2464
+ reasonsAfter: string[];
2465
+ }[];
2466
+ skippedReason?: string | undefined;
2467
+ } | undefined;
2468
+ candidateScores?: {
2469
+ outputPath: string;
2470
+ score: number;
2471
+ passedAcceptance: boolean;
2472
+ reasons: string[];
2473
+ warnings?: string[] | undefined;
2474
+ metrics?: Record<string, number> | undefined;
2475
+ vlm?: {
2476
+ threshold: number;
2477
+ score: number;
2478
+ maxScore: number;
2479
+ passed: boolean;
2480
+ evaluator: "command" | "http";
2481
+ reason: string;
2482
+ rubric?: string | undefined;
2483
+ } | undefined;
2484
+ promoted?: boolean | undefined;
2485
+ stage?: "draft" | "refine" | "autocorrect" | undefined;
2486
+ sourceOutputPath?: string | undefined;
2487
+ autoCorrectAttempt?: number | undefined;
2488
+ components?: Record<string, number> | undefined;
2489
+ selected?: boolean | undefined;
2490
+ }[] | undefined;
2491
+ bytesWritten?: number | undefined;
2492
+ skipped?: boolean | undefined;
2493
+ candidateOutputs?: {
2494
+ outputPath: string;
2495
+ bytesWritten: number;
2496
+ }[] | undefined;
2497
+ styleReferenceLineage?: {
2498
+ reference: string;
2499
+ source: "style-kit" | "target-output";
2500
+ sourceTargetId?: string | undefined;
2501
+ resolvedPath?: string | undefined;
2502
+ }[] | undefined;
2503
+ generationMode?: "text" | "edit-first" | undefined;
2504
+ regenerationSource?: {
2505
+ mode: "selection-lock" | "selection-lock-edit";
2506
+ selectionLockPath: string;
2507
+ lockInputHash: string;
2508
+ lockSelectedOutputPath: string;
2509
+ selectionLockGeneratedAt?: string | undefined;
2510
+ } | undefined;
2511
+ warnings?: string[] | undefined;
2512
+ }[];
2513
+ inputHash: string;
2514
+ startedAt: string;
2515
+ finishedAt: string;
2516
+ generatedAt: string;
2517
+ runId: string;
2518
+ failures?: {
2519
+ provider: "openai" | "nano" | "local";
2520
+ targetId: string;
2521
+ message: string;
2522
+ attemptedProviders: ("openai" | "nano" | "local")[];
2523
+ }[] | undefined;
2524
+ }, {
2525
+ jobs: {
2526
+ jobId: string;
2527
+ provider: "openai" | "nano" | "local";
2528
+ model: string;
2529
+ targetId: string;
2530
+ outputPath: string;
2531
+ inputHash: string;
2532
+ startedAt: string;
2533
+ finishedAt: string;
2534
+ edit?: {
2535
+ mode?: "edit" | "iterate" | undefined;
2536
+ instruction?: string | undefined;
2537
+ preserveComposition?: boolean | undefined;
2538
+ inputs?: {
2539
+ path: string;
2540
+ role?: "base" | "mask" | "reference" | undefined;
2541
+ fidelity?: "low" | "medium" | "high" | undefined;
2542
+ }[] | undefined;
2543
+ } | undefined;
2544
+ coarseToFine?: {
2545
+ draftQuality: string;
2546
+ finalQuality: string;
2547
+ enabled: boolean;
2548
+ promoteTopK: number;
2549
+ discarded: {
2550
+ outputPath: string;
2551
+ score: number;
2552
+ reason: string;
2553
+ passedAcceptance: boolean;
2554
+ }[];
2555
+ promoted: {
2556
+ outputPath: string;
2557
+ score: number;
2558
+ passedAcceptance: boolean;
2559
+ refinedOutputPath?: string | undefined;
2560
+ }[];
2561
+ requireDraftAcceptance: boolean;
2562
+ draftCandidateCount: number;
2563
+ minDraftScore?: number | undefined;
2564
+ warnings?: string[] | undefined;
2565
+ skippedReason?: string | undefined;
2566
+ } | undefined;
2567
+ agenticRetry?: {
2568
+ maxRetries: number;
2569
+ enabled: boolean;
2570
+ attempted: number;
2571
+ succeeded: boolean;
2572
+ attempts: {
2573
+ outputPath: string;
2574
+ triggeredBy: string[];
2575
+ sourceOutputPath: string;
2576
+ attempt: number;
2577
+ critique: string;
2578
+ scoreBefore: number;
2579
+ scoreAfter: number;
2580
+ passedBefore: boolean;
2581
+ passedAfter: boolean;
2582
+ reasonsBefore: string[];
2583
+ reasonsAfter: string[];
2584
+ }[];
2585
+ skippedReason?: string | undefined;
2586
+ } | undefined;
2587
+ candidateScores?: {
2588
+ outputPath: string;
2589
+ score: number;
2590
+ passedAcceptance: boolean;
2591
+ reasons: string[];
2592
+ warnings?: string[] | undefined;
2593
+ metrics?: Record<string, number> | undefined;
2594
+ vlm?: {
2595
+ threshold: number;
2596
+ score: number;
2597
+ maxScore: number;
2598
+ passed: boolean;
2599
+ evaluator: "command" | "http";
2600
+ reason: string;
2601
+ rubric?: string | undefined;
2602
+ } | undefined;
2603
+ promoted?: boolean | undefined;
2604
+ stage?: "draft" | "refine" | "autocorrect" | undefined;
2605
+ sourceOutputPath?: string | undefined;
2606
+ autoCorrectAttempt?: number | undefined;
2607
+ components?: Record<string, number> | undefined;
2608
+ selected?: boolean | undefined;
2609
+ }[] | undefined;
2610
+ bytesWritten?: number | undefined;
2611
+ skipped?: boolean | undefined;
2612
+ candidateOutputs?: {
2613
+ outputPath: string;
2614
+ bytesWritten: number;
2615
+ }[] | undefined;
2616
+ styleReferenceLineage?: {
2617
+ reference: string;
2618
+ source: "style-kit" | "target-output";
2619
+ sourceTargetId?: string | undefined;
2620
+ resolvedPath?: string | undefined;
2621
+ }[] | undefined;
2622
+ generationMode?: "text" | "edit-first" | undefined;
2623
+ regenerationSource?: {
2624
+ mode: "selection-lock" | "selection-lock-edit";
2625
+ selectionLockPath: string;
2626
+ lockInputHash: string;
2627
+ lockSelectedOutputPath: string;
2628
+ selectionLockGeneratedAt?: string | undefined;
2629
+ } | undefined;
2630
+ warnings?: string[] | undefined;
2631
+ }[];
2632
+ inputHash: string;
2633
+ startedAt: string;
2634
+ finishedAt: string;
2635
+ generatedAt: string;
2636
+ runId: string;
2637
+ failures?: {
2638
+ provider: "openai" | "nano" | "local";
2639
+ targetId: string;
2640
+ message: string;
2641
+ attemptedProviders: ("openai" | "nano" | "local")[];
2642
+ }[] | undefined;
2643
+ }>;
2644
+ readonly "acceptance-report": z.ZodObject<{
2645
+ generatedAt: z.ZodString;
2646
+ imagesDir: z.ZodString;
2647
+ strict: z.ZodBoolean;
2648
+ total: z.ZodNumber;
2649
+ passed: z.ZodNumber;
2650
+ failed: z.ZodNumber;
2651
+ errors: z.ZodNumber;
2652
+ warnings: z.ZodNumber;
2653
+ packInvariants: z.ZodOptional<z.ZodObject<{
2654
+ errors: z.ZodNumber;
2655
+ warnings: z.ZodNumber;
2656
+ issues: z.ZodArray<z.ZodObject<{
2657
+ level: z.ZodEnum<["error", "warning"]>;
2658
+ code: z.ZodString;
2659
+ message: z.ZodString;
2660
+ targetIds: z.ZodArray<z.ZodString, "many">;
2661
+ evaluationProfileId: z.ZodOptional<z.ZodString>;
2662
+ metrics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
2663
+ }, "strip", z.ZodTypeAny, {
2664
+ targetIds: string[];
2665
+ code: string;
2666
+ message: string;
2667
+ level: "warning" | "error";
2668
+ metrics?: Record<string, number> | undefined;
2669
+ evaluationProfileId?: string | undefined;
2670
+ }, {
2671
+ targetIds: string[];
2672
+ code: string;
2673
+ message: string;
2674
+ level: "warning" | "error";
2675
+ metrics?: Record<string, number> | undefined;
2676
+ evaluationProfileId?: string | undefined;
2677
+ }>, "many">;
2678
+ metrics: z.ZodOptional<z.ZodObject<{
2679
+ textureBudgetMBByProfile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
2680
+ estimatedMB: z.ZodNumber;
2681
+ budgetMB: z.ZodOptional<z.ZodNumber>;
2682
+ targetCount: z.ZodNumber;
2683
+ }, "strip", z.ZodTypeAny, {
2684
+ estimatedMB: number;
2685
+ targetCount: number;
2686
+ budgetMB?: number | undefined;
2687
+ }, {
2688
+ estimatedMB: number;
2689
+ targetCount: number;
2690
+ budgetMB?: number | undefined;
2691
+ }>>>;
2692
+ spritesheetContinuityByAnimation: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
2693
+ comparisons: z.ZodNumber;
2694
+ maxSilhouetteDrift: z.ZodNumber;
2695
+ maxAnchorDrift: z.ZodNumber;
2696
+ maxIdentityDrift: z.ZodOptional<z.ZodNumber>;
2697
+ maxPoseDrift: z.ZodOptional<z.ZodNumber>;
2698
+ maxUpperBodyMotionDrift: z.ZodOptional<z.ZodNumber>;
2699
+ maxLowerBodyMotionDrift: z.ZodOptional<z.ZodNumber>;
2700
+ maxFootMotionDrift: z.ZodOptional<z.ZodNumber>;
2701
+ }, "strip", z.ZodTypeAny, {
2702
+ comparisons: number;
2703
+ maxSilhouetteDrift: number;
2704
+ maxAnchorDrift: number;
2705
+ maxIdentityDrift?: number | undefined;
2706
+ maxPoseDrift?: number | undefined;
2707
+ maxUpperBodyMotionDrift?: number | undefined;
2708
+ maxLowerBodyMotionDrift?: number | undefined;
2709
+ maxFootMotionDrift?: number | undefined;
2710
+ }, {
2711
+ comparisons: number;
2712
+ maxSilhouetteDrift: number;
2713
+ maxAnchorDrift: number;
2714
+ maxIdentityDrift?: number | undefined;
2715
+ maxPoseDrift?: number | undefined;
2716
+ maxUpperBodyMotionDrift?: number | undefined;
2717
+ maxLowerBodyMotionDrift?: number | undefined;
2718
+ maxFootMotionDrift?: number | undefined;
2719
+ }>>>;
2720
+ }, "strip", z.ZodTypeAny, {
2721
+ spritesheetContinuityByAnimation?: Record<string, {
2722
+ comparisons: number;
2723
+ maxSilhouetteDrift: number;
2724
+ maxAnchorDrift: number;
2725
+ maxIdentityDrift?: number | undefined;
2726
+ maxPoseDrift?: number | undefined;
2727
+ maxUpperBodyMotionDrift?: number | undefined;
2728
+ maxLowerBodyMotionDrift?: number | undefined;
2729
+ maxFootMotionDrift?: number | undefined;
2730
+ }> | undefined;
2731
+ textureBudgetMBByProfile?: Record<string, {
2732
+ estimatedMB: number;
2733
+ targetCount: number;
2734
+ budgetMB?: number | undefined;
2735
+ }> | undefined;
2736
+ }, {
2737
+ spritesheetContinuityByAnimation?: Record<string, {
2738
+ comparisons: number;
2739
+ maxSilhouetteDrift: number;
2740
+ maxAnchorDrift: number;
2741
+ maxIdentityDrift?: number | undefined;
2742
+ maxPoseDrift?: number | undefined;
2743
+ maxUpperBodyMotionDrift?: number | undefined;
2744
+ maxLowerBodyMotionDrift?: number | undefined;
2745
+ maxFootMotionDrift?: number | undefined;
2746
+ }> | undefined;
2747
+ textureBudgetMBByProfile?: Record<string, {
2748
+ estimatedMB: number;
2749
+ targetCount: number;
2750
+ budgetMB?: number | undefined;
2751
+ }> | undefined;
2752
+ }>>;
2753
+ }, "strip", z.ZodTypeAny, {
2754
+ warnings: number;
2755
+ errors: number;
2756
+ issues: {
2757
+ targetIds: string[];
2758
+ code: string;
2759
+ message: string;
2760
+ level: "warning" | "error";
2761
+ metrics?: Record<string, number> | undefined;
2762
+ evaluationProfileId?: string | undefined;
2763
+ }[];
2764
+ metrics?: {
2765
+ spritesheetContinuityByAnimation?: Record<string, {
2766
+ comparisons: number;
2767
+ maxSilhouetteDrift: number;
2768
+ maxAnchorDrift: number;
2769
+ maxIdentityDrift?: number | undefined;
2770
+ maxPoseDrift?: number | undefined;
2771
+ maxUpperBodyMotionDrift?: number | undefined;
2772
+ maxLowerBodyMotionDrift?: number | undefined;
2773
+ maxFootMotionDrift?: number | undefined;
2774
+ }> | undefined;
2775
+ textureBudgetMBByProfile?: Record<string, {
2776
+ estimatedMB: number;
2777
+ targetCount: number;
2778
+ budgetMB?: number | undefined;
2779
+ }> | undefined;
2780
+ } | undefined;
2781
+ }, {
2782
+ warnings: number;
2783
+ errors: number;
2784
+ issues: {
2785
+ targetIds: string[];
2786
+ code: string;
2787
+ message: string;
2788
+ level: "warning" | "error";
2789
+ metrics?: Record<string, number> | undefined;
2790
+ evaluationProfileId?: string | undefined;
2791
+ }[];
2792
+ metrics?: {
2793
+ spritesheetContinuityByAnimation?: Record<string, {
2794
+ comparisons: number;
2795
+ maxSilhouetteDrift: number;
2796
+ maxAnchorDrift: number;
2797
+ maxIdentityDrift?: number | undefined;
2798
+ maxPoseDrift?: number | undefined;
2799
+ maxUpperBodyMotionDrift?: number | undefined;
2800
+ maxLowerBodyMotionDrift?: number | undefined;
2801
+ maxFootMotionDrift?: number | undefined;
2802
+ }> | undefined;
2803
+ textureBudgetMBByProfile?: Record<string, {
2804
+ estimatedMB: number;
2805
+ targetCount: number;
2806
+ budgetMB?: number | undefined;
2807
+ }> | undefined;
2808
+ } | undefined;
2809
+ }>>;
2810
+ items: z.ZodArray<z.ZodObject<{
2811
+ targetId: z.ZodString;
2812
+ out: z.ZodString;
2813
+ imagePath: z.ZodString;
2814
+ exists: z.ZodBoolean;
2815
+ width: z.ZodOptional<z.ZodNumber>;
2816
+ height: z.ZodOptional<z.ZodNumber>;
2817
+ format: z.ZodOptional<z.ZodString>;
2818
+ sizeBytes: z.ZodOptional<z.ZodNumber>;
2819
+ hasAlphaChannel: z.ZodOptional<z.ZodBoolean>;
2820
+ hasTransparentPixels: z.ZodOptional<z.ZodBoolean>;
2821
+ metrics: z.ZodOptional<z.ZodObject<{
2822
+ seamScore: z.ZodOptional<z.ZodNumber>;
2823
+ seamStripPx: z.ZodOptional<z.ZodNumber>;
2824
+ wrapGridColumns: z.ZodOptional<z.ZodNumber>;
2825
+ wrapGridRows: z.ZodOptional<z.ZodNumber>;
2826
+ wrapGridSeamScore: z.ZodOptional<z.ZodNumber>;
2827
+ wrapGridSeamStripPx: z.ZodOptional<z.ZodNumber>;
2828
+ wrapGridTopologyComparisons: z.ZodOptional<z.ZodNumber>;
2829
+ wrapGridTopologyMismatchRatio: z.ZodOptional<z.ZodNumber>;
2830
+ wrapGridTopologyThreshold: z.ZodOptional<z.ZodNumber>;
2831
+ wrapGridTopologyColorTolerance: z.ZodOptional<z.ZodNumber>;
2832
+ styleLineContrast: z.ZodOptional<z.ZodNumber>;
2833
+ styleShadingBandCount: z.ZodOptional<z.ZodNumber>;
2834
+ styleUiRectilinearity: z.ZodOptional<z.ZodNumber>;
2835
+ mattingMaskCoverage: z.ZodOptional<z.ZodNumber>;
2836
+ mattingSemiTransparencyRatio: z.ZodOptional<z.ZodNumber>;
2837
+ mattingMaskConsistency: z.ZodOptional<z.ZodNumber>;
2838
+ mattingHiddenRgbLeak: z.ZodOptional<z.ZodNumber>;
2839
+ paletteCompliance: z.ZodOptional<z.ZodNumber>;
2840
+ distinctColors: z.ZodOptional<z.ZodNumber>;
2841
+ alphaBoundaryPixels: z.ZodOptional<z.ZodNumber>;
2842
+ alphaHaloRisk: z.ZodOptional<z.ZodNumber>;
2843
+ alphaStrayNoise: z.ZodOptional<z.ZodNumber>;
2844
+ alphaEdgeSharpness: z.ZodOptional<z.ZodNumber>;
2845
+ }, "strip", z.ZodTypeAny, {
2846
+ distinctColors?: number | undefined;
2847
+ seamScore?: number | undefined;
2848
+ alphaBoundaryPixels?: number | undefined;
2849
+ alphaHaloRisk?: number | undefined;
2850
+ alphaStrayNoise?: number | undefined;
2851
+ alphaEdgeSharpness?: number | undefined;
2852
+ paletteCompliance?: number | undefined;
2853
+ styleLineContrast?: number | undefined;
2854
+ styleShadingBandCount?: number | undefined;
2855
+ styleUiRectilinearity?: number | undefined;
2856
+ mattingMaskCoverage?: number | undefined;
2857
+ mattingSemiTransparencyRatio?: number | undefined;
2858
+ mattingMaskConsistency?: number | undefined;
2859
+ mattingHiddenRgbLeak?: number | undefined;
2860
+ seamStripPx?: number | undefined;
2861
+ wrapGridColumns?: number | undefined;
2862
+ wrapGridRows?: number | undefined;
2863
+ wrapGridSeamScore?: number | undefined;
2864
+ wrapGridSeamStripPx?: number | undefined;
2865
+ wrapGridTopologyComparisons?: number | undefined;
2866
+ wrapGridTopologyMismatchRatio?: number | undefined;
2867
+ wrapGridTopologyThreshold?: number | undefined;
2868
+ wrapGridTopologyColorTolerance?: number | undefined;
2869
+ }, {
2870
+ distinctColors?: number | undefined;
2871
+ seamScore?: number | undefined;
2872
+ alphaBoundaryPixels?: number | undefined;
2873
+ alphaHaloRisk?: number | undefined;
2874
+ alphaStrayNoise?: number | undefined;
2875
+ alphaEdgeSharpness?: number | undefined;
2876
+ paletteCompliance?: number | undefined;
2877
+ styleLineContrast?: number | undefined;
2878
+ styleShadingBandCount?: number | undefined;
2879
+ styleUiRectilinearity?: number | undefined;
2880
+ mattingMaskCoverage?: number | undefined;
2881
+ mattingSemiTransparencyRatio?: number | undefined;
2882
+ mattingMaskConsistency?: number | undefined;
2883
+ mattingHiddenRgbLeak?: number | undefined;
2884
+ seamStripPx?: number | undefined;
2885
+ wrapGridColumns?: number | undefined;
2886
+ wrapGridRows?: number | undefined;
2887
+ wrapGridSeamScore?: number | undefined;
2888
+ wrapGridSeamStripPx?: number | undefined;
2889
+ wrapGridTopologyComparisons?: number | undefined;
2890
+ wrapGridTopologyMismatchRatio?: number | undefined;
2891
+ wrapGridTopologyThreshold?: number | undefined;
2892
+ wrapGridTopologyColorTolerance?: number | undefined;
2893
+ }>>;
2894
+ issues: z.ZodArray<z.ZodObject<{
2895
+ level: z.ZodEnum<["error", "warning"]>;
2896
+ code: z.ZodString;
2897
+ targetId: z.ZodString;
2898
+ imagePath: z.ZodString;
2899
+ message: z.ZodString;
2900
+ }, "strip", z.ZodTypeAny, {
2901
+ targetId: string;
2902
+ code: string;
2903
+ message: string;
2904
+ level: "warning" | "error";
2905
+ imagePath: string;
2906
+ }, {
2907
+ targetId: string;
2908
+ code: string;
2909
+ message: string;
2910
+ level: "warning" | "error";
2911
+ imagePath: string;
2912
+ }>, "many">;
2913
+ }, "strip", z.ZodTypeAny, {
2914
+ targetId: string;
2915
+ out: string;
2916
+ exists: boolean;
2917
+ issues: {
2918
+ targetId: string;
2919
+ code: string;
2920
+ message: string;
2921
+ level: "warning" | "error";
2922
+ imagePath: string;
2923
+ }[];
2924
+ imagePath: string;
2925
+ metrics?: {
2926
+ distinctColors?: number | undefined;
2927
+ seamScore?: number | undefined;
2928
+ alphaBoundaryPixels?: number | undefined;
2929
+ alphaHaloRisk?: number | undefined;
2930
+ alphaStrayNoise?: number | undefined;
2931
+ alphaEdgeSharpness?: number | undefined;
2932
+ paletteCompliance?: number | undefined;
2933
+ styleLineContrast?: number | undefined;
2934
+ styleShadingBandCount?: number | undefined;
2935
+ styleUiRectilinearity?: number | undefined;
2936
+ mattingMaskCoverage?: number | undefined;
2937
+ mattingSemiTransparencyRatio?: number | undefined;
2938
+ mattingMaskConsistency?: number | undefined;
2939
+ mattingHiddenRgbLeak?: number | undefined;
2940
+ seamStripPx?: number | undefined;
2941
+ wrapGridColumns?: number | undefined;
2942
+ wrapGridRows?: number | undefined;
2943
+ wrapGridSeamScore?: number | undefined;
2944
+ wrapGridSeamStripPx?: number | undefined;
2945
+ wrapGridTopologyComparisons?: number | undefined;
2946
+ wrapGridTopologyMismatchRatio?: number | undefined;
2947
+ wrapGridTopologyThreshold?: number | undefined;
2948
+ wrapGridTopologyColorTolerance?: number | undefined;
2949
+ } | undefined;
2950
+ width?: number | undefined;
2951
+ height?: number | undefined;
2952
+ sizeBytes?: number | undefined;
2953
+ hasAlphaChannel?: boolean | undefined;
2954
+ hasTransparentPixels?: boolean | undefined;
2955
+ format?: string | undefined;
2956
+ }, {
2957
+ targetId: string;
2958
+ out: string;
2959
+ exists: boolean;
2960
+ issues: {
2961
+ targetId: string;
2962
+ code: string;
2963
+ message: string;
2964
+ level: "warning" | "error";
2965
+ imagePath: string;
2966
+ }[];
2967
+ imagePath: string;
2968
+ metrics?: {
2969
+ distinctColors?: number | undefined;
2970
+ seamScore?: number | undefined;
2971
+ alphaBoundaryPixels?: number | undefined;
2972
+ alphaHaloRisk?: number | undefined;
2973
+ alphaStrayNoise?: number | undefined;
2974
+ alphaEdgeSharpness?: number | undefined;
2975
+ paletteCompliance?: number | undefined;
2976
+ styleLineContrast?: number | undefined;
2977
+ styleShadingBandCount?: number | undefined;
2978
+ styleUiRectilinearity?: number | undefined;
2979
+ mattingMaskCoverage?: number | undefined;
2980
+ mattingSemiTransparencyRatio?: number | undefined;
2981
+ mattingMaskConsistency?: number | undefined;
2982
+ mattingHiddenRgbLeak?: number | undefined;
2983
+ seamStripPx?: number | undefined;
2984
+ wrapGridColumns?: number | undefined;
2985
+ wrapGridRows?: number | undefined;
2986
+ wrapGridSeamScore?: number | undefined;
2987
+ wrapGridSeamStripPx?: number | undefined;
2988
+ wrapGridTopologyComparisons?: number | undefined;
2989
+ wrapGridTopologyMismatchRatio?: number | undefined;
2990
+ wrapGridTopologyThreshold?: number | undefined;
2991
+ wrapGridTopologyColorTolerance?: number | undefined;
2992
+ } | undefined;
2993
+ width?: number | undefined;
2994
+ height?: number | undefined;
2995
+ sizeBytes?: number | undefined;
2996
+ hasAlphaChannel?: boolean | undefined;
2997
+ hasTransparentPixels?: boolean | undefined;
2998
+ format?: string | undefined;
2999
+ }>, "many">;
3000
+ }, "strip", z.ZodTypeAny, {
3001
+ warnings: number;
3002
+ passed: number;
3003
+ imagesDir: string;
3004
+ strict: boolean;
3005
+ total: number;
3006
+ failed: number;
3007
+ errors: number;
3008
+ items: {
3009
+ targetId: string;
3010
+ out: string;
3011
+ exists: boolean;
3012
+ issues: {
3013
+ targetId: string;
3014
+ code: string;
3015
+ message: string;
3016
+ level: "warning" | "error";
3017
+ imagePath: string;
3018
+ }[];
3019
+ imagePath: string;
3020
+ metrics?: {
3021
+ distinctColors?: number | undefined;
3022
+ seamScore?: number | undefined;
3023
+ alphaBoundaryPixels?: number | undefined;
3024
+ alphaHaloRisk?: number | undefined;
3025
+ alphaStrayNoise?: number | undefined;
3026
+ alphaEdgeSharpness?: number | undefined;
3027
+ paletteCompliance?: number | undefined;
3028
+ styleLineContrast?: number | undefined;
3029
+ styleShadingBandCount?: number | undefined;
3030
+ styleUiRectilinearity?: number | undefined;
3031
+ mattingMaskCoverage?: number | undefined;
3032
+ mattingSemiTransparencyRatio?: number | undefined;
3033
+ mattingMaskConsistency?: number | undefined;
3034
+ mattingHiddenRgbLeak?: number | undefined;
3035
+ seamStripPx?: number | undefined;
3036
+ wrapGridColumns?: number | undefined;
3037
+ wrapGridRows?: number | undefined;
3038
+ wrapGridSeamScore?: number | undefined;
3039
+ wrapGridSeamStripPx?: number | undefined;
3040
+ wrapGridTopologyComparisons?: number | undefined;
3041
+ wrapGridTopologyMismatchRatio?: number | undefined;
3042
+ wrapGridTopologyThreshold?: number | undefined;
3043
+ wrapGridTopologyColorTolerance?: number | undefined;
3044
+ } | undefined;
3045
+ width?: number | undefined;
3046
+ height?: number | undefined;
3047
+ sizeBytes?: number | undefined;
3048
+ hasAlphaChannel?: boolean | undefined;
3049
+ hasTransparentPixels?: boolean | undefined;
3050
+ format?: string | undefined;
3051
+ }[];
3052
+ generatedAt: string;
3053
+ packInvariants?: {
3054
+ warnings: number;
3055
+ errors: number;
3056
+ issues: {
3057
+ targetIds: string[];
3058
+ code: string;
3059
+ message: string;
3060
+ level: "warning" | "error";
3061
+ metrics?: Record<string, number> | undefined;
3062
+ evaluationProfileId?: string | undefined;
3063
+ }[];
3064
+ metrics?: {
3065
+ spritesheetContinuityByAnimation?: Record<string, {
3066
+ comparisons: number;
3067
+ maxSilhouetteDrift: number;
3068
+ maxAnchorDrift: number;
3069
+ maxIdentityDrift?: number | undefined;
3070
+ maxPoseDrift?: number | undefined;
3071
+ maxUpperBodyMotionDrift?: number | undefined;
3072
+ maxLowerBodyMotionDrift?: number | undefined;
3073
+ maxFootMotionDrift?: number | undefined;
3074
+ }> | undefined;
3075
+ textureBudgetMBByProfile?: Record<string, {
3076
+ estimatedMB: number;
3077
+ targetCount: number;
3078
+ budgetMB?: number | undefined;
3079
+ }> | undefined;
3080
+ } | undefined;
3081
+ } | undefined;
3082
+ }, {
3083
+ warnings: number;
3084
+ passed: number;
3085
+ imagesDir: string;
3086
+ strict: boolean;
3087
+ total: number;
3088
+ failed: number;
3089
+ errors: number;
3090
+ items: {
3091
+ targetId: string;
3092
+ out: string;
3093
+ exists: boolean;
3094
+ issues: {
3095
+ targetId: string;
3096
+ code: string;
3097
+ message: string;
3098
+ level: "warning" | "error";
3099
+ imagePath: string;
3100
+ }[];
3101
+ imagePath: string;
3102
+ metrics?: {
3103
+ distinctColors?: number | undefined;
3104
+ seamScore?: number | undefined;
3105
+ alphaBoundaryPixels?: number | undefined;
3106
+ alphaHaloRisk?: number | undefined;
3107
+ alphaStrayNoise?: number | undefined;
3108
+ alphaEdgeSharpness?: number | undefined;
3109
+ paletteCompliance?: number | undefined;
3110
+ styleLineContrast?: number | undefined;
3111
+ styleShadingBandCount?: number | undefined;
3112
+ styleUiRectilinearity?: number | undefined;
3113
+ mattingMaskCoverage?: number | undefined;
3114
+ mattingSemiTransparencyRatio?: number | undefined;
3115
+ mattingMaskConsistency?: number | undefined;
3116
+ mattingHiddenRgbLeak?: number | undefined;
3117
+ seamStripPx?: number | undefined;
3118
+ wrapGridColumns?: number | undefined;
3119
+ wrapGridRows?: number | undefined;
3120
+ wrapGridSeamScore?: number | undefined;
3121
+ wrapGridSeamStripPx?: number | undefined;
3122
+ wrapGridTopologyComparisons?: number | undefined;
3123
+ wrapGridTopologyMismatchRatio?: number | undefined;
3124
+ wrapGridTopologyThreshold?: number | undefined;
3125
+ wrapGridTopologyColorTolerance?: number | undefined;
3126
+ } | undefined;
3127
+ width?: number | undefined;
3128
+ height?: number | undefined;
3129
+ sizeBytes?: number | undefined;
3130
+ hasAlphaChannel?: boolean | undefined;
3131
+ hasTransparentPixels?: boolean | undefined;
3132
+ format?: string | undefined;
3133
+ }[];
3134
+ generatedAt: string;
3135
+ packInvariants?: {
3136
+ warnings: number;
3137
+ errors: number;
3138
+ issues: {
3139
+ targetIds: string[];
3140
+ code: string;
3141
+ message: string;
3142
+ level: "warning" | "error";
3143
+ metrics?: Record<string, number> | undefined;
3144
+ evaluationProfileId?: string | undefined;
3145
+ }[];
3146
+ metrics?: {
3147
+ spritesheetContinuityByAnimation?: Record<string, {
3148
+ comparisons: number;
3149
+ maxSilhouetteDrift: number;
3150
+ maxAnchorDrift: number;
3151
+ maxIdentityDrift?: number | undefined;
3152
+ maxPoseDrift?: number | undefined;
3153
+ maxUpperBodyMotionDrift?: number | undefined;
3154
+ maxLowerBodyMotionDrift?: number | undefined;
3155
+ maxFootMotionDrift?: number | undefined;
3156
+ }> | undefined;
3157
+ textureBudgetMBByProfile?: Record<string, {
3158
+ estimatedMB: number;
3159
+ targetCount: number;
3160
+ budgetMB?: number | undefined;
3161
+ }> | undefined;
3162
+ } | undefined;
3163
+ } | undefined;
3164
+ }>;
3165
+ readonly "eval-report": z.ZodObject<{
3166
+ generatedAt: z.ZodString;
3167
+ strict: z.ZodBoolean;
3168
+ imagesDir: z.ZodString;
3169
+ targetCount: z.ZodNumber;
3170
+ passed: z.ZodNumber;
3171
+ failed: z.ZodNumber;
3172
+ hardErrors: z.ZodNumber;
3173
+ adaptersUsed: z.ZodArray<z.ZodEnum<["clip", "lpips", "ssim"]>, "many">;
3174
+ adapterHealth: z.ZodObject<{
3175
+ configured: z.ZodArray<z.ZodEnum<["clip", "lpips", "ssim"]>, "many">;
3176
+ active: z.ZodArray<z.ZodEnum<["clip", "lpips", "ssim"]>, "many">;
3177
+ failed: z.ZodArray<z.ZodEnum<["clip", "lpips", "ssim"]>, "many">;
3178
+ adapters: z.ZodArray<z.ZodObject<{
3179
+ name: z.ZodEnum<["clip", "lpips", "ssim"]>;
3180
+ mode: z.ZodEnum<["command", "http", "unconfigured"]>;
3181
+ configured: z.ZodBoolean;
3182
+ active: z.ZodBoolean;
3183
+ failed: z.ZodBoolean;
3184
+ attemptedTargets: z.ZodNumber;
3185
+ successfulTargets: z.ZodNumber;
3186
+ failedTargets: z.ZodNumber;
3187
+ warningCount: z.ZodNumber;
3188
+ warnings: z.ZodArray<z.ZodString, "many">;
3189
+ }, "strip", z.ZodTypeAny, {
3190
+ warnings: string[];
3191
+ mode: "command" | "http" | "unconfigured";
3192
+ name: "clip" | "lpips" | "ssim";
3193
+ failed: boolean;
3194
+ configured: boolean;
3195
+ active: boolean;
3196
+ attemptedTargets: number;
3197
+ successfulTargets: number;
3198
+ failedTargets: number;
3199
+ warningCount: number;
3200
+ }, {
3201
+ warnings: string[];
3202
+ mode: "command" | "http" | "unconfigured";
3203
+ name: "clip" | "lpips" | "ssim";
3204
+ failed: boolean;
3205
+ configured: boolean;
3206
+ active: boolean;
3207
+ attemptedTargets: number;
3208
+ successfulTargets: number;
3209
+ failedTargets: number;
3210
+ warningCount: number;
3211
+ }>, "many">;
3212
+ }, "strip", z.ZodTypeAny, {
3213
+ failed: ("clip" | "lpips" | "ssim")[];
3214
+ adapters: {
3215
+ warnings: string[];
3216
+ mode: "command" | "http" | "unconfigured";
3217
+ name: "clip" | "lpips" | "ssim";
3218
+ failed: boolean;
3219
+ configured: boolean;
3220
+ active: boolean;
3221
+ attemptedTargets: number;
3222
+ successfulTargets: number;
3223
+ failedTargets: number;
3224
+ warningCount: number;
3225
+ }[];
3226
+ configured: ("clip" | "lpips" | "ssim")[];
3227
+ active: ("clip" | "lpips" | "ssim")[];
3228
+ }, {
3229
+ failed: ("clip" | "lpips" | "ssim")[];
3230
+ adapters: {
3231
+ warnings: string[];
3232
+ mode: "command" | "http" | "unconfigured";
3233
+ name: "clip" | "lpips" | "ssim";
3234
+ failed: boolean;
3235
+ configured: boolean;
3236
+ active: boolean;
3237
+ attemptedTargets: number;
3238
+ successfulTargets: number;
3239
+ failedTargets: number;
3240
+ warningCount: number;
3241
+ }[];
3242
+ configured: ("clip" | "lpips" | "ssim")[];
3243
+ active: ("clip" | "lpips" | "ssim")[];
3244
+ }>;
3245
+ adapterWarnings: z.ZodArray<z.ZodString, "many">;
3246
+ consistencyGroupSummary: z.ZodOptional<z.ZodArray<z.ZodObject<{
3247
+ consistencyGroup: z.ZodString;
3248
+ targetCount: z.ZodNumber;
3249
+ evaluatedTargetCount: z.ZodNumber;
3250
+ warningTargetIds: z.ZodArray<z.ZodString, "many">;
3251
+ outlierTargetIds: z.ZodArray<z.ZodString, "many">;
3252
+ warningCount: z.ZodNumber;
3253
+ outlierCount: z.ZodNumber;
3254
+ maxScore: z.ZodNumber;
3255
+ totalPenalty: z.ZodNumber;
3256
+ metricMedians: z.ZodRecord<z.ZodString, z.ZodNumber>;
3257
+ }, "strip", z.ZodTypeAny, {
3258
+ maxScore: number;
3259
+ consistencyGroup: string;
3260
+ targetCount: number;
3261
+ warningCount: number;
3262
+ evaluatedTargetCount: number;
3263
+ warningTargetIds: string[];
3264
+ outlierTargetIds: string[];
3265
+ outlierCount: number;
3266
+ totalPenalty: number;
3267
+ metricMedians: Record<string, number>;
3268
+ }, {
3269
+ maxScore: number;
3270
+ consistencyGroup: string;
3271
+ targetCount: number;
3272
+ warningCount: number;
3273
+ evaluatedTargetCount: number;
3274
+ warningTargetIds: string[];
3275
+ outlierTargetIds: string[];
3276
+ outlierCount: number;
3277
+ totalPenalty: number;
3278
+ metricMedians: Record<string, number>;
3279
+ }>, "many">>;
3280
+ packInvariants: z.ZodOptional<z.ZodObject<{
3281
+ errors: z.ZodNumber;
3282
+ warnings: z.ZodNumber;
3283
+ issues: z.ZodArray<z.ZodObject<{
3284
+ level: z.ZodEnum<["error", "warning"]>;
3285
+ code: z.ZodString;
3286
+ message: z.ZodString;
3287
+ targetIds: z.ZodArray<z.ZodString, "many">;
3288
+ evaluationProfileId: z.ZodOptional<z.ZodString>;
3289
+ metrics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
3290
+ }, "strip", z.ZodTypeAny, {
3291
+ targetIds: string[];
3292
+ code: string;
3293
+ message: string;
3294
+ level: "warning" | "error";
3295
+ metrics?: Record<string, number> | undefined;
3296
+ evaluationProfileId?: string | undefined;
3297
+ }, {
3298
+ targetIds: string[];
3299
+ code: string;
3300
+ message: string;
3301
+ level: "warning" | "error";
3302
+ metrics?: Record<string, number> | undefined;
3303
+ evaluationProfileId?: string | undefined;
3304
+ }>, "many">;
3305
+ metrics: z.ZodOptional<z.ZodObject<{
3306
+ textureBudgetMBByProfile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
3307
+ estimatedMB: z.ZodNumber;
3308
+ budgetMB: z.ZodOptional<z.ZodNumber>;
3309
+ targetCount: z.ZodNumber;
3310
+ }, "strip", z.ZodTypeAny, {
3311
+ estimatedMB: number;
3312
+ targetCount: number;
3313
+ budgetMB?: number | undefined;
3314
+ }, {
3315
+ estimatedMB: number;
3316
+ targetCount: number;
3317
+ budgetMB?: number | undefined;
3318
+ }>>>;
3319
+ spritesheetContinuityByAnimation: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
3320
+ comparisons: z.ZodNumber;
3321
+ maxSilhouetteDrift: z.ZodNumber;
3322
+ maxAnchorDrift: z.ZodNumber;
3323
+ maxIdentityDrift: z.ZodOptional<z.ZodNumber>;
3324
+ maxPoseDrift: z.ZodOptional<z.ZodNumber>;
3325
+ maxUpperBodyMotionDrift: z.ZodOptional<z.ZodNumber>;
3326
+ maxLowerBodyMotionDrift: z.ZodOptional<z.ZodNumber>;
3327
+ maxFootMotionDrift: z.ZodOptional<z.ZodNumber>;
3328
+ }, "strip", z.ZodTypeAny, {
3329
+ comparisons: number;
3330
+ maxSilhouetteDrift: number;
3331
+ maxAnchorDrift: number;
3332
+ maxIdentityDrift?: number | undefined;
3333
+ maxPoseDrift?: number | undefined;
3334
+ maxUpperBodyMotionDrift?: number | undefined;
3335
+ maxLowerBodyMotionDrift?: number | undefined;
3336
+ maxFootMotionDrift?: number | undefined;
3337
+ }, {
3338
+ comparisons: number;
3339
+ maxSilhouetteDrift: number;
3340
+ maxAnchorDrift: number;
3341
+ maxIdentityDrift?: number | undefined;
3342
+ maxPoseDrift?: number | undefined;
3343
+ maxUpperBodyMotionDrift?: number | undefined;
3344
+ maxLowerBodyMotionDrift?: number | undefined;
3345
+ maxFootMotionDrift?: number | undefined;
3346
+ }>>>;
3347
+ }, "strip", z.ZodTypeAny, {
3348
+ spritesheetContinuityByAnimation?: Record<string, {
3349
+ comparisons: number;
3350
+ maxSilhouetteDrift: number;
3351
+ maxAnchorDrift: number;
3352
+ maxIdentityDrift?: number | undefined;
3353
+ maxPoseDrift?: number | undefined;
3354
+ maxUpperBodyMotionDrift?: number | undefined;
3355
+ maxLowerBodyMotionDrift?: number | undefined;
3356
+ maxFootMotionDrift?: number | undefined;
3357
+ }> | undefined;
3358
+ textureBudgetMBByProfile?: Record<string, {
3359
+ estimatedMB: number;
3360
+ targetCount: number;
3361
+ budgetMB?: number | undefined;
3362
+ }> | undefined;
3363
+ }, {
3364
+ spritesheetContinuityByAnimation?: Record<string, {
3365
+ comparisons: number;
3366
+ maxSilhouetteDrift: number;
3367
+ maxAnchorDrift: number;
3368
+ maxIdentityDrift?: number | undefined;
3369
+ maxPoseDrift?: number | undefined;
3370
+ maxUpperBodyMotionDrift?: number | undefined;
3371
+ maxLowerBodyMotionDrift?: number | undefined;
3372
+ maxFootMotionDrift?: number | undefined;
3373
+ }> | undefined;
3374
+ textureBudgetMBByProfile?: Record<string, {
3375
+ estimatedMB: number;
3376
+ targetCount: number;
3377
+ budgetMB?: number | undefined;
3378
+ }> | undefined;
3379
+ }>>;
3380
+ }, "strip", z.ZodTypeAny, {
3381
+ warnings: number;
3382
+ errors: number;
3383
+ issues: {
3384
+ targetIds: string[];
3385
+ code: string;
3386
+ message: string;
3387
+ level: "warning" | "error";
3388
+ metrics?: Record<string, number> | undefined;
3389
+ evaluationProfileId?: string | undefined;
3390
+ }[];
3391
+ metrics?: {
3392
+ spritesheetContinuityByAnimation?: Record<string, {
3393
+ comparisons: number;
3394
+ maxSilhouetteDrift: number;
3395
+ maxAnchorDrift: number;
3396
+ maxIdentityDrift?: number | undefined;
3397
+ maxPoseDrift?: number | undefined;
3398
+ maxUpperBodyMotionDrift?: number | undefined;
3399
+ maxLowerBodyMotionDrift?: number | undefined;
3400
+ maxFootMotionDrift?: number | undefined;
3401
+ }> | undefined;
3402
+ textureBudgetMBByProfile?: Record<string, {
3403
+ estimatedMB: number;
3404
+ targetCount: number;
3405
+ budgetMB?: number | undefined;
3406
+ }> | undefined;
3407
+ } | undefined;
3408
+ }, {
3409
+ warnings: number;
3410
+ errors: number;
3411
+ issues: {
3412
+ targetIds: string[];
3413
+ code: string;
3414
+ message: string;
3415
+ level: "warning" | "error";
3416
+ metrics?: Record<string, number> | undefined;
3417
+ evaluationProfileId?: string | undefined;
3418
+ }[];
3419
+ metrics?: {
3420
+ spritesheetContinuityByAnimation?: Record<string, {
3421
+ comparisons: number;
3422
+ maxSilhouetteDrift: number;
3423
+ maxAnchorDrift: number;
3424
+ maxIdentityDrift?: number | undefined;
3425
+ maxPoseDrift?: number | undefined;
3426
+ maxUpperBodyMotionDrift?: number | undefined;
3427
+ maxLowerBodyMotionDrift?: number | undefined;
3428
+ maxFootMotionDrift?: number | undefined;
3429
+ }> | undefined;
3430
+ textureBudgetMBByProfile?: Record<string, {
3431
+ estimatedMB: number;
3432
+ targetCount: number;
3433
+ budgetMB?: number | undefined;
3434
+ }> | undefined;
3435
+ } | undefined;
3436
+ }>>;
3437
+ targets: z.ZodArray<z.ZodObject<{
3438
+ targetId: z.ZodString;
3439
+ out: z.ZodString;
3440
+ consistencyGroup: z.ZodOptional<z.ZodString>;
3441
+ passedHardGates: z.ZodBoolean;
3442
+ hardGateErrors: z.ZodArray<z.ZodString, "many">;
3443
+ hardGateWarnings: z.ZodArray<z.ZodString, "many">;
3444
+ acceptanceMetrics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
3445
+ candidateScore: z.ZodOptional<z.ZodNumber>;
3446
+ candidateReasons: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3447
+ candidateMetrics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
3448
+ candidateVlm: z.ZodOptional<z.ZodObject<{
3449
+ score: z.ZodNumber;
3450
+ threshold: z.ZodNumber;
3451
+ maxScore: z.ZodNumber;
3452
+ passed: z.ZodBoolean;
3453
+ reason: z.ZodString;
3454
+ rubric: z.ZodOptional<z.ZodString>;
3455
+ evaluator: z.ZodEnum<["command", "http"]>;
3456
+ }, "strip", z.ZodTypeAny, {
3457
+ threshold: number;
3458
+ score: number;
3459
+ maxScore: number;
3460
+ passed: boolean;
3461
+ evaluator: "command" | "http";
3462
+ reason: string;
3463
+ rubric?: string | undefined;
3464
+ }, {
3465
+ threshold: number;
3466
+ score: number;
3467
+ maxScore: number;
3468
+ passed: boolean;
3469
+ evaluator: "command" | "http";
3470
+ reason: string;
3471
+ rubric?: string | undefined;
3472
+ }>>;
3473
+ candidateVlmGrades: z.ZodOptional<z.ZodArray<z.ZodObject<{
3474
+ outputPath: z.ZodString;
3475
+ selected: z.ZodBoolean;
3476
+ score: z.ZodNumber;
3477
+ threshold: z.ZodNumber;
3478
+ maxScore: z.ZodNumber;
3479
+ passed: z.ZodBoolean;
3480
+ reason: z.ZodString;
3481
+ rubric: z.ZodOptional<z.ZodString>;
3482
+ evaluator: z.ZodEnum<["command", "http"]>;
3483
+ }, "strip", z.ZodTypeAny, {
3484
+ threshold: number;
3485
+ outputPath: string;
3486
+ score: number;
3487
+ maxScore: number;
3488
+ passed: boolean;
3489
+ evaluator: "command" | "http";
3490
+ reason: string;
3491
+ selected: boolean;
3492
+ rubric?: string | undefined;
3493
+ }, {
3494
+ threshold: number;
3495
+ outputPath: string;
3496
+ score: number;
3497
+ maxScore: number;
3498
+ passed: boolean;
3499
+ evaluator: "command" | "http";
3500
+ reason: string;
3501
+ selected: boolean;
3502
+ rubric?: string | undefined;
3503
+ }>, "many">>;
3504
+ adapterMetrics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
3505
+ adapterScore: z.ZodOptional<z.ZodNumber>;
3506
+ adapterScoreComponents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
3507
+ adapterWarnings: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3508
+ consistencyGroupOutlier: z.ZodOptional<z.ZodObject<{
3509
+ score: z.ZodNumber;
3510
+ warningThreshold: z.ZodNumber;
3511
+ threshold: z.ZodNumber;
3512
+ penaltyThreshold: z.ZodNumber;
3513
+ penaltyWeight: z.ZodNumber;
3514
+ warned: z.ZodBoolean;
3515
+ penalty: z.ZodNumber;
3516
+ reasons: z.ZodArray<z.ZodString, "many">;
3517
+ metricDeltas: z.ZodRecord<z.ZodString, z.ZodNumber>;
3518
+ }, "strip", z.ZodTypeAny, {
3519
+ threshold: number;
3520
+ score: number;
3521
+ warningThreshold: number;
3522
+ penaltyThreshold: number;
3523
+ penaltyWeight: number;
3524
+ reasons: string[];
3525
+ warned: boolean;
3526
+ penalty: number;
3527
+ metricDeltas: Record<string, number>;
3528
+ }, {
3529
+ threshold: number;
3530
+ score: number;
3531
+ warningThreshold: number;
3532
+ penaltyThreshold: number;
3533
+ penaltyWeight: number;
3534
+ reasons: string[];
3535
+ warned: boolean;
3536
+ penalty: number;
3537
+ metricDeltas: Record<string, number>;
3538
+ }>>;
3539
+ finalScore: z.ZodNumber;
3540
+ }, "strip", z.ZodTypeAny, {
3541
+ targetId: string;
3542
+ out: string;
3543
+ passedHardGates: boolean;
3544
+ hardGateErrors: string[];
3545
+ hardGateWarnings: string[];
3546
+ finalScore: number;
3547
+ adapterMetrics?: Record<string, number> | undefined;
3548
+ consistencyGroup?: string | undefined;
3549
+ candidateMetrics?: Record<string, number> | undefined;
3550
+ candidateVlm?: {
3551
+ threshold: number;
3552
+ score: number;
3553
+ maxScore: number;
3554
+ passed: boolean;
3555
+ evaluator: "command" | "http";
3556
+ reason: string;
3557
+ rubric?: string | undefined;
3558
+ } | undefined;
3559
+ candidateVlmGrades?: {
3560
+ threshold: number;
3561
+ outputPath: string;
3562
+ score: number;
3563
+ maxScore: number;
3564
+ passed: boolean;
3565
+ evaluator: "command" | "http";
3566
+ reason: string;
3567
+ selected: boolean;
3568
+ rubric?: string | undefined;
3569
+ }[] | undefined;
3570
+ adapterScore?: number | undefined;
3571
+ adapterScoreComponents?: Record<string, number> | undefined;
3572
+ adapterWarnings?: string[] | undefined;
3573
+ acceptanceMetrics?: Record<string, number> | undefined;
3574
+ candidateScore?: number | undefined;
3575
+ candidateReasons?: string[] | undefined;
3576
+ consistencyGroupOutlier?: {
3577
+ threshold: number;
3578
+ score: number;
3579
+ warningThreshold: number;
3580
+ penaltyThreshold: number;
3581
+ penaltyWeight: number;
3582
+ reasons: string[];
3583
+ warned: boolean;
3584
+ penalty: number;
3585
+ metricDeltas: Record<string, number>;
3586
+ } | undefined;
3587
+ }, {
3588
+ targetId: string;
3589
+ out: string;
3590
+ passedHardGates: boolean;
3591
+ hardGateErrors: string[];
3592
+ hardGateWarnings: string[];
3593
+ finalScore: number;
3594
+ adapterMetrics?: Record<string, number> | undefined;
3595
+ consistencyGroup?: string | undefined;
3596
+ candidateMetrics?: Record<string, number> | undefined;
3597
+ candidateVlm?: {
3598
+ threshold: number;
3599
+ score: number;
3600
+ maxScore: number;
3601
+ passed: boolean;
3602
+ evaluator: "command" | "http";
3603
+ reason: string;
3604
+ rubric?: string | undefined;
3605
+ } | undefined;
3606
+ candidateVlmGrades?: {
3607
+ threshold: number;
3608
+ outputPath: string;
3609
+ score: number;
3610
+ maxScore: number;
3611
+ passed: boolean;
3612
+ evaluator: "command" | "http";
3613
+ reason: string;
3614
+ selected: boolean;
3615
+ rubric?: string | undefined;
3616
+ }[] | undefined;
3617
+ adapterScore?: number | undefined;
3618
+ adapterScoreComponents?: Record<string, number> | undefined;
3619
+ adapterWarnings?: string[] | undefined;
3620
+ acceptanceMetrics?: Record<string, number> | undefined;
3621
+ candidateScore?: number | undefined;
3622
+ candidateReasons?: string[] | undefined;
3623
+ consistencyGroupOutlier?: {
3624
+ threshold: number;
3625
+ score: number;
3626
+ warningThreshold: number;
3627
+ penaltyThreshold: number;
3628
+ penaltyWeight: number;
3629
+ reasons: string[];
3630
+ warned: boolean;
3631
+ penalty: number;
3632
+ metricDeltas: Record<string, number>;
3633
+ } | undefined;
3634
+ }>, "many">;
3635
+ }, "strip", z.ZodTypeAny, {
3636
+ passed: number;
3637
+ imagesDir: string;
3638
+ strict: boolean;
3639
+ failed: number;
3640
+ generatedAt: string;
3641
+ adapterHealth: {
3642
+ failed: ("clip" | "lpips" | "ssim")[];
3643
+ adapters: {
3644
+ warnings: string[];
3645
+ mode: "command" | "http" | "unconfigured";
3646
+ name: "clip" | "lpips" | "ssim";
3647
+ failed: boolean;
3648
+ configured: boolean;
3649
+ active: boolean;
3650
+ attemptedTargets: number;
3651
+ successfulTargets: number;
3652
+ failedTargets: number;
3653
+ warningCount: number;
3654
+ }[];
3655
+ configured: ("clip" | "lpips" | "ssim")[];
3656
+ active: ("clip" | "lpips" | "ssim")[];
3657
+ };
3658
+ adapterWarnings: string[];
3659
+ targetCount: number;
3660
+ targets: {
3661
+ targetId: string;
3662
+ out: string;
3663
+ passedHardGates: boolean;
3664
+ hardGateErrors: string[];
3665
+ hardGateWarnings: string[];
3666
+ finalScore: number;
3667
+ adapterMetrics?: Record<string, number> | undefined;
3668
+ consistencyGroup?: string | undefined;
3669
+ candidateMetrics?: Record<string, number> | undefined;
3670
+ candidateVlm?: {
3671
+ threshold: number;
3672
+ score: number;
3673
+ maxScore: number;
3674
+ passed: boolean;
3675
+ evaluator: "command" | "http";
3676
+ reason: string;
3677
+ rubric?: string | undefined;
3678
+ } | undefined;
3679
+ candidateVlmGrades?: {
3680
+ threshold: number;
3681
+ outputPath: string;
3682
+ score: number;
3683
+ maxScore: number;
3684
+ passed: boolean;
3685
+ evaluator: "command" | "http";
3686
+ reason: string;
3687
+ selected: boolean;
3688
+ rubric?: string | undefined;
3689
+ }[] | undefined;
3690
+ adapterScore?: number | undefined;
3691
+ adapterScoreComponents?: Record<string, number> | undefined;
3692
+ adapterWarnings?: string[] | undefined;
3693
+ acceptanceMetrics?: Record<string, number> | undefined;
3694
+ candidateScore?: number | undefined;
3695
+ candidateReasons?: string[] | undefined;
3696
+ consistencyGroupOutlier?: {
3697
+ threshold: number;
3698
+ score: number;
3699
+ warningThreshold: number;
3700
+ penaltyThreshold: number;
3701
+ penaltyWeight: number;
3702
+ reasons: string[];
3703
+ warned: boolean;
3704
+ penalty: number;
3705
+ metricDeltas: Record<string, number>;
3706
+ } | undefined;
3707
+ }[];
3708
+ hardErrors: number;
3709
+ adaptersUsed: ("clip" | "lpips" | "ssim")[];
3710
+ packInvariants?: {
3711
+ warnings: number;
3712
+ errors: number;
3713
+ issues: {
3714
+ targetIds: string[];
3715
+ code: string;
3716
+ message: string;
3717
+ level: "warning" | "error";
3718
+ metrics?: Record<string, number> | undefined;
3719
+ evaluationProfileId?: string | undefined;
3720
+ }[];
3721
+ metrics?: {
3722
+ spritesheetContinuityByAnimation?: Record<string, {
3723
+ comparisons: number;
3724
+ maxSilhouetteDrift: number;
3725
+ maxAnchorDrift: number;
3726
+ maxIdentityDrift?: number | undefined;
3727
+ maxPoseDrift?: number | undefined;
3728
+ maxUpperBodyMotionDrift?: number | undefined;
3729
+ maxLowerBodyMotionDrift?: number | undefined;
3730
+ maxFootMotionDrift?: number | undefined;
3731
+ }> | undefined;
3732
+ textureBudgetMBByProfile?: Record<string, {
3733
+ estimatedMB: number;
3734
+ targetCount: number;
3735
+ budgetMB?: number | undefined;
3736
+ }> | undefined;
3737
+ } | undefined;
3738
+ } | undefined;
3739
+ consistencyGroupSummary?: {
3740
+ maxScore: number;
3741
+ consistencyGroup: string;
3742
+ targetCount: number;
3743
+ warningCount: number;
3744
+ evaluatedTargetCount: number;
3745
+ warningTargetIds: string[];
3746
+ outlierTargetIds: string[];
3747
+ outlierCount: number;
3748
+ totalPenalty: number;
3749
+ metricMedians: Record<string, number>;
3750
+ }[] | undefined;
3751
+ }, {
3752
+ passed: number;
3753
+ imagesDir: string;
3754
+ strict: boolean;
3755
+ failed: number;
3756
+ generatedAt: string;
3757
+ adapterHealth: {
3758
+ failed: ("clip" | "lpips" | "ssim")[];
3759
+ adapters: {
3760
+ warnings: string[];
3761
+ mode: "command" | "http" | "unconfigured";
3762
+ name: "clip" | "lpips" | "ssim";
3763
+ failed: boolean;
3764
+ configured: boolean;
3765
+ active: boolean;
3766
+ attemptedTargets: number;
3767
+ successfulTargets: number;
3768
+ failedTargets: number;
3769
+ warningCount: number;
3770
+ }[];
3771
+ configured: ("clip" | "lpips" | "ssim")[];
3772
+ active: ("clip" | "lpips" | "ssim")[];
3773
+ };
3774
+ adapterWarnings: string[];
3775
+ targetCount: number;
3776
+ targets: {
3777
+ targetId: string;
3778
+ out: string;
3779
+ passedHardGates: boolean;
3780
+ hardGateErrors: string[];
3781
+ hardGateWarnings: string[];
3782
+ finalScore: number;
3783
+ adapterMetrics?: Record<string, number> | undefined;
3784
+ consistencyGroup?: string | undefined;
3785
+ candidateMetrics?: Record<string, number> | undefined;
3786
+ candidateVlm?: {
3787
+ threshold: number;
3788
+ score: number;
3789
+ maxScore: number;
3790
+ passed: boolean;
3791
+ evaluator: "command" | "http";
3792
+ reason: string;
3793
+ rubric?: string | undefined;
3794
+ } | undefined;
3795
+ candidateVlmGrades?: {
3796
+ threshold: number;
3797
+ outputPath: string;
3798
+ score: number;
3799
+ maxScore: number;
3800
+ passed: boolean;
3801
+ evaluator: "command" | "http";
3802
+ reason: string;
3803
+ selected: boolean;
3804
+ rubric?: string | undefined;
3805
+ }[] | undefined;
3806
+ adapterScore?: number | undefined;
3807
+ adapterScoreComponents?: Record<string, number> | undefined;
3808
+ adapterWarnings?: string[] | undefined;
3809
+ acceptanceMetrics?: Record<string, number> | undefined;
3810
+ candidateScore?: number | undefined;
3811
+ candidateReasons?: string[] | undefined;
3812
+ consistencyGroupOutlier?: {
3813
+ threshold: number;
3814
+ score: number;
3815
+ warningThreshold: number;
3816
+ penaltyThreshold: number;
3817
+ penaltyWeight: number;
3818
+ reasons: string[];
3819
+ warned: boolean;
3820
+ penalty: number;
3821
+ metricDeltas: Record<string, number>;
3822
+ } | undefined;
3823
+ }[];
3824
+ hardErrors: number;
3825
+ adaptersUsed: ("clip" | "lpips" | "ssim")[];
3826
+ packInvariants?: {
3827
+ warnings: number;
3828
+ errors: number;
3829
+ issues: {
3830
+ targetIds: string[];
3831
+ code: string;
3832
+ message: string;
3833
+ level: "warning" | "error";
3834
+ metrics?: Record<string, number> | undefined;
3835
+ evaluationProfileId?: string | undefined;
3836
+ }[];
3837
+ metrics?: {
3838
+ spritesheetContinuityByAnimation?: Record<string, {
3839
+ comparisons: number;
3840
+ maxSilhouetteDrift: number;
3841
+ maxAnchorDrift: number;
3842
+ maxIdentityDrift?: number | undefined;
3843
+ maxPoseDrift?: number | undefined;
3844
+ maxUpperBodyMotionDrift?: number | undefined;
3845
+ maxLowerBodyMotionDrift?: number | undefined;
3846
+ maxFootMotionDrift?: number | undefined;
3847
+ }> | undefined;
3848
+ textureBudgetMBByProfile?: Record<string, {
3849
+ estimatedMB: number;
3850
+ targetCount: number;
3851
+ budgetMB?: number | undefined;
3852
+ }> | undefined;
3853
+ } | undefined;
3854
+ } | undefined;
3855
+ consistencyGroupSummary?: {
3856
+ maxScore: number;
3857
+ consistencyGroup: string;
3858
+ targetCount: number;
3859
+ warningCount: number;
3860
+ evaluatedTargetCount: number;
3861
+ warningTargetIds: string[];
3862
+ outlierTargetIds: string[];
3863
+ outlierCount: number;
3864
+ totalPenalty: number;
3865
+ metricMedians: Record<string, number>;
3866
+ }[] | undefined;
3867
+ }>;
3868
+ readonly "selection-lock": z.ZodObject<{
3869
+ generatedAt: z.ZodString;
3870
+ evalReportPath: z.ZodString;
3871
+ provenancePath: z.ZodString;
3872
+ targets: z.ZodArray<z.ZodObject<{
3873
+ targetId: z.ZodString;
3874
+ approved: z.ZodBoolean;
3875
+ inputHash: z.ZodString;
3876
+ selectedOutputPath: z.ZodString;
3877
+ provider: z.ZodOptional<z.ZodEnum<["openai", "nano", "local"]>>;
3878
+ model: z.ZodOptional<z.ZodString>;
3879
+ score: z.ZodOptional<z.ZodNumber>;
3880
+ evalFinalScore: z.ZodOptional<z.ZodNumber>;
3881
+ groupSignalTrace: z.ZodOptional<z.ZodObject<{
3882
+ consistencyGroup: z.ZodString;
3883
+ score: z.ZodNumber;
3884
+ warningThreshold: z.ZodNumber;
3885
+ penaltyThreshold: z.ZodNumber;
3886
+ penaltyWeight: z.ZodNumber;
3887
+ warned: z.ZodBoolean;
3888
+ penalty: z.ZodNumber;
3889
+ reasons: z.ZodArray<z.ZodString, "many">;
3890
+ metricDeltas: z.ZodRecord<z.ZodString, z.ZodNumber>;
3891
+ }, "strip", z.ZodTypeAny, {
3892
+ score: number;
3893
+ consistencyGroup: string;
3894
+ warningThreshold: number;
3895
+ penaltyThreshold: number;
3896
+ penaltyWeight: number;
3897
+ reasons: string[];
3898
+ warned: boolean;
3899
+ penalty: number;
3900
+ metricDeltas: Record<string, number>;
3901
+ }, {
3902
+ score: number;
3903
+ consistencyGroup: string;
3904
+ warningThreshold: number;
3905
+ penaltyThreshold: number;
3906
+ penaltyWeight: number;
3907
+ reasons: string[];
3908
+ warned: boolean;
3909
+ penalty: number;
3910
+ metricDeltas: Record<string, number>;
3911
+ }>>;
3912
+ }, "strip", z.ZodTypeAny, {
3913
+ targetId: string;
3914
+ inputHash: string;
3915
+ approved: boolean;
3916
+ selectedOutputPath: string;
3917
+ provider?: "openai" | "nano" | "local" | undefined;
3918
+ model?: string | undefined;
3919
+ score?: number | undefined;
3920
+ evalFinalScore?: number | undefined;
3921
+ groupSignalTrace?: {
3922
+ score: number;
3923
+ consistencyGroup: string;
3924
+ warningThreshold: number;
3925
+ penaltyThreshold: number;
3926
+ penaltyWeight: number;
3927
+ reasons: string[];
3928
+ warned: boolean;
3929
+ penalty: number;
3930
+ metricDeltas: Record<string, number>;
3931
+ } | undefined;
3932
+ }, {
3933
+ targetId: string;
3934
+ inputHash: string;
3935
+ approved: boolean;
3936
+ selectedOutputPath: string;
3937
+ provider?: "openai" | "nano" | "local" | undefined;
3938
+ model?: string | undefined;
3939
+ score?: number | undefined;
3940
+ evalFinalScore?: number | undefined;
3941
+ groupSignalTrace?: {
3942
+ score: number;
3943
+ consistencyGroup: string;
3944
+ warningThreshold: number;
3945
+ penaltyThreshold: number;
3946
+ penaltyWeight: number;
3947
+ reasons: string[];
3948
+ warned: boolean;
3949
+ penalty: number;
3950
+ metricDeltas: Record<string, number>;
3951
+ } | undefined;
3952
+ }>, "many">;
3953
+ }, "strip", z.ZodTypeAny, {
3954
+ generatedAt: string;
3955
+ provenancePath: string;
3956
+ targets: {
3957
+ targetId: string;
3958
+ inputHash: string;
3959
+ approved: boolean;
3960
+ selectedOutputPath: string;
3961
+ provider?: "openai" | "nano" | "local" | undefined;
3962
+ model?: string | undefined;
3963
+ score?: number | undefined;
3964
+ evalFinalScore?: number | undefined;
3965
+ groupSignalTrace?: {
3966
+ score: number;
3967
+ consistencyGroup: string;
3968
+ warningThreshold: number;
3969
+ penaltyThreshold: number;
3970
+ penaltyWeight: number;
3971
+ reasons: string[];
3972
+ warned: boolean;
3973
+ penalty: number;
3974
+ metricDeltas: Record<string, number>;
3975
+ } | undefined;
3976
+ }[];
3977
+ evalReportPath: string;
3978
+ }, {
3979
+ generatedAt: string;
3980
+ provenancePath: string;
3981
+ targets: {
3982
+ targetId: string;
3983
+ inputHash: string;
3984
+ approved: boolean;
3985
+ selectedOutputPath: string;
3986
+ provider?: "openai" | "nano" | "local" | undefined;
3987
+ model?: string | undefined;
3988
+ score?: number | undefined;
3989
+ evalFinalScore?: number | undefined;
3990
+ groupSignalTrace?: {
3991
+ score: number;
3992
+ consistencyGroup: string;
3993
+ warningThreshold: number;
3994
+ penaltyThreshold: number;
3995
+ penaltyWeight: number;
3996
+ reasons: string[];
3997
+ warned: boolean;
3998
+ penalty: number;
3999
+ metricDeltas: Record<string, number>;
4000
+ } | undefined;
4001
+ }[];
4002
+ evalReportPath: string;
4003
+ }>;
4004
+ };
4005
+ export type StageArtifactKind = keyof typeof stageArtifactSchemas;
4006
+ export type StageArtifactShape<K extends StageArtifactKind> = z.infer<(typeof stageArtifactSchemas)[K]>;
4007
+ export declare const STAGE_ARTIFACT_CONTRACT_VERSION = "0.3.0-stage-contract-v1";
4008
+ export interface StageArtifactDiagnostic {
4009
+ path: string;
4010
+ code: string;
4011
+ message: string;
4012
+ }
4013
+ type StageArtifactContractErrorCode = "stage_artifact_json_invalid" | "stage_artifact_contract_invalid";
4014
+ interface StageArtifactContractErrorInit {
4015
+ code: StageArtifactContractErrorCode;
4016
+ kind: StageArtifactKind;
4017
+ artifactPath: string;
4018
+ diagnostics: StageArtifactDiagnostic[];
4019
+ cause?: unknown;
4020
+ }
4021
+ export declare class StageArtifactContractError extends Error {
4022
+ readonly code: StageArtifactContractErrorCode;
4023
+ readonly kind: StageArtifactKind;
4024
+ readonly artifactPath: string;
4025
+ readonly diagnostics: StageArtifactDiagnostic[];
4026
+ readonly cause?: unknown;
4027
+ constructor(init: StageArtifactContractErrorInit);
4028
+ }
4029
+ export declare function validateStageArtifact<K extends StageArtifactKind>(kind: K, value: unknown, artifactPath: string): StageArtifactShape<K>;
4030
+ export declare function readAndValidateStageArtifact<K extends StageArtifactKind>(kind: K, artifactPath: string): Promise<StageArtifactShape<K>>;
4031
+ export {};