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,373 @@
1
+ import { z } from "zod";
2
+ import { TARGET_KINDS, WRAP_GRID_TOPOLOGY_MODES } from "../providers/types.js";
3
+ import { AcceptanceSchema, AgenticRetryBaseSchema, AuxiliaryMapsSchema, CoarseToFineBaseSchema, ControlModeSchema, EditInputSchema, EditSchema, FacingDirectionSchema, GenerationModeSchema, HiresFixSchema, nonEmptyString, PalettePolicyBaseSchema, PromptSpecBaseShape, ProviderNameSchema, RuntimeSpecBaseSchema, ScoreWeightsSchema, VlmGateSchema, } from "../shared/schemas.js";
4
+ export { ProviderNameSchema };
5
+ export const PromptSpecSchema = z.object({
6
+ ...PromptSpecBaseShape,
7
+ primary: nonEmptyString,
8
+ useCase: nonEmptyString.optional(),
9
+ stylePreset: nonEmptyString.optional(),
10
+ scene: nonEmptyString.optional(),
11
+ subject: nonEmptyString.optional(),
12
+ style: nonEmptyString.optional(),
13
+ composition: nonEmptyString.optional(),
14
+ lighting: nonEmptyString.optional(),
15
+ palette: nonEmptyString.optional(),
16
+ materials: nonEmptyString.optional(),
17
+ constraints: nonEmptyString.optional(),
18
+ negative: nonEmptyString.optional(),
19
+ });
20
+ export const ManifestGenerationModeSchema = GenerationModeSchema;
21
+ export const ManifestControlModeSchema = ControlModeSchema;
22
+ export const ManifestTargetKindSchema = z.enum(TARGET_KINDS);
23
+ export const ManifestTargetReferenceListSchema = z.array(nonEmptyString);
24
+ export const ManifestVlmGateSchema = VlmGateSchema;
25
+ export const ManifestCoarseToFineSchema = CoarseToFineBaseSchema;
26
+ export const ManifestAgenticRetrySchema = AgenticRetryBaseSchema;
27
+ export const ManifestGenerationPolicySchema = z.object({
28
+ size: nonEmptyString.optional(),
29
+ background: nonEmptyString.optional(),
30
+ outputFormat: nonEmptyString.optional(),
31
+ quality: nonEmptyString.optional(),
32
+ highQuality: z.boolean().optional(),
33
+ hiresFix: HiresFixSchema.optional(),
34
+ draftQuality: nonEmptyString.optional(),
35
+ finalQuality: nonEmptyString.optional(),
36
+ candidates: z.number().int().min(1).optional(),
37
+ maxRetries: z.number().int().min(0).optional(),
38
+ fallbackProviders: z.array(ProviderNameSchema).optional(),
39
+ providerConcurrency: z.number().int().positive().optional(),
40
+ rateLimitPerMinute: z.number().int().positive().optional(),
41
+ vlmGate: ManifestVlmGateSchema.optional(),
42
+ coarseToFine: ManifestCoarseToFineSchema.optional(),
43
+ agenticRetry: ManifestAgenticRetrySchema.optional(),
44
+ });
45
+ export const ManifestAcceptanceSchema = AcceptanceSchema;
46
+ export const ManifestRuntimeSpecSchema = RuntimeSpecBaseSchema.extend({
47
+ anchorX: z.number().min(0).max(1).optional(),
48
+ anchorY: z.number().min(0).max(1).optional(),
49
+ });
50
+ export const ManifestPostProcessOperationTrimSchema = z.object({
51
+ enabled: z.boolean().optional(),
52
+ threshold: z.number().min(0).max(255).optional(),
53
+ });
54
+ export const ManifestPostProcessOperationPadSchema = z.object({
55
+ pixels: z.number().int().min(0),
56
+ extrude: z.boolean().optional(),
57
+ background: nonEmptyString.optional(),
58
+ });
59
+ export const ManifestPostProcessOperationQuantizeSchema = z.object({
60
+ colors: z.number().int().min(2).max(256),
61
+ dither: z.number().min(0).max(1).optional(),
62
+ });
63
+ export const ManifestPostProcessOperationOutlineSchema = z.object({
64
+ size: z.number().int().min(1).max(64),
65
+ color: nonEmptyString.optional(),
66
+ });
67
+ export const ManifestPostProcessResizeVariantSchema = z.object({
68
+ name: nonEmptyString,
69
+ size: nonEmptyString,
70
+ algorithm: nonEmptyString.optional(),
71
+ });
72
+ export const ManifestPostProcessOperationPixelPerfectSchema = z.object({
73
+ enabled: z.boolean().optional(),
74
+ scale: z.number().int().min(1).max(16).optional(),
75
+ });
76
+ export const ManifestPostProcessOperationSmartCropSchema = z.object({
77
+ enabled: z.boolean().optional(),
78
+ mode: z.enum(["alpha-bounds", "center"]).optional(),
79
+ padding: z.number().int().min(0).max(256).optional(),
80
+ });
81
+ export const ManifestPostProcessOperationEmitVariantsSchema = z.object({
82
+ raw: z.boolean().optional(),
83
+ pixel: z.boolean().optional(),
84
+ styleRef: z.boolean().optional(),
85
+ layerColor: z.boolean().optional(),
86
+ layerMatte: z.boolean().optional(),
87
+ });
88
+ export const ManifestPostProcessOperationsSchema = z.object({
89
+ trim: ManifestPostProcessOperationTrimSchema.optional(),
90
+ pad: ManifestPostProcessOperationPadSchema.optional(),
91
+ quantize: ManifestPostProcessOperationQuantizeSchema.optional(),
92
+ outline: ManifestPostProcessOperationOutlineSchema.optional(),
93
+ resizeVariants: z.array(ManifestPostProcessResizeVariantSchema).optional(),
94
+ pixelPerfect: ManifestPostProcessOperationPixelPerfectSchema.optional(),
95
+ smartCrop: ManifestPostProcessOperationSmartCropSchema.optional(),
96
+ emitVariants: ManifestPostProcessOperationEmitVariantsSchema.optional(),
97
+ });
98
+ export const ManifestPostProcessSchema = z.object({
99
+ resizeTo: z.union([nonEmptyString, z.number().int().positive()]).optional(),
100
+ algorithm: nonEmptyString.optional(),
101
+ stripMetadata: z.boolean().optional(),
102
+ pngPaletteColors: z.number().int().min(2).max(256).optional(),
103
+ operations: ManifestPostProcessOperationsSchema.optional(),
104
+ });
105
+ export const ManifestEditInputSchema = EditInputSchema;
106
+ export const ManifestEditSchema = EditSchema;
107
+ export const ManifestAuxiliaryMapsSchema = AuxiliaryMapsSchema;
108
+ export const ManifestPalettePolicySchema = PalettePolicyBaseSchema.superRefine((palette, ctx) => {
109
+ if (palette.mode === "exact" && (!palette.colors || palette.colors.length === 0)) {
110
+ ctx.addIssue({
111
+ code: z.ZodIssueCode.custom,
112
+ path: ["colors"],
113
+ message: "Exact palette mode requires at least one color.",
114
+ });
115
+ }
116
+ if (palette.mode === "max-colors" && typeof palette.maxColors !== "number") {
117
+ ctx.addIssue({
118
+ code: z.ZodIssueCode.custom,
119
+ path: ["maxColors"],
120
+ message: "max-colors mode requires maxColors.",
121
+ });
122
+ }
123
+ if (palette.mode !== "exact" && palette.strict !== undefined) {
124
+ ctx.addIssue({
125
+ code: z.ZodIssueCode.custom,
126
+ path: ["strict"],
127
+ message: "Palette strict mode is only supported for exact palettes.",
128
+ });
129
+ }
130
+ });
131
+ const animationPivotSchema = z.object({
132
+ x: z.number().min(0).max(1),
133
+ y: z.number().min(0).max(1),
134
+ });
135
+ export const ManifestSpriteAnimationSchema = z.object({
136
+ count: z.number().int().min(1).max(64),
137
+ prompt: z.union([nonEmptyString, PromptSpecSchema]),
138
+ fps: z.number().min(1).max(60).optional(),
139
+ loop: z.boolean().optional(),
140
+ facing: FacingDirectionSchema.optional(),
141
+ pivot: animationPivotSchema.optional(),
142
+ });
143
+ export const ManifestSeamHealSchema = z.object({
144
+ enabled: z.boolean().optional(),
145
+ stripPx: z.number().int().min(1).max(64).optional(),
146
+ strength: z.number().min(0).max(1).optional(),
147
+ });
148
+ export const ManifestWrapGridSchema = z.object({
149
+ columns: z.number().int().min(1).max(128),
150
+ rows: z.number().int().min(1).max(128),
151
+ seamThreshold: z.number().min(0).max(255).optional(),
152
+ seamStripPx: z.number().int().min(1).max(64).optional(),
153
+ topology: z
154
+ .object({
155
+ mode: z.enum(WRAP_GRID_TOPOLOGY_MODES),
156
+ maxMismatchRatio: z.number().min(0).max(1).optional(),
157
+ colorTolerance: z.number().int().min(0).max(255).optional(),
158
+ })
159
+ .optional(),
160
+ });
161
+ export const ManifestTargetSchema = z
162
+ .object({
163
+ id: nonEmptyString,
164
+ kind: nonEmptyString,
165
+ out: nonEmptyString,
166
+ templateId: nonEmptyString.optional(),
167
+ dependsOn: ManifestTargetReferenceListSchema.optional(),
168
+ styleReferenceFrom: ManifestTargetReferenceListSchema.optional(),
169
+ atlasGroup: nonEmptyString.optional(),
170
+ styleKitId: nonEmptyString,
171
+ consistencyGroup: nonEmptyString,
172
+ evaluationProfileId: nonEmptyString,
173
+ generationMode: ManifestGenerationModeSchema.optional(),
174
+ scoringProfile: nonEmptyString.optional(),
175
+ facing: FacingDirectionSchema.optional(),
176
+ tileable: z.boolean().optional(),
177
+ seamThreshold: z.number().min(0).max(255).optional(),
178
+ seamStripPx: z.number().int().min(1).max(64).optional(),
179
+ seamHeal: ManifestSeamHealSchema.optional(),
180
+ wrapGrid: ManifestWrapGridSchema.optional(),
181
+ palette: ManifestPalettePolicySchema.optional(),
182
+ prompt: z.union([nonEmptyString, PromptSpecSchema]).optional(),
183
+ promptSpec: PromptSpecSchema.optional(),
184
+ generationPolicy: ManifestGenerationPolicySchema.optional(),
185
+ postProcess: ManifestPostProcessSchema.optional(),
186
+ acceptance: ManifestAcceptanceSchema.optional(),
187
+ runtimeSpec: ManifestRuntimeSpecSchema.optional(),
188
+ provider: ProviderNameSchema.optional(),
189
+ model: nonEmptyString.optional(),
190
+ controlImage: nonEmptyString.optional(),
191
+ controlMode: ManifestControlModeSchema.optional(),
192
+ edit: ManifestEditSchema.optional(),
193
+ auxiliaryMaps: ManifestAuxiliaryMapsSchema.optional(),
194
+ animations: z.record(ManifestSpriteAnimationSchema).optional(),
195
+ })
196
+ .superRefine((target, ctx) => {
197
+ if (target.kind === "spritesheet") {
198
+ if (!target.animations || Object.keys(target.animations).length === 0) {
199
+ ctx.addIssue({
200
+ code: z.ZodIssueCode.custom,
201
+ path: ["animations"],
202
+ message: "spritesheet targets require at least one animation.",
203
+ });
204
+ }
205
+ return;
206
+ }
207
+ if (target.prompt === undefined && target.promptSpec === undefined) {
208
+ ctx.addIssue({
209
+ code: z.ZodIssueCode.custom,
210
+ path: ["prompt"],
211
+ message: "Each non-spritesheet target requires `prompt` or `promptSpec`.",
212
+ });
213
+ }
214
+ if (target.controlImage && !target.controlMode) {
215
+ ctx.addIssue({
216
+ code: z.ZodIssueCode.custom,
217
+ path: ["controlMode"],
218
+ message: "controlMode is required when controlImage is set.",
219
+ });
220
+ }
221
+ if (target.controlMode && !target.controlImage) {
222
+ ctx.addIssue({
223
+ code: z.ZodIssueCode.custom,
224
+ path: ["controlImage"],
225
+ message: "controlImage is required when controlMode is set.",
226
+ });
227
+ }
228
+ });
229
+ export const ManifestPackSchema = z.object({
230
+ id: nonEmptyString,
231
+ version: nonEmptyString,
232
+ license: nonEmptyString.optional(),
233
+ author: nonEmptyString.optional(),
234
+ });
235
+ export const ManifestProviderConfigSchema = z.object({
236
+ model: nonEmptyString.optional(),
237
+ endpoint: nonEmptyString.optional(),
238
+ timeoutMs: z.number().int().positive().optional(),
239
+ maxRetries: z.number().int().min(0).optional(),
240
+ minDelayMs: z.number().int().min(0).optional(),
241
+ defaultConcurrency: z.number().int().positive().optional(),
242
+ });
243
+ export const ManifestProvidersSchema = z.object({
244
+ default: ProviderNameSchema.default("openai"),
245
+ openai: ManifestProviderConfigSchema.optional(),
246
+ nano: ManifestProviderConfigSchema.optional(),
247
+ local: ManifestProviderConfigSchema.extend({
248
+ baseUrl: nonEmptyString.optional(),
249
+ }).optional(),
250
+ });
251
+ export const ManifestStyleKitSchema = z
252
+ .object({
253
+ id: nonEmptyString,
254
+ rulesPath: nonEmptyString,
255
+ palettePath: nonEmptyString.optional(),
256
+ referenceImages: z.array(nonEmptyString).default([]),
257
+ styleReferenceImages: z.array(nonEmptyString).default([]),
258
+ lightingModel: nonEmptyString,
259
+ negativeRulesPath: nonEmptyString.optional(),
260
+ loraPath: nonEmptyString.optional(),
261
+ loraStrength: z.number().min(0).max(2).optional(),
262
+ visualPolicy: z
263
+ .object({
264
+ lineContrastMin: z.number().min(0).max(1).optional(),
265
+ shadingBandCountMax: z.number().int().min(1).max(256).optional(),
266
+ uiRectilinearityMin: z.number().min(0).max(1).optional(),
267
+ })
268
+ .optional(),
269
+ })
270
+ .superRefine((styleKit, ctx) => {
271
+ if (typeof styleKit.loraStrength === "number" && !styleKit.loraPath) {
272
+ ctx.addIssue({
273
+ code: z.ZodIssueCode.custom,
274
+ path: ["loraPath"],
275
+ message: "loraPath is required when loraStrength is provided.",
276
+ });
277
+ }
278
+ if (styleKit.visualPolicy &&
279
+ styleKit.visualPolicy.lineContrastMin === undefined &&
280
+ styleKit.visualPolicy.shadingBandCountMax === undefined &&
281
+ styleKit.visualPolicy.uiRectilinearityMin === undefined) {
282
+ ctx.addIssue({
283
+ code: z.ZodIssueCode.custom,
284
+ path: ["visualPolicy"],
285
+ message: "visualPolicy must define at least one constraint.",
286
+ });
287
+ }
288
+ });
289
+ export const ManifestConsistencyGroupSchema = z.object({
290
+ id: nonEmptyString,
291
+ description: nonEmptyString.optional(),
292
+ styleKitId: nonEmptyString.optional(),
293
+ referenceImages: z.array(nonEmptyString).default([]),
294
+ });
295
+ export const ManifestTargetTemplateSchema = z.object({
296
+ id: nonEmptyString,
297
+ dependsOn: ManifestTargetReferenceListSchema.optional(),
298
+ styleReferenceFrom: ManifestTargetReferenceListSchema.optional(),
299
+ });
300
+ export const ManifestScoreWeightsSchema = ScoreWeightsSchema;
301
+ export const ManifestEvaluationProfileSchema = z.object({
302
+ id: nonEmptyString,
303
+ hardGates: z
304
+ .object({
305
+ requireAlpha: z.boolean().optional(),
306
+ maxFileSizeKB: z.number().int().positive().optional(),
307
+ seamThreshold: z.number().min(0).max(255).optional(),
308
+ seamStripPx: z.number().int().min(1).max(64).optional(),
309
+ paletteComplianceMin: z.number().min(0).max(1).optional(),
310
+ alphaHaloRiskMax: z.number().min(0).max(1).optional(),
311
+ alphaStrayNoiseMax: z.number().min(0).max(1).optional(),
312
+ alphaEdgeSharpnessMin: z.number().min(0).max(1).optional(),
313
+ mattingHiddenRgbLeakMax: z.number().min(0).max(1).optional(),
314
+ mattingMaskConsistencyMin: z.number().min(0).max(1).optional(),
315
+ mattingSemiTransparencyRatioMax: z.number().min(0).max(1).optional(),
316
+ packTextureBudgetMB: z.number().positive().optional(),
317
+ spritesheetSilhouetteDriftMax: z.number().min(0).max(1).optional(),
318
+ spritesheetAnchorDriftMax: z.number().min(0).max(1).optional(),
319
+ spritesheetIdentityDriftMax: z.number().min(0).max(1).optional(),
320
+ spritesheetPoseDriftMax: z.number().min(0).max(1).optional(),
321
+ spritesheetWalkLowerBodyMotionMin: z.number().min(0).max(1).optional(),
322
+ spritesheetWalkFootMotionMin: z.number().min(0).max(1).optional(),
323
+ spritesheetWalkFootToUpperMotionRatioMin: z.number().positive().optional(),
324
+ })
325
+ .optional(),
326
+ consistencyGroupScoring: z
327
+ .object({
328
+ warningThreshold: z.number().positive().optional(),
329
+ penaltyThreshold: z.number().positive().optional(),
330
+ penaltyWeight: z.number().min(0).optional(),
331
+ })
332
+ .optional(),
333
+ scoreWeights: ManifestScoreWeightsSchema.optional(),
334
+ });
335
+ export const ManifestKindScoreWeightsSchema = z.object({
336
+ sprite: ManifestScoreWeightsSchema.optional(),
337
+ tile: ManifestScoreWeightsSchema.optional(),
338
+ background: ManifestScoreWeightsSchema.optional(),
339
+ effect: ManifestScoreWeightsSchema.optional(),
340
+ spritesheet: ManifestScoreWeightsSchema.optional(),
341
+ });
342
+ export const ManifestScoringProfileSchema = z.object({
343
+ id: nonEmptyString,
344
+ scoreWeights: ManifestScoreWeightsSchema.optional(),
345
+ kindScoreWeights: ManifestKindScoreWeightsSchema.optional(),
346
+ });
347
+ export const ManifestAtlasGroupSchema = z.object({
348
+ padding: z.number().int().min(0).optional(),
349
+ trim: z.boolean().optional(),
350
+ bleed: z.number().int().min(0).optional(),
351
+ multipack: z.boolean().optional(),
352
+ maxWidth: z.number().int().positive().optional(),
353
+ maxHeight: z.number().int().positive().optional(),
354
+ });
355
+ export const ManifestAtlasSchema = ManifestAtlasGroupSchema.extend({
356
+ groups: z.record(ManifestAtlasGroupSchema).optional(),
357
+ });
358
+ export const ManifestV2Schema = z.object({
359
+ version: z.literal("next"),
360
+ pack: ManifestPackSchema,
361
+ providers: ManifestProvidersSchema,
362
+ styleKits: z.array(ManifestStyleKitSchema).min(1),
363
+ targetTemplates: z.array(ManifestTargetTemplateSchema).optional(),
364
+ consistencyGroups: z.array(ManifestConsistencyGroupSchema).optional(),
365
+ evaluationProfiles: z.array(ManifestEvaluationProfileSchema).min(1),
366
+ scoringProfiles: z.array(ManifestScoringProfileSchema).optional(),
367
+ atlas: ManifestAtlasSchema.optional(),
368
+ targets: z.array(ManifestTargetSchema).min(1),
369
+ });
370
+ export function safeParseManifestV2(input) {
371
+ return ManifestV2Schema.safeParse(input);
372
+ }
373
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/manifest/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type ZodIssue } from "zod";
2
+ import { type ManifestV2, type ValidationIssue } from "./types.js";
3
+ export declare function collectSemanticIssues(manifest: ManifestV2, manifestPath: string): ValidationIssue[];
4
+ export declare function toSchemaValidationIssue(issue: ZodIssue): ValidationIssue;