@mulmoclaude/core 0.13.0 → 0.14.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 (56) hide show
  1. package/assets/helps/billing-clients-worklog.md +15 -12
  2. package/assets/helps/collection-skills.md +42 -19
  3. package/assets/helps/gemini.md +5 -3
  4. package/assets/helps/todo-collection.md +13 -7
  5. package/dist/{deriveAll-CMFXDQ_G.js → calendarGrid-C1rfCXJ3.cjs} +468 -3
  6. package/dist/calendarGrid-C1rfCXJ3.cjs.map +1 -0
  7. package/dist/{deriveAll-BQ_p5HSB.cjs → calendarGrid-kO6rGfm0.js} +289 -74
  8. package/dist/calendarGrid-kO6rGfm0.js.map +1 -0
  9. package/dist/collection/core/ids.d.ts +12 -0
  10. package/dist/collection/core/recordZ.d.ts +25 -0
  11. package/dist/collection/core/schema.d.ts +65 -418
  12. package/dist/collection/core/schemaZ.d.ts +846 -0
  13. package/dist/collection/core/templatePath.d.ts +34 -0
  14. package/dist/collection/core/where.d.ts +9 -15
  15. package/dist/collection/index.cjs +34 -295
  16. package/dist/collection/index.cjs.map +1 -1
  17. package/dist/collection/index.d.ts +1 -0
  18. package/dist/collection/index.js +5 -270
  19. package/dist/collection/index.js.map +1 -1
  20. package/dist/collection/paths.cjs +1 -1
  21. package/dist/collection/paths.cjs.map +1 -1
  22. package/dist/collection/paths.js +1 -1
  23. package/dist/collection/paths.js.map +1 -1
  24. package/dist/collection/registry/server/index.cjs +1 -1
  25. package/dist/collection/registry/server/index.js +1 -1
  26. package/dist/collection/server/discovery.d.ts +2 -244
  27. package/dist/collection/server/index.cjs +3 -1
  28. package/dist/collection/server/index.js +2 -2
  29. package/dist/collection/server/templatePath.d.ts +1 -34
  30. package/dist/collection/server/validate.d.ts +11 -7
  31. package/dist/collection-watchers/clock.d.ts +1 -0
  32. package/dist/collection-watchers/index.cjs +13 -4
  33. package/dist/collection-watchers/index.cjs.map +1 -1
  34. package/dist/collection-watchers/index.d.ts +1 -0
  35. package/dist/collection-watchers/index.js +13 -5
  36. package/dist/collection-watchers/index.js.map +1 -1
  37. package/dist/feeds/index.cjs +4 -4
  38. package/dist/feeds/index.js +2 -2
  39. package/dist/feeds/ingestTypes.d.ts +15 -40
  40. package/dist/feeds/server/index.cjs +5 -5
  41. package/dist/feeds/server/index.js +3 -3
  42. package/dist/{ingestTypes-C7EheYZX.cjs → ingestTypes-BIFXlw7M.cjs} +3 -3
  43. package/dist/ingestTypes-BIFXlw7M.cjs.map +1 -0
  44. package/dist/{ingestTypes-CmJeOUJc.js → ingestTypes-KuYPX9Ea.js} +2 -2
  45. package/dist/ingestTypes-KuYPX9Ea.js.map +1 -0
  46. package/dist/{server-DKXXFTbw.js → server-Cc6XcyOA.js} +417 -187
  47. package/dist/server-Cc6XcyOA.js.map +1 -0
  48. package/dist/{server-G6GtOdaW.cjs → server-Cd5WdM8a.cjs} +440 -198
  49. package/dist/server-Cd5WdM8a.cjs.map +1 -0
  50. package/package.json +2 -2
  51. package/dist/deriveAll-BQ_p5HSB.cjs.map +0 -1
  52. package/dist/deriveAll-CMFXDQ_G.js.map +0 -1
  53. package/dist/ingestTypes-C7EheYZX.cjs.map +0 -1
  54. package/dist/ingestTypes-CmJeOUJc.js.map +0 -1
  55. package/dist/server-DKXXFTbw.js.map +0 -1
  56. package/dist/server-G6GtOdaW.cjs.map +0 -1
@@ -0,0 +1,846 @@
1
+ import { z } from 'zod';
2
+ /** Optional visibility predicate shared by actions and fields: the target
3
+ * shows only when the open record's `field` (stringified) is one of `in`.
4
+ * Domain-free — `field` is any non-empty key, `in` a non-empty array of
5
+ * non-empty values; the host never interprets the meaning.
6
+ *
7
+ * `trim().min(1)` rather than bare `min(1)` so a whitespace-only string
8
+ * (" ") fails validation — otherwise the cell formatter / dropdown would
9
+ * render visual blanks that look like missing data. Applied consistently to
10
+ * every "non-empty string" slot in this file (CodeRabbit PR #1497). */
11
+ export declare const WhenZ: z.ZodObject<{
12
+ field: z.ZodString;
13
+ in: z.ZodArray<z.ZodString>;
14
+ }, z.core.$strip>;
15
+ export declare const SubFieldSpecZ: z.ZodDiscriminatedUnion<[z.ZodObject<{
16
+ label: z.ZodString;
17
+ required: z.ZodOptional<z.ZodBoolean>;
18
+ type: z.ZodEnum<{
19
+ string: "string";
20
+ number: "number";
21
+ boolean: "boolean";
22
+ date: "date";
23
+ text: "text";
24
+ email: "email";
25
+ datetime: "datetime";
26
+ markdown: "markdown";
27
+ }>;
28
+ }, z.core.$strip>, z.ZodObject<{
29
+ to: z.ZodString;
30
+ label: z.ZodString;
31
+ required: z.ZodOptional<z.ZodBoolean>;
32
+ type: z.ZodLiteral<"ref">;
33
+ }, z.core.$strip>, z.ZodObject<{
34
+ currency: z.ZodOptional<z.ZodString>;
35
+ currencyField: z.ZodOptional<z.ZodString>;
36
+ label: z.ZodString;
37
+ required: z.ZodOptional<z.ZodBoolean>;
38
+ type: z.ZodLiteral<"money">;
39
+ }, z.core.$strip>, z.ZodObject<{
40
+ values: z.ZodArray<z.ZodString>;
41
+ label: z.ZodString;
42
+ required: z.ZodOptional<z.ZodBoolean>;
43
+ type: z.ZodLiteral<"enum">;
44
+ }, z.core.$strip>], "type">;
45
+ export declare const FieldSpecZ: z.ZodDiscriminatedUnion<[z.ZodObject<{
46
+ label: z.ZodString;
47
+ primary: z.ZodOptional<z.ZodBoolean>;
48
+ required: z.ZodOptional<z.ZodBoolean>;
49
+ when: z.ZodOptional<z.ZodObject<{
50
+ field: z.ZodString;
51
+ in: z.ZodArray<z.ZodString>;
52
+ }, z.core.$strip>>;
53
+ type: z.ZodEnum<{
54
+ string: "string";
55
+ number: "number";
56
+ boolean: "boolean";
57
+ date: "date";
58
+ file: "file";
59
+ text: "text";
60
+ email: "email";
61
+ datetime: "datetime";
62
+ markdown: "markdown";
63
+ image: "image";
64
+ }>;
65
+ }, z.core.$strip>, z.ZodObject<{
66
+ to: z.ZodString;
67
+ label: z.ZodString;
68
+ primary: z.ZodOptional<z.ZodBoolean>;
69
+ required: z.ZodOptional<z.ZodBoolean>;
70
+ when: z.ZodOptional<z.ZodObject<{
71
+ field: z.ZodString;
72
+ in: z.ZodArray<z.ZodString>;
73
+ }, z.core.$strip>>;
74
+ type: z.ZodLiteral<"ref">;
75
+ }, z.core.$strip>, z.ZodObject<{
76
+ currency: z.ZodOptional<z.ZodString>;
77
+ currencyField: z.ZodOptional<z.ZodString>;
78
+ label: z.ZodString;
79
+ primary: z.ZodOptional<z.ZodBoolean>;
80
+ required: z.ZodOptional<z.ZodBoolean>;
81
+ when: z.ZodOptional<z.ZodObject<{
82
+ field: z.ZodString;
83
+ in: z.ZodArray<z.ZodString>;
84
+ }, z.core.$strip>>;
85
+ type: z.ZodLiteral<"money">;
86
+ }, z.core.$strip>, z.ZodObject<{
87
+ values: z.ZodArray<z.ZodString>;
88
+ label: z.ZodString;
89
+ primary: z.ZodOptional<z.ZodBoolean>;
90
+ required: z.ZodOptional<z.ZodBoolean>;
91
+ when: z.ZodOptional<z.ZodObject<{
92
+ field: z.ZodString;
93
+ in: z.ZodArray<z.ZodString>;
94
+ }, z.core.$strip>>;
95
+ type: z.ZodLiteral<"enum">;
96
+ }, z.core.$strip>, z.ZodObject<{
97
+ of: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
98
+ label: z.ZodString;
99
+ required: z.ZodOptional<z.ZodBoolean>;
100
+ type: z.ZodEnum<{
101
+ string: "string";
102
+ number: "number";
103
+ boolean: "boolean";
104
+ date: "date";
105
+ text: "text";
106
+ email: "email";
107
+ datetime: "datetime";
108
+ markdown: "markdown";
109
+ }>;
110
+ }, z.core.$strip>, z.ZodObject<{
111
+ to: z.ZodString;
112
+ label: z.ZodString;
113
+ required: z.ZodOptional<z.ZodBoolean>;
114
+ type: z.ZodLiteral<"ref">;
115
+ }, z.core.$strip>, z.ZodObject<{
116
+ currency: z.ZodOptional<z.ZodString>;
117
+ currencyField: z.ZodOptional<z.ZodString>;
118
+ label: z.ZodString;
119
+ required: z.ZodOptional<z.ZodBoolean>;
120
+ type: z.ZodLiteral<"money">;
121
+ }, z.core.$strip>, z.ZodObject<{
122
+ values: z.ZodArray<z.ZodString>;
123
+ label: z.ZodString;
124
+ required: z.ZodOptional<z.ZodBoolean>;
125
+ type: z.ZodLiteral<"enum">;
126
+ }, z.core.$strip>], "type">>;
127
+ label: z.ZodString;
128
+ primary: z.ZodOptional<z.ZodBoolean>;
129
+ required: z.ZodOptional<z.ZodBoolean>;
130
+ when: z.ZodOptional<z.ZodObject<{
131
+ field: z.ZodString;
132
+ in: z.ZodArray<z.ZodString>;
133
+ }, z.core.$strip>>;
134
+ type: z.ZodLiteral<"table">;
135
+ }, z.core.$strip>, z.ZodObject<{
136
+ currency: z.ZodOptional<z.ZodString>;
137
+ currencyField: z.ZodOptional<z.ZodString>;
138
+ formula: z.ZodString;
139
+ display: z.ZodOptional<z.ZodEnum<{
140
+ string: "string";
141
+ number: "number";
142
+ date: "date";
143
+ money: "money";
144
+ }>>;
145
+ label: z.ZodString;
146
+ primary: z.ZodOptional<z.ZodBoolean>;
147
+ required: z.ZodOptional<z.ZodBoolean>;
148
+ when: z.ZodOptional<z.ZodObject<{
149
+ field: z.ZodString;
150
+ in: z.ZodArray<z.ZodString>;
151
+ }, z.core.$strip>>;
152
+ type: z.ZodLiteral<"derived">;
153
+ }, z.core.$strip>, z.ZodObject<{
154
+ to: z.ZodString;
155
+ id: z.ZodOptional<z.ZodString>;
156
+ idField: z.ZodOptional<z.ZodString>;
157
+ label: z.ZodString;
158
+ primary: z.ZodOptional<z.ZodBoolean>;
159
+ required: z.ZodOptional<z.ZodBoolean>;
160
+ when: z.ZodOptional<z.ZodObject<{
161
+ field: z.ZodString;
162
+ in: z.ZodArray<z.ZodString>;
163
+ }, z.core.$strip>>;
164
+ type: z.ZodLiteral<"embed">;
165
+ }, z.core.$strip>, z.ZodObject<{
166
+ field: z.ZodString;
167
+ onValue: z.ZodString;
168
+ offValue: z.ZodString;
169
+ label: z.ZodString;
170
+ primary: z.ZodOptional<z.ZodBoolean>;
171
+ required: z.ZodOptional<z.ZodBoolean>;
172
+ when: z.ZodOptional<z.ZodObject<{
173
+ field: z.ZodString;
174
+ in: z.ZodArray<z.ZodString>;
175
+ }, z.core.$strip>>;
176
+ type: z.ZodLiteral<"toggle">;
177
+ }, z.core.$strip>], "type">;
178
+ /** A schema-declared record action, rendered as a button in the read-only
179
+ * detail view. Domain-free: the host validates the shape; the meaning
180
+ * (which role, which template) is data. v1 ships only `kind: "chat"` —
181
+ * start a new chat in `role` with a templated seed prompt; the enum
182
+ * reserves room for a future `"mutate"` (status transitions) without
183
+ * another schema-shape change. */
184
+ export declare const ActionSpecZ: z.ZodObject<{
185
+ id: z.ZodString;
186
+ label: z.ZodString;
187
+ icon: z.ZodOptional<z.ZodString>;
188
+ kind: z.ZodEnum<{
189
+ chat: "chat";
190
+ }>;
191
+ role: z.ZodString;
192
+ template: z.ZodString;
193
+ when: z.ZodOptional<z.ZodObject<{
194
+ field: z.ZodString;
195
+ in: z.ZodArray<z.ZodString>;
196
+ }, z.core.$strip>>;
197
+ }, z.core.$strip>;
198
+ /** A custom (LLM-authored) HTML view registration. Domain-free: the host
199
+ * validates the shape; the view's behaviour lives in the HTML file. `file`
200
+ * is constrained to `views/*.html` (path-safe) so the view-file reader can
201
+ * never reach the data folder or the schema/template files. `id` is
202
+ * validated to be a real slug + unique by schema-level refines below. */
203
+ export declare const CustomViewZ: z.ZodObject<{
204
+ id: z.ZodString;
205
+ label: z.ZodString;
206
+ icon: z.ZodOptional<z.ZodString>;
207
+ target: z.ZodOptional<z.ZodEnum<{
208
+ desktop: "desktop";
209
+ mobile: "mobile";
210
+ }>>;
211
+ file: z.ZodString;
212
+ i18n: z.ZodOptional<z.ZodString>;
213
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
214
+ read: "read";
215
+ write: "write";
216
+ }>>>;
217
+ editableFields: z.ZodOptional<z.ZodArray<z.ZodString>>;
218
+ allowDelete: z.ZodOptional<z.ZodBoolean>;
219
+ imageFields: z.ZodOptional<z.ZodArray<z.ZodString>>;
220
+ imageMaxEdge: z.ZodOptional<z.ZodNumber>;
221
+ }, z.core.$strip>;
222
+ /** Recurrence advance for `spawn.every`. `interval` is a positive integer
223
+ * count of `unit`s (`interval: 3` + `unit: "month"` = quarterly);
224
+ * `dayOfMonth` (month/year only) is the CANONICAL day-of-month anchor
225
+ * (1-31, read from the rule and clamped per-month at compute time so "31st
226
+ * of every month" never drifts) or the `"last"` sentinel for end-of-month.
227
+ * `.strict()` so the union below cleanly rejects an object carrying BOTH
228
+ * `unit` and `fromField` (it fails this arm on the unknown `fromField`). */
229
+ export declare const EveryLiteralZ: z.ZodObject<{
230
+ unit: z.ZodEnum<{
231
+ day: "day";
232
+ week: "week";
233
+ month: "month";
234
+ year: "year";
235
+ }>;
236
+ interval: z.ZodNumber;
237
+ dayOfMonth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"last">]>>;
238
+ }, z.core.$strict>;
239
+ /** Field-driven recurrence: pick the interval per-record by an `enum`
240
+ * field's value — one collection can mix daily / weekly / monthly
241
+ * obligations in a single list. `map` keys are validated to exactly cover
242
+ * that field's `values` by a `CollectionSchemaZ` refine (which can see the
243
+ * sibling `fields`); here each map value just has to be a well-formed
244
+ * literal `every`. `.strict()` mirrors the literal arm so a both-keys
245
+ * object fails this arm too. */
246
+ export declare const EveryFieldDrivenZ: z.ZodObject<{
247
+ fromField: z.ZodString;
248
+ map: z.ZodRecord<z.ZodString, z.ZodObject<{
249
+ unit: z.ZodEnum<{
250
+ day: "day";
251
+ week: "week";
252
+ month: "month";
253
+ year: "year";
254
+ }>;
255
+ interval: z.ZodNumber;
256
+ dayOfMonth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"last">]>>;
257
+ }, z.core.$strict>>;
258
+ }, z.core.$strict>;
259
+ /** Either a single literal interval (applied to every record) or the
260
+ * field-driven map. Two `.strict()` arms mean "both keys" and "neither
261
+ * key" both fail validation, with no extra refine. */
262
+ export declare const EveryZ: z.ZodUnion<readonly [z.ZodObject<{
263
+ unit: z.ZodEnum<{
264
+ day: "day";
265
+ week: "week";
266
+ month: "month";
267
+ year: "year";
268
+ }>;
269
+ interval: z.ZodNumber;
270
+ dayOfMonth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"last">]>>;
271
+ }, z.core.$strict>, z.ZodObject<{
272
+ fromField: z.ZodString;
273
+ map: z.ZodRecord<z.ZodString, z.ZodObject<{
274
+ unit: z.ZodEnum<{
275
+ day: "day";
276
+ week: "week";
277
+ month: "month";
278
+ year: "year";
279
+ }>;
280
+ interval: z.ZodNumber;
281
+ dayOfMonth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"last">]>>;
282
+ }, z.core.$strict>>;
283
+ }, z.core.$strict>]>;
284
+ /** Host-driven recurrence: when a record satisfies `when` (default:
285
+ * "`completionField` value ∈ `completionDoneValues`"), the host creates the
286
+ * next record with a forward-advanced `triggerField` date. `carry` copies
287
+ * record fields verbatim onto the successor; `set` forces fixed values
288
+ * (typically resetting the status field to its pending value). The
289
+ * successor's id and contents are a pure function of (source record, this
290
+ * rule); creation is create-if-absent, so the mechanism stays convergent. */
291
+ export declare const SpawnZ: z.ZodObject<{
292
+ when: z.ZodOptional<z.ZodObject<{
293
+ field: z.ZodString;
294
+ in: z.ZodArray<z.ZodString>;
295
+ }, z.core.$strip>>;
296
+ every: z.ZodUnion<readonly [z.ZodObject<{
297
+ unit: z.ZodEnum<{
298
+ day: "day";
299
+ week: "week";
300
+ month: "month";
301
+ year: "year";
302
+ }>;
303
+ interval: z.ZodNumber;
304
+ dayOfMonth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"last">]>>;
305
+ }, z.core.$strict>, z.ZodObject<{
306
+ fromField: z.ZodString;
307
+ map: z.ZodRecord<z.ZodString, z.ZodObject<{
308
+ unit: z.ZodEnum<{
309
+ day: "day";
310
+ week: "week";
311
+ month: "month";
312
+ year: "year";
313
+ }>;
314
+ interval: z.ZodNumber;
315
+ dayOfMonth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"last">]>>;
316
+ }, z.core.$strict>>;
317
+ }, z.core.$strict>]>;
318
+ carry: z.ZodOptional<z.ZodArray<z.ZodString>>;
319
+ set: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
320
+ }, z.core.$strip>;
321
+ /** Declarative retrieval config for a Feed (a collection that refills itself
322
+ * from the internet). `http-json` needs `itemsAt` (a path to the items
323
+ * array) only when the response body isn't itself the array; rss/atom yield
324
+ * items natively and ignore it — so no kind-specific requirement here. */
325
+ export declare const DeclarativeIngestZ: z.ZodObject<{
326
+ kind: z.ZodEnum<{
327
+ rss: "rss";
328
+ atom: "atom";
329
+ "http-json": "http-json";
330
+ }>;
331
+ url: z.ZodString;
332
+ schedule: z.ZodEnum<{
333
+ hourly: "hourly";
334
+ daily: "daily";
335
+ weekly: "weekly";
336
+ "on-demand": "on-demand";
337
+ }>;
338
+ atHour: z.ZodOptional<z.ZodNumber>;
339
+ itemsAt: z.ZodOptional<z.ZodString>;
340
+ map: z.ZodRecord<z.ZodString, z.ZodString>;
341
+ idFrom: z.ZodOptional<z.ZodString>;
342
+ maxItems: z.ZodOptional<z.ZodNumber>;
343
+ }, z.core.$strip>;
344
+ /** Agent-performed retrieval. Valid on any collection (the primary consumer
345
+ * is skill-backed collections — feeds keep their declarative kinds). No
346
+ * `url`/`map`: the worker owns retrieval and record shape, seeded by
347
+ * `template` + a summary of every record, run in `role`. `template` is
348
+ * validated the SAME way an action's template is (safe path under
349
+ * `templates/`), so the skill-bridge mirrors it identically. */
350
+ export declare const AgentIngestZ: z.ZodObject<{
351
+ kind: z.ZodLiteral<"agent">;
352
+ schedule: z.ZodEnum<{
353
+ hourly: "hourly";
354
+ daily: "daily";
355
+ weekly: "weekly";
356
+ "on-demand": "on-demand";
357
+ }>;
358
+ atHour: z.ZodOptional<z.ZodNumber>;
359
+ role: z.ZodString;
360
+ template: z.ZodString;
361
+ }, z.core.$strip>;
362
+ /** `ingest` is a discriminated union on `kind`: the three declarative
363
+ * retrievers fetch-and-map; `agent` dispatches a hidden worker. Optional on
364
+ * every schema — skill-backed collections usually omit it; only feeds
365
+ * discovered from `<workspace>/feeds/` are REQUIRED to carry it (gated by
366
+ * `acceptParsedSchema`). */
367
+ export declare const IngestZ: z.ZodDiscriminatedUnion<[z.ZodObject<{
368
+ kind: z.ZodEnum<{
369
+ rss: "rss";
370
+ atom: "atom";
371
+ "http-json": "http-json";
372
+ }>;
373
+ url: z.ZodString;
374
+ schedule: z.ZodEnum<{
375
+ hourly: "hourly";
376
+ daily: "daily";
377
+ weekly: "weekly";
378
+ "on-demand": "on-demand";
379
+ }>;
380
+ atHour: z.ZodOptional<z.ZodNumber>;
381
+ itemsAt: z.ZodOptional<z.ZodString>;
382
+ map: z.ZodRecord<z.ZodString, z.ZodString>;
383
+ idFrom: z.ZodOptional<z.ZodString>;
384
+ maxItems: z.ZodOptional<z.ZodNumber>;
385
+ }, z.core.$strip>, z.ZodObject<{
386
+ kind: z.ZodLiteral<"agent">;
387
+ schedule: z.ZodEnum<{
388
+ hourly: "hourly";
389
+ daily: "daily";
390
+ weekly: "weekly";
391
+ "on-demand": "on-demand";
392
+ }>;
393
+ atHour: z.ZodOptional<z.ZodNumber>;
394
+ role: z.ZodString;
395
+ template: z.ZodString;
396
+ }, z.core.$strip>], "kind">;
397
+ export declare const ValueRefZ: z.ZodObject<{
398
+ record: z.ZodOptional<z.ZodString>;
399
+ field: z.ZodString;
400
+ }, z.core.$strip>;
401
+ export declare const WhereCondZ: z.ZodObject<{
402
+ field: z.ZodString;
403
+ op: z.ZodEnum<{
404
+ in: "in";
405
+ eq: "eq";
406
+ ne: "ne";
407
+ gt: "gt";
408
+ gte: "gte";
409
+ lt: "lt";
410
+ lte: "lte";
411
+ contains: "contains";
412
+ }>;
413
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
414
+ valueFrom: z.ZodOptional<z.ZodObject<{
415
+ record: z.ZodOptional<z.ZodString>;
416
+ field: z.ZodString;
417
+ }, z.core.$strip>>;
418
+ }, z.core.$strip>;
419
+ export declare const WhereZ: z.ZodArray<z.ZodObject<{
420
+ field: z.ZodString;
421
+ op: z.ZodEnum<{
422
+ in: "in";
423
+ eq: "eq";
424
+ ne: "ne";
425
+ gt: "gt";
426
+ gte: "gte";
427
+ lt: "lt";
428
+ lte: "lte";
429
+ contains: "contains";
430
+ }>;
431
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
432
+ valueFrom: z.ZodOptional<z.ZodObject<{
433
+ record: z.ZodOptional<z.ZodString>;
434
+ field: z.ZodString;
435
+ }, z.core.$strip>>;
436
+ }, z.core.$strip>>;
437
+ export declare const DynamicIconSourceZ: z.ZodObject<{
438
+ collection: z.ZodString;
439
+ from: z.ZodOptional<z.ZodEnum<{
440
+ when: "when";
441
+ latest: "latest";
442
+ first: "first";
443
+ }>>;
444
+ orderBy: z.ZodOptional<z.ZodString>;
445
+ where: z.ZodOptional<z.ZodArray<z.ZodObject<{
446
+ field: z.ZodString;
447
+ op: z.ZodEnum<{
448
+ in: "in";
449
+ eq: "eq";
450
+ ne: "ne";
451
+ gt: "gt";
452
+ gte: "gte";
453
+ lt: "lt";
454
+ lte: "lte";
455
+ contains: "contains";
456
+ }>;
457
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
458
+ valueFrom: z.ZodOptional<z.ZodObject<{
459
+ record: z.ZodOptional<z.ZodString>;
460
+ field: z.ZodString;
461
+ }, z.core.$strip>>;
462
+ }, z.core.$strip>>>;
463
+ }, z.core.$strip>;
464
+ export declare const DynamicIconRuleZ: z.ZodObject<{
465
+ where: z.ZodArray<z.ZodObject<{
466
+ field: z.ZodString;
467
+ op: z.ZodEnum<{
468
+ in: "in";
469
+ eq: "eq";
470
+ ne: "ne";
471
+ gt: "gt";
472
+ gte: "gte";
473
+ lt: "lt";
474
+ lte: "lte";
475
+ contains: "contains";
476
+ }>;
477
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
478
+ valueFrom: z.ZodOptional<z.ZodObject<{
479
+ record: z.ZodOptional<z.ZodString>;
480
+ field: z.ZodString;
481
+ }, z.core.$strip>>;
482
+ }, z.core.$strip>>;
483
+ icon: z.ZodString;
484
+ }, z.core.$strip>;
485
+ export declare const DynamicIconSpecZ: z.ZodObject<{
486
+ source: z.ZodObject<{
487
+ collection: z.ZodString;
488
+ from: z.ZodOptional<z.ZodEnum<{
489
+ when: "when";
490
+ latest: "latest";
491
+ first: "first";
492
+ }>>;
493
+ orderBy: z.ZodOptional<z.ZodString>;
494
+ where: z.ZodOptional<z.ZodArray<z.ZodObject<{
495
+ field: z.ZodString;
496
+ op: z.ZodEnum<{
497
+ in: "in";
498
+ eq: "eq";
499
+ ne: "ne";
500
+ gt: "gt";
501
+ gte: "gte";
502
+ lt: "lt";
503
+ lte: "lte";
504
+ contains: "contains";
505
+ }>;
506
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
507
+ valueFrom: z.ZodOptional<z.ZodObject<{
508
+ record: z.ZodOptional<z.ZodString>;
509
+ field: z.ZodString;
510
+ }, z.core.$strip>>;
511
+ }, z.core.$strip>>>;
512
+ }, z.core.$strip>;
513
+ rules: z.ZodArray<z.ZodObject<{
514
+ where: z.ZodArray<z.ZodObject<{
515
+ field: z.ZodString;
516
+ op: z.ZodEnum<{
517
+ in: "in";
518
+ eq: "eq";
519
+ ne: "ne";
520
+ gt: "gt";
521
+ gte: "gte";
522
+ lt: "lt";
523
+ lte: "lte";
524
+ contains: "contains";
525
+ }>;
526
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
527
+ valueFrom: z.ZodOptional<z.ZodObject<{
528
+ record: z.ZodOptional<z.ZodString>;
529
+ field: z.ZodString;
530
+ }, z.core.$strip>>;
531
+ }, z.core.$strip>>;
532
+ icon: z.ZodString;
533
+ }, z.core.$strip>>;
534
+ fallback: z.ZodOptional<z.ZodString>;
535
+ }, z.core.$strip>;
536
+ export declare const CollectionSchemaZ: z.ZodObject<{
537
+ title: z.ZodString;
538
+ icon: z.ZodString;
539
+ dataPath: z.ZodString;
540
+ primaryKey: z.ZodString;
541
+ singleton: z.ZodOptional<z.ZodString>;
542
+ fields: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
543
+ label: z.ZodString;
544
+ primary: z.ZodOptional<z.ZodBoolean>;
545
+ required: z.ZodOptional<z.ZodBoolean>;
546
+ when: z.ZodOptional<z.ZodObject<{
547
+ field: z.ZodString;
548
+ in: z.ZodArray<z.ZodString>;
549
+ }, z.core.$strip>>;
550
+ type: z.ZodEnum<{
551
+ string: "string";
552
+ number: "number";
553
+ boolean: "boolean";
554
+ date: "date";
555
+ file: "file";
556
+ text: "text";
557
+ email: "email";
558
+ datetime: "datetime";
559
+ markdown: "markdown";
560
+ image: "image";
561
+ }>;
562
+ }, z.core.$strip>, z.ZodObject<{
563
+ to: z.ZodString;
564
+ label: z.ZodString;
565
+ primary: z.ZodOptional<z.ZodBoolean>;
566
+ required: z.ZodOptional<z.ZodBoolean>;
567
+ when: z.ZodOptional<z.ZodObject<{
568
+ field: z.ZodString;
569
+ in: z.ZodArray<z.ZodString>;
570
+ }, z.core.$strip>>;
571
+ type: z.ZodLiteral<"ref">;
572
+ }, z.core.$strip>, z.ZodObject<{
573
+ currency: z.ZodOptional<z.ZodString>;
574
+ currencyField: z.ZodOptional<z.ZodString>;
575
+ label: z.ZodString;
576
+ primary: z.ZodOptional<z.ZodBoolean>;
577
+ required: z.ZodOptional<z.ZodBoolean>;
578
+ when: z.ZodOptional<z.ZodObject<{
579
+ field: z.ZodString;
580
+ in: z.ZodArray<z.ZodString>;
581
+ }, z.core.$strip>>;
582
+ type: z.ZodLiteral<"money">;
583
+ }, z.core.$strip>, z.ZodObject<{
584
+ values: z.ZodArray<z.ZodString>;
585
+ label: z.ZodString;
586
+ primary: z.ZodOptional<z.ZodBoolean>;
587
+ required: z.ZodOptional<z.ZodBoolean>;
588
+ when: z.ZodOptional<z.ZodObject<{
589
+ field: z.ZodString;
590
+ in: z.ZodArray<z.ZodString>;
591
+ }, z.core.$strip>>;
592
+ type: z.ZodLiteral<"enum">;
593
+ }, z.core.$strip>, z.ZodObject<{
594
+ of: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
595
+ label: z.ZodString;
596
+ required: z.ZodOptional<z.ZodBoolean>;
597
+ type: z.ZodEnum<{
598
+ string: "string";
599
+ number: "number";
600
+ boolean: "boolean";
601
+ date: "date";
602
+ text: "text";
603
+ email: "email";
604
+ datetime: "datetime";
605
+ markdown: "markdown";
606
+ }>;
607
+ }, z.core.$strip>, z.ZodObject<{
608
+ to: z.ZodString;
609
+ label: z.ZodString;
610
+ required: z.ZodOptional<z.ZodBoolean>;
611
+ type: z.ZodLiteral<"ref">;
612
+ }, z.core.$strip>, z.ZodObject<{
613
+ currency: z.ZodOptional<z.ZodString>;
614
+ currencyField: z.ZodOptional<z.ZodString>;
615
+ label: z.ZodString;
616
+ required: z.ZodOptional<z.ZodBoolean>;
617
+ type: z.ZodLiteral<"money">;
618
+ }, z.core.$strip>, z.ZodObject<{
619
+ values: z.ZodArray<z.ZodString>;
620
+ label: z.ZodString;
621
+ required: z.ZodOptional<z.ZodBoolean>;
622
+ type: z.ZodLiteral<"enum">;
623
+ }, z.core.$strip>], "type">>;
624
+ label: z.ZodString;
625
+ primary: z.ZodOptional<z.ZodBoolean>;
626
+ required: z.ZodOptional<z.ZodBoolean>;
627
+ when: z.ZodOptional<z.ZodObject<{
628
+ field: z.ZodString;
629
+ in: z.ZodArray<z.ZodString>;
630
+ }, z.core.$strip>>;
631
+ type: z.ZodLiteral<"table">;
632
+ }, z.core.$strip>, z.ZodObject<{
633
+ currency: z.ZodOptional<z.ZodString>;
634
+ currencyField: z.ZodOptional<z.ZodString>;
635
+ formula: z.ZodString;
636
+ display: z.ZodOptional<z.ZodEnum<{
637
+ string: "string";
638
+ number: "number";
639
+ date: "date";
640
+ money: "money";
641
+ }>>;
642
+ label: z.ZodString;
643
+ primary: z.ZodOptional<z.ZodBoolean>;
644
+ required: z.ZodOptional<z.ZodBoolean>;
645
+ when: z.ZodOptional<z.ZodObject<{
646
+ field: z.ZodString;
647
+ in: z.ZodArray<z.ZodString>;
648
+ }, z.core.$strip>>;
649
+ type: z.ZodLiteral<"derived">;
650
+ }, z.core.$strip>, z.ZodObject<{
651
+ to: z.ZodString;
652
+ id: z.ZodOptional<z.ZodString>;
653
+ idField: z.ZodOptional<z.ZodString>;
654
+ label: z.ZodString;
655
+ primary: z.ZodOptional<z.ZodBoolean>;
656
+ required: z.ZodOptional<z.ZodBoolean>;
657
+ when: z.ZodOptional<z.ZodObject<{
658
+ field: z.ZodString;
659
+ in: z.ZodArray<z.ZodString>;
660
+ }, z.core.$strip>>;
661
+ type: z.ZodLiteral<"embed">;
662
+ }, z.core.$strip>, z.ZodObject<{
663
+ field: z.ZodString;
664
+ onValue: z.ZodString;
665
+ offValue: z.ZodString;
666
+ label: z.ZodString;
667
+ primary: z.ZodOptional<z.ZodBoolean>;
668
+ required: z.ZodOptional<z.ZodBoolean>;
669
+ when: z.ZodOptional<z.ZodObject<{
670
+ field: z.ZodString;
671
+ in: z.ZodArray<z.ZodString>;
672
+ }, z.core.$strip>>;
673
+ type: z.ZodLiteral<"toggle">;
674
+ }, z.core.$strip>], "type">>;
675
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
676
+ id: z.ZodString;
677
+ label: z.ZodString;
678
+ icon: z.ZodOptional<z.ZodString>;
679
+ kind: z.ZodEnum<{
680
+ chat: "chat";
681
+ }>;
682
+ role: z.ZodString;
683
+ template: z.ZodString;
684
+ when: z.ZodOptional<z.ZodObject<{
685
+ field: z.ZodString;
686
+ in: z.ZodArray<z.ZodString>;
687
+ }, z.core.$strip>>;
688
+ }, z.core.$strip>>>;
689
+ collectionActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
690
+ id: z.ZodString;
691
+ label: z.ZodString;
692
+ icon: z.ZodOptional<z.ZodString>;
693
+ kind: z.ZodEnum<{
694
+ chat: "chat";
695
+ }>;
696
+ role: z.ZodString;
697
+ template: z.ZodString;
698
+ when: z.ZodOptional<z.ZodObject<{
699
+ field: z.ZodString;
700
+ in: z.ZodArray<z.ZodString>;
701
+ }, z.core.$strip>>;
702
+ }, z.core.$strip>>>;
703
+ completionField: z.ZodOptional<z.ZodString>;
704
+ completionDoneValues: z.ZodOptional<z.ZodArray<z.ZodString>>;
705
+ displayField: z.ZodOptional<z.ZodString>;
706
+ triggerField: z.ZodOptional<z.ZodString>;
707
+ triggerLeadDays: z.ZodOptional<z.ZodNumber>;
708
+ spawn: z.ZodOptional<z.ZodObject<{
709
+ when: z.ZodOptional<z.ZodObject<{
710
+ field: z.ZodString;
711
+ in: z.ZodArray<z.ZodString>;
712
+ }, z.core.$strip>>;
713
+ every: z.ZodUnion<readonly [z.ZodObject<{
714
+ unit: z.ZodEnum<{
715
+ day: "day";
716
+ week: "week";
717
+ month: "month";
718
+ year: "year";
719
+ }>;
720
+ interval: z.ZodNumber;
721
+ dayOfMonth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"last">]>>;
722
+ }, z.core.$strict>, z.ZodObject<{
723
+ fromField: z.ZodString;
724
+ map: z.ZodRecord<z.ZodString, z.ZodObject<{
725
+ unit: z.ZodEnum<{
726
+ day: "day";
727
+ week: "week";
728
+ month: "month";
729
+ year: "year";
730
+ }>;
731
+ interval: z.ZodNumber;
732
+ dayOfMonth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"last">]>>;
733
+ }, z.core.$strict>>;
734
+ }, z.core.$strict>]>;
735
+ carry: z.ZodOptional<z.ZodArray<z.ZodString>>;
736
+ set: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
737
+ }, z.core.$strip>>;
738
+ calendarField: z.ZodOptional<z.ZodString>;
739
+ calendarEndField: z.ZodOptional<z.ZodString>;
740
+ calendarTimeField: z.ZodOptional<z.ZodString>;
741
+ kanbanField: z.ZodOptional<z.ZodString>;
742
+ views: z.ZodOptional<z.ZodArray<z.ZodObject<{
743
+ id: z.ZodString;
744
+ label: z.ZodString;
745
+ icon: z.ZodOptional<z.ZodString>;
746
+ target: z.ZodOptional<z.ZodEnum<{
747
+ desktop: "desktop";
748
+ mobile: "mobile";
749
+ }>>;
750
+ file: z.ZodString;
751
+ i18n: z.ZodOptional<z.ZodString>;
752
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
753
+ read: "read";
754
+ write: "write";
755
+ }>>>;
756
+ editableFields: z.ZodOptional<z.ZodArray<z.ZodString>>;
757
+ allowDelete: z.ZodOptional<z.ZodBoolean>;
758
+ imageFields: z.ZodOptional<z.ZodArray<z.ZodString>>;
759
+ imageMaxEdge: z.ZodOptional<z.ZodNumber>;
760
+ }, z.core.$strip>>>;
761
+ notifyWhen: z.ZodOptional<z.ZodObject<{
762
+ field: z.ZodString;
763
+ in: z.ZodArray<z.ZodString>;
764
+ }, z.core.$strip>>;
765
+ ingest: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
766
+ kind: z.ZodEnum<{
767
+ rss: "rss";
768
+ atom: "atom";
769
+ "http-json": "http-json";
770
+ }>;
771
+ url: z.ZodString;
772
+ schedule: z.ZodEnum<{
773
+ hourly: "hourly";
774
+ daily: "daily";
775
+ weekly: "weekly";
776
+ "on-demand": "on-demand";
777
+ }>;
778
+ atHour: z.ZodOptional<z.ZodNumber>;
779
+ itemsAt: z.ZodOptional<z.ZodString>;
780
+ map: z.ZodRecord<z.ZodString, z.ZodString>;
781
+ idFrom: z.ZodOptional<z.ZodString>;
782
+ maxItems: z.ZodOptional<z.ZodNumber>;
783
+ }, z.core.$strip>, z.ZodObject<{
784
+ kind: z.ZodLiteral<"agent">;
785
+ schedule: z.ZodEnum<{
786
+ hourly: "hourly";
787
+ daily: "daily";
788
+ weekly: "weekly";
789
+ "on-demand": "on-demand";
790
+ }>;
791
+ atHour: z.ZodOptional<z.ZodNumber>;
792
+ role: z.ZodString;
793
+ template: z.ZodString;
794
+ }, z.core.$strip>], "kind">>;
795
+ dynamicIcon: z.ZodOptional<z.ZodObject<{
796
+ source: z.ZodObject<{
797
+ collection: z.ZodString;
798
+ from: z.ZodOptional<z.ZodEnum<{
799
+ when: "when";
800
+ latest: "latest";
801
+ first: "first";
802
+ }>>;
803
+ orderBy: z.ZodOptional<z.ZodString>;
804
+ where: z.ZodOptional<z.ZodArray<z.ZodObject<{
805
+ field: z.ZodString;
806
+ op: z.ZodEnum<{
807
+ in: "in";
808
+ eq: "eq";
809
+ ne: "ne";
810
+ gt: "gt";
811
+ gte: "gte";
812
+ lt: "lt";
813
+ lte: "lte";
814
+ contains: "contains";
815
+ }>;
816
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
817
+ valueFrom: z.ZodOptional<z.ZodObject<{
818
+ record: z.ZodOptional<z.ZodString>;
819
+ field: z.ZodString;
820
+ }, z.core.$strip>>;
821
+ }, z.core.$strip>>>;
822
+ }, z.core.$strip>;
823
+ rules: z.ZodArray<z.ZodObject<{
824
+ where: z.ZodArray<z.ZodObject<{
825
+ field: z.ZodString;
826
+ op: z.ZodEnum<{
827
+ in: "in";
828
+ eq: "eq";
829
+ ne: "ne";
830
+ gt: "gt";
831
+ gte: "gte";
832
+ lt: "lt";
833
+ lte: "lte";
834
+ contains: "contains";
835
+ }>;
836
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
837
+ valueFrom: z.ZodOptional<z.ZodObject<{
838
+ record: z.ZodOptional<z.ZodString>;
839
+ field: z.ZodString;
840
+ }, z.core.$strip>>;
841
+ }, z.core.$strip>>;
842
+ icon: z.ZodString;
843
+ }, z.core.$strip>>;
844
+ fallback: z.ZodOptional<z.ZodString>;
845
+ }, z.core.$strip>>;
846
+ }, z.core.$strip>;