@stndrds/schema 1.0.0-alpha.281 → 1.0.0-alpha.282

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 (75) hide show
  1. package/dist/{all-BVp3k9Hi.d.ts → all-C3EaFLCU.d.ts} +4 -3
  2. package/dist/{all-CnIU2anT.d.mts → all-CQMswOrw.d.mts} +4 -3
  3. package/dist/{attributes-D8eHv5Kf.d.ts → attributes-CU871AfG.d.ts} +12 -12
  4. package/dist/{attributes--M1ifW8_.d.mts → attributes-DoiGyNFk.d.mts} +12 -12
  5. package/dist/{chunk-LRFLSFIA.js → chunk-DIMTNM3F.js} +7 -3
  6. package/dist/{chunk-XCLVXM7F.mjs → chunk-EFSS7PGC.mjs} +1 -1
  7. package/dist/{chunk-SYQDFZ74.mjs → chunk-HOVUEYEQ.mjs} +32 -0
  8. package/dist/{chunk-TU6ECJFZ.js → chunk-KIMECN6D.js} +65 -35
  9. package/dist/{chunk-HWZRSXFB.js → chunk-L4KLYMUI.js} +32 -0
  10. package/dist/{chunk-OYHBQMC7.js → chunk-LBGLB443.js} +3 -3
  11. package/dist/{chunk-MLTXSBOB.mjs → chunk-PLTLAMWJ.mjs} +1 -1
  12. package/dist/{chunk-ORPCS24B.mjs → chunk-QGRYOIHT.mjs} +34 -4
  13. package/dist/{chunk-A5PPZ2FM.mjs → chunk-R34LOMT7.mjs} +5 -1
  14. package/dist/{chunk-E47WAI5K.js → chunk-V4MZOTLV.js} +4 -4
  15. package/dist/exceptions.d.mts +20 -3
  16. package/dist/exceptions.d.ts +20 -3
  17. package/dist/exceptions.js +39 -39
  18. package/dist/exceptions.mjs +1 -1
  19. package/dist/{helpers-DyoPqiSz.d.ts → helpers-BNr-Dppk.d.ts} +3 -3
  20. package/dist/{helpers-BiABdSxK.d.mts → helpers-CfEOUBmB.d.mts} +3 -3
  21. package/dist/{index-TMlrIKAY.d.ts → index-Br7koyHF.d.ts} +41 -6
  22. package/dist/{index-DWoqObyG.d.mts → index-D9XBjFnu.d.mts} +41 -6
  23. package/dist/index.d.mts +320 -83
  24. package/dist/index.d.ts +320 -83
  25. package/dist/index.js +459 -251
  26. package/dist/index.mjs +229 -31
  27. package/dist/{migrations-B1kkIhIX.d.ts → migrations-BGWgXHXb.d.ts} +1 -1
  28. package/dist/{migrations-BNlQVzDC.d.mts → migrations-C-GN1xx_.d.mts} +1 -1
  29. package/dist/{objects-DmMqHn3L.d.mts → objects-BRypaBpi.d.mts} +2 -4
  30. package/dist/{objects-DgFojgwH.d.ts → objects-BiOMwzLL.d.ts} +2 -4
  31. package/dist/{types-DHqXzkgW.d.mts → types-80c2rOUZ.d.mts} +1 -1
  32. package/dist/{types-DYYFto8d.d.ts → types-DqYz8Iv_.d.ts} +1 -1
  33. package/dist/utils.js +8 -8
  34. package/dist/utils.mjs +2 -2
  35. package/dist/validation/all.d.mts +7 -7
  36. package/dist/validation/all.d.ts +7 -7
  37. package/dist/validation/all.js +29 -29
  38. package/dist/validation/all.mjs +4 -4
  39. package/dist/validation/complex/currency.d.mts +2 -2
  40. package/dist/validation/complex/currency.d.ts +2 -2
  41. package/dist/validation/complex/location.d.mts +2 -2
  42. package/dist/validation/complex/location.d.ts +2 -2
  43. package/dist/validation/complex/phone.d.mts +2 -2
  44. package/dist/validation/complex/phone.d.ts +2 -2
  45. package/dist/validation/complex/relation.d.mts +2 -2
  46. package/dist/validation/complex/relation.d.ts +2 -2
  47. package/dist/validation/complex/richtext.d.mts +2 -2
  48. package/dist/validation/complex/richtext.d.ts +2 -2
  49. package/dist/validation/complex/select.d.mts +2 -2
  50. package/dist/validation/complex/select.d.ts +2 -2
  51. package/dist/validation/complex/user.d.mts +2 -2
  52. package/dist/validation/complex/user.d.ts +2 -2
  53. package/dist/validation/computed/formula.d.mts +2 -2
  54. package/dist/validation/computed/formula.d.ts +2 -2
  55. package/dist/validation/computed/rollup.d.mts +2 -2
  56. package/dist/validation/computed/rollup.d.ts +2 -2
  57. package/dist/validation/config/index.d.mts +4 -4
  58. package/dist/validation/config/index.d.ts +4 -4
  59. package/dist/validation/config/index.js +11 -11
  60. package/dist/validation/config/index.mjs +2 -2
  61. package/dist/validation/core/index.d.mts +3 -3
  62. package/dist/validation/core/index.d.ts +3 -3
  63. package/dist/validation/object/index.d.mts +5 -5
  64. package/dist/validation/object/index.d.ts +5 -5
  65. package/dist/validation/object/index.js +14 -14
  66. package/dist/validation/object/index.mjs +2 -2
  67. package/dist/validation/primitives/checkbox.d.mts +2 -2
  68. package/dist/validation/primitives/checkbox.d.ts +2 -2
  69. package/dist/validation/primitives/date.d.mts +2 -2
  70. package/dist/validation/primitives/date.d.ts +2 -2
  71. package/dist/validation/primitives/number.d.mts +2 -2
  72. package/dist/validation/primitives/number.d.ts +2 -2
  73. package/dist/validation/primitives/text.d.mts +2 -2
  74. package/dist/validation/primitives/text.d.ts +2 -2
  75. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkOYHBQMC7_js = require('./chunk-OYHBQMC7.js');
4
- var chunkTU6ECJFZ_js = require('./chunk-TU6ECJFZ.js');
5
- var chunkLRFLSFIA_js = require('./chunk-LRFLSFIA.js');
6
- var chunkE47WAI5K_js = require('./chunk-E47WAI5K.js');
3
+ var chunkLBGLB443_js = require('./chunk-LBGLB443.js');
4
+ var chunkKIMECN6D_js = require('./chunk-KIMECN6D.js');
5
+ var chunkDIMTNM3F_js = require('./chunk-DIMTNM3F.js');
6
+ var chunkV4MZOTLV_js = require('./chunk-V4MZOTLV.js');
7
7
  require('./chunk-EW5XR2X3.js');
8
8
  require('./chunk-QWKLQRBX.js');
9
9
  require('./chunk-KNGWHQLR.js');
@@ -13,7 +13,7 @@ var chunk5WATIVCA_js = require('./chunk-5WATIVCA.js');
13
13
  var chunkSI34M4IC_js = require('./chunk-SI34M4IC.js');
14
14
  var chunkYIP5FJ5H_js = require('./chunk-YIP5FJ5H.js');
15
15
  var chunkZPFOKBIN_js = require('./chunk-ZPFOKBIN.js');
16
- var chunkHWZRSXFB_js = require('./chunk-HWZRSXFB.js');
16
+ var chunkL4KLYMUI_js = require('./chunk-L4KLYMUI.js');
17
17
  require('./chunk-ACKMC6FL.js');
18
18
  require('./chunk-E6JUYGJX.js');
19
19
  var chunkQ4SZAMJT_js = require('./chunk-Q4SZAMJT.js');
@@ -81,7 +81,7 @@ function inferInverseCardinality(cardinality) {
81
81
  return cardinality === "one" ? "many" : "many";
82
82
  }
83
83
  function isAttributeSortable2(attr) {
84
- return chunkTU6ECJFZ_js.isAttributeSortable(attr);
84
+ return chunkKIMECN6D_js.isAttributeSortable(attr);
85
85
  }
86
86
 
87
87
  // src/types/audit.ts
@@ -148,14 +148,14 @@ function sessionStateToLegacyStatus(state) {
148
148
  return "idle";
149
149
  case "parked":
150
150
  if (state.parkedOn === void 0) {
151
- throw new chunkHWZRSXFB_js.SchemaError("parked state without parkedOn", chunkHWZRSXFB_js.SchemaErrorCode.INVARIANT_VIOLATION);
151
+ throw new chunkL4KLYMUI_js.SchemaError("parked state without parkedOn", chunkL4KLYMUI_js.SchemaErrorCode.INVARIANT_VIOLATION);
152
152
  }
153
153
  return state.parkedOn === "agents" ? "waiting_agents" : "waiting_human";
154
154
  case "terminal":
155
155
  if (state.outcome === void 0) {
156
- throw new chunkHWZRSXFB_js.SchemaError(
156
+ throw new chunkL4KLYMUI_js.SchemaError(
157
157
  "terminal state without outcome",
158
- chunkHWZRSXFB_js.SchemaErrorCode.INVARIANT_VIOLATION
158
+ chunkL4KLYMUI_js.SchemaErrorCode.INVARIANT_VIOLATION
159
159
  );
160
160
  }
161
161
  return state.outcome;
@@ -206,6 +206,18 @@ var TODO_PLAN_STATUSES = ["active", "completed", "abandoned"];
206
206
  function agentDisplayName(agent2) {
207
207
  return agent2.label?.trim() || agent2.name;
208
208
  }
209
+ var TOOL_APPROVAL_STATES = [
210
+ "approval-requested",
211
+ "approval-responded",
212
+ "approval-dispatched"
213
+ ];
214
+ var OPEN_TOOL_PART_STATES = ["streaming", "running", ...TOOL_APPROVAL_STATES];
215
+ function isOpenToolPartState(state) {
216
+ return OPEN_TOOL_PART_STATES.includes(state);
217
+ }
218
+ function isToolApprovalState(state) {
219
+ return TOOL_APPROVAL_STATES.includes(state);
220
+ }
209
221
  var TODO_STATUSES = ["pending", "in_progress", "completed", "blocked"];
210
222
  var MAX_TODOS = 50;
211
223
  var MAX_TODO_ID_CHARS = 80;
@@ -217,7 +229,7 @@ var NATIVE_AGENT_UI_PART_IDS_METADATA_KEY = "__stndrdsNativeUiPartIds";
217
229
  var NATIVE_AGENT_UI_PART_IDS_METADATA_SCHEMA_VERSION = 1;
218
230
  var INVALID_NATIVE_PART_IDS = "Native agent UI part IDs metadata is invalid";
219
231
  function invalidNativePartIds() {
220
- throw new chunkHWZRSXFB_js.ValidationError(INVALID_NATIVE_PART_IDS, []);
232
+ throw new chunkL4KLYMUI_js.ValidationError(INVALID_NATIVE_PART_IDS, []);
221
233
  }
222
234
  function isPlainRecord(value) {
223
235
  if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
@@ -309,6 +321,15 @@ function resolveFieldRequired(input) {
309
321
  function getSlotFieldTargets(field) {
310
322
  return field.additionalSlotIds?.length ? [field.slotId, ...field.additionalSlotIds] : [field.slotId];
311
323
  }
324
+ function formFieldKey(field) {
325
+ return isFormSlotFieldRef(field) ? `${field.slotId}.${field.attribute}` : `free.${field.attribute.name}`;
326
+ }
327
+ function formFieldFlatKey(field) {
328
+ return isFormSlotFieldRef(field) ? field.attribute : field.attribute.name;
329
+ }
330
+ function readFormFieldValue(values, field) {
331
+ return values[formFieldKey(field)] ?? values[formFieldFlatKey(field)];
332
+ }
312
333
 
313
334
  // src/types/forms/rows.ts
314
335
  function isFormFieldsRow(row) {
@@ -395,9 +416,8 @@ function parseCountMode(value) {
395
416
  if (typeof value === "string" && COUNT_MODES.includes(value)) {
396
417
  return value;
397
418
  }
398
- throw new chunkHWZRSXFB_js.ValidationError(
399
- // biome-ignore lint/style/useTemplate: see the comment above.
400
- "countMode must be one of: " + COUNT_MODES.join(", ") + " (received: " + String(value) + ")",
419
+ throw new chunkL4KLYMUI_js.ValidationError(
420
+ `countMode must be one of: ${COUNT_MODES.join(", ")} (received: ${String(value)})`,
401
421
  []
402
422
  );
403
423
  }
@@ -502,7 +522,7 @@ function isDateRangeValue(value) {
502
522
  return typeof value === "object" && value !== null && typeof value.start === "string";
503
523
  }
504
524
  function normalizeDateValue(value, attr) {
505
- if (chunkE47WAI5K_js.isNullishOrEmptyString(value)) return null;
525
+ if (chunkV4MZOTLV_js.isNullishOrEmptyString(value)) return null;
506
526
  if (isDateRangeValue(value)) {
507
527
  return attr.endDate ? { start: value.start, end: value.end ?? null } : value.start;
508
528
  }
@@ -640,7 +660,7 @@ function formatMultiselect(value, attribute) {
640
660
  return value.join(", ");
641
661
  }
642
662
  function formatAttributeValue(value, attribute) {
643
- if (chunkE47WAI5K_js.isNullishOrEmptyString(value)) {
663
+ if (chunkV4MZOTLV_js.isNullishOrEmptyString(value)) {
644
664
  return EMPTY_VALUE_PLACEHOLDER;
645
665
  }
646
666
  switch (attribute.type) {
@@ -793,7 +813,7 @@ function renderLabelExpression(template, values, fallback = DEFAULT_LABEL_FALLBA
793
813
  break;
794
814
  }
795
815
  }
796
- const isEmpty2 = chunkE47WAI5K_js.isNullishOrEmptyString(value);
816
+ const isEmpty2 = chunkV4MZOTLV_js.isNullishOrEmptyString(value);
797
817
  if (isEmpty2 && pipes.length === 0) return "";
798
818
  for (const pipeExpr of pipes) {
799
819
  const { name: pipeName, args } = parsePipeExpression(pipeExpr);
@@ -869,8 +889,14 @@ function relationPropertyDefs(attribute) {
869
889
  if (attribute?.type !== "relation") return void 0;
870
890
  return attribute.properties?.definitions;
871
891
  }
892
+ function qualifiedPropertyDefs(attribute) {
893
+ if (attribute?.type === "relation" || attribute?.type === "document") {
894
+ return attribute.properties?.definitions;
895
+ }
896
+ return void 0;
897
+ }
872
898
  function extractValueRefs(value) {
873
- if (chunkE47WAI5K_js.isNullishOrEmptyString(value)) return [];
899
+ if (chunkV4MZOTLV_js.isNullishOrEmptyString(value)) return [];
874
900
  if (typeof value === "string") return [{ id: value }];
875
901
  if (Array.isArray(value)) return value.flatMap((item) => extractValueRefs(item));
876
902
  if (typeof value === "object" && "id" in value) {
@@ -1074,24 +1100,24 @@ function validateObjectName(name) {
1074
1100
  OBJECT_NAME_SCHEMA.parse(name);
1075
1101
  } catch (error) {
1076
1102
  if (error instanceof z2__default.default.ZodError) {
1077
- throw new chunkHWZRSXFB_js.SchemaError(error.issues[0].message, chunkHWZRSXFB_js.SchemaErrorCode.INVALID_OBJECT_NAME);
1103
+ throw new chunkL4KLYMUI_js.SchemaError(error.issues[0].message, chunkL4KLYMUI_js.SchemaErrorCode.INVALID_OBJECT_NAME);
1078
1104
  }
1079
1105
  throw error;
1080
1106
  }
1081
1107
  }
1082
1108
  function validateViewName(name) {
1083
1109
  if (!name || name.length === 0) {
1084
- throw new chunkHWZRSXFB_js.ValidationError("View name cannot be empty", [
1110
+ throw new chunkL4KLYMUI_js.ValidationError("View name cannot be empty", [
1085
1111
  { path: ["name"], message: "View name cannot be empty" }
1086
1112
  ]);
1087
1113
  }
1088
1114
  if (name.length > MAX_NAME_LENGTH) {
1089
- throw new chunkHWZRSXFB_js.ValidationError("View name is too long", [
1115
+ throw new chunkL4KLYMUI_js.ValidationError("View name is too long", [
1090
1116
  { path: ["name"], message: `View name is too long (max ${MAX_NAME_LENGTH} characters)` }
1091
1117
  ]);
1092
1118
  }
1093
1119
  if (!VIEW_NAME_REGEX.test(name)) {
1094
- throw new chunkHWZRSXFB_js.ValidationError("Invalid view name format", [
1120
+ throw new chunkL4KLYMUI_js.ValidationError("Invalid view name format", [
1095
1121
  {
1096
1122
  path: ["name"],
1097
1123
  message: "View name must be in kebab-case (e.g., 'detail', 'list-view')"
@@ -1123,10 +1149,10 @@ function validateAttributeName(name) {
1123
1149
  "[AttributeBuilder] Invalid attribute name format.\nName must be a valid variable identifier:\n \u2705 Valid: 'firstName', 'first_name', 'FirstName', 'FIRST_NAME'\n \u274C Invalid: 'first-name', 'first name', '123name', 'first.name'"
1124
1150
  );
1125
1151
  }
1126
- if (chunkTU6ECJFZ_js.RESERVED_ATTRIBUTE_NAMES.includes(name)) {
1152
+ if (chunkKIMECN6D_js.RESERVED_ATTRIBUTE_NAMES.includes(name)) {
1127
1153
  throw new Error(
1128
1154
  `[AttributeBuilder] "${name}" is a reserved name and cannot be used as an attribute name.
1129
- Reserved names: ${chunkTU6ECJFZ_js.RESERVED_ATTRIBUTE_NAMES.join(", ")}`
1155
+ Reserved names: ${chunkKIMECN6D_js.RESERVED_ATTRIBUTE_NAMES.join(", ")}`
1130
1156
  );
1131
1157
  }
1132
1158
  }
@@ -1193,7 +1219,7 @@ var DEFAULT_AGENT_EXECUTION_CONFIG = {
1193
1219
  var AgentBuilder = class {
1194
1220
  constructor(config) {
1195
1221
  if (!config.name || config.name.trim().length === 0) {
1196
- throw new chunkHWZRSXFB_js.ValidationError("Agent name is required", []);
1222
+ throw new chunkL4KLYMUI_js.ValidationError("Agent name is required", []);
1197
1223
  }
1198
1224
  this.bp = { name: config.name, system: true, visibility: "workspace", triggers: [] };
1199
1225
  }
@@ -1327,13 +1353,13 @@ var AgentBuilder = class {
1327
1353
  }
1328
1354
  build() {
1329
1355
  if (!this.bp.systemPrompt) {
1330
- throw new chunkHWZRSXFB_js.ValidationError(`Agent "${this.bp.name}": systemPrompt is required`, []);
1356
+ throw new chunkL4KLYMUI_js.ValidationError(`Agent "${this.bp.name}": systemPrompt is required`, []);
1331
1357
  }
1332
1358
  if (!this.bp.model) {
1333
- throw new chunkHWZRSXFB_js.ValidationError(`Agent "${this.bp.name}": model is required`, []);
1359
+ throw new chunkL4KLYMUI_js.ValidationError(`Agent "${this.bp.name}": model is required`, []);
1334
1360
  }
1335
1361
  if (this.bp.system && this.bp.visibility === "private") {
1336
- throw new chunkHWZRSXFB_js.ValidationError(
1362
+ throw new chunkL4KLYMUI_js.ValidationError(
1337
1363
  `Agent "${this.bp.name}": system agents must use workspace visibility`,
1338
1364
  []
1339
1365
  );
@@ -1341,7 +1367,7 @@ var AgentBuilder = class {
1341
1367
  assertUniqueBy(
1342
1368
  this.bp.triggers,
1343
1369
  (t) => t.name,
1344
- (name) => new chunkHWZRSXFB_js.ValidationError(`Agent "${this.bp.name}": duplicate trigger name "${name}"`, [])
1370
+ (name) => new chunkL4KLYMUI_js.ValidationError(`Agent "${this.bp.name}": duplicate trigger name "${name}"`, [])
1345
1371
  );
1346
1372
  return {
1347
1373
  ...this.bp,
@@ -1396,7 +1422,7 @@ var BaseAttributeBuilder = class {
1396
1422
  * @see https://standardschema.dev/
1397
1423
  */
1398
1424
  get "~standard"() {
1399
- const zodSchema = chunkE47WAI5K_js.createAttributeValidator(this.build());
1425
+ const zodSchema = chunkV4MZOTLV_js.createAttributeValidator(this.build());
1400
1426
  return createStandardSchemaProps(zodSchema);
1401
1427
  }
1402
1428
  constructor(type, name, label) {
@@ -2132,6 +2158,16 @@ var RollupAttributeBuilder = class extends BaseAttributeBuilder {
2132
2158
  this.attr.targetAttributeOptions = options;
2133
2159
  return this;
2134
2160
  }
2161
+ /**
2162
+ * Set the currency code a sum/avg over a currency target renders with
2163
+ * (#2644). Mirror of the target attribute's `defaultCurrency` — the stored
2164
+ * value stays a bare number; this only carries the symbol to the screen.
2165
+ * @param code - ISO 4217 code (e.g. "EUR")
2166
+ */
2167
+ targetCurrency(code) {
2168
+ this.attr.targetCurrencyCode = code;
2169
+ return this;
2170
+ }
2135
2171
  /**
2136
2172
  * Build the attribute, validating computed-field configuration eagerly so a
2137
2173
  * misconfiguration surfaces at schema-definition time (with a fix-it hint)
@@ -2143,9 +2179,9 @@ var RollupAttributeBuilder = class extends BaseAttributeBuilder {
2143
2179
  if (fn === "original" && targetType !== void 0 && targetType !== "select" && targetType !== "status" && targetType !== "multiselect") {
2144
2180
  const relation2 = this.attr.relationAttribute ?? "relation";
2145
2181
  const target = this.attr.targetAttribute ?? "field";
2146
- throw new chunkHWZRSXFB_js.SchemaError(
2182
+ throw new chunkL4KLYMUI_js.SchemaError(
2147
2183
  `Rollup "${this.attr.name}": .using("original") only supports a "select", "status", or "multiselect" target, but .targetType("${targetType}") was given. To surface a plain ${targetType} value from a related record, use a formula instead \u2014 e.g. formula({ name: "${this.attr.name}", label: "\u2026" }).expression("${relation2}.${target}").`,
2148
- chunkHWZRSXFB_js.SchemaErrorCode.VALIDATION_FAILED
2184
+ chunkL4KLYMUI_js.SchemaErrorCode.VALIDATION_FAILED
2149
2185
  );
2150
2186
  }
2151
2187
  return super.build();
@@ -2655,7 +2691,7 @@ var ObjectBuilder = class {
2655
2691
  * @see https://standardschema.dev/
2656
2692
  */
2657
2693
  get "~standard"() {
2658
- const zodSchema = chunkE47WAI5K_js.createObjectValidator(this.build());
2694
+ const zodSchema = chunkV4MZOTLV_js.createObjectValidator(this.build());
2659
2695
  return createStandardSchemaProps(zodSchema);
2660
2696
  }
2661
2697
  /**
@@ -2783,7 +2819,7 @@ var ObjectBuilder = class {
2783
2819
  assertUniqueBy(
2784
2820
  [...this.obj.attributes, ...finalAttrs],
2785
2821
  (attribute) => attribute.name,
2786
- (name) => new chunkHWZRSXFB_js.DuplicateError(
2822
+ (name) => new chunkL4KLYMUI_js.DuplicateError(
2787
2823
  "attribute",
2788
2824
  name,
2789
2825
  `Object "${this.obj.name}": duplicate attribute name "${name}"`
@@ -2912,26 +2948,26 @@ var ObjectBuilder = class {
2912
2948
  throw new Error("[ObjectBuilder] Missing required field: label");
2913
2949
  }
2914
2950
  if (!this._labelExpression) {
2915
- throw new chunkHWZRSXFB_js.SchemaError(
2951
+ throw new chunkL4KLYMUI_js.SchemaError(
2916
2952
  `Object "${this.obj.name}" must have a labelExpression. The labelExpression defines how records are displayed in lists and relations (e.g. "{{ name }}").`,
2917
- chunkHWZRSXFB_js.SchemaErrorCode.VALIDATION_FAILED
2953
+ chunkL4KLYMUI_js.SchemaErrorCode.VALIDATION_FAILED
2918
2954
  );
2919
2955
  }
2920
2956
  const labelResult = labelExpressionSchema.safeParse(this._labelExpression);
2921
2957
  if (!labelResult.success) {
2922
2958
  const errorMsg = labelResult.error.issues[0]?.message ?? "Invalid labelExpression";
2923
- throw new chunkHWZRSXFB_js.SchemaError(
2959
+ throw new chunkL4KLYMUI_js.SchemaError(
2924
2960
  `Invalid labelExpression for "${this.obj.name}": ${errorMsg}`,
2925
- chunkHWZRSXFB_js.SchemaErrorCode.VALIDATION_FAILED
2961
+ chunkL4KLYMUI_js.SchemaErrorCode.VALIDATION_FAILED
2926
2962
  );
2927
2963
  }
2928
2964
  if (this._embeddingExpression !== void 0) {
2929
2965
  const embeddingResult = labelExpressionSchema.safeParse(this._embeddingExpression);
2930
2966
  if (!embeddingResult.success) {
2931
2967
  const errorMsg = embeddingResult.error.issues[0]?.message ?? "Invalid embeddingExpression";
2932
- throw new chunkHWZRSXFB_js.SchemaError(
2968
+ throw new chunkL4KLYMUI_js.SchemaError(
2933
2969
  `Invalid embeddingExpression for "${this.obj.name}": ${errorMsg}`,
2934
- chunkHWZRSXFB_js.SchemaErrorCode.VALIDATION_FAILED
2970
+ chunkL4KLYMUI_js.SchemaErrorCode.VALIDATION_FAILED
2935
2971
  );
2936
2972
  }
2937
2973
  }
@@ -2973,7 +3009,7 @@ function object(config) {
2973
3009
  }
2974
3010
  function validatePresetStructure(presetId, nodes, depth) {
2975
3011
  const fail = (message, detail) => {
2976
- throw new chunkHWZRSXFB_js.ValidationError(message, [
3012
+ throw new chunkL4KLYMUI_js.ValidationError(message, [
2977
3013
  { path: ["documentLayout", "presets", presetId], message: detail }
2978
3014
  ]);
2979
3015
  };
@@ -3744,7 +3780,7 @@ var ListViewBuilder = class {
3744
3780
  }
3745
3781
  const config = {
3746
3782
  defaultFilters: this.data.defaultFilters ? {
3747
- id: chunkOYHBQMC7_js.generateId(),
3783
+ id: chunkLBGLB443_js.generateId(),
3748
3784
  combinator: this.data.defaultFilters.combinator,
3749
3785
  rules: this.data.defaultFilters.rules
3750
3786
  } : void 0,
@@ -3759,7 +3795,7 @@ var ListViewBuilder = class {
3759
3795
  visibility: tab.visibility,
3760
3796
  columns: tab.columns,
3761
3797
  filters: tab.filters ? {
3762
- id: chunkOYHBQMC7_js.generateId(),
3798
+ id: chunkLBGLB443_js.generateId(),
3763
3799
  combinator: tab.filters.combinator,
3764
3800
  rules: tab.filters.rules
3765
3801
  } : void 0,
@@ -3925,7 +3961,7 @@ var ListViewTabConfigBuilder = class _ListViewTabConfigBuilder {
3925
3961
  const protectedAttribute = findProtectedTabFilterAttribute(filters);
3926
3962
  if (protectedAttribute) {
3927
3963
  const message = `Tab filters cannot target "${protectedAttribute}". Use .visibility("private")`;
3928
- throw new chunkHWZRSXFB_js.ValidationError(message, [{ path: ["filters"], message }]);
3964
+ throw new chunkL4KLYMUI_js.ValidationError(message, [{ path: ["filters"], message }]);
3929
3965
  }
3930
3966
  this.tabData.filters = filters;
3931
3967
  return this;
@@ -4136,7 +4172,7 @@ function jsonFlag(name, defaultValue) {
4136
4172
 
4137
4173
  // src/feature-flags/flag-registry.ts
4138
4174
  function duplicateFlagError(name) {
4139
- return new chunkHWZRSXFB_js.DuplicateError(
4175
+ return new chunkL4KLYMUI_js.DuplicateError(
4140
4176
  "feature flag",
4141
4177
  name,
4142
4178
  `Flag "${name}" is already registered. Each flag name must be unique.`
@@ -4214,7 +4250,7 @@ var FlagRegistry = class {
4214
4250
  getOrThrow(name) {
4215
4251
  const flag = this.get(name);
4216
4252
  if (!flag) {
4217
- throw new chunkHWZRSXFB_js.NotFoundError(
4253
+ throw new chunkL4KLYMUI_js.NotFoundError(
4218
4254
  "Feature flag",
4219
4255
  name,
4220
4256
  void 0,
@@ -4391,19 +4427,19 @@ var FlagService = class {
4391
4427
  */
4392
4428
  async setOverride(flagName, level, value, options = {}) {
4393
4429
  if (!this.repository) {
4394
- throw new chunkHWZRSXFB_js.SchemaError(
4430
+ throw new chunkL4KLYMUI_js.SchemaError(
4395
4431
  "Cannot set override: no FeatureFlagsRepository configured. Add featureFlags to your DatabaseAdapter to enable runtime overrides.",
4396
- chunkHWZRSXFB_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4432
+ chunkL4KLYMUI_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4397
4433
  );
4398
4434
  }
4399
4435
  const flag = this.registry.get(flagName);
4400
4436
  if (flag && !flag.allowedLevels.includes(level)) {
4401
4437
  const message = `Flag "${flagName}" does not allow ${level}-level overrides. Allowed levels: ${flag.allowedLevels.join(", ")}`;
4402
- throw new chunkHWZRSXFB_js.ValidationError(message, [{ path: ["level"], message }]);
4438
+ throw new chunkL4KLYMUI_js.ValidationError(message, [{ path: ["level"], message }]);
4403
4439
  }
4404
4440
  if (flag?.system) {
4405
4441
  const message = `Flag "${flagName}" is a system flag and cannot be overridden via API.`;
4406
- throw new chunkHWZRSXFB_js.ValidationError(message, [{ path: ["flagName"], message }]);
4442
+ throw new chunkL4KLYMUI_js.ValidationError(message, [{ path: ["flagName"], message }]);
4407
4443
  }
4408
4444
  await this.repository.setOverride({
4409
4445
  flagName,
@@ -4423,9 +4459,9 @@ var FlagService = class {
4423
4459
  */
4424
4460
  async deleteOverride(flagName, level, targetId) {
4425
4461
  if (!this.repository) {
4426
- throw new chunkHWZRSXFB_js.SchemaError(
4462
+ throw new chunkL4KLYMUI_js.SchemaError(
4427
4463
  "Cannot delete override: no FeatureFlagsRepository configured.",
4428
- chunkHWZRSXFB_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4464
+ chunkL4KLYMUI_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4429
4465
  );
4430
4466
  }
4431
4467
  await this.repository.deleteOverride(flagName, level, targetId);
@@ -4562,7 +4598,7 @@ var NativeObjectRegistryClass = class {
4562
4598
  if (!object2.system) {
4563
4599
  const message = `[NativeObjectRegistry] Cannot register object "${object2.name}" (id: ${object2.id}): missing system flag.
4564
4600
  Native objects must have system=true. Did you call .runtime() on the builder? Remove that call \u2014 objects are system:true by default.`;
4565
- throw new chunkHWZRSXFB_js.ValidationError(message, []);
4601
+ throw new chunkL4KLYMUI_js.ValidationError(message, []);
4566
4602
  }
4567
4603
  if (this.objects.has(object2.name)) {
4568
4604
  const existing = this.objects.get(object2.name);
@@ -4570,7 +4606,7 @@ Native objects must have system=true. Did you call .runtime() on the builder? Re
4570
4606
  - Existing: "${existing?.label}" (id: ${existing?.id})
4571
4607
  - New: "${object2.label}" (id: ${object2.id})
4572
4608
  Please use unique names for each native object.`;
4573
- throw new chunkHWZRSXFB_js.DuplicateError("object", object2.name, message);
4609
+ throw new chunkL4KLYMUI_js.DuplicateError("object", object2.name, message);
4574
4610
  }
4575
4611
  this.objects.set(object2.name, cloneObjectDefinition(object2));
4576
4612
  }
@@ -4602,7 +4638,7 @@ Please use unique names for each native object.`;
4602
4638
  if (!object2) {
4603
4639
  const message = `[NativeObjectRegistry] Native object "${name}" not found.
4604
4640
  Available objects: ${this.listNames().join(", ")}`;
4605
- throw new chunkHWZRSXFB_js.NotFoundError("Native object", name, chunkHWZRSXFB_js.SchemaErrorCode.OBJECT_NOT_FOUND, message);
4641
+ throw new chunkL4KLYMUI_js.NotFoundError("Native object", name, chunkL4KLYMUI_js.SchemaErrorCode.OBJECT_NOT_FOUND, message);
4606
4642
  }
4607
4643
  return object2;
4608
4644
  }
@@ -4764,7 +4800,7 @@ var ViewRegistry = class {
4764
4800
  const key = this.makeKey(view.object, view.name, view.type);
4765
4801
  if (this.views.has(key)) {
4766
4802
  const message = `[ViewRegistry] Duplicate view: "${view.name}" (${view.type}) for object "${view.object}"`;
4767
- throw new chunkHWZRSXFB_js.DuplicateError("view", key, message);
4803
+ throw new chunkL4KLYMUI_js.DuplicateError("view", key, message);
4768
4804
  }
4769
4805
  const storedView = cloneViewDefinition(view);
4770
4806
  this.views.set(key, storedView);
@@ -4809,7 +4845,7 @@ var ViewRegistry = class {
4809
4845
  const availableNames = available.map((v) => `${v.name} (${v.type})`).join(", ") || "(none)";
4810
4846
  const message = `[ViewRegistry] View "${viewName}" not found for object "${objectName}".
4811
4847
  Available views: ${availableNames}`;
4812
- throw new chunkHWZRSXFB_js.NotFoundError("View", `${objectName}:${viewName}`, void 0, message);
4848
+ throw new chunkL4KLYMUI_js.NotFoundError("View", `${objectName}:${viewName}`, void 0, message);
4813
4849
  }
4814
4850
  return view;
4815
4851
  }
@@ -4897,7 +4933,7 @@ var viewRegistry = new ViewRegistry();
4897
4933
  // src/views/auto-generator.ts
4898
4934
  function getRuntimeAttributes(attributes, excludeNames = []) {
4899
4935
  return attributes.filter(
4900
- (attr) => !(!chunkTU6ECJFZ_js.getAttributeCapabilities(attr).lifecycle.visibleInRuntime || attr.system || excludeNames.includes(attr.name))
4936
+ (attr) => !(!chunkKIMECN6D_js.getAttributeCapabilities(attr).lifecycle.visibleInRuntime || attr.system || excludeNames.includes(attr.name))
4901
4937
  );
4902
4938
  }
4903
4939
  function sortAttributes(attributes) {
@@ -4930,7 +4966,7 @@ function generateDefaultDetailView(object2, options = {}) {
4930
4966
  const { includeActivityTab = true, includeDocumentsTab = true, excludeAttributes = [] } = options;
4931
4967
  const runtimeAttrs = getRuntimeAttributes(object2.attributes, excludeAttributes);
4932
4968
  const sortedAttrs = sortAttributes(
4933
- runtimeAttrs.filter((attr) => chunkTU6ECJFZ_js.getAttributeCapabilities(attr).presentation.formField)
4969
+ runtimeAttrs.filter((attr) => chunkKIMECN6D_js.getAttributeCapabilities(attr).presentation.formField)
4934
4970
  );
4935
4971
  const formTab = {
4936
4972
  id: "form",
@@ -4987,7 +5023,7 @@ function generateDefaultListView(object2, options = {}) {
4987
5023
  const { excludeAttributes = [], maxListColumns = 5 } = options;
4988
5024
  const runtimeAttrs = getRuntimeAttributes(object2.attributes, excludeAttributes);
4989
5025
  const sortedAttrs = sortAttributes(
4990
- runtimeAttrs.filter((attr) => chunkTU6ECJFZ_js.getAttributeCapabilities(attr).presentation.defaultColumn)
5026
+ runtimeAttrs.filter((attr) => chunkKIMECN6D_js.getAttributeCapabilities(attr).presentation.defaultColumn)
4991
5027
  );
4992
5028
  const columns = sortedAttrs.slice(0, maxListColumns).map((attr) => attr.name);
4993
5029
  const config = {
@@ -5117,7 +5153,7 @@ var FormRegistry = class {
5117
5153
  const forms = Array.isArray(formOrForms) ? formOrForms : [formOrForms];
5118
5154
  for (const f of forms) {
5119
5155
  if (this.forms.has(f.name)) {
5120
- throw new chunkHWZRSXFB_js.DuplicateError("form", f.name, `[FormRegistry] Duplicate form: "${f.name}"`);
5156
+ throw new chunkL4KLYMUI_js.DuplicateError("form", f.name, `[FormRegistry] Duplicate form: "${f.name}"`);
5121
5157
  }
5122
5158
  this.forms.set(f.name, cloneFormDefinition(f));
5123
5159
  }
@@ -5284,6 +5320,9 @@ var LIVE_EVENT_TYPE_REGISTRY = {
5284
5320
  "notification.count.patch": true,
5285
5321
  "conversation.renamed": true,
5286
5322
  "browser.preview.updated": true,
5323
+ "reflex.state.changed": true,
5324
+ "reflex.run.completed": true,
5325
+ "reflex.authoring.progress": true,
5287
5326
  "channel.revoked": true
5288
5327
  };
5289
5328
  var LIVE_EVENT_TYPES = Object.keys(LIVE_EVENT_TYPE_REGISTRY);
@@ -5387,6 +5426,12 @@ function isLiveEventPayloadForType(type, payload) {
5387
5426
  return isConversationRenamedPayload(payload);
5388
5427
  case "browser.preview.updated":
5389
5428
  return isBrowserPreviewUpdatedPayload(payload);
5429
+ case "reflex.state.changed":
5430
+ return isReflexStateChangedPayload(payload);
5431
+ case "reflex.run.completed":
5432
+ return isReflexRunCompletedPayload(payload);
5433
+ case "reflex.authoring.progress":
5434
+ return isReflexAuthoringProgressPayload(payload);
5390
5435
  case "channel.revoked":
5391
5436
  return isChannelRevokedPayload(payload);
5392
5437
  default:
@@ -5461,7 +5506,9 @@ function isRecordFieldPatch(value) {
5461
5506
  return isRecord2(value) && hasString(value, "fieldKey") && Object.hasOwn(value, "value") && hasVersion(value, "version");
5462
5507
  }
5463
5508
  function isRecordPatchPayload(payload) {
5464
- return payload.type === "record.patch" && hasString(payload, "objectId") && hasString(payload, "recordId") && hasVersion(payload, "recordVersion") && hasOptional(payload, "label", isString) && hasOptional(payload, "metadata", isRecord2) && Array.isArray(payload.fieldPatches) && payload.fieldPatches.every(isRecordFieldPatch) && hasString(payload, "updatedAt");
5509
+ return payload.type === "record.patch" && hasString(payload, "objectId") && hasString(payload, "recordId") && hasVersion(payload, "recordVersion") && hasOptional(payload, "label", isString) && hasOptional(payload, "metadata", isRecord2) && // Strictly `true`: the applier evicts an entity on this bit, so truthy
5510
+ // junk on the wire must not pass as the presence flag (#2637).
5511
+ hasOptional(payload, "fieldsWithheld", (value) => value === true) && Array.isArray(payload.fieldPatches) && payload.fieldPatches.every(isRecordFieldPatch) && hasString(payload, "updatedAt");
5465
5512
  }
5466
5513
  function isRecordDeletedPayload(payload) {
5467
5514
  return payload.type === "record.deleted" && hasString(payload, "objectId") && hasString(payload, "recordId") && hasVersion(payload, "recordVersion") && hasString(payload, "deletedAt");
@@ -5517,6 +5564,27 @@ function isBrowserPreviewUpdatedPayload(payload) {
5517
5564
  const preview = payload.preview;
5518
5565
  return payload.type === "browser.preview.updated" && hasOnlyKeys(payload, BROWSER_PREVIEW_UPDATED_PAYLOAD_KEYS) && isRecord2(preview) && hasOnlyKeys(preview, BROWSER_PREVIEW_DESCRIPTOR_KEYS) && hasNonEmptyString(preview, "previewId") && hasNonEmptyString(preview, "rootSessionId") && hasNonEmptyString(preview, "agentSessionId") && hasNonEmptyString(preview, "browserSession") && isOneOf(preview.status, BROWSER_PREVIEW_STATUSES) && hasVersion(preview, "sequence") && hasIsoDateString(preview, "updatedAt") && preview.previewId === `browser:${preview.agentSessionId}:${preview.browserSession}`;
5519
5566
  }
5567
+ var REFLEX_STATES = ["armed", "disarmed"];
5568
+ var REFLEX_AUTHORING_STATUSES = [
5569
+ "authoring",
5570
+ "compiling",
5571
+ "replaying",
5572
+ "promoted",
5573
+ "failed"
5574
+ ];
5575
+ var REFLEX_SERVED_MODES = [
5576
+ "promoted",
5577
+ "lkg"
5578
+ ];
5579
+ function isReflexStateChangedPayload(payload) {
5580
+ return payload.type === "reflex.state.changed" && hasNonEmptyString(payload, "reflexId") && isOneOf(payload.state, REFLEX_STATES) && hasIsoDateString(payload, "updatedAt");
5581
+ }
5582
+ function isReflexRunCompletedPayload(payload) {
5583
+ return payload.type === "reflex.run.completed" && hasNonEmptyString(payload, "reflexId") && hasNonEmptyString(payload, "runId") && isOneOf(payload.served, REFLEX_SERVED_MODES) && hasVersion(payload, "version") && hasVersion(payload, "wallMs") && hasIsoDateString(payload, "completedAt");
5584
+ }
5585
+ function isReflexAuthoringProgressPayload(payload) {
5586
+ return payload.type === "reflex.authoring.progress" && hasNonEmptyString(payload, "reflexId") && isOneOf(payload.status, REFLEX_AUTHORING_STATUSES) && hasIsoDateString(payload, "updatedAt");
5587
+ }
5520
5588
  function isChannelRevokedPayload(payload) {
5521
5589
  return payload.type === "channel.revoked" && hasString(payload, "channel") && isOneOf(payload.reason, CHANNEL_REVOKED_REASONS);
5522
5590
  }
@@ -5678,7 +5746,7 @@ function assertAcyclicComputedDependencies(nodes) {
5678
5746
  }
5679
5747
  function parseCompileFormula(expression) {
5680
5748
  try {
5681
- return chunkLRFLSFIA_js.parseComputedFormula(expression);
5749
+ return chunkDIMTNM3F_js.parseComputedFormula(expression);
5682
5750
  } catch (error) {
5683
5751
  if (error instanceof Error) {
5684
5752
  throw new ComputedFormulaCompileError(error.message);
@@ -6306,7 +6374,11 @@ function evaluateCallNode(functionName, args, input) {
6306
6374
  assertComputedFunctionName(functionName);
6307
6375
  validateArity(functionName, args.length);
6308
6376
  if (functionName === "if") {
6309
- return evaluateAst(args[0], input) ? evaluateAst(args[1], input) : evaluateAst(args[2], input);
6377
+ const condition = evaluateAst(args[0], input);
6378
+ if (condition === null) {
6379
+ return null;
6380
+ }
6381
+ return condition ? evaluateAst(args[1], input) : evaluateAst(args[2], input);
6310
6382
  }
6311
6383
  return evaluateCall(
6312
6384
  functionName,
@@ -6352,8 +6424,10 @@ function evaluateBinary(operator, left, right) {
6352
6424
  return compareWith(left, right, (result) => result <= 0);
6353
6425
  case "==":
6354
6426
  return equalScalar(left, right);
6355
- case "!=":
6356
- return !equalScalar(left, right);
6427
+ case "!=": {
6428
+ const equal = equalScalar(left, right);
6429
+ return equal === null ? null : !equal;
6430
+ }
6357
6431
  default:
6358
6432
  return unreachable(operator);
6359
6433
  }
@@ -6369,6 +6443,9 @@ function compareWith(left, right, predicate) {
6369
6443
  return result === null ? null : predicate(result);
6370
6444
  }
6371
6445
  function compare(left, right) {
6446
+ if (!areCommensurable([left, right])) {
6447
+ return null;
6448
+ }
6372
6449
  const leftNumber = toFiniteNumber(left);
6373
6450
  const rightNumber = toFiniteNumber(right);
6374
6451
  if (leftNumber !== null && rightNumber !== null) {
@@ -6385,6 +6462,9 @@ function equalScalar(left, right) {
6385
6462
  if (left === null || left === void 0 || right === null || right === void 0) {
6386
6463
  return false;
6387
6464
  }
6465
+ if (!areCommensurable([left, right])) {
6466
+ return null;
6467
+ }
6388
6468
  return compare(left, right) === 0;
6389
6469
  }
6390
6470
  function assertComputedFunctionName(name) {
@@ -6405,8 +6485,14 @@ function evaluateCall(functionName, args) {
6405
6485
  case "concat":
6406
6486
  return args.filter((arg) => arg !== null && arg !== void 0).map(String).join("");
6407
6487
  case "sum":
6488
+ if (!areCommensurable(args)) {
6489
+ return null;
6490
+ }
6408
6491
  return numericValues(args).reduce((total, value) => total + value, 0);
6409
6492
  case "avg": {
6493
+ if (!areCommensurable(args)) {
6494
+ return null;
6495
+ }
6410
6496
  const values = numericValues(args);
6411
6497
  return values.length > 0 ? values.reduce((total, value) => total + value, 0) / values.length : null;
6412
6498
  }
@@ -6429,9 +6515,9 @@ function evaluateCall(functionName, args) {
6429
6515
  case "percent_not_empty":
6430
6516
  return percentByEmptyState(args[0], false);
6431
6517
  case "count_empty":
6432
- return collectionItems(args[0]).filter(chunkE47WAI5K_js.isNullishOrEmptyString).length;
6518
+ return collectionItems(args[0]).filter(chunkV4MZOTLV_js.isNullishOrEmptyString).length;
6433
6519
  case "count_not_empty":
6434
- return collectionItems(args[0]).filter((item) => !chunkE47WAI5K_js.isNullishOrEmptyString(item)).length;
6520
+ return collectionItems(args[0]).filter((item) => !chunkV4MZOTLV_js.isNullishOrEmptyString(item)).length;
6435
6521
  case "count_unique":
6436
6522
  return uniqueNonEmpty(collectionItems(args[0])).length;
6437
6523
  default:
@@ -6444,7 +6530,22 @@ function unreachable(value) {
6444
6530
  function numericValues(values) {
6445
6531
  return flatten(values).map(toFiniteNumber).filter((value) => value !== null);
6446
6532
  }
6533
+ function areCommensurable(values) {
6534
+ const codes = /* @__PURE__ */ new Set();
6535
+ for (const value of flatten(values)) {
6536
+ if (isCurrencyValue(value)) {
6537
+ codes.add(currencyCode(value));
6538
+ }
6539
+ }
6540
+ return codes.size <= 1;
6541
+ }
6542
+ function currencyCode(value) {
6543
+ return value.code.toUpperCase();
6544
+ }
6447
6545
  function numericBinary(left, right, operation) {
6546
+ if (!areCommensurable([left, right])) {
6547
+ return null;
6548
+ }
6448
6549
  const leftNumber = toFiniteNumber(left);
6449
6550
  const rightNumber = toFiniteNumber(right);
6450
6551
  if (leftNumber === null || rightNumber === null) {
@@ -6454,6 +6555,9 @@ function numericBinary(left, right, operation) {
6454
6555
  return Number.isFinite(result) ? result : null;
6455
6556
  }
6456
6557
  function minMax(values, mode) {
6558
+ if (!areCommensurable(values)) {
6559
+ return null;
6560
+ }
6457
6561
  const numbers = numericValues(values);
6458
6562
  if (numbers.length > 0) {
6459
6563
  return mode === "min" ? Math.min(...numbers) : Math.max(...numbers);
@@ -6474,14 +6578,14 @@ function percentByEmptyState(value, countEmpty) {
6474
6578
  if (items.length === 0) {
6475
6579
  return 0;
6476
6580
  }
6477
- const count = items.filter((item) => chunkE47WAI5K_js.isNullishOrEmptyString(item) === countEmpty).length;
6581
+ const count = items.filter((item) => chunkV4MZOTLV_js.isNullishOrEmptyString(item) === countEmpty).length;
6478
6582
  return count / items.length;
6479
6583
  }
6480
6584
  function uniqueNonEmpty(values) {
6481
6585
  const seen = /* @__PURE__ */ new Set();
6482
6586
  const result = [];
6483
6587
  for (const value of values) {
6484
- if (chunkE47WAI5K_js.isNullishOrEmptyString(value)) {
6588
+ if (chunkV4MZOTLV_js.isNullishOrEmptyString(value)) {
6485
6589
  continue;
6486
6590
  }
6487
6591
  const key = uniqueKey(value);
@@ -6532,6 +6636,9 @@ function toDate(value) {
6532
6636
  return Number.isNaN(date2.getTime()) ? null : date2;
6533
6637
  }
6534
6638
  function uniqueKey(value) {
6639
+ if (isCurrencyValue(value)) {
6640
+ return `currency:${currencyCode(value)}:${value.value}`;
6641
+ }
6535
6642
  const numberValue = toFiniteNumber(value);
6536
6643
  if (numberValue !== null) {
6537
6644
  return `number:${numberValue}`;
@@ -6595,11 +6702,11 @@ function evaluateComputedAst(node, input) {
6595
6702
  return evaluateAst(node, input);
6596
6703
  }
6597
6704
  function evaluateComputedFormula(expression, input) {
6598
- return evaluateAst(chunkLRFLSFIA_js.parseComputedFormula(expression), input);
6705
+ return evaluateAst(chunkDIMTNM3F_js.parseComputedFormula(expression), input);
6599
6706
  }
6600
6707
  function evaluateComputedFormulaWithResult(expression, input, returnType, decimals) {
6601
6708
  try {
6602
- const raw = evaluateAst(chunkLRFLSFIA_js.parseComputedFormula(expression), input);
6709
+ const raw = evaluateAst(chunkDIMTNM3F_js.parseComputedFormula(expression), input);
6603
6710
  const value = returnType ? formatComputedResult(raw, returnType, decimals) : raw;
6604
6711
  return { value };
6605
6712
  } catch (error) {
@@ -6724,10 +6831,10 @@ var COMPUTED_FUNCTION_METADATA = [
6724
6831
  ];
6725
6832
 
6726
6833
  // src/filters/operators.ts
6727
- var isEmpty = (v) => chunkE47WAI5K_js.isNullishOrEmptyString(v) || Array.isArray(v) && v.length === 0;
6834
+ var isEmpty = (v) => chunkV4MZOTLV_js.isNullishOrEmptyString(v) || Array.isArray(v) && v.length === 0;
6728
6835
  var toStr = (v) => v == null ? "" : String(v);
6729
6836
  var toNum = (v) => {
6730
- if (chunkE47WAI5K_js.isNullishOrEmptyString(v)) return null;
6837
+ if (chunkV4MZOTLV_js.isNullishOrEmptyString(v)) return null;
6731
6838
  const n = typeof v === "number" ? v : Number(v);
6732
6839
  return Number.isFinite(n) ? n : null;
6733
6840
  };
@@ -6860,7 +6967,7 @@ var OPERATOR_SPECS = {
6860
6967
  appliesTo: ["date"],
6861
6968
  evaluateInMemory: (v, rv) => {
6862
6969
  const d = toDate2(v);
6863
- const bounds = chunkTU6ECJFZ_js.resolveIsWithinBounds(rv);
6970
+ const bounds = chunkKIMECN6D_js.resolveIsWithinBounds(rv);
6864
6971
  if (!(d && bounds)) return false;
6865
6972
  return d.getTime() >= bounds.startMs && d.getTime() < bounds.endMs;
6866
6973
  }
@@ -6896,7 +7003,7 @@ var OPERATOR_SPECS = {
6896
7003
  // src/filters/evaluate.ts
6897
7004
  var systemAttribute = (name, type) => ({ id: `system:${name}`, name, label: name, type, system: true });
6898
7005
  var RECORD_SYSTEM_ATTRIBUTES = [
6899
- ...Object.entries(chunkTU6ECJFZ_js.SYSTEM_FILTER_ATTRIBUTE_TYPES).map(
7006
+ ...Object.entries(chunkKIMECN6D_js.SYSTEM_FILTER_ATTRIBUTE_TYPES).map(
6900
7007
  ([name, type]) => systemAttribute(name, type)
6901
7008
  )
6902
7009
  ];
@@ -6937,7 +7044,7 @@ function evaluateRule(rule, values, attrByName) {
6937
7044
  (definition) => definition.name === rule.property
6938
7045
  );
6939
7046
  if (!property) return false;
6940
- const positiveOperator = chunkTU6ECJFZ_js.normalizeForEdgeRpc(rule.operator);
7047
+ const positiveOperator = chunkKIMECN6D_js.normalizeForEdgeRpc(rule.operator);
6941
7048
  const propertySpec = OPERATOR_SPECS[positiveOperator];
6942
7049
  if (!propertySpec?.appliesTo.includes(property.type)) return false;
6943
7050
  const rootValue = values[rule.attribute];
@@ -6955,7 +7062,7 @@ function evaluateRule(rule, values, attrByName) {
6955
7062
  property
6956
7063
  );
6957
7064
  });
6958
- return (rule.quantifier ?? chunkTU6ECJFZ_js.getOperatorPolarity(rule.operator)) === "none" ? !matches : matches;
7065
+ return (rule.quantifier ?? chunkKIMECN6D_js.getOperatorPolarity(rule.operator)) === "none" ? !matches : matches;
6959
7066
  }
6960
7067
  const spec = OPERATOR_SPECS[rule.operator];
6961
7068
  if (!spec) return false;
@@ -7004,7 +7111,7 @@ function normalizePhoneComparands(stored, rule) {
7004
7111
  return [normalizeOne(stored), normalizeOne(rule)];
7005
7112
  }
7006
7113
  function normalizeComparableValue(type, value) {
7007
- if (type === "currency") return chunkTU6ECJFZ_js.extractCurrencyFilterValue(value);
7114
+ if (type === "currency") return chunkKIMECN6D_js.extractCurrencyFilterValue(value);
7008
7115
  if (type === "date") {
7009
7116
  if (isDateRangeValue(value)) return dateValueStart(value);
7010
7117
  if (value instanceof Date) return Number.isNaN(value.getTime()) ? null : value.toISOString();
@@ -7113,10 +7220,10 @@ var attributeNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
7113
7220
  'The attribute\'s machine name \u2014 the record\'s field key, and what `{{ name }}` refers to in a labelExpression. Must be a valid identifier: starts with a letter or underscore, then only letters/digits/underscores ("montantHt", "first_name", "FIRST_NAME" are valid; "first-name", "first name", "123name" are not). Max 63 characters. Cannot be a name reserved by the record shape itself (id, createdAt, updatedAt, createdBy, lastUpdatedBy, objectId, label, embeddingText, values, metadata, deletedAt, deletedBy, schemaVersion).'
7114
7221
  );
7115
7222
  var objectNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
7116
- if (chunkTU6ECJFZ_js.RESERVED_OBJECT_NAMES.includes(name)) {
7223
+ if (chunkKIMECN6D_js.RESERVED_OBJECT_NAMES.includes(name)) {
7117
7224
  ctx.addIssue({
7118
7225
  code: z2.z.ZodIssueCode.custom,
7119
- message: `"${name}" is a reserved object name (${chunkTU6ECJFZ_js.RESERVED_OBJECT_NAMES.join(", ")}) and cannot be used for a new object.`
7226
+ message: `"${name}" is a reserved object name (${chunkKIMECN6D_js.RESERVED_OBJECT_NAMES.join(", ")}) and cannot be used for a new object.`
7120
7227
  });
7121
7228
  }
7122
7229
  try {
@@ -7130,7 +7237,7 @@ var objectNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
7130
7237
  function withConfigCheck(schema) {
7131
7238
  return schema.superRefine((attribute, ctx) => {
7132
7239
  try {
7133
- const parsedConfig = chunkLRFLSFIA_js.parseAttributeConfigForCreate(attribute.type, {
7240
+ const parsedConfig = chunkDIMTNM3F_js.parseAttributeConfigForCreate(attribute.type, {
7134
7241
  ...attribute.config ?? {},
7135
7242
  description: attribute.description
7136
7243
  });
@@ -7146,7 +7253,7 @@ function withConfigCheck(schema) {
7146
7253
  });
7147
7254
  }
7148
7255
  } catch (error) {
7149
- if (error instanceof chunkHWZRSXFB_js.ValidationError) {
7256
+ if (error instanceof chunkL4KLYMUI_js.ValidationError) {
7150
7257
  for (const issue of error.errors) {
7151
7258
  ctx.addIssue({
7152
7259
  code: z2.z.ZodIssueCode.custom,
@@ -7193,7 +7300,7 @@ var plannedObjectSchema = z2.z.object({
7193
7300
  'Human-readable plural display label (e.g. "Devis"/"Invoices"). Defaults from `label` if omitted.'
7194
7301
  ),
7195
7302
  description: z2.z.string().optional().describe("Help text describing what this object represents."),
7196
- icon: chunkLRFLSFIA_js.iconNameSchema.describe(
7303
+ icon: chunkDIMTNM3F_js.iconNameSchema.describe(
7197
7304
  "Required icon name for the object. Must be a catalogue value \u2014 call `search_icons` and use a name it returns verbatim. A name that is not in the catalogue is rejected without any hint as to what would have worked, so never guess one."
7198
7305
  ),
7199
7306
  labelExpression: labelExpressionSchema.describe(
@@ -7251,13 +7358,13 @@ var proposedDefaultViewTargetSchema = z2.z.discriminatedUnion("viewType", [
7251
7358
  z2.z.object({
7252
7359
  objectName: viewTargetObjectNameSchema,
7253
7360
  viewType: z2.z.literal("list").describe("Targets the object's default list view (the grid)."),
7254
- canonicalConfig: chunkTU6ECJFZ_js.listViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
7361
+ canonicalConfig: chunkKIMECN6D_js.listViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
7255
7362
  baselineToken: z2.z.string().min(1).optional().describe(BASELINE_TOKEN_DESCRIPTION)
7256
7363
  }).strict(),
7257
7364
  z2.z.object({
7258
7365
  objectName: viewTargetObjectNameSchema,
7259
7366
  viewType: z2.z.literal("detail").describe("Targets the object's default detail view (the single-record view)."),
7260
- canonicalConfig: chunkTU6ECJFZ_js.detailViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
7367
+ canonicalConfig: chunkKIMECN6D_js.detailViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
7261
7368
  baselineToken: z2.z.string().min(1).optional().describe(BASELINE_TOKEN_DESCRIPTION)
7262
7369
  }).strict()
7263
7370
  ]);
@@ -7271,13 +7378,13 @@ var persistedDefaultViewTargetSchema = z2.z.discriminatedUnion("viewType", [
7271
7378
  z2.z.object({
7272
7379
  objectName: z2.z.string().min(1),
7273
7380
  viewType: z2.z.literal("list"),
7274
- canonicalConfig: chunkTU6ECJFZ_js.listViewConfigSchema,
7381
+ canonicalConfig: chunkKIMECN6D_js.listViewConfigSchema,
7275
7382
  ...persistedBaselineFields
7276
7383
  }).strict(),
7277
7384
  z2.z.object({
7278
7385
  objectName: z2.z.string().min(1),
7279
7386
  viewType: z2.z.literal("detail"),
7280
- canonicalConfig: chunkTU6ECJFZ_js.detailViewConfigSchema,
7387
+ canonicalConfig: chunkKIMECN6D_js.detailViewConfigSchema,
7281
7388
  ...persistedBaselineFields
7282
7389
  }).strict()
7283
7390
  ]).superRefine((target, ctx) => {
@@ -7424,7 +7531,7 @@ function boundSerializedPlanInput(input, ctx) {
7424
7531
  });
7425
7532
  return z2.z.NEVER;
7426
7533
  }
7427
- const serializedBytes = new TextEncoder().encode(chunkOYHBQMC7_js.canonicalStringify(input)).byteLength;
7534
+ const serializedBytes = new TextEncoder().encode(chunkLBGLB443_js.canonicalStringify(input)).byteLength;
7428
7535
  if (serializedBytes > SCHEMA_PLAN_LIMITS.serializedBytes) {
7429
7536
  ctx.addIssue({
7430
7537
  code: "too_big",
@@ -7492,7 +7599,7 @@ var operationBase = { id: z2.z.string().min(1) };
7492
7599
  var viewOperationBase = { ...operationBase, viewId: z2.z.string().min(1) };
7493
7600
  function mapView(state, viewId, fn) {
7494
7601
  if (!state.views.some((v) => v.id === viewId)) {
7495
- throw new chunkHWZRSXFB_js.ValidationError(`View "${viewId}" is not in the draftable state`, []);
7602
+ throw new chunkL4KLYMUI_js.ValidationError(`View "${viewId}" is not in the draftable state`, []);
7496
7603
  }
7497
7604
  return { ...state, views: state.views.map((v) => v.id === viewId ? fn(v) : v) };
7498
7605
  }
@@ -7504,14 +7611,14 @@ function moveWithin(items, from, toIndex) {
7504
7611
  }
7505
7612
  function reorderById(items, order, what) {
7506
7613
  if (order.length !== items.length) {
7507
- throw new chunkHWZRSXFB_js.ValidationError(
7614
+ throw new chunkL4KLYMUI_js.ValidationError(
7508
7615
  `${what} order lists ${order.length} ids for ${items.length} items`,
7509
7616
  []
7510
7617
  );
7511
7618
  }
7512
7619
  return order.map((id) => {
7513
7620
  const found = items.find((item) => item.id === id);
7514
- if (!found) throw new chunkHWZRSXFB_js.ValidationError(`${what} "${id}" is not in this collection`, []);
7621
+ if (!found) throw new chunkL4KLYMUI_js.ValidationError(`${what} "${id}" is not in this collection`, []);
7515
7622
  return found;
7516
7623
  });
7517
7624
  }
@@ -7519,15 +7626,15 @@ function reorderById(items, order, what) {
7519
7626
  // src/architect/operations/detail-view.ts
7520
7627
  function mapFormTab(view, tabId, fn) {
7521
7628
  const found = view.tabs.find((t) => t.id === tabId);
7522
- if (!found) throw new chunkHWZRSXFB_js.ValidationError(`Tab "${tabId}" is not in view "${view.id}"`, []);
7629
+ if (!found) throw new chunkL4KLYMUI_js.ValidationError(`Tab "${tabId}" is not in view "${view.id}"`, []);
7523
7630
  if (found.type !== "form") {
7524
- throw new chunkHWZRSXFB_js.ValidationError(`Tab "${tabId}" is not a form tab`, []);
7631
+ throw new chunkL4KLYMUI_js.ValidationError(`Tab "${tabId}" is not a form tab`, []);
7525
7632
  }
7526
7633
  return { ...view, tabs: view.tabs.map((t) => t.id === tabId ? fn(found) : t) };
7527
7634
  }
7528
7635
  function requireGroup(tab, groupId) {
7529
7636
  const found = tab.groups.find((g) => g.id === groupId);
7530
- if (!found) throw new chunkHWZRSXFB_js.ValidationError(`Group "${groupId}" is not in tab "${tab.id}"`, []);
7637
+ if (!found) throw new chunkL4KLYMUI_js.ValidationError(`Group "${groupId}" is not in tab "${tab.id}"`, []);
7531
7638
  return found;
7532
7639
  }
7533
7640
  function locateField(tab, fieldId) {
@@ -7535,7 +7642,7 @@ function locateField(tab, fieldId) {
7535
7642
  const field = group2.fields.find((f) => f.id === fieldId);
7536
7643
  if (field) return { group: group2, field };
7537
7644
  }
7538
- throw new chunkHWZRSXFB_js.ValidationError(`Field slot "${fieldId}" is not in tab "${tab.id}"`, []);
7645
+ throw new chunkL4KLYMUI_js.ValidationError(`Field slot "${fieldId}" is not in tab "${tab.id}"`, []);
7539
7646
  }
7540
7647
  var tabPayload = z2.z.custom(
7541
7648
  (value) => typeof value === "object" && value !== null && "id" in value && "type" in value,
@@ -7559,7 +7666,7 @@ var addTab = defineOperation({
7559
7666
  schema: addTabSchema,
7560
7667
  apply: (state, op) => mapView(state, op.viewId, (view) => {
7561
7668
  if (view.tabs.some((t) => t.id === op.tab.id)) {
7562
- throw new chunkHWZRSXFB_js.ValidationError(`Tab "${op.tab.id}" already exists in view "${op.viewId}"`, []);
7669
+ throw new chunkL4KLYMUI_js.ValidationError(`Tab "${op.tab.id}" already exists in view "${op.viewId}"`, []);
7563
7670
  }
7564
7671
  return { ...view, tabs: [...view.tabs, op.tab] };
7565
7672
  }),
@@ -7576,7 +7683,7 @@ var removeTab = defineOperation({
7576
7683
  schema: removeTabSchema,
7577
7684
  apply: (state, op) => mapView(state, op.viewId, (view) => {
7578
7685
  if (!view.tabs.some((t) => t.id === op.tabId)) {
7579
- throw new chunkHWZRSXFB_js.ValidationError(`Tab "${op.tabId}" is not in view "${op.viewId}"`, []);
7686
+ throw new chunkL4KLYMUI_js.ValidationError(`Tab "${op.tabId}" is not in view "${op.viewId}"`, []);
7580
7687
  }
7581
7688
  return { ...view, tabs: view.tabs.filter((t) => t.id !== op.tabId) };
7582
7689
  }),
@@ -7598,7 +7705,7 @@ var updateTab = defineOperation({
7598
7705
  schema: updateTabSchema,
7599
7706
  apply: (state, op) => mapView(state, op.viewId, (view) => {
7600
7707
  if (!view.tabs.some((t) => t.id === op.tabId)) {
7601
- throw new chunkHWZRSXFB_js.ValidationError(`Tab "${op.tabId}" is not in view "${op.viewId}"`, []);
7708
+ throw new chunkL4KLYMUI_js.ValidationError(`Tab "${op.tabId}" is not in view "${op.viewId}"`, []);
7602
7709
  }
7603
7710
  return {
7604
7711
  ...view,
@@ -7637,7 +7744,7 @@ var addGroup = defineOperation({
7637
7744
  op.viewId,
7638
7745
  (view) => mapFormTab(view, op.tabId, (tab) => {
7639
7746
  if (tab.groups.some((g) => g.id === op.group.id)) {
7640
- throw new chunkHWZRSXFB_js.ValidationError(
7747
+ throw new chunkL4KLYMUI_js.ValidationError(
7641
7748
  `Group "${op.group.id}" already exists in tab "${op.tabId}"`,
7642
7749
  []
7643
7750
  );
@@ -7668,16 +7775,22 @@ var removeGroup = defineOperation({
7668
7775
  focus: (op) => ({ viewId: op.viewId, tabId: op.tabId }),
7669
7776
  describe: (op) => `Supprime le groupe ${op.groupId}`
7670
7777
  });
7671
- var setGroupLabelSchema = z2.z.object({
7778
+ var updateGroupSchema = z2.z.object({
7672
7779
  ...viewOperationBase,
7673
- type: z2.z.literal("set_group_label"),
7780
+ type: z2.z.literal("update_group"),
7674
7781
  tabId: z2.z.string().min(1),
7675
7782
  groupId: z2.z.string().min(1),
7676
- label: z2.z.string().min(1)
7783
+ changes: z2.z.object({
7784
+ label: z2.z.string().min(1).optional(),
7785
+ description: z2.z.string().optional(),
7786
+ collapsible: z2.z.boolean().optional(),
7787
+ collapsed: z2.z.boolean().optional(),
7788
+ order: z2.z.number().int().optional()
7789
+ }).refine((c) => Object.keys(c).length > 0, "update_group needs at least one change")
7677
7790
  });
7678
- var setGroupLabel = defineOperation({
7679
- type: "set_group_label",
7680
- schema: setGroupLabelSchema,
7791
+ var updateGroup = defineOperation({
7792
+ type: "update_group",
7793
+ schema: updateGroupSchema,
7681
7794
  apply: (state, op) => mapView(
7682
7795
  state,
7683
7796
  op.viewId,
@@ -7685,12 +7798,12 @@ var setGroupLabel = defineOperation({
7685
7798
  requireGroup(tab, op.groupId);
7686
7799
  return {
7687
7800
  ...tab,
7688
- groups: tab.groups.map((g) => g.id === op.groupId ? { ...g, label: op.label } : g)
7801
+ groups: tab.groups.map((g) => g.id === op.groupId ? { ...g, ...op.changes } : g)
7689
7802
  };
7690
7803
  })
7691
7804
  ),
7692
7805
  focus: (op) => ({ viewId: op.viewId, tabId: op.tabId, groupId: op.groupId }),
7693
- describe: (op) => `Renomme le groupe en \xAB ${op.label} \xBB`
7806
+ describe: (op) => op.changes.label ? `Renomme le groupe en \xAB ${op.changes.label} \xBB` : "Modifie le groupe"
7694
7807
  });
7695
7808
  var reorderGroupsSchema = z2.z.object({
7696
7809
  ...viewOperationBase,
@@ -7729,7 +7842,7 @@ var addField = defineOperation({
7729
7842
  (view) => mapFormTab(view, op.tabId, (tab) => {
7730
7843
  requireGroup(tab, op.groupId);
7731
7844
  if (tab.groups.some((g) => g.fields.some((f) => f.id === op.field.id))) {
7732
- throw new chunkHWZRSXFB_js.ValidationError(
7845
+ throw new chunkL4KLYMUI_js.ValidationError(
7733
7846
  `Field slot "${op.field.id}" already exists in tab "${op.tabId}"`,
7734
7847
  []
7735
7848
  );
@@ -7868,6 +7981,37 @@ var updateField = defineOperation({
7868
7981
  focus: (op) => ({ viewId: op.viewId, tabId: op.tabId, fieldId: op.fieldId }),
7869
7982
  describe: (op) => `Modifie le champ ${op.fieldId}`
7870
7983
  });
7984
+ var updateTableTabSchema = z2.z.object({
7985
+ ...viewOperationBase,
7986
+ type: z2.z.literal("update_table_tab"),
7987
+ tabId: z2.z.string().min(1),
7988
+ changes: z2.z.object({
7989
+ columns: z2.z.array(z2.z.string().min(1)).optional(),
7990
+ filters: z2.z.custom().optional(),
7991
+ sorts: z2.z.custom().optional(),
7992
+ allowCreate: z2.z.boolean().optional(),
7993
+ allowEdit: z2.z.boolean().optional(),
7994
+ allowDelete: z2.z.boolean().optional(),
7995
+ createMode: z2.z.enum(["redirect", "inline", "peek"]).optional()
7996
+ }).refine((c) => Object.keys(c).length > 0, "update_table_tab needs at least one change")
7997
+ });
7998
+ var updateTableTab = defineOperation({
7999
+ type: "update_table_tab",
8000
+ schema: updateTableTabSchema,
8001
+ apply: (state, op) => mapView(state, op.viewId, (view) => {
8002
+ const found = view.tabs.find((t) => t.id === op.tabId);
8003
+ if (!found) throw new chunkL4KLYMUI_js.ValidationError(`Tab "${op.tabId}" is not in view "${view.id}"`, []);
8004
+ if (found.type !== "table") {
8005
+ throw new chunkL4KLYMUI_js.ValidationError(`Tab "${op.tabId}" is not a table tab`, []);
8006
+ }
8007
+ return {
8008
+ ...view,
8009
+ tabs: view.tabs.map((t) => t.id === op.tabId ? { ...t, ...op.changes } : t)
8010
+ };
8011
+ }),
8012
+ focus: (op) => ({ viewId: op.viewId, tabId: op.tabId }),
8013
+ describe: (op) => op.changes.columns ? `Affiche ${op.changes.columns.length} colonne(s) dans l'onglet ${op.tabId}` : `Modifie l'onglet ${op.tabId}`
8014
+ });
7871
8015
  var setSidePanelSchema = z2.z.object({
7872
8016
  ...viewOperationBase,
7873
8017
  type: z2.z.literal("set_side_panel"),
@@ -7893,12 +8037,13 @@ var DETAIL_VIEW_OPERATIONS = [
7893
8037
  reorderTabs,
7894
8038
  addGroup,
7895
8039
  removeGroup,
7896
- setGroupLabel,
8040
+ updateGroup,
7897
8041
  reorderGroups,
7898
8042
  addField,
7899
8043
  removeField,
7900
8044
  moveField,
7901
8045
  updateField,
8046
+ updateTableTab,
7902
8047
  setSidePanel
7903
8048
  ];
7904
8049
  var listTabBase = { ...viewOperationBase, tabId: z2.z.string().min(1) };
@@ -7906,7 +8051,7 @@ function mapListTab(state, viewId, tabId, fn) {
7906
8051
  return mapView(state, viewId, (view) => {
7907
8052
  const tabs = view.config.tabs ?? [];
7908
8053
  if (!tabs.some((t) => t.id === tabId)) {
7909
- throw new chunkHWZRSXFB_js.ValidationError(`List tab "${tabId}" is not in view "${viewId}"`, []);
8054
+ throw new chunkL4KLYMUI_js.ValidationError(`List tab "${tabId}" is not in view "${viewId}"`, []);
7910
8055
  }
7911
8056
  return {
7912
8057
  ...view,
@@ -7949,7 +8094,7 @@ var addListTab = defineOperation({
7949
8094
  apply: (state, op) => mapView(state, op.viewId, (view) => {
7950
8095
  const tabs = view.config.tabs ?? [];
7951
8096
  if (tabs.some((t) => t.id === op.tab.id)) {
7952
- throw new chunkHWZRSXFB_js.ValidationError(
8097
+ throw new chunkL4KLYMUI_js.ValidationError(
7953
8098
  `List tab "${op.tab.id}" already exists in view "${op.viewId}"`,
7954
8099
  []
7955
8100
  );
@@ -7969,7 +8114,7 @@ var removeListTab = defineOperation({
7969
8114
  apply: (state, op) => mapView(state, op.viewId, (view) => {
7970
8115
  const tabs = view.config.tabs ?? [];
7971
8116
  if (!tabs.some((t) => t.id === op.tabId)) {
7972
- throw new chunkHWZRSXFB_js.ValidationError(`List tab "${op.tabId}" is not in view "${op.viewId}"`, []);
8117
+ throw new chunkL4KLYMUI_js.ValidationError(`List tab "${op.tabId}" is not in view "${op.viewId}"`, []);
7973
8118
  }
7974
8119
  return {
7975
8120
  ...view,
@@ -7986,7 +8131,7 @@ var updateListTabSchema = z2.z.object({
7986
8131
  label: z2.z.string().min(1).optional(),
7987
8132
  icon: z2.z.custom((v) => typeof v === "string" && v.length > 0).optional(),
7988
8133
  default: z2.z.boolean().optional(),
7989
- visibility: z2.z.enum(chunkTU6ECJFZ_js.LIST_VIEW_TAB_VISIBILITIES).optional()
8134
+ visibility: z2.z.enum(chunkKIMECN6D_js.LIST_VIEW_TAB_VISIBILITIES).optional()
7990
8135
  }).refine((c) => Object.keys(c).length > 0, "update_list_tab needs at least one change")
7991
8136
  });
7992
8137
  var updateListTab = defineOperation({
@@ -8076,7 +8221,26 @@ var setCardDateAttribute = setOnTab(
8076
8221
  z2.z.string().min(1).nullable(),
8077
8222
  (value) => value ? `Affiche ${value} sur les cartes` : "Retire la date des cartes"
8078
8223
  );
8224
+ var setDefaultFiltersSchema = z2.z.object({
8225
+ ...viewOperationBase,
8226
+ type: z2.z.literal("set_default_filters"),
8227
+ filters: filterGroupPayload.nullable()
8228
+ });
8229
+ var setDefaultFilters = defineOperation({
8230
+ type: "set_default_filters",
8231
+ schema: setDefaultFiltersSchema,
8232
+ apply: (state, op) => mapView(state, op.viewId, (view) => {
8233
+ if (op.filters === null) {
8234
+ const { defaultFilters: _dropped, ...rest } = view.config;
8235
+ return { ...view, config: rest };
8236
+ }
8237
+ return { ...view, config: { ...view.config, defaultFilters: op.filters } };
8238
+ }),
8239
+ focus: (op) => ({ viewId: op.viewId }),
8240
+ describe: (op) => op.filters ? "Modifie les filtres de la vue" : "Retire les filtres de la vue"
8241
+ });
8079
8242
  var LIST_VIEW_OPERATIONS = [
8243
+ setDefaultFilters,
8080
8244
  addListTab,
8081
8245
  removeListTab,
8082
8246
  updateListTab,
@@ -8094,7 +8258,7 @@ var LIST_VIEW_OPERATIONS = [
8094
8258
  ];
8095
8259
  function requireObject(state, objectId) {
8096
8260
  if (!state.objects.some((o) => o.id === objectId)) {
8097
- throw new chunkHWZRSXFB_js.ValidationError(`Object "${objectId}" is not in the draftable state`, []);
8261
+ throw new chunkL4KLYMUI_js.ValidationError(`Object "${objectId}" is not in the draftable state`, []);
8098
8262
  }
8099
8263
  }
8100
8264
  var objectOperationBase = { ...operationBase, objectId: z2.z.string().min(1) };
@@ -8110,10 +8274,10 @@ var addObject = defineOperation({
8110
8274
  schema: addObjectSchema,
8111
8275
  apply: (state, op) => {
8112
8276
  if (state.objects.some((o) => o.name === op.name)) {
8113
- throw new chunkHWZRSXFB_js.ValidationError(`Object "${op.name}" already exists`, []);
8277
+ throw new chunkL4KLYMUI_js.ValidationError(`Object "${op.name}" already exists`, []);
8114
8278
  }
8115
8279
  if (state.objects.some((o) => o.id === op.objectId)) {
8116
- throw new chunkHWZRSXFB_js.ValidationError(`Object id "${op.objectId}" is already taken`, []);
8280
+ throw new chunkL4KLYMUI_js.ValidationError(`Object id "${op.objectId}" is already taken`, []);
8117
8281
  }
8118
8282
  const created = {
8119
8283
  id: op.objectId,
@@ -8152,12 +8316,13 @@ var removeObject = defineOperation({
8152
8316
  schema: removeObjectSchema,
8153
8317
  apply: (state, op) => {
8154
8318
  requireObject(state, op.objectId);
8319
+ const objectName = state.objects.find((o) => o.id === op.objectId)?.name;
8155
8320
  return {
8156
8321
  ...state,
8157
8322
  objects: state.objects.filter((o) => o.id !== op.objectId),
8158
8323
  attributes: state.attributes.filter((a) => a.objectId !== op.objectId),
8159
8324
  sampleRecords: state.sampleRecords.filter((r) => r.objectId !== op.objectId),
8160
- views: state.views.filter((v) => v.objectId !== op.objectId)
8325
+ views: state.views.filter((v) => v.objectName !== objectName)
8161
8326
  };
8162
8327
  },
8163
8328
  focus: () => ({}),
@@ -8177,7 +8342,7 @@ var addAttribute = defineOperation({
8177
8342
  apply: (state, op) => {
8178
8343
  requireObject(state, op.objectId);
8179
8344
  if (state.attributes.some((a) => a.objectId === op.objectId && a.name === op.name)) {
8180
- throw new chunkHWZRSXFB_js.ValidationError(
8345
+ throw new chunkL4KLYMUI_js.ValidationError(
8181
8346
  `Attribute "${op.name}" already exists on object "${op.objectId}"`,
8182
8347
  []
8183
8348
  );
@@ -8200,7 +8365,7 @@ var addAttribute = defineOperation({
8200
8365
  describe: (op) => `Ajoute l'attribut \xAB ${op.label} \xBB`
8201
8366
  });
8202
8367
  var updateAttributeSchema = z2.z.object({
8203
- ...operationBase,
8368
+ ...objectOperationBase,
8204
8369
  type: z2.z.literal("update_attribute"),
8205
8370
  attributeId: z2.z.string().min(1),
8206
8371
  changes: z2.z.object({ label: z2.z.string().min(1).optional() }).refine((c) => Object.keys(c).length > 0, "update_attribute needs at least one change")
@@ -8210,7 +8375,7 @@ var updateAttribute = defineOperation({
8210
8375
  schema: updateAttributeSchema,
8211
8376
  apply: (state, op) => {
8212
8377
  if (!state.attributes.some((a) => a.id === op.attributeId)) {
8213
- throw new chunkHWZRSXFB_js.ValidationError(`Attribute "${op.attributeId}" is not in the draftable state`, []);
8378
+ throw new chunkL4KLYMUI_js.ValidationError(`Attribute "${op.attributeId}" is not in the draftable state`, []);
8214
8379
  }
8215
8380
  return {
8216
8381
  ...state,
@@ -8219,11 +8384,14 @@ var updateAttribute = defineOperation({
8219
8384
  )
8220
8385
  };
8221
8386
  },
8222
- focus: () => ({}),
8387
+ // Carries objectId so the scope can load the attribute's parent. Without it
8388
+ // the reader returns an empty state and the fold rejects the operation before
8389
+ // the draft is ever persisted — renaming an existing field was impossible.
8390
+ focus: (op) => ({ objectId: op.objectId }),
8223
8391
  describe: (op) => op.changes.label ? `Renomme l'attribut en \xAB ${op.changes.label} \xBB` : "Modifie l'attribut"
8224
8392
  });
8225
8393
  var removeAttributeSchema = z2.z.object({
8226
- ...operationBase,
8394
+ ...objectOperationBase,
8227
8395
  type: z2.z.literal("remove_attribute"),
8228
8396
  attributeId: z2.z.string().min(1)
8229
8397
  });
@@ -8232,11 +8400,12 @@ var removeAttribute = defineOperation({
8232
8400
  schema: removeAttributeSchema,
8233
8401
  apply: (state, op) => {
8234
8402
  if (!state.attributes.some((a) => a.id === op.attributeId)) {
8235
- throw new chunkHWZRSXFB_js.ValidationError(`Attribute "${op.attributeId}" is not in the draftable state`, []);
8403
+ throw new chunkL4KLYMUI_js.ValidationError(`Attribute "${op.attributeId}" is not in the draftable state`, []);
8236
8404
  }
8237
8405
  return { ...state, attributes: state.attributes.filter((a) => a.id !== op.attributeId) };
8238
8406
  },
8239
- focus: () => ({}),
8407
+ // Same reason as update_attribute: the parent object must be in scope.
8408
+ focus: (op) => ({ objectId: op.objectId }),
8240
8409
  describe: (op) => `Supprime l'attribut ${op.attributeId}`
8241
8410
  });
8242
8411
  var addSampleRecordSchema = z2.z.object({
@@ -8251,7 +8420,7 @@ var addSampleRecord = defineOperation({
8251
8420
  apply: (state, op) => {
8252
8421
  requireObject(state, op.objectId);
8253
8422
  if (state.sampleRecords.some((r) => r.id === op.recordId)) {
8254
- throw new chunkHWZRSXFB_js.ValidationError(`Sample record "${op.recordId}" already exists`, []);
8423
+ throw new chunkL4KLYMUI_js.ValidationError(`Sample record "${op.recordId}" already exists`, []);
8255
8424
  }
8256
8425
  return {
8257
8426
  ...state,
@@ -8276,7 +8445,7 @@ var removeSampleRecord = defineOperation({
8276
8445
  schema: removeSampleRecordSchema,
8277
8446
  apply: (state, op) => {
8278
8447
  if (!state.sampleRecords.some((r) => r.id === op.recordId)) {
8279
- throw new chunkHWZRSXFB_js.ValidationError(`Sample record "${op.recordId}" is not in the draft`, []);
8448
+ throw new chunkL4KLYMUI_js.ValidationError(`Sample record "${op.recordId}" is not in the draft`, []);
8280
8449
  }
8281
8450
  return { ...state, sampleRecords: state.sampleRecords.filter((r) => r.id !== op.recordId) };
8282
8451
  },
@@ -8303,7 +8472,7 @@ function build() {
8303
8472
  ...LIST_VIEW_OPERATIONS
8304
8473
  ]) {
8305
8474
  if (map.has(definition.type)) {
8306
- throw new chunkHWZRSXFB_js.DuplicateError("architect operation", definition.type);
8475
+ throw new chunkL4KLYMUI_js.DuplicateError("architect operation", definition.type);
8307
8476
  }
8308
8477
  map.set(definition.type, definition);
8309
8478
  }
@@ -8316,7 +8485,7 @@ var ALL_OPERATION_TYPES = [...OPERATION_REGISTRY.keys()];
8316
8485
  function defOf(operation) {
8317
8486
  const definition = OPERATION_REGISTRY.get(operation.type);
8318
8487
  if (!definition) {
8319
- throw new chunkHWZRSXFB_js.ValidationError(
8488
+ throw new chunkL4KLYMUI_js.ValidationError(
8320
8489
  `Operation "${operation.id}" has unknown type "${operation.type}"`,
8321
8490
  []
8322
8491
  );
@@ -8337,19 +8506,19 @@ function describeOperations(operations, ctx) {
8337
8506
  }
8338
8507
  function parseOperation(candidate) {
8339
8508
  if (typeof candidate !== "object" || candidate === null || !("type" in candidate)) {
8340
- throw new chunkHWZRSXFB_js.ValidationError("An operation must be an object carrying a type", []);
8509
+ throw new chunkL4KLYMUI_js.ValidationError("An operation must be an object carrying a type", []);
8341
8510
  }
8342
8511
  const type = candidate.type;
8343
8512
  if (typeof type !== "string") {
8344
- throw new chunkHWZRSXFB_js.ValidationError("An operation's type must be a string", []);
8513
+ throw new chunkL4KLYMUI_js.ValidationError("An operation's type must be a string", []);
8345
8514
  }
8346
8515
  const definition = OPERATION_REGISTRY.get(type);
8347
8516
  if (!definition) {
8348
- throw new chunkHWZRSXFB_js.ValidationError(`Unknown operation type "${type}"`, []);
8517
+ throw new chunkL4KLYMUI_js.ValidationError(`Unknown operation type "${type}"`, []);
8349
8518
  }
8350
8519
  const parsed = definition.schema.safeParse(candidate);
8351
8520
  if (!parsed.success) {
8352
- throw new chunkHWZRSXFB_js.ValidationError(
8521
+ throw new chunkL4KLYMUI_js.ValidationError(
8353
8522
  `Operation "${type}" is invalid: ${parsed.error.issues.map((i) => `${i.path.join(".")} ${i.message}`).join("; ")}`,
8354
8523
  []
8355
8524
  );
@@ -8384,329 +8553,358 @@ function ensureFieldIds(tabs) {
8384
8553
  );
8385
8554
  }
8386
8555
 
8556
+ // src/architect/view-projection.ts
8557
+ function toDraftableView(view) {
8558
+ return {
8559
+ id: view.id ?? "",
8560
+ objectName: view.object,
8561
+ type: view.type,
8562
+ label: view.label,
8563
+ tabs: isDetailView(view) ? view.config.tabs ?? [] : [],
8564
+ config: view.config
8565
+ };
8566
+ }
8567
+ function fromDraftableView(original, drafted) {
8568
+ if (original.type === "detail") {
8569
+ return {
8570
+ ...original,
8571
+ label: drafted.label,
8572
+ config: {
8573
+ ...drafted.config,
8574
+ tabs: drafted.tabs
8575
+ }
8576
+ };
8577
+ }
8578
+ return {
8579
+ ...original,
8580
+ label: drafted.label,
8581
+ config: drafted.config
8582
+ };
8583
+ }
8584
+
8387
8585
  Object.defineProperty(exports, "asTenantId", {
8388
8586
  enumerable: true,
8389
- get: function () { return chunkOYHBQMC7_js.asTenantId; }
8587
+ get: function () { return chunkLBGLB443_js.asTenantId; }
8390
8588
  });
8391
8589
  Object.defineProperty(exports, "asUserId", {
8392
8590
  enumerable: true,
8393
- get: function () { return chunkOYHBQMC7_js.asUserId; }
8591
+ get: function () { return chunkLBGLB443_js.asUserId; }
8394
8592
  });
8395
8593
  Object.defineProperty(exports, "canonicalStringify", {
8396
8594
  enumerable: true,
8397
- get: function () { return chunkOYHBQMC7_js.canonicalStringify; }
8595
+ get: function () { return chunkLBGLB443_js.canonicalStringify; }
8398
8596
  });
8399
8597
  Object.defineProperty(exports, "deepEqual", {
8400
8598
  enumerable: true,
8401
- get: function () { return chunkOYHBQMC7_js.deepEqual; }
8599
+ get: function () { return chunkLBGLB443_js.deepEqual; }
8402
8600
  });
8403
8601
  Object.defineProperty(exports, "generateId", {
8404
8602
  enumerable: true,
8405
- get: function () { return chunkOYHBQMC7_js.generateId; }
8603
+ get: function () { return chunkLBGLB443_js.generateId; }
8406
8604
  });
8407
8605
  Object.defineProperty(exports, "indexBy", {
8408
8606
  enumerable: true,
8409
- get: function () { return chunkOYHBQMC7_js.indexBy; }
8607
+ get: function () { return chunkLBGLB443_js.indexBy; }
8410
8608
  });
8411
8609
  Object.defineProperty(exports, "ATTRIBUTE_FILTER_OPERATORS", {
8412
8610
  enumerable: true,
8413
- get: function () { return chunkTU6ECJFZ_js.ATTRIBUTE_FILTER_OPERATORS; }
8611
+ get: function () { return chunkKIMECN6D_js.ATTRIBUTE_FILTER_OPERATORS; }
8414
8612
  });
8415
8613
  Object.defineProperty(exports, "LIST_VIEW_TAB_VISIBILITIES", {
8416
8614
  enumerable: true,
8417
- get: function () { return chunkTU6ECJFZ_js.LIST_VIEW_TAB_VISIBILITIES; }
8615
+ get: function () { return chunkKIMECN6D_js.LIST_VIEW_TAB_VISIBILITIES; }
8418
8616
  });
8419
8617
  Object.defineProperty(exports, "NO_VALUE_OPERATORS", {
8420
8618
  enumerable: true,
8421
- get: function () { return chunkTU6ECJFZ_js.NO_VALUE_OPERATORS; }
8619
+ get: function () { return chunkKIMECN6D_js.NO_VALUE_OPERATORS; }
8422
8620
  });
8423
8621
  Object.defineProperty(exports, "OPERATORS_BY_TYPE", {
8424
8622
  enumerable: true,
8425
- get: function () { return chunkTU6ECJFZ_js.OPERATORS_BY_TYPE; }
8623
+ get: function () { return chunkKIMECN6D_js.OPERATORS_BY_TYPE; }
8426
8624
  });
8427
8625
  Object.defineProperty(exports, "REMOVED_OPERATOR_REPLACEMENTS", {
8428
8626
  enumerable: true,
8429
- get: function () { return chunkTU6ECJFZ_js.REMOVED_OPERATOR_REPLACEMENTS; }
8627
+ get: function () { return chunkKIMECN6D_js.REMOVED_OPERATOR_REPLACEMENTS; }
8430
8628
  });
8431
8629
  Object.defineProperty(exports, "RESERVED_ATTRIBUTE_NAMES", {
8432
8630
  enumerable: true,
8433
- get: function () { return chunkTU6ECJFZ_js.RESERVED_ATTRIBUTE_NAMES; }
8631
+ get: function () { return chunkKIMECN6D_js.RESERVED_ATTRIBUTE_NAMES; }
8434
8632
  });
8435
8633
  Object.defineProperty(exports, "RESERVED_OBJECT_NAMES", {
8436
8634
  enumerable: true,
8437
- get: function () { return chunkTU6ECJFZ_js.RESERVED_OBJECT_NAMES; }
8635
+ get: function () { return chunkKIMECN6D_js.RESERVED_OBJECT_NAMES; }
8438
8636
  });
8439
8637
  Object.defineProperty(exports, "RESOURCE_VISIBILITIES", {
8440
8638
  enumerable: true,
8441
- get: function () { return chunkTU6ECJFZ_js.RESOURCE_VISIBILITIES; }
8639
+ get: function () { return chunkKIMECN6D_js.RESOURCE_VISIBILITIES; }
8442
8640
  });
8443
8641
  Object.defineProperty(exports, "SYNONYM_ALIASES", {
8444
8642
  enumerable: true,
8445
- get: function () { return chunkTU6ECJFZ_js.SYNONYM_ALIASES; }
8643
+ get: function () { return chunkKIMECN6D_js.SYNONYM_ALIASES; }
8446
8644
  });
8447
8645
  Object.defineProperty(exports, "SYSTEM_ATTRIBUTES", {
8448
8646
  enumerable: true,
8449
- get: function () { return chunkTU6ECJFZ_js.SYSTEM_ATTRIBUTES; }
8647
+ get: function () { return chunkKIMECN6D_js.SYSTEM_ATTRIBUTES; }
8450
8648
  });
8451
8649
  Object.defineProperty(exports, "SYSTEM_ATTRIBUTE_I18N_KEYS", {
8452
8650
  enumerable: true,
8453
- get: function () { return chunkTU6ECJFZ_js.SYSTEM_ATTRIBUTE_I18N_KEYS; }
8651
+ get: function () { return chunkKIMECN6D_js.SYSTEM_ATTRIBUTE_I18N_KEYS; }
8454
8652
  });
8455
8653
  Object.defineProperty(exports, "SYSTEM_FIELD_NAMES", {
8456
8654
  enumerable: true,
8457
- get: function () { return chunkTU6ECJFZ_js.SYSTEM_FIELD_NAMES; }
8655
+ get: function () { return chunkKIMECN6D_js.SYSTEM_FIELD_NAMES; }
8458
8656
  });
8459
8657
  Object.defineProperty(exports, "SYSTEM_FILTER_ATTRIBUTE_TYPES", {
8460
8658
  enumerable: true,
8461
- get: function () { return chunkTU6ECJFZ_js.SYSTEM_FILTER_ATTRIBUTE_TYPES; }
8659
+ get: function () { return chunkKIMECN6D_js.SYSTEM_FILTER_ATTRIBUTE_TYPES; }
8462
8660
  });
8463
8661
  Object.defineProperty(exports, "canonicalizeFilterValue", {
8464
8662
  enumerable: true,
8465
- get: function () { return chunkTU6ECJFZ_js.canonicalizeFilterValue; }
8663
+ get: function () { return chunkKIMECN6D_js.canonicalizeFilterValue; }
8466
8664
  });
8467
8665
  Object.defineProperty(exports, "collectQualifiedRuleIssues", {
8468
8666
  enumerable: true,
8469
- get: function () { return chunkTU6ECJFZ_js.collectQualifiedRuleIssues; }
8667
+ get: function () { return chunkKIMECN6D_js.collectQualifiedRuleIssues; }
8470
8668
  });
8471
8669
  Object.defineProperty(exports, "currentActor", {
8472
8670
  enumerable: true,
8473
- get: function () { return chunkTU6ECJFZ_js.currentActor; }
8671
+ get: function () { return chunkKIMECN6D_js.currentActor; }
8474
8672
  });
8475
8673
  Object.defineProperty(exports, "detailTabSchema", {
8476
8674
  enumerable: true,
8477
- get: function () { return chunkTU6ECJFZ_js.detailTabSchema; }
8675
+ get: function () { return chunkKIMECN6D_js.detailTabSchema; }
8478
8676
  });
8479
8677
  Object.defineProperty(exports, "detailViewConfigSchema", {
8480
8678
  enumerable: true,
8481
- get: function () { return chunkTU6ECJFZ_js.detailViewConfigSchema; }
8679
+ get: function () { return chunkKIMECN6D_js.detailViewConfigSchema; }
8482
8680
  });
8483
8681
  Object.defineProperty(exports, "extractCurrencyFilterValue", {
8484
8682
  enumerable: true,
8485
- get: function () { return chunkTU6ECJFZ_js.extractCurrencyFilterValue; }
8683
+ get: function () { return chunkKIMECN6D_js.extractCurrencyFilterValue; }
8486
8684
  });
8487
8685
  Object.defineProperty(exports, "extractFilterValue", {
8488
8686
  enumerable: true,
8489
- get: function () { return chunkTU6ECJFZ_js.extractFilterValue; }
8687
+ get: function () { return chunkKIMECN6D_js.extractFilterValue; }
8490
8688
  });
8491
8689
  Object.defineProperty(exports, "getAttributeCapabilities", {
8492
8690
  enumerable: true,
8493
- get: function () { return chunkTU6ECJFZ_js.getAttributeCapabilities; }
8691
+ get: function () { return chunkKIMECN6D_js.getAttributeCapabilities; }
8494
8692
  });
8495
8693
  Object.defineProperty(exports, "getAttributeFilterOperators", {
8496
8694
  enumerable: true,
8497
- get: function () { return chunkTU6ECJFZ_js.getAttributeFilterOperators; }
8695
+ get: function () { return chunkKIMECN6D_js.getAttributeFilterOperators; }
8498
8696
  });
8499
8697
  Object.defineProperty(exports, "getOperatorPolarity", {
8500
8698
  enumerable: true,
8501
- get: function () { return chunkTU6ECJFZ_js.getOperatorPolarity; }
8699
+ get: function () { return chunkKIMECN6D_js.getOperatorPolarity; }
8502
8700
  });
8503
8701
  Object.defineProperty(exports, "getRollupFilterOperators", {
8504
8702
  enumerable: true,
8505
- get: function () { return chunkTU6ECJFZ_js.getRollupFilterOperators; }
8703
+ get: function () { return chunkKIMECN6D_js.getRollupFilterOperators; }
8506
8704
  });
8507
8705
  Object.defineProperty(exports, "getSystemAttributeI18nKey", {
8508
8706
  enumerable: true,
8509
- get: function () { return chunkTU6ECJFZ_js.getSystemAttributeI18nKey; }
8707
+ get: function () { return chunkKIMECN6D_js.getSystemAttributeI18nKey; }
8510
8708
  });
8511
8709
  Object.defineProperty(exports, "getSystemAttributeList", {
8512
8710
  enumerable: true,
8513
- get: function () { return chunkTU6ECJFZ_js.getSystemAttributeList; }
8711
+ get: function () { return chunkKIMECN6D_js.getSystemAttributeList; }
8514
8712
  });
8515
8713
  Object.defineProperty(exports, "inverseSourceSchema", {
8516
8714
  enumerable: true,
8517
- get: function () { return chunkTU6ECJFZ_js.inverseSourceSchema; }
8715
+ get: function () { return chunkKIMECN6D_js.inverseSourceSchema; }
8518
8716
  });
8519
8717
  Object.defineProperty(exports, "isAttributeFilterable", {
8520
8718
  enumerable: true,
8521
- get: function () { return chunkTU6ECJFZ_js.isAttributeFilterable; }
8719
+ get: function () { return chunkKIMECN6D_js.isAttributeFilterable; }
8522
8720
  });
8523
8721
  Object.defineProperty(exports, "isAttributeGroupable", {
8524
8722
  enumerable: true,
8525
- get: function () { return chunkTU6ECJFZ_js.isAttributeGroupable; }
8723
+ get: function () { return chunkKIMECN6D_js.isAttributeGroupable; }
8526
8724
  });
8527
8725
  Object.defineProperty(exports, "isAttributeKanbanGroupable", {
8528
8726
  enumerable: true,
8529
- get: function () { return chunkTU6ECJFZ_js.isAttributeKanbanGroupable; }
8727
+ get: function () { return chunkKIMECN6D_js.isAttributeKanbanGroupable; }
8530
8728
  });
8531
8729
  Object.defineProperty(exports, "isAttributeSearchable", {
8532
8730
  enumerable: true,
8533
- get: function () { return chunkTU6ECJFZ_js.isAttributeSearchable; }
8731
+ get: function () { return chunkKIMECN6D_js.isAttributeSearchable; }
8534
8732
  });
8535
8733
  Object.defineProperty(exports, "isDynamicValue", {
8536
8734
  enumerable: true,
8537
- get: function () { return chunkTU6ECJFZ_js.isDynamicValue; }
8735
+ get: function () { return chunkKIMECN6D_js.isDynamicValue; }
8538
8736
  });
8539
8737
  Object.defineProperty(exports, "isManagedSystemAttribute", {
8540
8738
  enumerable: true,
8541
- get: function () { return chunkTU6ECJFZ_js.isManagedSystemAttribute; }
8739
+ get: function () { return chunkKIMECN6D_js.isManagedSystemAttribute; }
8542
8740
  });
8543
8741
  Object.defineProperty(exports, "isNoValueOperator", {
8544
8742
  enumerable: true,
8545
- get: function () { return chunkTU6ECJFZ_js.isNoValueOperator; }
8743
+ get: function () { return chunkKIMECN6D_js.isNoValueOperator; }
8546
8744
  });
8547
8745
  Object.defineProperty(exports, "isRelativeDateValue", {
8548
8746
  enumerable: true,
8549
- get: function () { return chunkTU6ECJFZ_js.isRelativeDateValue; }
8747
+ get: function () { return chunkKIMECN6D_js.isRelativeDateValue; }
8550
8748
  });
8551
8749
  Object.defineProperty(exports, "isSetMembershipOperator", {
8552
8750
  enumerable: true,
8553
- get: function () { return chunkTU6ECJFZ_js.isSetMembershipOperator; }
8751
+ get: function () { return chunkKIMECN6D_js.isSetMembershipOperator; }
8554
8752
  });
8555
8753
  Object.defineProperty(exports, "listViewConfigSchema", {
8556
8754
  enumerable: true,
8557
- get: function () { return chunkTU6ECJFZ_js.listViewConfigSchema; }
8755
+ get: function () { return chunkKIMECN6D_js.listViewConfigSchema; }
8558
8756
  });
8559
8757
  Object.defineProperty(exports, "listViewTabSchema", {
8560
8758
  enumerable: true,
8561
- get: function () { return chunkTU6ECJFZ_js.listViewTabSchema; }
8759
+ get: function () { return chunkKIMECN6D_js.listViewTabSchema; }
8562
8760
  });
8563
8761
  Object.defineProperty(exports, "normalizeFilterRule", {
8564
8762
  enumerable: true,
8565
- get: function () { return chunkTU6ECJFZ_js.normalizeFilterRule; }
8763
+ get: function () { return chunkKIMECN6D_js.normalizeFilterRule; }
8566
8764
  });
8567
8765
  Object.defineProperty(exports, "normalizeForEdgeRpc", {
8568
8766
  enumerable: true,
8569
- get: function () { return chunkTU6ECJFZ_js.normalizeForEdgeRpc; }
8767
+ get: function () { return chunkKIMECN6D_js.normalizeForEdgeRpc; }
8570
8768
  });
8571
8769
  Object.defineProperty(exports, "normalizeOperator", {
8572
8770
  enumerable: true,
8573
- get: function () { return chunkTU6ECJFZ_js.normalizeOperator; }
8771
+ get: function () { return chunkKIMECN6D_js.normalizeOperator; }
8574
8772
  });
8575
8773
  Object.defineProperty(exports, "now", {
8576
8774
  enumerable: true,
8577
- get: function () { return chunkTU6ECJFZ_js.now; }
8775
+ get: function () { return chunkKIMECN6D_js.now; }
8578
8776
  });
8579
8777
  Object.defineProperty(exports, "parseResourceVisibility", {
8580
8778
  enumerable: true,
8581
- get: function () { return chunkTU6ECJFZ_js.parseResourceVisibility; }
8779
+ get: function () { return chunkKIMECN6D_js.parseResourceVisibility; }
8582
8780
  });
8583
8781
  Object.defineProperty(exports, "parseViewConfig", {
8584
8782
  enumerable: true,
8585
- get: function () { return chunkTU6ECJFZ_js.parseViewConfig; }
8783
+ get: function () { return chunkKIMECN6D_js.parseViewConfig; }
8586
8784
  });
8587
8785
  Object.defineProperty(exports, "relationSourceSchema", {
8588
8786
  enumerable: true,
8589
- get: function () { return chunkTU6ECJFZ_js.relationSourceSchema; }
8787
+ get: function () { return chunkKIMECN6D_js.relationSourceSchema; }
8590
8788
  });
8591
8789
  Object.defineProperty(exports, "resolveEffectiveFilterType", {
8592
8790
  enumerable: true,
8593
- get: function () { return chunkTU6ECJFZ_js.resolveEffectiveFilterType; }
8791
+ get: function () { return chunkKIMECN6D_js.resolveEffectiveFilterType; }
8594
8792
  });
8595
8793
  Object.defineProperty(exports, "resolveIsWithinBounds", {
8596
8794
  enumerable: true,
8597
- get: function () { return chunkTU6ECJFZ_js.resolveIsWithinBounds; }
8795
+ get: function () { return chunkKIMECN6D_js.resolveIsWithinBounds; }
8598
8796
  });
8599
8797
  Object.defineProperty(exports, "resolveUtcDayBounds", {
8600
8798
  enumerable: true,
8601
- get: function () { return chunkTU6ECJFZ_js.resolveUtcDayBounds; }
8799
+ get: function () { return chunkKIMECN6D_js.resolveUtcDayBounds; }
8602
8800
  });
8603
8801
  Object.defineProperty(exports, "tableSourceSchema", {
8604
8802
  enumerable: true,
8605
- get: function () { return chunkTU6ECJFZ_js.tableSourceSchema; }
8803
+ get: function () { return chunkKIMECN6D_js.tableSourceSchema; }
8606
8804
  });
8607
8805
  Object.defineProperty(exports, "toMultiValueOperator", {
8608
8806
  enumerable: true,
8609
- get: function () { return chunkTU6ECJFZ_js.toMultiValueOperator; }
8807
+ get: function () { return chunkKIMECN6D_js.toMultiValueOperator; }
8610
8808
  });
8611
8809
  Object.defineProperty(exports, "toUtcDayString", {
8612
8810
  enumerable: true,
8613
- get: function () { return chunkTU6ECJFZ_js.toUtcDayString; }
8811
+ get: function () { return chunkKIMECN6D_js.toUtcDayString; }
8614
8812
  });
8615
8813
  Object.defineProperty(exports, "today", {
8616
8814
  enumerable: true,
8617
- get: function () { return chunkTU6ECJFZ_js.today; }
8815
+ get: function () { return chunkKIMECN6D_js.today; }
8618
8816
  });
8619
8817
  Object.defineProperty(exports, "validateQualifiedRule", {
8620
8818
  enumerable: true,
8621
- get: function () { return chunkTU6ECJFZ_js.validateQualifiedRule; }
8819
+ get: function () { return chunkKIMECN6D_js.validateQualifiedRule; }
8622
8820
  });
8623
8821
  Object.defineProperty(exports, "viewConfigByTypeSchema", {
8624
8822
  enumerable: true,
8625
- get: function () { return chunkTU6ECJFZ_js.viewConfigByTypeSchema; }
8823
+ get: function () { return chunkKIMECN6D_js.viewConfigByTypeSchema; }
8626
8824
  });
8627
8825
  Object.defineProperty(exports, "viewTypeSchema", {
8628
8826
  enumerable: true,
8629
- get: function () { return chunkTU6ECJFZ_js.viewTypeSchema; }
8827
+ get: function () { return chunkKIMECN6D_js.viewTypeSchema; }
8630
8828
  });
8631
8829
  Object.defineProperty(exports, "ComputedFormulaParseError", {
8632
8830
  enumerable: true,
8633
- get: function () { return chunkLRFLSFIA_js.ComputedFormulaParseError; }
8831
+ get: function () { return chunkDIMTNM3F_js.ComputedFormulaParseError; }
8634
8832
  });
8635
8833
  Object.defineProperty(exports, "SCHEMA_LIMITS", {
8636
8834
  enumerable: true,
8637
- get: function () { return chunkLRFLSFIA_js.SCHEMA_LIMITS; }
8835
+ get: function () { return chunkDIMTNM3F_js.SCHEMA_LIMITS; }
8638
8836
  });
8639
8837
  Object.defineProperty(exports, "colorIdSchema", {
8640
8838
  enumerable: true,
8641
- get: function () { return chunkLRFLSFIA_js.colorIdSchema; }
8839
+ get: function () { return chunkDIMTNM3F_js.colorIdSchema; }
8642
8840
  });
8643
8841
  Object.defineProperty(exports, "iconNameSchema", {
8644
8842
  enumerable: true,
8645
- get: function () { return chunkLRFLSFIA_js.iconNameSchema; }
8843
+ get: function () { return chunkDIMTNM3F_js.iconNameSchema; }
8646
8844
  });
8647
8845
  Object.defineProperty(exports, "multiselectOptionWriteSchema", {
8648
8846
  enumerable: true,
8649
- get: function () { return chunkLRFLSFIA_js.multiselectOptionWriteSchema; }
8847
+ get: function () { return chunkDIMTNM3F_js.multiselectOptionWriteSchema; }
8650
8848
  });
8651
8849
  Object.defineProperty(exports, "parseAttributeConfig", {
8652
8850
  enumerable: true,
8653
- get: function () { return chunkLRFLSFIA_js.parseAttributeConfig; }
8851
+ get: function () { return chunkDIMTNM3F_js.parseAttributeConfig; }
8654
8852
  });
8655
8853
  Object.defineProperty(exports, "parseAttributeConfigForCreate", {
8656
8854
  enumerable: true,
8657
- get: function () { return chunkLRFLSFIA_js.parseAttributeConfigForCreate; }
8855
+ get: function () { return chunkDIMTNM3F_js.parseAttributeConfigForCreate; }
8658
8856
  });
8659
8857
  Object.defineProperty(exports, "parseAttributeConfigForUpdate", {
8660
8858
  enumerable: true,
8661
- get: function () { return chunkLRFLSFIA_js.parseAttributeConfigForUpdate; }
8859
+ get: function () { return chunkDIMTNM3F_js.parseAttributeConfigForUpdate; }
8662
8860
  });
8663
8861
  Object.defineProperty(exports, "parseComputedFormula", {
8664
8862
  enumerable: true,
8665
- get: function () { return chunkLRFLSFIA_js.parseComputedFormula; }
8863
+ get: function () { return chunkDIMTNM3F_js.parseComputedFormula; }
8666
8864
  });
8667
8865
  Object.defineProperty(exports, "selectOptionWriteSchema", {
8668
8866
  enumerable: true,
8669
- get: function () { return chunkLRFLSFIA_js.selectOptionWriteSchema; }
8867
+ get: function () { return chunkDIMTNM3F_js.selectOptionWriteSchema; }
8670
8868
  });
8671
8869
  Object.defineProperty(exports, "statusGroupSchema", {
8672
8870
  enumerable: true,
8673
- get: function () { return chunkLRFLSFIA_js.statusGroupSchema; }
8871
+ get: function () { return chunkDIMTNM3F_js.statusGroupSchema; }
8674
8872
  });
8675
8873
  Object.defineProperty(exports, "statusOptionWriteSchema", {
8676
8874
  enumerable: true,
8677
- get: function () { return chunkLRFLSFIA_js.statusOptionWriteSchema; }
8875
+ get: function () { return chunkDIMTNM3F_js.statusOptionWriteSchema; }
8678
8876
  });
8679
8877
  Object.defineProperty(exports, "createFormAttributeValidator", {
8680
8878
  enumerable: true,
8681
- get: function () { return chunkE47WAI5K_js.createFormAttributeValidator; }
8879
+ get: function () { return chunkV4MZOTLV_js.createFormAttributeValidator; }
8682
8880
  });
8683
8881
  Object.defineProperty(exports, "isNullishOrEmptyString", {
8684
8882
  enumerable: true,
8685
- get: function () { return chunkE47WAI5K_js.isNullishOrEmptyString; }
8883
+ get: function () { return chunkV4MZOTLV_js.isNullishOrEmptyString; }
8686
8884
  });
8687
8885
  Object.defineProperty(exports, "isValuePresent", {
8688
8886
  enumerable: true,
8689
- get: function () { return chunkE47WAI5K_js.isValuePresent; }
8887
+ get: function () { return chunkV4MZOTLV_js.isValuePresent; }
8690
8888
  });
8691
8889
  Object.defineProperty(exports, "rejectUnknownAttributesOrThrow", {
8692
8890
  enumerable: true,
8693
- get: function () { return chunkE47WAI5K_js.rejectUnknownAttributesOrThrow; }
8891
+ get: function () { return chunkV4MZOTLV_js.rejectUnknownAttributesOrThrow; }
8694
8892
  });
8695
8893
  Object.defineProperty(exports, "validateDraft", {
8696
8894
  enumerable: true,
8697
- get: function () { return chunkE47WAI5K_js.validateDraft; }
8895
+ get: function () { return chunkV4MZOTLV_js.validateDraft; }
8698
8896
  });
8699
8897
  Object.defineProperty(exports, "validateDraftOrThrow", {
8700
8898
  enumerable: true,
8701
- get: function () { return chunkE47WAI5K_js.validateDraftOrThrow; }
8899
+ get: function () { return chunkV4MZOTLV_js.validateDraftOrThrow; }
8702
8900
  });
8703
8901
  Object.defineProperty(exports, "validateObject", {
8704
8902
  enumerable: true,
8705
- get: function () { return chunkE47WAI5K_js.validateObject; }
8903
+ get: function () { return chunkV4MZOTLV_js.validateObject; }
8706
8904
  });
8707
8905
  Object.defineProperty(exports, "validateObjectOrThrow", {
8708
8906
  enumerable: true,
8709
- get: function () { return chunkE47WAI5K_js.validateObjectOrThrow; }
8907
+ get: function () { return chunkV4MZOTLV_js.validateObjectOrThrow; }
8710
8908
  });
8711
8909
  Object.defineProperty(exports, "createCheckboxValidator", {
8712
8910
  enumerable: true,
@@ -8734,155 +8932,155 @@ Object.defineProperty(exports, "resolveTextPattern", {
8734
8932
  });
8735
8933
  Object.defineProperty(exports, "AccessDeniedError", {
8736
8934
  enumerable: true,
8737
- get: function () { return chunkHWZRSXFB_js.AccessDeniedError; }
8935
+ get: function () { return chunkL4KLYMUI_js.AccessDeniedError; }
8738
8936
  });
8739
8937
  Object.defineProperty(exports, "AttributeInUseError", {
8740
8938
  enumerable: true,
8741
- get: function () { return chunkHWZRSXFB_js.AttributeInUseError; }
8939
+ get: function () { return chunkL4KLYMUI_js.AttributeInUseError; }
8742
8940
  });
8743
8941
  Object.defineProperty(exports, "AttributeNotFoundError", {
8744
8942
  enumerable: true,
8745
- get: function () { return chunkHWZRSXFB_js.AttributeNotFoundError; }
8943
+ get: function () { return chunkL4KLYMUI_js.AttributeNotFoundError; }
8746
8944
  });
8747
8945
  Object.defineProperty(exports, "ChangeTypeNotSupportedError", {
8748
8946
  enumerable: true,
8749
- get: function () { return chunkHWZRSXFB_js.ChangeTypeNotSupportedError; }
8947
+ get: function () { return chunkL4KLYMUI_js.ChangeTypeNotSupportedError; }
8750
8948
  });
8751
8949
  Object.defineProperty(exports, "ConcurrentModificationError", {
8752
8950
  enumerable: true,
8753
- get: function () { return chunkHWZRSXFB_js.ConcurrentModificationError; }
8951
+ get: function () { return chunkL4KLYMUI_js.ConcurrentModificationError; }
8754
8952
  });
8755
8953
  Object.defineProperty(exports, "DestructiveSyncNotAllowedError", {
8756
8954
  enumerable: true,
8757
- get: function () { return chunkHWZRSXFB_js.DestructiveSyncNotAllowedError; }
8955
+ get: function () { return chunkL4KLYMUI_js.DestructiveSyncNotAllowedError; }
8758
8956
  });
8759
8957
  Object.defineProperty(exports, "DuplicateError", {
8760
8958
  enumerable: true,
8761
- get: function () { return chunkHWZRSXFB_js.DuplicateError; }
8959
+ get: function () { return chunkL4KLYMUI_js.DuplicateError; }
8762
8960
  });
8763
8961
  Object.defineProperty(exports, "ForbiddenError", {
8764
8962
  enumerable: true,
8765
- get: function () { return chunkHWZRSXFB_js.ForbiddenError; }
8963
+ get: function () { return chunkL4KLYMUI_js.ForbiddenError; }
8766
8964
  });
8767
8965
  Object.defineProperty(exports, "MemoryNotFoundError", {
8768
8966
  enumerable: true,
8769
- get: function () { return chunkHWZRSXFB_js.MemoryNotFoundError; }
8967
+ get: function () { return chunkL4KLYMUI_js.MemoryNotFoundError; }
8770
8968
  });
8771
8969
  Object.defineProperty(exports, "MigrationTimeoutError", {
8772
8970
  enumerable: true,
8773
- get: function () { return chunkHWZRSXFB_js.MigrationTimeoutError; }
8971
+ get: function () { return chunkL4KLYMUI_js.MigrationTimeoutError; }
8774
8972
  });
8775
8973
  Object.defineProperty(exports, "NotFoundError", {
8776
8974
  enumerable: true,
8777
- get: function () { return chunkHWZRSXFB_js.NotFoundError; }
8975
+ get: function () { return chunkL4KLYMUI_js.NotFoundError; }
8778
8976
  });
8779
8977
  Object.defineProperty(exports, "NotImplementedError", {
8780
8978
  enumerable: true,
8781
- get: function () { return chunkHWZRSXFB_js.NotImplementedError; }
8979
+ get: function () { return chunkL4KLYMUI_js.NotImplementedError; }
8782
8980
  });
8783
8981
  Object.defineProperty(exports, "ObjectNotFoundError", {
8784
8982
  enumerable: true,
8785
- get: function () { return chunkHWZRSXFB_js.ObjectNotFoundError; }
8983
+ get: function () { return chunkL4KLYMUI_js.ObjectNotFoundError; }
8786
8984
  });
8787
8985
  Object.defineProperty(exports, "ObjectReferencedError", {
8788
8986
  enumerable: true,
8789
- get: function () { return chunkHWZRSXFB_js.ObjectReferencedError; }
8987
+ get: function () { return chunkL4KLYMUI_js.ObjectReferencedError; }
8790
8988
  });
8791
8989
  Object.defineProperty(exports, "OrphanSystemAttributeError", {
8792
8990
  enumerable: true,
8793
- get: function () { return chunkHWZRSXFB_js.OrphanSystemAttributeError; }
8991
+ get: function () { return chunkL4KLYMUI_js.OrphanSystemAttributeError; }
8794
8992
  });
8795
8993
  Object.defineProperty(exports, "ProtectedResourceError", {
8796
8994
  enumerable: true,
8797
- get: function () { return chunkHWZRSXFB_js.ProtectedResourceError; }
8995
+ get: function () { return chunkL4KLYMUI_js.ProtectedResourceError; }
8798
8996
  });
8799
8997
  Object.defineProperty(exports, "ProtectedRoleError", {
8800
8998
  enumerable: true,
8801
- get: function () { return chunkHWZRSXFB_js.ProtectedRoleError; }
8999
+ get: function () { return chunkL4KLYMUI_js.ProtectedRoleError; }
8802
9000
  });
8803
9001
  Object.defineProperty(exports, "RecordNotFoundError", {
8804
9002
  enumerable: true,
8805
- get: function () { return chunkHWZRSXFB_js.RecordNotFoundError; }
9003
+ get: function () { return chunkL4KLYMUI_js.RecordNotFoundError; }
8806
9004
  });
8807
9005
  Object.defineProperty(exports, "RecordReferencedError", {
8808
9006
  enumerable: true,
8809
- get: function () { return chunkHWZRSXFB_js.RecordReferencedError; }
9007
+ get: function () { return chunkL4KLYMUI_js.RecordReferencedError; }
8810
9008
  });
8811
9009
  Object.defineProperty(exports, "RepositoryError", {
8812
9010
  enumerable: true,
8813
- get: function () { return chunkHWZRSXFB_js.RepositoryError; }
9011
+ get: function () { return chunkL4KLYMUI_js.RepositoryError; }
8814
9012
  });
8815
9013
  Object.defineProperty(exports, "RoleNotFoundError", {
8816
9014
  enumerable: true,
8817
- get: function () { return chunkHWZRSXFB_js.RoleNotFoundError; }
9015
+ get: function () { return chunkL4KLYMUI_js.RoleNotFoundError; }
8818
9016
  });
8819
9017
  Object.defineProperty(exports, "SchemaError", {
8820
9018
  enumerable: true,
8821
- get: function () { return chunkHWZRSXFB_js.SchemaError; }
9019
+ get: function () { return chunkL4KLYMUI_js.SchemaError; }
8822
9020
  });
8823
9021
  Object.defineProperty(exports, "SchemaErrorCode", {
8824
9022
  enumerable: true,
8825
- get: function () { return chunkHWZRSXFB_js.SchemaErrorCode; }
9023
+ get: function () { return chunkL4KLYMUI_js.SchemaErrorCode; }
8826
9024
  });
8827
9025
  Object.defineProperty(exports, "SchemaPlanNotFoundError", {
8828
9026
  enumerable: true,
8829
- get: function () { return chunkHWZRSXFB_js.SchemaPlanNotFoundError; }
9027
+ get: function () { return chunkL4KLYMUI_js.SchemaPlanNotFoundError; }
8830
9028
  });
8831
9029
  Object.defineProperty(exports, "SearchBackendError", {
8832
9030
  enumerable: true,
8833
- get: function () { return chunkHWZRSXFB_js.SearchBackendError; }
9031
+ get: function () { return chunkL4KLYMUI_js.SearchBackendError; }
8834
9032
  });
8835
9033
  Object.defineProperty(exports, "StorageError", {
8836
9034
  enumerable: true,
8837
- get: function () { return chunkHWZRSXFB_js.StorageError; }
9035
+ get: function () { return chunkL4KLYMUI_js.StorageError; }
8838
9036
  });
8839
9037
  Object.defineProperty(exports, "SyncCascadeError", {
8840
9038
  enumerable: true,
8841
- get: function () { return chunkHWZRSXFB_js.SyncCascadeError; }
9039
+ get: function () { return chunkL4KLYMUI_js.SyncCascadeError; }
8842
9040
  });
8843
9041
  Object.defineProperty(exports, "SyncConflictError", {
8844
9042
  enumerable: true,
8845
- get: function () { return chunkHWZRSXFB_js.SyncConflictError; }
9043
+ get: function () { return chunkL4KLYMUI_js.SyncConflictError; }
8846
9044
  });
8847
9045
  Object.defineProperty(exports, "SyncError", {
8848
9046
  enumerable: true,
8849
- get: function () { return chunkHWZRSXFB_js.SyncError; }
9047
+ get: function () { return chunkL4KLYMUI_js.SyncError; }
8850
9048
  });
8851
9049
  Object.defineProperty(exports, "SystemEntityImmutableError", {
8852
9050
  enumerable: true,
8853
- get: function () { return chunkHWZRSXFB_js.SystemEntityImmutableError; }
9051
+ get: function () { return chunkL4KLYMUI_js.SystemEntityImmutableError; }
8854
9052
  });
8855
9053
  Object.defineProperty(exports, "ValidationError", {
8856
9054
  enumerable: true,
8857
- get: function () { return chunkHWZRSXFB_js.ValidationError; }
9055
+ get: function () { return chunkL4KLYMUI_js.ValidationError; }
8858
9056
  });
8859
9057
  Object.defineProperty(exports, "isAttributeInUseError", {
8860
9058
  enumerable: true,
8861
- get: function () { return chunkHWZRSXFB_js.isAttributeInUseError; }
9059
+ get: function () { return chunkL4KLYMUI_js.isAttributeInUseError; }
8862
9060
  });
8863
9061
  Object.defineProperty(exports, "isNotFoundError", {
8864
9062
  enumerable: true,
8865
- get: function () { return chunkHWZRSXFB_js.isNotFoundError; }
9063
+ get: function () { return chunkL4KLYMUI_js.isNotFoundError; }
8866
9064
  });
8867
9065
  Object.defineProperty(exports, "isObjectReferencedError", {
8868
9066
  enumerable: true,
8869
- get: function () { return chunkHWZRSXFB_js.isObjectReferencedError; }
9067
+ get: function () { return chunkL4KLYMUI_js.isObjectReferencedError; }
8870
9068
  });
8871
9069
  Object.defineProperty(exports, "isProtectedResourceError", {
8872
9070
  enumerable: true,
8873
- get: function () { return chunkHWZRSXFB_js.isProtectedResourceError; }
9071
+ get: function () { return chunkL4KLYMUI_js.isProtectedResourceError; }
8874
9072
  });
8875
9073
  Object.defineProperty(exports, "isRecordReferencedError", {
8876
9074
  enumerable: true,
8877
- get: function () { return chunkHWZRSXFB_js.isRecordReferencedError; }
9075
+ get: function () { return chunkL4KLYMUI_js.isRecordReferencedError; }
8878
9076
  });
8879
9077
  Object.defineProperty(exports, "isSchemaError", {
8880
9078
  enumerable: true,
8881
- get: function () { return chunkHWZRSXFB_js.isSchemaError; }
9079
+ get: function () { return chunkL4KLYMUI_js.isSchemaError; }
8882
9080
  });
8883
9081
  Object.defineProperty(exports, "isValidationError", {
8884
9082
  enumerable: true,
8885
- get: function () { return chunkHWZRSXFB_js.isValidationError; }
9083
+ get: function () { return chunkL4KLYMUI_js.isValidationError; }
8886
9084
  });
8887
9085
  Object.defineProperty(exports, "DEFAULT_VALIDATION_MESSAGES", {
8888
9086
  enumerable: true,
@@ -8967,6 +9165,7 @@ exports.NOTIFICATION_TYPE_AGENT_SESSION_WAITING_HUMAN = NOTIFICATION_TYPE_AGENT_
8967
9165
  exports.NOTIFICATION_TYPE_AGENT_TASK_ASSIGNED = NOTIFICATION_TYPE_AGENT_TASK_ASSIGNED;
8968
9166
  exports.NOTIFICATION_WORK_STATES = NOTIFICATION_WORK_STATES;
8969
9167
  exports.NoopGeocodingAdapter = NoopGeocodingAdapter;
9168
+ exports.OPEN_TOOL_PART_STATES = OPEN_TOOL_PART_STATES;
8970
9169
  exports.OPERATION_REGISTRY = OPERATION_REGISTRY;
8971
9170
  exports.OPERATOR_SPECS = OPERATOR_SPECS;
8972
9171
  exports.ObjectBuilder = ObjectBuilder;
@@ -8986,6 +9185,7 @@ exports.SYSTEM_RESOURCE_LABELS = SYSTEM_RESOURCE_LABELS;
8986
9185
  exports.TODAY_DEFAULT = TODAY_DEFAULT;
8987
9186
  exports.TODO_PLAN_STATUSES = TODO_PLAN_STATUSES;
8988
9187
  exports.TODO_STATUSES = TODO_STATUSES;
9188
+ exports.TOOL_APPROVAL_STATES = TOOL_APPROVAL_STATES;
8989
9189
  exports.TabBuilder = TabBuilder;
8990
9190
  exports.TableTabConfig = TableTabConfig;
8991
9191
  exports.USER_STATUSES = USER_STATUSES;
@@ -9032,12 +9232,15 @@ exports.extractValueRefs = extractValueRefs;
9032
9232
  exports.flagRegistry = flagRegistry;
9033
9233
  exports.focusOf = focusOf;
9034
9234
  exports.form = form;
9235
+ exports.formFieldFlatKey = formFieldFlatKey;
9236
+ exports.formFieldKey = formFieldKey;
9035
9237
  exports.formRegistry = formRegistry;
9036
9238
  exports.formatAttributeValue = formatAttributeValue;
9037
9239
  exports.formatByteSize = formatByteSize;
9038
9240
  exports.formatComputedResult = formatComputedResult;
9039
9241
  exports.formatLocationValue = formatLocationValue;
9040
9242
  exports.formula = formula;
9243
+ exports.fromDraftableView = fromDraftableView;
9041
9244
  exports.generateDefaultDetailView = generateDefaultDetailView;
9042
9245
  exports.generateDefaultListView = generateDefaultListView;
9043
9246
  exports.getActiveTab = getActiveTab;
@@ -9078,10 +9281,12 @@ exports.isLiveEventPayload = isLiveEventPayload;
9078
9281
  exports.isLiveEventPayloadForType = isLiveEventPayloadForType;
9079
9282
  exports.isLiveEventType = isLiveEventType;
9080
9283
  exports.isNotEmpty = isNotEmpty;
9284
+ exports.isOpenToolPartState = isOpenToolPartState;
9081
9285
  exports.isPlainRecord = isPlainRecord2;
9082
9286
  exports.isStandardSchema = isStandardSchema;
9083
9287
  exports.isTerminalSessionStatus = isTerminalSessionStatus;
9084
9288
  exports.isTerminalState = isTerminalState;
9289
+ exports.isToolApprovalState = isToolApprovalState;
9085
9290
  exports.isUniversalRelation = isUniversalRelation;
9086
9291
  exports.jsonFlag = jsonFlag;
9087
9292
  exports.legacyStatusToSessionState = legacyStatusToSessionState;
@@ -9109,6 +9314,8 @@ exports.plannedAttributeSchema = plannedAttributeSchema;
9109
9314
  exports.plannedInlineAttributeSchema = plannedInlineAttributeSchema;
9110
9315
  exports.plannedObjectSchema = plannedObjectSchema;
9111
9316
  exports.proposedDefaultViewTargetSchema = proposedDefaultViewTargetSchema;
9317
+ exports.qualifiedPropertyDefs = qualifiedPropertyDefs;
9318
+ exports.readFormFieldValue = readFormFieldValue;
9112
9319
  exports.registry = registry;
9113
9320
  exports.relation = relation;
9114
9321
  exports.relationPropertyDefs = relationPropertyDefs;
@@ -9126,6 +9333,7 @@ exports.sessionStateToLegacyStatus = sessionStateToLegacyStatus;
9126
9333
  exports.status = status;
9127
9334
  exports.stringFlag = stringFlag;
9128
9335
  exports.text = text;
9336
+ exports.toDraftableView = toDraftableView;
9129
9337
  exports.toUndefinedIfEmpty = toUndefinedIfEmpty;
9130
9338
  exports.user = user;
9131
9339
  exports.validateAttributeName = validateAttributeName;