@homepages/template-kit 0.0.1 → 0.2.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 (121) hide show
  1. package/CHANGELOG.md +251 -0
  2. package/README.md +77 -11
  3. package/dist/base.css +64 -0
  4. package/dist/browser.d.ts +26 -0
  5. package/dist/browser.js +55 -0
  6. package/dist/cli.js +1 -1
  7. package/dist/contracts/image-descriptor.d.ts +17 -0
  8. package/dist/contracts/markers.d.ts +20 -0
  9. package/dist/contracts/markers.js +21 -0
  10. package/dist/contracts/slot-catalog.d.ts +237 -0
  11. package/dist/contracts/slot-catalog.js +247 -0
  12. package/dist/contracts/transforms.d.ts +108 -0
  13. package/dist/contracts/transforms.js +117 -0
  14. package/dist/design-system/breakpoints.d.ts +5 -0
  15. package/dist/design-system/breakpoints.js +14 -0
  16. package/dist/design-system/theme.d.ts +308 -0
  17. package/dist/design-system/theme.js +102 -0
  18. package/dist/eslint/is-client-file.js +79 -0
  19. package/dist/eslint/rules/image-bare-needs-reason.js +43 -0
  20. package/dist/eslint/rules/no-client-directive-in-contract.js +31 -0
  21. package/dist/eslint/rules/no-client-runtime-in-server.js +103 -0
  22. package/dist/eslint/rules/no-css-import-from-render-path.js +29 -0
  23. package/dist/eslint/rules/no-hex.js +116 -0
  24. package/dist/eslint/rules/no-inline-style.js +27 -0
  25. package/dist/eslint/rules/no-nondeterminism.js +48 -0
  26. package/dist/eslint/rules/no-raw-element.js +37 -0
  27. package/dist/eslint/rules/props-from-schema.js +37 -0
  28. package/dist/eslint/rules/serializable-island-props.js +112 -0
  29. package/dist/eslint/rules/slot-marker-literal.js +38 -0
  30. package/dist/eslint.d.ts +4 -8
  31. package/dist/eslint.js +75 -11
  32. package/dist/fixtures/sample-property.d.ts +67 -0
  33. package/dist/fixtures/sample-property.js +707 -0
  34. package/dist/fixtures.d.ts +2 -0
  35. package/dist/fixtures.js +3 -0
  36. package/dist/index.d.ts +28 -12
  37. package/dist/index.js +34 -2
  38. package/dist/island-runtime.d.ts +30 -0
  39. package/dist/island-runtime.js +73 -0
  40. package/dist/islands/contract.d.ts +56 -0
  41. package/dist/islands/contract.js +71 -0
  42. package/dist/islands/marker.d.ts +16 -0
  43. package/dist/islands/marker.js +18 -0
  44. package/dist/package.js +5 -0
  45. package/dist/primitives/Image.d.ts +49 -0
  46. package/dist/primitives/Image.js +95 -0
  47. package/dist/primitives/Section.d.ts +22 -0
  48. package/dist/primitives/Section.js +26 -0
  49. package/dist/primitives/Slot.d.ts +50 -0
  50. package/dist/primitives/Slot.js +39 -0
  51. package/dist/primitives/SlotGroup.d.ts +38 -0
  52. package/dist/primitives/SlotGroup.js +24 -0
  53. package/dist/primitives/SlotItem.d.ts +43 -0
  54. package/dist/primitives/SlotItem.js +38 -0
  55. package/dist/primitives/index.d.ts +7 -0
  56. package/dist/primitives/picture-sources.d.ts +22 -0
  57. package/dist/primitives/picture-sources.js +52 -0
  58. package/dist/rules/registry.js +16 -0
  59. package/dist/schema/fill-spec.d.ts +692 -0
  60. package/dist/schema/fill-spec.js +98 -0
  61. package/dist/schema/fixture-schema.d.ts +143 -0
  62. package/dist/schema/fixture-schema.js +113 -0
  63. package/dist/schema/index.d.ts +16 -0
  64. package/dist/schema/manifest.d.ts +527 -0
  65. package/dist/schema/manifest.js +73 -0
  66. package/dist/schema/property-facts.d.ts +44 -0
  67. package/dist/schema/resolve-variants.d.ts +11 -0
  68. package/dist/schema/resolve-variants.js +15 -0
  69. package/dist/schema/runtime-values.d.ts +45 -0
  70. package/dist/schema/section-nav.d.ts +7 -0
  71. package/dist/schema/section-props.d.ts +69 -0
  72. package/dist/schema/section-schema.d.ts +533 -0
  73. package/dist/schema/section-schema.js +72 -0
  74. package/dist/schema/slot-types.d.ts +117 -0
  75. package/dist/schema/slot-types.js +181 -0
  76. package/dist/schema/source.d.ts +13 -0
  77. package/dist/schema/source.js +12 -0
  78. package/dist/schema/synthesize-nullable.d.ts +18 -0
  79. package/dist/schema/synthesize-nullable.js +47 -0
  80. package/dist/styles.css +131 -9
  81. package/docs/INDEX.md +7 -4
  82. package/docs/eslint.md +55 -0
  83. package/docs/islands.md +150 -0
  84. package/docs/llms.txt +33 -3
  85. package/docs/primitives.md +214 -0
  86. package/docs/rules/INDEX.md +58 -0
  87. package/docs/rules/audit-severity.md +91 -0
  88. package/docs/rules/bundle-incomplete.md +117 -0
  89. package/docs/rules/css-reason.md +94 -0
  90. package/docs/rules/determinism-drift.md +112 -0
  91. package/docs/rules/image-bare-needs-reason.md +117 -0
  92. package/docs/rules/license-denied.md +106 -0
  93. package/docs/rules/lockfile-missing.md +68 -0
  94. package/docs/rules/lockfile-stale.md +88 -0
  95. package/docs/rules/missing-slot-marker.md +140 -0
  96. package/docs/rules/no-bare-css-import.md +128 -0
  97. package/docs/rules/no-client-directive-in-contract.md +111 -0
  98. package/docs/rules/no-client-runtime-in-server.md +143 -0
  99. package/docs/rules/no-css-import-from-render-path.md +118 -0
  100. package/docs/rules/no-hex.md +97 -0
  101. package/docs/rules/no-inline-style.md +121 -0
  102. package/docs/rules/no-nondeterminism.md +100 -0
  103. package/docs/rules/no-raw-element.md +100 -0
  104. package/docs/rules/props-from-schema.md +119 -0
  105. package/docs/rules/render-invariant.md +165 -0
  106. package/docs/rules/serializable-island-props.md +146 -0
  107. package/docs/rules/server-vs-client.md +105 -0
  108. package/docs/rules/sidebar-order.md +109 -0
  109. package/docs/rules/single-react.md +97 -0
  110. package/docs/rules/size-renderer-bundle.md +109 -0
  111. package/docs/rules/size-section-css.md +95 -0
  112. package/docs/rules/slot-group-marker.md +127 -0
  113. package/docs/rules/slot-marker-literal.md +148 -0
  114. package/docs/rules/typecheck.md +103 -0
  115. package/docs/rules/unlayered-fence.md +113 -0
  116. package/docs/schema-system.md +240 -0
  117. package/docs/theme-and-css.md +225 -0
  118. package/package.json +30 -6
  119. package/tsconfig.base.json +16 -0
  120. package/tsconfig.json +2 -13
  121. package/dist/src-dZr5N30y.js +0 -35
@@ -0,0 +1,692 @@
1
+ import { z } from "zod";
2
+ //#region src/schema/fill-spec.d.ts
3
+ declare const Decision: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
4
+ id: z.ZodString;
5
+ type: z.ZodLiteral<"image-assign">;
6
+ tag_query: z.ZodOptional<z.ZodString>;
7
+ selection_prompt: z.ZodOptional<z.ZodString>;
8
+ from_fact: z.ZodOptional<z.ZodString>;
9
+ produces: z.ZodArray<z.ZodString, "many">;
10
+ }, "strict", z.ZodTypeAny, {
11
+ type: "image-assign";
12
+ id: string;
13
+ produces: string[];
14
+ tag_query?: string | undefined;
15
+ selection_prompt?: string | undefined;
16
+ from_fact?: string | undefined;
17
+ }, {
18
+ type: "image-assign";
19
+ id: string;
20
+ produces: string[];
21
+ tag_query?: string | undefined;
22
+ selection_prompt?: string | undefined;
23
+ from_fact?: string | undefined;
24
+ }>, z.ZodObject<{
25
+ id: z.ZodString;
26
+ type: z.ZodLiteral<"image-collection">;
27
+ tag_query: z.ZodOptional<z.ZodString>;
28
+ mode: z.ZodOptional<z.ZodEnum<["spread", "walkthrough"]>>;
29
+ count: z.ZodOptional<z.ZodObject<{
30
+ min: z.ZodNumber;
31
+ max: z.ZodNumber;
32
+ }, "strict", z.ZodTypeAny, {
33
+ min: number;
34
+ max: number;
35
+ }, {
36
+ min: number;
37
+ max: number;
38
+ }>>;
39
+ selection_prompt: z.ZodString;
40
+ produces: z.ZodArray<z.ZodString, "many">;
41
+ }, "strict", z.ZodTypeAny, {
42
+ type: "image-collection";
43
+ id: string;
44
+ selection_prompt: string;
45
+ produces: string[];
46
+ tag_query?: string | undefined;
47
+ mode?: "spread" | "walkthrough" | undefined;
48
+ count?: {
49
+ min: number;
50
+ max: number;
51
+ } | undefined;
52
+ }, {
53
+ type: "image-collection";
54
+ id: string;
55
+ selection_prompt: string;
56
+ produces: string[];
57
+ tag_query?: string | undefined;
58
+ mode?: "spread" | "walkthrough" | undefined;
59
+ count?: {
60
+ min: number;
61
+ max: number;
62
+ } | undefined;
63
+ }>, z.ZodObject<{
64
+ id: z.ZodString;
65
+ type: z.ZodLiteral<"text-block">;
66
+ length_cap: z.ZodUnion<[z.ZodNumber, z.ZodObject<{
67
+ bind: z.ZodString;
68
+ }, "strict", z.ZodTypeAny, {
69
+ bind: string;
70
+ }, {
71
+ bind: string;
72
+ }>]>;
73
+ structure: z.ZodUnion<[z.ZodEnum<["single_sentence", "paragraph", "bullet_list"]>, z.ZodObject<{
74
+ bind: z.ZodString;
75
+ }, "strict", z.ZodTypeAny, {
76
+ bind: string;
77
+ }, {
78
+ bind: string;
79
+ }>]>;
80
+ perspective: z.ZodOptional<z.ZodEnum<["first", "second", "third"]>>;
81
+ voice_prompt: z.ZodString;
82
+ content_prompt: z.ZodOptional<z.ZodString>;
83
+ produces: z.ZodArray<z.ZodString, "many">;
84
+ }, "strict", z.ZodTypeAny, {
85
+ type: "text-block";
86
+ id: string;
87
+ produces: string[];
88
+ length_cap: number | {
89
+ bind: string;
90
+ };
91
+ structure: "single_sentence" | "paragraph" | "bullet_list" | {
92
+ bind: string;
93
+ };
94
+ voice_prompt: string;
95
+ perspective?: "first" | "second" | "third" | undefined;
96
+ content_prompt?: string | undefined;
97
+ }, {
98
+ type: "text-block";
99
+ id: string;
100
+ produces: string[];
101
+ length_cap: number | {
102
+ bind: string;
103
+ };
104
+ structure: "single_sentence" | "paragraph" | "bullet_list" | {
105
+ bind: string;
106
+ };
107
+ voice_prompt: string;
108
+ perspective?: "first" | "second" | "third" | undefined;
109
+ content_prompt?: string | undefined;
110
+ }>, z.ZodObject<{
111
+ id: z.ZodString;
112
+ type: z.ZodLiteral<"text-seed">;
113
+ source: z.ZodString;
114
+ produces: z.ZodArray<z.ZodString, "many">;
115
+ }, "strict", z.ZodTypeAny, {
116
+ type: "text-seed";
117
+ id: string;
118
+ source: string;
119
+ produces: string[];
120
+ }, {
121
+ type: "text-seed";
122
+ id: string;
123
+ source: string;
124
+ produces: string[];
125
+ }>, z.ZodObject<{
126
+ id: z.ZodString;
127
+ type: z.ZodLiteral<"list-extract">;
128
+ iterate: z.ZodOptional<z.ZodString>;
129
+ item_count: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
130
+ bind: z.ZodString;
131
+ }, "strict", z.ZodTypeAny, {
132
+ bind: string;
133
+ }, {
134
+ bind: string;
135
+ }>]>>;
136
+ per_item_length_cap: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
137
+ bind: z.ZodString;
138
+ }, "strict", z.ZodTypeAny, {
139
+ bind: string;
140
+ }, {
141
+ bind: string;
142
+ }>]>>;
143
+ structure_hint: z.ZodString;
144
+ voice_prompt: z.ZodString;
145
+ content_prompt: z.ZodOptional<z.ZodString>;
146
+ produces: z.ZodArray<z.ZodString, "many">;
147
+ }, "strict", z.ZodTypeAny, {
148
+ type: "list-extract";
149
+ id: string;
150
+ produces: string[];
151
+ voice_prompt: string;
152
+ structure_hint: string;
153
+ content_prompt?: string | undefined;
154
+ iterate?: string | undefined;
155
+ item_count?: number | {
156
+ bind: string;
157
+ } | undefined;
158
+ per_item_length_cap?: number | {
159
+ bind: string;
160
+ } | undefined;
161
+ }, {
162
+ type: "list-extract";
163
+ id: string;
164
+ produces: string[];
165
+ voice_prompt: string;
166
+ structure_hint: string;
167
+ content_prompt?: string | undefined;
168
+ iterate?: string | undefined;
169
+ item_count?: number | {
170
+ bind: string;
171
+ } | undefined;
172
+ per_item_length_cap?: number | {
173
+ bind: string;
174
+ } | undefined;
175
+ }>, z.ZodObject<{
176
+ id: z.ZodString;
177
+ type: z.ZodLiteral<"structured-list">;
178
+ iterate: z.ZodOptional<z.ZodString>;
179
+ item_count: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
180
+ bind: z.ZodString;
181
+ }, "strict", z.ZodTypeAny, {
182
+ bind: string;
183
+ }, {
184
+ bind: string;
185
+ }>]>>;
186
+ item_fields: z.ZodRecord<z.ZodString, z.ZodString>;
187
+ structure_hint: z.ZodString;
188
+ voice_prompt: z.ZodString;
189
+ content_prompt: z.ZodOptional<z.ZodString>;
190
+ system_prompt: z.ZodOptional<z.ZodString>;
191
+ route_by: z.ZodOptional<z.ZodString>;
192
+ per_field_cap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
193
+ per_field_min: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
194
+ produces: z.ZodArray<z.ZodString, "many">;
195
+ catalog: z.ZodOptional<z.ZodArray<z.ZodObject<{
196
+ key: z.ZodString;
197
+ label: z.ZodString;
198
+ icon: z.ZodString;
199
+ aliases: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
200
+ slot: z.ZodOptional<z.ZodString>;
201
+ }, "strict", z.ZodTypeAny, {
202
+ label: string;
203
+ key: string;
204
+ icon: string;
205
+ aliases: string[];
206
+ slot?: string | undefined;
207
+ }, {
208
+ label: string;
209
+ key: string;
210
+ icon: string;
211
+ aliases?: string[] | undefined;
212
+ slot?: string | undefined;
213
+ }>, "many">>;
214
+ per_category_max: z.ZodOptional<z.ZodNumber>;
215
+ min: z.ZodOptional<z.ZodNumber>;
216
+ }, "strict", z.ZodTypeAny, {
217
+ type: "structured-list";
218
+ id: string;
219
+ produces: string[];
220
+ voice_prompt: string;
221
+ structure_hint: string;
222
+ item_fields: Record<string, string>;
223
+ min?: number | undefined;
224
+ content_prompt?: string | undefined;
225
+ iterate?: string | undefined;
226
+ item_count?: number | {
227
+ bind: string;
228
+ } | undefined;
229
+ system_prompt?: string | undefined;
230
+ route_by?: string | undefined;
231
+ per_field_cap?: Record<string, number> | undefined;
232
+ per_field_min?: Record<string, number> | undefined;
233
+ catalog?: {
234
+ label: string;
235
+ key: string;
236
+ icon: string;
237
+ aliases: string[];
238
+ slot?: string | undefined;
239
+ }[] | undefined;
240
+ per_category_max?: number | undefined;
241
+ }, {
242
+ type: "structured-list";
243
+ id: string;
244
+ produces: string[];
245
+ voice_prompt: string;
246
+ structure_hint: string;
247
+ item_fields: Record<string, string>;
248
+ min?: number | undefined;
249
+ content_prompt?: string | undefined;
250
+ iterate?: string | undefined;
251
+ item_count?: number | {
252
+ bind: string;
253
+ } | undefined;
254
+ system_prompt?: string | undefined;
255
+ route_by?: string | undefined;
256
+ per_field_cap?: Record<string, number> | undefined;
257
+ per_field_min?: Record<string, number> | undefined;
258
+ catalog?: {
259
+ label: string;
260
+ key: string;
261
+ icon: string;
262
+ aliases?: string[] | undefined;
263
+ slot?: string | undefined;
264
+ }[] | undefined;
265
+ per_category_max?: number | undefined;
266
+ }>]>;
267
+ declare const FillSpec: z.ZodObject<{
268
+ reads: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
269
+ decisions: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
270
+ id: z.ZodString;
271
+ type: z.ZodLiteral<"image-assign">;
272
+ tag_query: z.ZodOptional<z.ZodString>;
273
+ selection_prompt: z.ZodOptional<z.ZodString>;
274
+ from_fact: z.ZodOptional<z.ZodString>;
275
+ produces: z.ZodArray<z.ZodString, "many">;
276
+ }, "strict", z.ZodTypeAny, {
277
+ type: "image-assign";
278
+ id: string;
279
+ produces: string[];
280
+ tag_query?: string | undefined;
281
+ selection_prompt?: string | undefined;
282
+ from_fact?: string | undefined;
283
+ }, {
284
+ type: "image-assign";
285
+ id: string;
286
+ produces: string[];
287
+ tag_query?: string | undefined;
288
+ selection_prompt?: string | undefined;
289
+ from_fact?: string | undefined;
290
+ }>, z.ZodObject<{
291
+ id: z.ZodString;
292
+ type: z.ZodLiteral<"image-collection">;
293
+ tag_query: z.ZodOptional<z.ZodString>;
294
+ mode: z.ZodOptional<z.ZodEnum<["spread", "walkthrough"]>>;
295
+ count: z.ZodOptional<z.ZodObject<{
296
+ min: z.ZodNumber;
297
+ max: z.ZodNumber;
298
+ }, "strict", z.ZodTypeAny, {
299
+ min: number;
300
+ max: number;
301
+ }, {
302
+ min: number;
303
+ max: number;
304
+ }>>;
305
+ selection_prompt: z.ZodString;
306
+ produces: z.ZodArray<z.ZodString, "many">;
307
+ }, "strict", z.ZodTypeAny, {
308
+ type: "image-collection";
309
+ id: string;
310
+ selection_prompt: string;
311
+ produces: string[];
312
+ tag_query?: string | undefined;
313
+ mode?: "spread" | "walkthrough" | undefined;
314
+ count?: {
315
+ min: number;
316
+ max: number;
317
+ } | undefined;
318
+ }, {
319
+ type: "image-collection";
320
+ id: string;
321
+ selection_prompt: string;
322
+ produces: string[];
323
+ tag_query?: string | undefined;
324
+ mode?: "spread" | "walkthrough" | undefined;
325
+ count?: {
326
+ min: number;
327
+ max: number;
328
+ } | undefined;
329
+ }>, z.ZodObject<{
330
+ id: z.ZodString;
331
+ type: z.ZodLiteral<"text-block">;
332
+ length_cap: z.ZodUnion<[z.ZodNumber, z.ZodObject<{
333
+ bind: z.ZodString;
334
+ }, "strict", z.ZodTypeAny, {
335
+ bind: string;
336
+ }, {
337
+ bind: string;
338
+ }>]>;
339
+ structure: z.ZodUnion<[z.ZodEnum<["single_sentence", "paragraph", "bullet_list"]>, z.ZodObject<{
340
+ bind: z.ZodString;
341
+ }, "strict", z.ZodTypeAny, {
342
+ bind: string;
343
+ }, {
344
+ bind: string;
345
+ }>]>;
346
+ perspective: z.ZodOptional<z.ZodEnum<["first", "second", "third"]>>;
347
+ voice_prompt: z.ZodString;
348
+ content_prompt: z.ZodOptional<z.ZodString>;
349
+ produces: z.ZodArray<z.ZodString, "many">;
350
+ }, "strict", z.ZodTypeAny, {
351
+ type: "text-block";
352
+ id: string;
353
+ produces: string[];
354
+ length_cap: number | {
355
+ bind: string;
356
+ };
357
+ structure: "single_sentence" | "paragraph" | "bullet_list" | {
358
+ bind: string;
359
+ };
360
+ voice_prompt: string;
361
+ perspective?: "first" | "second" | "third" | undefined;
362
+ content_prompt?: string | undefined;
363
+ }, {
364
+ type: "text-block";
365
+ id: string;
366
+ produces: string[];
367
+ length_cap: number | {
368
+ bind: string;
369
+ };
370
+ structure: "single_sentence" | "paragraph" | "bullet_list" | {
371
+ bind: string;
372
+ };
373
+ voice_prompt: string;
374
+ perspective?: "first" | "second" | "third" | undefined;
375
+ content_prompt?: string | undefined;
376
+ }>, z.ZodObject<{
377
+ id: z.ZodString;
378
+ type: z.ZodLiteral<"text-seed">;
379
+ source: z.ZodString;
380
+ produces: z.ZodArray<z.ZodString, "many">;
381
+ }, "strict", z.ZodTypeAny, {
382
+ type: "text-seed";
383
+ id: string;
384
+ source: string;
385
+ produces: string[];
386
+ }, {
387
+ type: "text-seed";
388
+ id: string;
389
+ source: string;
390
+ produces: string[];
391
+ }>, z.ZodObject<{
392
+ id: z.ZodString;
393
+ type: z.ZodLiteral<"list-extract">;
394
+ iterate: z.ZodOptional<z.ZodString>;
395
+ item_count: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
396
+ bind: z.ZodString;
397
+ }, "strict", z.ZodTypeAny, {
398
+ bind: string;
399
+ }, {
400
+ bind: string;
401
+ }>]>>;
402
+ per_item_length_cap: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
403
+ bind: z.ZodString;
404
+ }, "strict", z.ZodTypeAny, {
405
+ bind: string;
406
+ }, {
407
+ bind: string;
408
+ }>]>>;
409
+ structure_hint: z.ZodString;
410
+ voice_prompt: z.ZodString;
411
+ content_prompt: z.ZodOptional<z.ZodString>;
412
+ produces: z.ZodArray<z.ZodString, "many">;
413
+ }, "strict", z.ZodTypeAny, {
414
+ type: "list-extract";
415
+ id: string;
416
+ produces: string[];
417
+ voice_prompt: string;
418
+ structure_hint: string;
419
+ content_prompt?: string | undefined;
420
+ iterate?: string | undefined;
421
+ item_count?: number | {
422
+ bind: string;
423
+ } | undefined;
424
+ per_item_length_cap?: number | {
425
+ bind: string;
426
+ } | undefined;
427
+ }, {
428
+ type: "list-extract";
429
+ id: string;
430
+ produces: string[];
431
+ voice_prompt: string;
432
+ structure_hint: string;
433
+ content_prompt?: string | undefined;
434
+ iterate?: string | undefined;
435
+ item_count?: number | {
436
+ bind: string;
437
+ } | undefined;
438
+ per_item_length_cap?: number | {
439
+ bind: string;
440
+ } | undefined;
441
+ }>, z.ZodObject<{
442
+ id: z.ZodString;
443
+ type: z.ZodLiteral<"structured-list">;
444
+ iterate: z.ZodOptional<z.ZodString>;
445
+ item_count: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
446
+ bind: z.ZodString;
447
+ }, "strict", z.ZodTypeAny, {
448
+ bind: string;
449
+ }, {
450
+ bind: string;
451
+ }>]>>;
452
+ item_fields: z.ZodRecord<z.ZodString, z.ZodString>;
453
+ structure_hint: z.ZodString;
454
+ voice_prompt: z.ZodString;
455
+ content_prompt: z.ZodOptional<z.ZodString>;
456
+ system_prompt: z.ZodOptional<z.ZodString>;
457
+ route_by: z.ZodOptional<z.ZodString>;
458
+ per_field_cap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
459
+ per_field_min: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
460
+ produces: z.ZodArray<z.ZodString, "many">;
461
+ catalog: z.ZodOptional<z.ZodArray<z.ZodObject<{
462
+ key: z.ZodString;
463
+ label: z.ZodString;
464
+ icon: z.ZodString;
465
+ aliases: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
466
+ slot: z.ZodOptional<z.ZodString>;
467
+ }, "strict", z.ZodTypeAny, {
468
+ label: string;
469
+ key: string;
470
+ icon: string;
471
+ aliases: string[];
472
+ slot?: string | undefined;
473
+ }, {
474
+ label: string;
475
+ key: string;
476
+ icon: string;
477
+ aliases?: string[] | undefined;
478
+ slot?: string | undefined;
479
+ }>, "many">>;
480
+ per_category_max: z.ZodOptional<z.ZodNumber>;
481
+ min: z.ZodOptional<z.ZodNumber>;
482
+ }, "strict", z.ZodTypeAny, {
483
+ type: "structured-list";
484
+ id: string;
485
+ produces: string[];
486
+ voice_prompt: string;
487
+ structure_hint: string;
488
+ item_fields: Record<string, string>;
489
+ min?: number | undefined;
490
+ content_prompt?: string | undefined;
491
+ iterate?: string | undefined;
492
+ item_count?: number | {
493
+ bind: string;
494
+ } | undefined;
495
+ system_prompt?: string | undefined;
496
+ route_by?: string | undefined;
497
+ per_field_cap?: Record<string, number> | undefined;
498
+ per_field_min?: Record<string, number> | undefined;
499
+ catalog?: {
500
+ label: string;
501
+ key: string;
502
+ icon: string;
503
+ aliases: string[];
504
+ slot?: string | undefined;
505
+ }[] | undefined;
506
+ per_category_max?: number | undefined;
507
+ }, {
508
+ type: "structured-list";
509
+ id: string;
510
+ produces: string[];
511
+ voice_prompt: string;
512
+ structure_hint: string;
513
+ item_fields: Record<string, string>;
514
+ min?: number | undefined;
515
+ content_prompt?: string | undefined;
516
+ iterate?: string | undefined;
517
+ item_count?: number | {
518
+ bind: string;
519
+ } | undefined;
520
+ system_prompt?: string | undefined;
521
+ route_by?: string | undefined;
522
+ per_field_cap?: Record<string, number> | undefined;
523
+ per_field_min?: Record<string, number> | undefined;
524
+ catalog?: {
525
+ label: string;
526
+ key: string;
527
+ icon: string;
528
+ aliases?: string[] | undefined;
529
+ slot?: string | undefined;
530
+ }[] | undefined;
531
+ per_category_max?: number | undefined;
532
+ }>]>, "many">;
533
+ }, "strict", z.ZodTypeAny, {
534
+ reads: string[];
535
+ decisions: ({
536
+ type: "image-assign";
537
+ id: string;
538
+ produces: string[];
539
+ tag_query?: string | undefined;
540
+ selection_prompt?: string | undefined;
541
+ from_fact?: string | undefined;
542
+ } | {
543
+ type: "image-collection";
544
+ id: string;
545
+ selection_prompt: string;
546
+ produces: string[];
547
+ tag_query?: string | undefined;
548
+ mode?: "spread" | "walkthrough" | undefined;
549
+ count?: {
550
+ min: number;
551
+ max: number;
552
+ } | undefined;
553
+ } | {
554
+ type: "text-block";
555
+ id: string;
556
+ produces: string[];
557
+ length_cap: number | {
558
+ bind: string;
559
+ };
560
+ structure: "single_sentence" | "paragraph" | "bullet_list" | {
561
+ bind: string;
562
+ };
563
+ voice_prompt: string;
564
+ perspective?: "first" | "second" | "third" | undefined;
565
+ content_prompt?: string | undefined;
566
+ } | {
567
+ type: "text-seed";
568
+ id: string;
569
+ source: string;
570
+ produces: string[];
571
+ } | {
572
+ type: "list-extract";
573
+ id: string;
574
+ produces: string[];
575
+ voice_prompt: string;
576
+ structure_hint: string;
577
+ content_prompt?: string | undefined;
578
+ iterate?: string | undefined;
579
+ item_count?: number | {
580
+ bind: string;
581
+ } | undefined;
582
+ per_item_length_cap?: number | {
583
+ bind: string;
584
+ } | undefined;
585
+ } | {
586
+ type: "structured-list";
587
+ id: string;
588
+ produces: string[];
589
+ voice_prompt: string;
590
+ structure_hint: string;
591
+ item_fields: Record<string, string>;
592
+ min?: number | undefined;
593
+ content_prompt?: string | undefined;
594
+ iterate?: string | undefined;
595
+ item_count?: number | {
596
+ bind: string;
597
+ } | undefined;
598
+ system_prompt?: string | undefined;
599
+ route_by?: string | undefined;
600
+ per_field_cap?: Record<string, number> | undefined;
601
+ per_field_min?: Record<string, number> | undefined;
602
+ catalog?: {
603
+ label: string;
604
+ key: string;
605
+ icon: string;
606
+ aliases: string[];
607
+ slot?: string | undefined;
608
+ }[] | undefined;
609
+ per_category_max?: number | undefined;
610
+ })[];
611
+ }, {
612
+ decisions: ({
613
+ type: "image-assign";
614
+ id: string;
615
+ produces: string[];
616
+ tag_query?: string | undefined;
617
+ selection_prompt?: string | undefined;
618
+ from_fact?: string | undefined;
619
+ } | {
620
+ type: "image-collection";
621
+ id: string;
622
+ selection_prompt: string;
623
+ produces: string[];
624
+ tag_query?: string | undefined;
625
+ mode?: "spread" | "walkthrough" | undefined;
626
+ count?: {
627
+ min: number;
628
+ max: number;
629
+ } | undefined;
630
+ } | {
631
+ type: "text-block";
632
+ id: string;
633
+ produces: string[];
634
+ length_cap: number | {
635
+ bind: string;
636
+ };
637
+ structure: "single_sentence" | "paragraph" | "bullet_list" | {
638
+ bind: string;
639
+ };
640
+ voice_prompt: string;
641
+ perspective?: "first" | "second" | "third" | undefined;
642
+ content_prompt?: string | undefined;
643
+ } | {
644
+ type: "text-seed";
645
+ id: string;
646
+ source: string;
647
+ produces: string[];
648
+ } | {
649
+ type: "list-extract";
650
+ id: string;
651
+ produces: string[];
652
+ voice_prompt: string;
653
+ structure_hint: string;
654
+ content_prompt?: string | undefined;
655
+ iterate?: string | undefined;
656
+ item_count?: number | {
657
+ bind: string;
658
+ } | undefined;
659
+ per_item_length_cap?: number | {
660
+ bind: string;
661
+ } | undefined;
662
+ } | {
663
+ type: "structured-list";
664
+ id: string;
665
+ produces: string[];
666
+ voice_prompt: string;
667
+ structure_hint: string;
668
+ item_fields: Record<string, string>;
669
+ min?: number | undefined;
670
+ content_prompt?: string | undefined;
671
+ iterate?: string | undefined;
672
+ item_count?: number | {
673
+ bind: string;
674
+ } | undefined;
675
+ system_prompt?: string | undefined;
676
+ route_by?: string | undefined;
677
+ per_field_cap?: Record<string, number> | undefined;
678
+ per_field_min?: Record<string, number> | undefined;
679
+ catalog?: {
680
+ label: string;
681
+ key: string;
682
+ icon: string;
683
+ aliases?: string[] | undefined;
684
+ slot?: string | undefined;
685
+ }[] | undefined;
686
+ per_category_max?: number | undefined;
687
+ })[];
688
+ reads?: string[] | undefined;
689
+ }>;
690
+ type FillSpecShape = z.infer<typeof FillSpec>;
691
+ //#endregion
692
+ export { Decision, FillSpec, FillSpecShape };