@standards/schema 1.0.0-alpha.386 → 1.0.0-alpha.388

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 (99) hide show
  1. package/dist/all-DFqQ8Lh_.d.mts +2955 -0
  2. package/dist/all-DMrOEhf2.d.ts +2955 -0
  3. package/dist/api/index.d.mts +378 -150
  4. package/dist/api/index.d.ts +378 -150
  5. package/dist/api/index.js +1 -1
  6. package/dist/api/index.mjs +1 -1
  7. package/dist/{attributes-BcA_reJZ.d.ts → attributes-CyqQz0hF.d.ts} +1 -1
  8. package/dist/{attributes-eqr1vdPP.d.mts → attributes-aP3uDQhm.d.mts} +1 -1
  9. package/dist/{checkbox-DfXrFM2z.d.mts → checkbox-DUmGzDYU.d.mts} +2 -2
  10. package/dist/{checkbox-C9aJ-6gq.d.ts → checkbox-DtpvrX_r.d.ts} +2 -2
  11. package/dist/config-Bmt8Dwhr.mjs +2 -0
  12. package/dist/config-CegiJsta.js +2 -0
  13. package/dist/{date-CdaoV9_L.d.ts → date-DLot-YfL.d.ts} +2 -2
  14. package/dist/{date-BzggmHjS.d.mts → date-N0Jc3wQW.d.mts} +2 -2
  15. package/dist/{exceptions-CgzBcQIl.d.mts → exceptions-CPpO7bl9.d.mts} +13 -0
  16. package/dist/{exceptions-CgzBcQIl.d.ts → exceptions-CPpO7bl9.d.ts} +13 -0
  17. package/dist/exceptions.d.mts +2 -2
  18. package/dist/exceptions.d.ts +2 -2
  19. package/dist/exceptions.js +1 -1
  20. package/dist/exceptions.mjs +1 -1
  21. package/dist/{index-BSYjSdhW.d.mts → index--3rw-qsK.d.mts} +3 -3
  22. package/dist/{index-zJz3LbXr.d.mts → index-BHL9Gplq.d.mts} +1 -1
  23. package/dist/index-BL3pS7-D.d.ts +288 -0
  24. package/dist/{index-CCH94vyR.d.ts → index-C9XihEoz.d.ts} +1 -1
  25. package/dist/{index-DjWbCMUZ.d.ts → index-CAS7YRMe.d.mts} +550 -118
  26. package/dist/{index-D1iR2xuc.d.ts → index-CEJka-gc.d.ts} +3 -3
  27. package/dist/{index-BmQgUhtq.d.mts → index-DJ3ba5Wr.d.ts} +550 -118
  28. package/dist/index-DRc0yvLf.d.mts +288 -0
  29. package/dist/index.d.mts +14 -14
  30. package/dist/index.d.ts +14 -14
  31. package/dist/index.js +1 -1
  32. package/dist/index.mjs +1 -1
  33. package/dist/{number-Br56q0hL.d.mts → number-DBgimO7d.d.mts} +2 -2
  34. package/dist/{number-B3u9vPtb.d.ts → number-DJPD4Ywg.d.ts} +2 -2
  35. package/dist/{objects-CLxyZh-U.d.ts → objects-C4eEHZp3.d.ts} +29 -7
  36. package/dist/{objects-DxEMaC2Z.d.mts → objects-DAE_qmhw.d.mts} +29 -7
  37. package/dist/record-aggregates-DY8qLwuF.mjs +2 -0
  38. package/dist/record-aggregates-ayabJXQ0.js +2 -0
  39. package/dist/record-operation-Fjq2V4-g.js +2 -0
  40. package/dist/record-operation-yFJABAKm.mjs +2 -0
  41. package/dist/{text-C5NnfCJg.d.mts → text-CYG5jEoC.d.mts} +2 -2
  42. package/dist/{text-Bvk4ila8.d.ts → text-CtZRnsF4.d.ts} +2 -2
  43. package/dist/{utils-CRx-eR8T.d.mts → utils-C2dIMiOB.d.mts} +1 -1
  44. package/dist/{utils-B2bq4zLb.d.ts → utils-CydvpWQ3.d.ts} +1 -1
  45. package/dist/utils.d.mts +1 -1
  46. package/dist/utils.d.ts +1 -1
  47. package/dist/validation/all.d.mts +4 -4
  48. package/dist/validation/all.d.ts +4 -4
  49. package/dist/validation/all.js +1 -1
  50. package/dist/validation/all.mjs +1 -1
  51. package/dist/validation/complex/currency.d.mts +2 -2
  52. package/dist/validation/complex/currency.d.ts +2 -2
  53. package/dist/validation/complex/location.d.mts +2 -2
  54. package/dist/validation/complex/location.d.ts +2 -2
  55. package/dist/validation/complex/phone.d.mts +2 -2
  56. package/dist/validation/complex/phone.d.ts +2 -2
  57. package/dist/validation/complex/relation.d.mts +2 -2
  58. package/dist/validation/complex/relation.d.ts +2 -2
  59. package/dist/validation/complex/richtext.d.mts +2 -2
  60. package/dist/validation/complex/richtext.d.ts +2 -2
  61. package/dist/validation/complex/select.d.mts +2 -2
  62. package/dist/validation/complex/select.d.ts +2 -2
  63. package/dist/validation/complex/user.d.mts +2 -2
  64. package/dist/validation/complex/user.d.ts +2 -2
  65. package/dist/validation/computed/formula.d.mts +2 -2
  66. package/dist/validation/computed/formula.d.ts +2 -2
  67. package/dist/validation/computed/rollup.d.mts +2 -2
  68. package/dist/validation/computed/rollup.d.ts +2 -2
  69. package/dist/validation/config/index.d.mts +1 -1
  70. package/dist/validation/config/index.d.ts +1 -1
  71. package/dist/validation/config/index.js +1 -1
  72. package/dist/validation/config/index.mjs +1 -1
  73. package/dist/validation/core/index.d.mts +1 -1
  74. package/dist/validation/core/index.d.ts +1 -1
  75. package/dist/validation/object/index.d.mts +1 -1
  76. package/dist/validation/object/index.d.ts +1 -1
  77. package/dist/validation/primitives/checkbox.d.mts +1 -1
  78. package/dist/validation/primitives/checkbox.d.ts +1 -1
  79. package/dist/validation/primitives/date.d.mts +1 -1
  80. package/dist/validation/primitives/date.d.ts +1 -1
  81. package/dist/validation/primitives/number.d.mts +1 -1
  82. package/dist/validation/primitives/number.d.ts +1 -1
  83. package/dist/validation/primitives/text.d.mts +1 -1
  84. package/dist/validation/primitives/text.d.ts +1 -1
  85. package/dist/view-config.schema-8c37WcS7.mjs +2 -0
  86. package/dist/view-config.schema-DqucFfKS.js +2 -0
  87. package/package.json +2 -2
  88. package/dist/all-4D2kFfWM.d.mts +0 -2955
  89. package/dist/all-DmTOfJJI.d.ts +0 -2955
  90. package/dist/config-C1CDWJf8.mjs +0 -2
  91. package/dist/config-eqfYa9Bh.js +0 -2
  92. package/dist/index-e1Oh8ngS.d.ts +0 -278
  93. package/dist/index-jDwfdudj.d.mts +0 -278
  94. package/dist/record-aggregates-Cj3p3_ce.js +0 -2
  95. package/dist/record-aggregates-DQXrIuGE.mjs +0 -2
  96. package/dist/record-operation-7-DRRONb.mjs +0 -2
  97. package/dist/record-operation-BcbgQ-0b.js +0 -2
  98. package/dist/view-config.schema-Dl5GkAzl.mjs +0 -2
  99. package/dist/view-config.schema-DwZVS0Gn.js +0 -2
@@ -0,0 +1,288 @@
1
+
2
+ import { ObjectImage, RecordAppearance } from "./objects-DAE_qmhw.mjs";
3
+ import { Attribute, AttributeType } from "./attributes-aP3uDQhm.mjs";
4
+ import * as z$2 from "zod";
5
+ import { ColorId, IconName } from "@standards/constants";
6
+ //#region src/types/mutations.d.ts
7
+ export interface AddAttributeInput {
8
+ name: string;
9
+ label: string;
10
+ type: AttributeType;
11
+ required?: boolean;
12
+ unique?: boolean;
13
+ description?: string;
14
+ placeholder?: string;
15
+ icon?: IconName;
16
+ defaultValue?: unknown;
17
+ metadata?: Record<string, unknown>;
18
+ [key: string]: unknown;
19
+ }
20
+ export interface CreateCustomObjectInput {
21
+ name: string;
22
+ label: string;
23
+ pluralLabel?: string;
24
+ labelExpression: string;
25
+ embeddingExpression?: string;
26
+ description?: string;
27
+ icon?: IconName;
28
+ color?: ColorId;
29
+ image?: ObjectImage;
30
+ attributes?: (Attribute | {
31
+ build: () => Attribute;
32
+ })[];
33
+ metadata?: Record<string, unknown>;
34
+ }
35
+ export interface UpdateObjectInput {
36
+ label?: string;
37
+ pluralLabel?: string;
38
+ description?: string;
39
+ icon?: IconName;
40
+ /** `null` clears it: the colour then derives from the object name. */
41
+ color?: ColorId | null;
42
+ /** `null` clears it: record images then crop to a square, and are found nowhere. */
43
+ image?: ObjectImage | null;
44
+ labelExpression?: string;
45
+ embeddingExpression?: string;
46
+ metadata?: Record<string, unknown>;
47
+ }
48
+ export interface RelationOption {
49
+ id: string;
50
+ objectId: string;
51
+ objectName: string;
52
+ objectLabel: string;
53
+ objectIcon?: string;
54
+ objectColor?: ColorId;
55
+ /** How the target object crops its records' images: all an option needs of its image settings. */
56
+ objectImage?: Pick<ObjectImage, "shape">;
57
+ /** The target record's own icon / image; absent when it has neither. */
58
+ appearance?: RecordAppearance;
59
+ label: string;
60
+ }
61
+ export interface RelationOptionsResponse {
62
+ options: RelationOption[];
63
+ hasMore: boolean;
64
+ total: number;
65
+ nextOffset?: number;
66
+ }
67
+ //#endregion
68
+ //#region src/validation/config/schemas.d.ts
69
+ /**
70
+ * `baseConfigSchema`'s keys — the model never sets these directly, and the
71
+ * prompt (`attribute-reference.ts`'s `BASE_CONFIG_KEYS`) already hides them
72
+ * from every `<attribute_types>` line. `ADD_ATTRIBUTE_WIRE` omits them from
73
+ * each per-type wire config for the same reason, so the wire never offers a
74
+ * key the model was never told about — and never exposes `metadata`, the one
75
+ * genuine open record among them, on the wire. Single source: the runtime
76
+ * prompt imports this instead of keeping its own copy. `icon` is offered back
77
+ * on every attribute type (`WIRE_OFFERED_BASE_CONFIG`) and stays omitted from
78
+ * qualified edge properties.
79
+ */
80
+ export declare const WIRE_OMITTED_CONFIG_KEYS: readonly ["placeholder", "description", "defaultValue", "icon", "order", "hidden", "archived", "deprecated", "metadata"];
81
+ /**
82
+ * The omitted base keys every attribute type's wire offers back, each with the
83
+ * wire schema it is validated by. Karl's ruling on #5886 (2026-10-22, « Tous
84
+ * les types d'attributs », reversing the relations-only ruling of #4537): every
85
+ * attribute takes its own icon, a catalogue name the agent finds with
86
+ * `search_icons`, exactly as an object icon. Qualified edge properties keep it
87
+ * omitted. Single source for the wire (`ADD_ATTRIBUTE_WIRE`) and the prompt
88
+ * (`attribute-reference.ts`), so the key the model is told about is the key
89
+ * the wire accepts.
90
+ */
91
+ export declare const WIRE_OFFERED_BASE_CONFIG: {
92
+ readonly icon: z$2.ZodOptional<z$2.ZodPipe<z$2.ZodString, z$2.ZodTransform<"location" | "user" | "delete" | "check" | "message" | "target" | "record" | "file" | "union" | "map" | "a-arrow-down" | "a-arrow-up" | "academic-hat" | "accessibility" | "activity-square" | "activity" | "add-queue" | "aeroplane" | "air-conditioner" | "airplay" | "airpods" | "alarm-check" | "alarm-minus" | "alarm-plus" | "alarm-smoke" | "alarm-snooze" | "alarm-x" | "alarm" | "album" | "align-bottom" | "align-horizontal" | "align-left" | "align-right" | "align-top" | "align-vertical" | "alt" | "ambulance" | "ampersand-square" | "ampersand" | "ampersands" | "anchor" | "angry-circle" | "angry-ghost" | "angry-square" | "annoyed-circle" | "annoyed-ghost" | "annoyed-square" | "aperture" | "api" | "ar" | "archive" | "arrow-diagonal-one" | "arrow-diagonal-two" | "arrow-down-circle" | "arrow-down-left-circle" | "arrow-down-left-square" | "arrow-down-left-waves" | "arrow-down-left" | "arrow-down-right-circle" | "arrow-down-right-square" | "arrow-down-right-waves" | "arrow-down-right" | "arrow-down-square" | "arrow-down-waves" | "arrow-down" | "arrow-left-circle" | "arrow-left-right" | "arrow-left-square" | "arrow-left-waves" | "arrow-left" | "arrow-long-down-left" | "arrow-long-down-right" | "arrow-long-down" | "arrow-long-left" | "arrow-long-right" | "arrow-long-up-left" | "arrow-long-up-right" | "arrow-long-up" | "arrow-right-circle" | "arrow-right-square" | "arrow-right-waves" | "arrow-right" | "arrow-up-circle" | "arrow-up-down" | "arrow-up-left-circle" | "arrow-up-left-square" | "arrow-up-left-waves" | "arrow-up-left" | "arrow-up-right-circle" | "arrow-up-right-square" | "arrow-up-right-waves" | "arrow-up-right" | "arrow-up-square" | "arrow-up-waves" | "arrow-up" | "asterisk-circle" | "asterisk-diamond" | "asterisk-hexagon" | "asterisk-octagon" | "asterisk-square" | "asterisk-waves" | "at" | "atom" | "baby" | "backpack" | "badge" | "baggage-claim" | "ban" | "bank" | "baseball" | "bath" | "battery-charging-four" | "battery-charging-one" | "battery-charging-three" | "battery-charging-two" | "battery-charging" | "battery-check" | "battery-empty" | "battery-full" | "battery-minus" | "battery-plus" | "battery-x" | "bell-check" | "bell-home" | "bell-minus" | "bell-on" | "bell-plus" | "bell-slash" | "bell-snooze" | "bell-user" | "bell-x" | "bell" | "binoculars" | "bitcoin-circle" | "bitcoin-diamond" | "bitcoin-hexagon" | "bitcoin-octagon" | "bitcoin-square" | "bitcoin-waves" | "bitcoin" | "bluetooth" | "boat" | "book-check" | "book-dot" | "book-home" | "book-image" | "book-minus" | "book-open" | "book-plus" | "book-slash" | "book-snooze" | "book-user" | "book-x" | "book" | "bookmark-check" | "bookmark-dot" | "bookmark-home" | "bookmark-minus" | "bookmark-plus" | "bookmark-slash" | "bookmark-snooze" | "bookmark-user" | "bookmark-x" | "bookmark" | "bounding-box" | "bowl" | "box" | "brand-chrome" | "brand-codepen" | "brand-codesandbox" | "brand-dribbble" | "brand-facebook" | "brand-figma" | "brand-framer" | "brand-github" | "brand-gitlab" | "brand-google" | "brand-instagram" | "brand-linkedin" | "brand-pinterest" | "brand-pocket" | "brand-slack" | "brand-spotify" | "brand-telegram" | "brand-threads" | "brand-trello" | "brand-twitch" | "brand-twitter" | "brand-x" | "brand-youtube" | "briefcase-conveyor-belt" | "briefcase" | "brightness-high" | "brightness-low" | "bubbles" | "building-one" | "building" | "cable-car" | "cake" | "calendar-check" | "calendar-down" | "calendar-minus" | "calendar-plus" | "calendar-slash" | "calendar-up" | "calendar-x" | "calendar" | "camera-slash" | "camera" | "campfire" | "cannabis" | "caravan" | "cart-check" | "cart-minus" | "cart-plus" | "cart-x" | "cart" | "cast-screen" | "center-focus" | "chart-area" | "chart-bar-big" | "chart-bar-decreasing" | "chart-bar-increasing" | "chart-bar-one" | "chart-bar-stacked" | "chart-bar" | "chart-bubble" | "chart-candlestick" | "chart-column-big" | "chart-column-decreasing" | "chart-column-increasing" | "chart-column-stacked" | "chart-column" | "chart-gantt" | "chart-graph" | "chart-line" | "chart-network" | "chart-no-axes-column-decreasing" | "chart-no-axes-column-increasing" | "chart-no-axes-column" | "chart-no-axes-combined" | "chart-no-axes-gantt" | "chart-pie-one" | "chart-pie-two" | "chart-pie" | "chart-scatter" | "chart-spline" | "chat-check" | "chat-dots" | "chat-messages" | "chat-minus" | "chat-plus" | "chat-x" | "chat" | "check-circle-one" | "check-circle" | "check-diamond" | "check-hexagon" | "check-octagon" | "check-square-one" | "check-square" | "check-waves" | "chevron-double-down-left" | "chevron-double-down-right" | "chevron-double-down" | "chevron-double-left" | "chevron-double-right" | "chevron-double-up-left" | "chevron-double-up-right" | "chevron-double-up" | "chevron-down-circle" | "chevron-down-left-circle" | "chevron-down-left-square" | "chevron-down-left-waves" | "chevron-down-left" | "chevron-down-right-circle" | "chevron-down-right-square" | "chevron-down-right-waves" | "chevron-down-right" | "chevron-down-square" | "chevron-down-waves" | "chevron-down" | "chevron-left-circle" | "chevron-left-square" | "chevron-left-waves" | "chevron-left" | "chevron-right-circle" | "chevron-right-square" | "chevron-right-waves" | "chevron-right" | "chevron-up-circle" | "chevron-up-down" | "chevron-up-left-circle" | "chevron-up-left-square" | "chevron-up-left-waves" | "chevron-up-left" | "chevron-up-right-circle" | "chevron-up-right-square" | "chevron-up-right-waves" | "chevron-up-right" | "chevron-up-square" | "chevron-up-waves" | "chevron-up" | "chip" | "cigarette-off" | "cigarette" | "circle-dashed" | "circle-half-circle" | "circle-half" | "circle-notch" | "circle" | "click" | "clipboard" | "clock-circle" | "clock-diamond" | "clock-eight" | "clock-eleven" | "clock-five" | "clock-four" | "clock-hand" | "clock-hexagon" | "clock-nine" | "clock-octagon" | "clock-one" | "clock-seven" | "clock-six" | "clock-square" | "clock-ten" | "clock-three" | "clock-twelve" | "clock-two" | "clock-waves" | "cloud-download" | "cloud-drizzle" | "cloud-fog" | "cloud-hail" | "cloud-lightning" | "cloud-moon-rain" | "cloud-moon" | "cloud-off" | "cloud-rain-wind" | "cloud-rain" | "cloud-snow" | "cloud-sun-rain" | "cloud-sun" | "cloud-upload" | "cloud" | "cloudy" | "cocktail" | "code-circle" | "code-diamond" | "code-hexagon" | "code-octagon" | "code-square" | "code-waves" | "code" | "coffee" | "cog-four" | "cog-one" | "cog-three" | "cog-two" | "cog" | "columns" | "command" | "compass" | "components" | "confetti" | "config-vertical" | "config" | "contactless-circle" | "contactless" | "controller" | "cookie" | "copy" | "copyleft" | "copyright-slash" | "copyright" | "corner-down-left" | "corner-down-right" | "corner-left-down" | "corner-left-up" | "corner-right-down" | "corner-right-up" | "corner-up-left" | "corner-up-right" | "credit-card-check" | "credit-card-minus" | "credit-card-plus" | "credit-card-x" | "credit-card" | "croissant" | "crop" | "crosshair" | "cupcake" | "danger-circle" | "danger-diamond" | "danger-hexagon" | "danger-octagon" | "danger-square" | "danger-triangle" | "danger-waves" | "danger" | "database" | "daze-circle" | "daze-ghost" | "daze-square" | "desktop" | "diamond" | "dice-five" | "dice-four" | "dice-one" | "dice-six" | "dice-three" | "dice-two" | "dislike" | "divide" | "dollar-circle" | "dollar-diamond" | "dollar-hexagon" | "dollar-octagon" | "dollar-square" | "dollar-waves" | "dollar" | "door-closed-locked" | "door-closed" | "door-open" | "dots-circle" | "dots-diamond" | "dots-hexagon" | "dots-octagon" | "dots-square" | "dots-vertical-circle" | "dots-vertical-diamond" | "dots-vertical-hexagon" | "dots-vertical-octagon" | "dots-vertical-square" | "dots-vertical-waves" | "dots-vertical" | "dots-waves" | "dots" | "download" | "drop" | "droplet-off" | "droplet" | "droplets" | "ear-slash" | "ear" | "earth" | "eclipse" | "edit-one" | "edit" | "egg" | "eight-circle" | "eight-diamond" | "eight-hexagon" | "eight-octagon" | "eight-square" | "eight-waves" | "eight" | "elevator" | "envelope-open" | "envelope" | "euro-circle" | "euro-diamond" | "euro-hexagon" | "euro-octagon" | "euro-square" | "euro-waves" | "euro" | "exclude" | "external-link" | "eye-slash" | "eye" | "face-id" | "fat-arrow-down-left" | "fat-arrow-down-right" | "fat-arrow-down" | "fat-arrow-left" | "fat-arrow-right" | "fat-arrow-up-left" | "fat-arrow-up-right" | "fat-arrow-up" | "fat-corner-down-left" | "fat-corner-down-right" | "fat-corner-left-down" | "fat-corner-left-up" | "fat-corner-right-down" | "fat-corner-right-up" | "fat-corner-up-left" | "fat-corner-up-right" | "female" | "file-check" | "file-minus" | "file-plus" | "file-text" | "file-x" | "film" | "filter-one" | "filter" | "fine-tune" | "fire" | "five-circle" | "five-diamond" | "five-hexagon" | "five-octagon" | "five-square" | "five-waves" | "five" | "flag-one" | "flag" | "flame-kindling" | "flame" | "flask" | "flower-2" | "flower" | "folder-check" | "folder-heart" | "folder-kanban" | "folder-minus" | "folder-one" | "folder-plus" | "folder-slash" | "folder-two" | "folder-x" | "folder" | "forward-circle" | "forward-diamond" | "forward-hexagon" | "forward-octagon" | "forward-square" | "forward-waves" | "forward" | "four-circle" | "four-diamond" | "four-hexagon" | "four-octagon" | "four-square" | "four-waves" | "four" | "frame" | "funny-circle" | "funny-ghost" | "funny-square" | "gift" | "git-branch" | "git-circle" | "git-commit" | "git-diamond" | "git-diff" | "git-hexagon" | "git-merge" | "git-octagon" | "git-pull-request" | "git-square" | "git-waves" | "glasses" | "globe" | "grid-one" | "grid" | "hand" | "hard-drive" | "hash-circle" | "hash-diamond" | "hash-hexagon" | "hash-octagon" | "hash-square" | "hash-waves" | "hash" | "haze" | "heading-five" | "heading-four" | "heading-one" | "heading-six" | "heading-three" | "heading-two" | "heading" | "headphones" | "heart-broken" | "heart-check" | "heart-circle" | "heart-diamond" | "heart-dot" | "heart-hexagon" | "heart-home" | "heart-minus" | "heart-octagon" | "heart-plus" | "heart-slash" | "heart-snooze" | "heart-square" | "heart-user" | "heart-waves" | "heart-x" | "heart" | "hexagon" | "home-check" | "home-minus" | "home-plus" | "home-smile" | "home-x" | "home" | "image-circle" | "image-rectangle" | "image" | "inbox-archive" | "inbox-check" | "inbox-down" | "inbox-minus" | "inbox-plus" | "inbox-up" | "inbox-x" | "inbox" | "incognito" | "indifferent-circle" | "indifferent-ghost" | "indifferent-square" | "infinity" | "info-circle" | "info-diamond" | "info-hexagon" | "info-octagon" | "info-square" | "info-triangle" | "info-waves" | "info" | "intersect" | "kanban" | "key" | "keyboard-brightness-high" | "keyboard-brightness-low" | "keyboard" | "label" | "lamp" | "layers-one" | "layers-three" | "layers-two" | "layout" | "leaf" | "leaves" | "letter-a-circle" | "letter-a-diamond" | "letter-a-hexagon" | "letter-a-octagon" | "letter-a-square" | "letter-a-waves" | "letter-a" | "letter-b-circle" | "letter-b-diamond" | "letter-b-hexagon" | "letter-b-octagon" | "letter-b-square" | "letter-b-waves" | "letter-b" | "letter-c-circle" | "letter-c-diamond" | "letter-c-hexagon" | "letter-c-octagon" | "letter-c-square" | "letter-c-waves" | "letter-c" | "letter-d-circle" | "letter-d-diamond" | "letter-d-hexagon" | "letter-d-octagon" | "letter-d-square" | "letter-d-waves" | "letter-d" | "letter-e-circle" | "letter-e-diamond" | "letter-e-hexagon" | "letter-e-octagon" | "letter-e-square" | "letter-e-waves" | "letter-e" | "letter-f-circle" | "letter-f-diamond" | "letter-f-hexagon" | "letter-f-octagon" | "letter-f-square" | "letter-f-waves" | "letter-f" | "letter-g-circle" | "letter-g-diamond" | "letter-g-hexagon" | "letter-g-octagon" | "letter-g-square" | "letter-g-waves" | "letter-g" | "letter-h-circle" | "letter-h-diamond" | "letter-h-hexagon" | "letter-h-octagon" | "letter-h-square" | "letter-h-waves" | "letter-h" | "letter-i-circle" | "letter-i-diamond" | "letter-i-hexagon" | "letter-i-octagon" | "letter-i-square" | "letter-i-waves" | "letter-i" | "letter-j-circle" | "letter-j-diamond" | "letter-j-hexagon" | "letter-j-octagon" | "letter-j-square" | "letter-j-waves" | "letter-j" | "letter-k-circle" | "letter-k-diamond" | "letter-k-hexagon" | "letter-k-octagon" | "letter-k-square" | "letter-k-waves" | "letter-k" | "letter-l-circle" | "letter-l-diamond" | "letter-l-hexagon" | "letter-l-octagon" | "letter-l-square" | "letter-l-waves" | "letter-l" | "letter-m-circle" | "letter-m-diamond" | "letter-m-hexagon" | "letter-m-octagon" | "letter-m-square" | "letter-m-waves" | "letter-m" | "letter-n-circle" | "letter-n-diamond" | "letter-n-hexagon" | "letter-n-octagon" | "letter-n-square" | "letter-n-waves" | "letter-n" | "letter-o-circle" | "letter-o-diamond" | "letter-o-hexagon" | "letter-o-octagon" | "letter-o-square" | "letter-o-waves" | "letter-o" | "letter-p-circle" | "letter-p-diamond" | "letter-p-hexagon" | "letter-p-octagon" | "letter-p-square" | "letter-p-waves" | "letter-p" | "letter-q-circle" | "letter-q-diamond" | "letter-q-hexagon" | "letter-q-octagon" | "letter-q-square" | "letter-q-waves" | "letter-q" | "letter-r-circle" | "letter-r-diamond" | "letter-r-hexagon" | "letter-r-octagon" | "letter-r-square" | "letter-r-waves" | "letter-r" | "letter-s-circle" | "letter-s-diamond" | "letter-s-hexagon" | "letter-s-octagon" | "letter-s-square" | "letter-s-waves" | "letter-s" | "letter-t-circle" | "letter-t-diamond" | "letter-t-hexagon" | "letter-t-octagon" | "letter-t-square" | "letter-t-waves" | "letter-t" | "letter-u-circle" | "letter-u-diamond" | "letter-u-hexagon" | "letter-u-octagon" | "letter-u-square" | "letter-u-waves" | "letter-u" | "letter-v-circle" | "letter-v-diamond" | "letter-v-hexagon" | "letter-v-octagon" | "letter-v-square" | "letter-v-waves" | "letter-v" | "letter-w-circle" | "letter-w-diamond" | "letter-w-hexagon" | "letter-w-octagon" | "letter-w-square" | "letter-w-waves" | "letter-w" | "letter-x-circle" | "letter-x-diamond" | "letter-x-hexagon" | "letter-x-octagon" | "letter-x-square" | "letter-x-waves" | "letter-x" | "letter-y-circle" | "letter-y-diamond" | "letter-y-hexagon" | "letter-y-octagon" | "letter-y-square" | "letter-y-waves" | "letter-y" | "letter-z-circle" | "letter-z-diamond" | "letter-z-hexagon" | "letter-z-octagon" | "letter-z-square" | "letter-z-waves" | "letter-z" | "lightning-off" | "lightning" | "like" | "line-chart-circle" | "line-chart-diamond" | "line-chart-hexagon" | "line-chart-octagon" | "line-chart-square" | "line-chart-waves" | "link-one" | "link-two" | "link" | "list-check" | "list-number" | "list" | "location-check" | "location-home" | "location-minus" | "location-plus" | "location-selected" | "location-slash" | "location-snooze" | "location-user" | "location-x" | "lock-circle" | "lock-diamond" | "lock-hexagon" | "lock-keyhole" | "lock-octagon" | "lock-open-keyhole" | "lock-open-password" | "lock-open" | "lock-password" | "lock-square" | "lock-waves" | "lock" | "login" | "logout" | "magnet" | "male" | "mask" | "math-square" | "math" | "maximize-one" | "maximize" | "menu" | "message-check" | "message-dots" | "message-minus" | "message-plus" | "message-reply" | "message-x" | "microphone-slash" | "microphone" | "minimize-one" | "minimize" | "minus-circle" | "minus-diamond" | "minus-hexagon" | "minus-octagon" | "minus-square" | "minus-waves" | "minus" | "mobile-signal-five" | "mobile-signal-four" | "mobile-signal-one" | "mobile-signal-three" | "mobile-signal-two" | "mobile" | "moon-star" | "moon" | "mountain-snow" | "mountain" | "mouse-pointer" | "move-diagonal-one" | "move-diagonal" | "move-horizontal" | "move-vertical" | "move" | "music-circle" | "music-diamond" | "music-hexagon" | "music-octagon" | "music-square" | "music-waves" | "music" | "myna" | "navigation-one" | "navigation" | "nine-circle" | "nine-diamond" | "nine-hexagon" | "nine-octagon" | "nine-square" | "nine-waves" | "nine" | "notification" | "octagon" | "one-circle" | "one-diamond" | "one-hexagon" | "one-octagon" | "one-square" | "one-waves" | "one" | "option" | "package" | "paint" | "panel-bottom-close" | "panel-bottom-inactive" | "panel-bottom-open" | "panel-bottom" | "panel-left-close" | "panel-left-inactive" | "panel-left-open" | "panel-left" | "panel-right-close" | "panel-right-inactive" | "panel-right-open" | "panel-right" | "panel-top-close" | "panel-top-inactive" | "panel-top-open" | "panel-top" | "paperclip" | "parking" | "password" | "path" | "pause-circle" | "pause-diamond" | "pause-hexagon" | "pause-octagon" | "pause-square" | "pause-waves" | "pause" | "pen" | "pencil" | "percentage-circle" | "percentage-diamond" | "percentage-hexagon" | "percentage-octagon" | "percentage-square" | "percentage-waves" | "percentage" | "pin" | "pizza" | "planet" | "play-circle" | "play-diamond" | "play-hexagon" | "play-octagon" | "play-square" | "play-waves" | "play" | "plus-circle" | "plus-diamond" | "plus-hexagon" | "plus-octagon" | "plus-square" | "plus-waves" | "plus" | "pokeball" | "power" | "presentation" | "printer" | "puzzle" | "question-circle" | "question-diamond" | "question-hexagon" | "question-octagon" | "question-square" | "question-waves" | "question" | "radio" | "rainbow" | "reception-bell" | "rectangle-vertical" | "rectangle" | "redo" | "refresh-alt" | "refresh" | "repeat" | "rewind-circle" | "rewind-diamond" | "rewind-hexagon" | "rewind-octagon" | "rewind-square" | "rewind-waves" | "rewind" | "rhombus" | "ribbon" | "rocket" | "room-service" | "rows" | "rss" | "ruler" | "rupee-circle" | "rupee-diamond" | "rupee-hexagon" | "rupee-octagon" | "rupee-square" | "rupee-waves" | "rupee" | "sad-circle" | "sad-ghost" | "sad-square" | "save" | "scan" | "scissors" | "sea-waves" | "search-check" | "search-circle" | "search-diamond" | "search-dot" | "search-hexagon" | "search-home" | "search-minus" | "search-octagon" | "search-plus" | "search-slash" | "search-snooze" | "search-square" | "search-user" | "search-waves" | "search-x" | "search" | "select-multiple" | "send" | "servers" | "seven-circle" | "seven-diamond" | "seven-hexagon" | "seven-octagon" | "seven-square" | "seven-waves" | "seven" | "share" | "shell" | "shield-check" | "shield-crossed" | "shield-minus" | "shield-one" | "shield-plus" | "shield-slash" | "shield-two" | "shield-x" | "shield" | "shooting-star" | "shopping-bag" | "shovel" | "shrub" | "shuffle-alt" | "shuffle" | "sidebar-alt" | "sidebar" | "signal-circle" | "signal-diamond" | "signal-hexagon" | "signal-octagon" | "signal-square" | "signal-waves" | "signal" | "six-circle" | "six-diamond" | "six-hexagon" | "six-octagon" | "six-square" | "six-waves" | "six" | "skip-back" | "skip-forward" | "slash-circle" | "slash-diamond" | "slash-hexagon" | "slash-octagon" | "slash-square" | "slash-waves" | "smile-circle" | "smile-ghost" | "smile-square" | "snow" | "snowflake" | "sofa" | "sort" | "sparkles" | "speaker" | "spinner-one" | "spinner" | "sprout" | "square-chart-gantt" | "square-dashed-kanban" | "square-dashed" | "square-half" | "square-kanban" | "square" | "star" | "stop-circle" | "stop-diamond" | "stop-hexagon" | "stop-octagon" | "stop-square" | "stop-waves" | "stop" | "store" | "subtract" | "sun-dim" | "sun-medium" | "sun-snow" | "sun" | "sunrise" | "sunset" | "support" | "swatches" | "table" | "tablet" | "tag-plus" | "tag" | "tally-five" | "tally-four" | "tally-one" | "tally-three" | "tally-two" | "telephone-call" | "telephone-forward" | "telephone-in" | "telephone-missed" | "telephone-out" | "telephone-slash" | "telephone" | "tent-tree" | "tent" | "terminal" | "text-align-center" | "text-align-left" | "text-align-right" | "text-justify" | "thermometer-snowflake" | "thermometer-sun" | "thermometer" | "three-circle" | "three-diamond" | "three-hexagon" | "three-octagon" | "three-square" | "three-waves" | "three" | "ticket-slash" | "ticket" | "toggle-left" | "toggle-right" | "tool" | "tornado" | "train" | "trash-one" | "trash-two" | "trash" | "tree-deciduous" | "tree-palm" | "tree-pine" | "tree" | "trees" | "trending-down" | "trending-up-down" | "trending-up" | "triangle" | "truck" | "tv" | "two-circle" | "two-diamond" | "two-hexagon" | "two-octagon" | "two-square" | "two-waves" | "two" | "type-bold" | "type-italic" | "type-text" | "type-underline" | "umbrella-off" | "umbrella" | "undo" | "unlink" | "upload" | "user-check" | "user-circle" | "user-diamond" | "user-hexagon" | "user-minus" | "user-octagon" | "user-plus" | "user-settings" | "user-square" | "user-waves" | "user-x" | "users-group" | "users" | "video-slash" | "video" | "volume-check" | "volume-high" | "volume-low" | "volume-minus" | "volume-none" | "volume-plus" | "volume-slash" | "volume-x" | "watch" | "waves" | "webcam" | "wheel" | "wheelchair" | "wifi-check" | "wifi-low" | "wifi-medium" | "wifi-minus" | "wifi-plus" | "wifi-slash" | "wifi-x" | "wifi" | "wind-arrow-down" | "wind" | "winds" | "wine" | "wink-circle" | "wink-ghost" | "wink-square" | "wrench" | "x-circle" | "x-diamond" | "x-hexagon" | "x-octagon" | "x-square" | "x-triangle" | "x-waves" | "x" | "yen-circle" | "yen-diamond" | "yen-hexagon" | "yen-octagon" | "yen-square" | "yen-waves" | "yen" | "zap-off" | "zap" | "zero-circle" | "zero-diamond" | "zero-hexagon" | "zero-octagon" | "zero-square" | "zero-waves" | "zero", string>>>;
93
+ };
94
+ /**
95
+ * The keys left off `attributeType`'s prompt line: every omitted base key and
96
+ * the type's hidden keys. The wire omits the same set, then adds back
97
+ * `WIRE_OFFERED_BASE_CONFIG`, which the prompt states once under the block
98
+ * rather than on every line.
99
+ */
100
+ export declare function wireOmittedConfigKeysFor(attributeType: AttributeType): readonly string[];
101
+ /** `omit()` mask of the type keys hidden from `attributeType`'s wire. */
102
+ export declare function wireHiddenTypeConfigMask(attributeType: AttributeType): Record<string, true>;
103
+ /**
104
+ * Builds the `superRefine` that refuses a key belonging to a DIFFERENT type
105
+ * than the one sent.
106
+ *
107
+ * Two wire shapes merge several types into one member for size — the nine
108
+ * simple attribute types of `ADD_ATTRIBUTE_WIRE`, and the seven simple
109
+ * qualified-property types below — so a merged member structurally accepts
110
+ * every merged type's keys. Without this, a `text`-only `format` sent on a
111
+ * `number` parses and is then silently `.strip()`-ped at store: a key lost
112
+ * with no feedback. Checked against the SENT type, and the message names the
113
+ * keys that type does accept so the next call is right. One factory rather
114
+ * than two near-identical loops — the second one drifted first.
115
+ */
116
+ export declare function refuseForeignKeys<T extends string>(keysByType: Readonly<Record<T, ReadonlySet<string>>>, noun: string, alwaysAllowed?: readonly string[]): (type: T, subject: Record<string, unknown> | undefined, ctx: z$2.RefinementCtx, path?: readonly string[]) => void;
117
+ export declare const statusGroupSchema: z$2.ZodEnum<{
118
+ idle: "idle";
119
+ in_progress: "in_progress";
120
+ finished: "finished";
121
+ }>;
122
+ export declare const selectOptionWriteSchema: z$2.ZodObject<{
123
+ value: z$2.ZodString;
124
+ label: z$2.ZodString;
125
+ description: z$2.ZodOptional<z$2.ZodString>;
126
+ inverse: z$2.ZodOptional<z$2.ZodString>;
127
+ archived: z$2.ZodOptional<z$2.ZodBoolean>;
128
+ color: z$2.ZodEnum<{
129
+ stone: "stone";
130
+ clay: "clay";
131
+ brick: "brick";
132
+ terra: "terra";
133
+ ochre: "ochre";
134
+ moss: "moss";
135
+ sage: "sage";
136
+ lagoon: "lagoon";
137
+ ink: "ink";
138
+ iris: "iris";
139
+ peony: "peony";
140
+ }>;
141
+ }, z$2.core.$strict>;
142
+ export declare const multiselectOptionWriteSchema: z$2.ZodObject<{
143
+ value: z$2.ZodString;
144
+ label: z$2.ZodString;
145
+ description: z$2.ZodOptional<z$2.ZodString>;
146
+ inverse: z$2.ZodOptional<z$2.ZodString>;
147
+ archived: z$2.ZodOptional<z$2.ZodBoolean>;
148
+ color: z$2.ZodEnum<{
149
+ stone: "stone";
150
+ clay: "clay";
151
+ brick: "brick";
152
+ terra: "terra";
153
+ ochre: "ochre";
154
+ moss: "moss";
155
+ sage: "sage";
156
+ lagoon: "lagoon";
157
+ ink: "ink";
158
+ iris: "iris";
159
+ peony: "peony";
160
+ }>;
161
+ }, z$2.core.$strict>;
162
+ export declare const statusOptionWriteSchema: z$2.ZodObject<{
163
+ value: z$2.ZodString;
164
+ label: z$2.ZodString;
165
+ description: z$2.ZodOptional<z$2.ZodString>;
166
+ inverse: z$2.ZodOptional<z$2.ZodString>;
167
+ archived: z$2.ZodOptional<z$2.ZodBoolean>;
168
+ color: z$2.ZodEnum<{
169
+ stone: "stone";
170
+ clay: "clay";
171
+ brick: "brick";
172
+ terra: "terra";
173
+ ochre: "ochre";
174
+ moss: "moss";
175
+ sage: "sage";
176
+ lagoon: "lagoon";
177
+ ink: "ink";
178
+ iris: "iris";
179
+ peony: "peony";
180
+ }>;
181
+ group: z$2.ZodEnum<{
182
+ idle: "idle";
183
+ in_progress: "in_progress";
184
+ finished: "finished";
185
+ }>;
186
+ }, z$2.core.$strict>;
187
+ /**
188
+ * Drops, from every option of an attribute config or body, the keys
189
+ * `optionSchema` does not know — typically an `id` the code builder accepted
190
+ * without complaint (#4356). Sync stores options through it, and the schema
191
+ * state reads them through it, so one stale key no longer 400s the whole state.
192
+ * The options of a `relation()`/`document()`'s `.qualifyWith()` properties are
193
+ * validated by the same schema, so each property definition goes through it too.
194
+ *
195
+ * Order is kept, and a config with nothing to drop is returned as is. A list
196
+ * or option that is not the expected shape is left for strict validation to
197
+ * refuse.
198
+ */
199
+ export declare function withoutUnknownOptionKeys<T extends object>(config: T): T;
200
+ /**
201
+ * Property types whose config differs from `baseConfigSchema` only by
202
+ * independent optional scalars — no options array, no relation targets. Same
203
+ * shape as `SIMPLE_ATTRIBUTE_TYPES` in `architect/operations/schema.ts` minus
204
+ * `richtext`/`user` (not valid property types) — none of these seven types'
205
+ * keys collide, proven by `tests/validation/config/property-config.test.ts`.
206
+ * Merged into one wire member for the same reason `ADD_ATTRIBUTE_WIRE` merges
207
+ * its nine: the model reads one shape instead of seven near-identical ones,
208
+ * and this is also what keeps a qualified relation/document's `add_attribute`
209
+ * leaf under its wire-size cap (`tests/architect/wire-schema-size.test.ts`) —
210
+ * ten separate members, each paying its own JSON Schema object/`$defs`
211
+ * boilerplate, blew the budget even after the base config keys were omitted.
212
+ */
213
+ export declare const SIMPLE_PROPERTY_TYPES: readonly ["text", "number", "checkbox", "date", "phone", "currency", "location"];
214
+ export declare const propertyAttributeSchema: z$2.ZodDiscriminatedUnion<[z$2.ZodObject<Readonly<{
215
+ [k: string]: z$2.core.$ZodType<unknown, unknown, z$2.core.$ZodTypeInternals<unknown, unknown>>;
216
+ }>, z$2.core.$strip>, ...z$2.ZodObject<Readonly<{
217
+ [k: string]: z$2.core.$ZodType<unknown, unknown, z$2.core.$ZodTypeInternals<unknown, unknown>>;
218
+ }>, z$2.core.$strip>[]], "type">;
219
+ export declare const propertySchemaSchema: z$2.ZodObject<{
220
+ definitions: z$2.ZodArray<z$2.ZodDiscriminatedUnion<[z$2.ZodObject<Readonly<{
221
+ [k: string]: z$2.core.$ZodType<unknown, unknown, z$2.core.$ZodTypeInternals<unknown, unknown>>;
222
+ }>, z$2.core.$strip>, ...z$2.ZodObject<Readonly<{
223
+ [k: string]: z$2.core.$ZodType<unknown, unknown, z$2.core.$ZodTypeInternals<unknown, unknown>>;
224
+ }>, z$2.core.$strip>[]], "type">>;
225
+ }, z$2.core.$strip>;
226
+ /**
227
+ * The wire-facing property union, derived from the stored one: the same seven
228
+ * simple types merged into one member, the option-carrying types alongside,
229
+ * everything the model never sets omitted, and `.strict()` so an invented key
230
+ * is refused by name instead of silently stripped at store.
231
+ */
232
+ export declare const propertyAttributeWireSchema: z$2.ZodDiscriminatedUnion<[z$2.ZodObject<Readonly<{
233
+ [k: string]: z$2.core.$ZodType<unknown, unknown, z$2.core.$ZodTypeInternals<unknown, unknown>>;
234
+ }>, z$2.core.$strip>, ...z$2.ZodObject<Readonly<{
235
+ [k: string]: z$2.core.$ZodType<unknown, unknown, z$2.core.$ZodTypeInternals<unknown, unknown>>;
236
+ }>, z$2.core.$strip>[]], "type">;
237
+ export declare const propertySchemaWireSchema: z$2.ZodObject<{
238
+ definitions: z$2.ZodArray<z$2.ZodDiscriminatedUnion<[z$2.ZodObject<Readonly<{
239
+ [k: string]: z$2.core.$ZodType<unknown, unknown, z$2.core.$ZodTypeInternals<unknown, unknown>>;
240
+ }>, z$2.core.$strip>, ...z$2.ZodObject<Readonly<{
241
+ [k: string]: z$2.core.$ZodType<unknown, unknown, z$2.core.$ZodTypeInternals<unknown, unknown>>;
242
+ }>, z$2.core.$strip>[]], "type">>;
243
+ }, z$2.core.$strict>;
244
+ /**
245
+ * A month or a year has no time of day and no range end to pair with in this
246
+ * slice (#5325): `precision` narrower than a day is refused beside
247
+ * `includeTime` or `endDate`, on the attribute and on each date property it
248
+ * qualifies an edge with.
249
+ */
250
+ export declare function datePrecisionIssues(type: string, config: Record<string, unknown>, path?: PropertyKey[]): {
251
+ path: PropertyKey[];
252
+ message: string;
253
+ }[];
254
+ /**
255
+ * Map of attribute type to config schema
256
+ */
257
+ export declare const attributeConfigSchemas: Record<AttributeType, z$2.ZodObject<z$2.ZodRawShape>>;
258
+ /**
259
+ * Get the config schema for a specific attribute type
260
+ */
261
+ export declare function getAttributeConfigSchema(type: AttributeType): z$2.ZodObject<z$2.ZodRawShape>;
262
+ /**
263
+ * Validate and strip unknown properties from attribute config
264
+ * This ensures only allowed properties are stored in the database
265
+ */
266
+ export declare function parseAttributeConfig(type: AttributeType, config: Record<string, unknown>): Record<string, unknown>;
267
+ /**
268
+ * The config contract as a WRITE applies it: the stored schema plus the
269
+ * stricter option and icon rules newly written values must satisfy.
270
+ */
271
+ export declare function getAttributeConfigWriteSchema(type: AttributeType): z$2.ZodObject<z$2.ZodRawShape>;
272
+ /**
273
+ * Strict parser for newly created attribute definitions.
274
+ *
275
+ * Top-level config remains strip-compatible with the historical config
276
+ * contract, while newly written icons and select-like option objects are
277
+ * validated strictly.
278
+ */
279
+ export declare function parseAttributeConfigForCreate(type: AttributeType, input: unknown): Record<string, unknown>;
280
+ /**
281
+ * Patch-aware parser for persisted attributes.
282
+ *
283
+ * An explicit options patch owns and strictly validates the complete new
284
+ * list. Omission means the stored legacy list is preserved without
285
+ * reconstruction, including options that predate required colours/groups.
286
+ */
287
+ export declare function parseAttributeConfigForUpdate(stored: Attribute, patch: Partial<AddAttributeInput>): Record<string, unknown>;
288
+ //#endregion