@stndrds/schema 1.0.0-alpha.277 → 1.0.0-alpha.279

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 (73) hide show
  1. package/dist/{all-D-E8v5yo.d.mts → all-Bk8cRKsu.d.mts} +20 -3
  2. package/dist/{all-D5SkjRst.d.ts → all-C_tC90ZM.d.ts} +20 -3
  3. package/dist/{attributes-lBLiOIY3.d.mts → attributes--M1ifW8_.d.mts} +1 -1
  4. package/dist/{attributes-_b3Db8vT.d.ts → attributes-D8eHv5Kf.d.ts} +1 -1
  5. package/dist/{chunk-XQEDMB6B.mjs → chunk-5PLJHYSL.mjs} +24 -4
  6. package/dist/{chunk-KKR6I3YV.js → chunk-DEHBEFGO.js} +3 -3
  7. package/dist/{chunk-VVYIFBFQ.mjs → chunk-PQEOIDXD.mjs} +1 -1
  8. package/dist/{chunk-F32XOFSP.js → chunk-QMAVKX3Y.js} +55 -34
  9. package/dist/{chunk-PSCSTHUB.mjs → chunk-QUZ3PN36.mjs} +11 -14
  10. package/dist/{chunk-K4UER3DU.mjs → chunk-V2WJFUZW.mjs} +14 -2
  11. package/dist/{chunk-RYAQOR7M.js → chunk-ZBWTAKZO.js} +14 -2
  12. package/dist/{chunk-FMLZHHWB.js → chunk-ZEPGMHCK.js} +14 -16
  13. package/dist/exceptions.d.mts +14 -4
  14. package/dist/exceptions.d.ts +14 -4
  15. package/dist/exceptions.js +39 -39
  16. package/dist/exceptions.mjs +1 -1
  17. package/dist/{helpers-C1VVEAOO.d.mts → helpers-BiABdSxK.d.mts} +3 -3
  18. package/dist/{helpers-vQ6kp8ET.d.ts → helpers-DyoPqiSz.d.ts} +3 -3
  19. package/dist/index-C3P5Dnwt.d.mts +790 -0
  20. package/dist/index-SpFpkWVC.d.ts +790 -0
  21. package/dist/index.d.mts +2228 -393
  22. package/dist/index.d.ts +2228 -393
  23. package/dist/index.js +565 -324
  24. package/dist/index.mjs +358 -138
  25. package/dist/{migrations-DcuJZ8qO.d.ts → migrations-B1kkIhIX.d.ts} +1 -1
  26. package/dist/{migrations-BXd2ZGfM.d.mts → migrations-BNlQVzDC.d.mts} +1 -1
  27. package/dist/{objects-A1ED9af-.d.ts → objects-DgFojgwH.d.ts} +19 -3
  28. package/dist/{objects-BCaBw2ef.d.mts → objects-DmMqHn3L.d.mts} +19 -3
  29. package/dist/{types-DNz3ITS-.d.mts → types-DHqXzkgW.d.mts} +1 -1
  30. package/dist/{types-DqLi1tx1.d.ts → types-DYYFto8d.d.ts} +1 -1
  31. package/dist/validation/all.d.mts +7 -7
  32. package/dist/validation/all.d.ts +7 -7
  33. package/dist/validation/all.js +29 -29
  34. package/dist/validation/all.mjs +4 -4
  35. package/dist/validation/complex/currency.d.mts +2 -2
  36. package/dist/validation/complex/currency.d.ts +2 -2
  37. package/dist/validation/complex/location.d.mts +2 -2
  38. package/dist/validation/complex/location.d.ts +2 -2
  39. package/dist/validation/complex/phone.d.mts +2 -2
  40. package/dist/validation/complex/phone.d.ts +2 -2
  41. package/dist/validation/complex/relation.d.mts +2 -2
  42. package/dist/validation/complex/relation.d.ts +2 -2
  43. package/dist/validation/complex/richtext.d.mts +2 -2
  44. package/dist/validation/complex/richtext.d.ts +2 -2
  45. package/dist/validation/complex/select.d.mts +2 -2
  46. package/dist/validation/complex/select.d.ts +2 -2
  47. package/dist/validation/complex/user.d.mts +2 -2
  48. package/dist/validation/complex/user.d.ts +2 -2
  49. package/dist/validation/computed/formula.d.mts +2 -2
  50. package/dist/validation/computed/formula.d.ts +2 -2
  51. package/dist/validation/computed/rollup.d.mts +2 -2
  52. package/dist/validation/computed/rollup.d.ts +2 -2
  53. package/dist/validation/config/index.d.mts +4 -4
  54. package/dist/validation/config/index.d.ts +4 -4
  55. package/dist/validation/config/index.js +11 -11
  56. package/dist/validation/config/index.mjs +2 -2
  57. package/dist/validation/core/index.d.mts +3 -3
  58. package/dist/validation/core/index.d.ts +3 -3
  59. package/dist/validation/object/index.d.mts +5 -5
  60. package/dist/validation/object/index.d.ts +5 -5
  61. package/dist/validation/object/index.js +14 -14
  62. package/dist/validation/object/index.mjs +2 -2
  63. package/dist/validation/primitives/checkbox.d.mts +2 -2
  64. package/dist/validation/primitives/checkbox.d.ts +2 -2
  65. package/dist/validation/primitives/date.d.mts +2 -2
  66. package/dist/validation/primitives/date.d.ts +2 -2
  67. package/dist/validation/primitives/number.d.mts +2 -2
  68. package/dist/validation/primitives/number.d.ts +2 -2
  69. package/dist/validation/primitives/text.d.mts +2 -2
  70. package/dist/validation/primitives/text.d.ts +2 -2
  71. package/package.json +2 -2
  72. package/dist/index-AJeEKoy6.d.ts +0 -2203
  73. package/dist/index-ApHE8c1J.d.mts +0 -2203
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkFRCDMQER_js = require('./chunk-FRCDMQER.js');
4
- var chunkF32XOFSP_js = require('./chunk-F32XOFSP.js');
5
- var chunkKKR6I3YV_js = require('./chunk-KKR6I3YV.js');
6
- var chunkFMLZHHWB_js = require('./chunk-FMLZHHWB.js');
4
+ var chunkQMAVKX3Y_js = require('./chunk-QMAVKX3Y.js');
5
+ var chunkDEHBEFGO_js = require('./chunk-DEHBEFGO.js');
6
+ var chunkZEPGMHCK_js = require('./chunk-ZEPGMHCK.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 chunkRYAQOR7M_js = require('./chunk-RYAQOR7M.js');
16
+ var chunkZBWTAKZO_js = require('./chunk-ZBWTAKZO.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 chunkF32XOFSP_js.isAttributeSortable(attr);
84
+ return chunkQMAVKX3Y_js.isAttributeSortable(attr);
85
85
  }
86
86
 
87
87
  // src/types/audit.ts
@@ -137,6 +137,44 @@ var AUDIT_ACTIONS = [
137
137
  ];
138
138
 
139
139
  // src/types/agent.ts
140
+ function isTerminalState(state) {
141
+ return state.phase === "terminal";
142
+ }
143
+ function sessionStateToLegacyStatus(state) {
144
+ switch (state.phase) {
145
+ case "running":
146
+ return "active";
147
+ case "queued":
148
+ return "idle";
149
+ case "parked":
150
+ if (state.parkedOn === void 0) {
151
+ throw new chunkZBWTAKZO_js.SchemaError("parked state without parkedOn", chunkZBWTAKZO_js.SchemaErrorCode.INVARIANT_VIOLATION);
152
+ }
153
+ return state.parkedOn === "agents" ? "waiting_agents" : "waiting_human";
154
+ case "terminal":
155
+ if (state.outcome === void 0) {
156
+ throw new chunkZBWTAKZO_js.SchemaError(
157
+ "terminal state without outcome",
158
+ chunkZBWTAKZO_js.SchemaErrorCode.INVARIANT_VIOLATION
159
+ );
160
+ }
161
+ return state.outcome;
162
+ }
163
+ }
164
+ function legacyStatusToSessionState(status2) {
165
+ switch (status2) {
166
+ case "active":
167
+ return { phase: "running" };
168
+ case "idle":
169
+ return { phase: "queued" };
170
+ case "waiting_human":
171
+ return { phase: "parked", parkedOn: "human", humanRequestIds: [] };
172
+ case "waiting_agents":
173
+ return { phase: "parked", parkedOn: "agents" };
174
+ default:
175
+ return { phase: "terminal", outcome: status2 };
176
+ }
177
+ }
140
178
  var SESSION_TERMINAL_STATUSES = [
141
179
  "completed",
142
180
  "failed",
@@ -152,7 +190,7 @@ var DEFAULT_APPROVAL_POLICY = Object.freeze({
152
190
  destructive: "ask",
153
191
  outward: "ask"
154
192
  });
155
- var TODO_PLAN_STATUSES = ["active", "completed", "promoted", "abandoned"];
193
+ var TODO_PLAN_STATUSES = ["active", "completed", "abandoned"];
156
194
  function agentDisplayName(agent2) {
157
195
  return agent2.label?.trim() || agent2.name;
158
196
  }
@@ -162,6 +200,60 @@ var MAX_TODO_ID_CHARS = 80;
162
200
  var MAX_TODO_DESCRIPTION_CHARS = 500;
163
201
  var MAX_TODO_RESULT_CHARS = 2e3;
164
202
 
203
+ // src/types/agent-ui-data.ts
204
+ var NATIVE_AGENT_UI_PART_IDS_METADATA_KEY = "__stndrdsNativeUiPartIds";
205
+ var NATIVE_AGENT_UI_PART_IDS_METADATA_SCHEMA_VERSION = 1;
206
+ var INVALID_NATIVE_PART_IDS = "Native agent UI part IDs metadata is invalid";
207
+ function invalidNativePartIds() {
208
+ throw new chunkZBWTAKZO_js.ValidationError(INVALID_NATIVE_PART_IDS, []);
209
+ }
210
+ function isPlainRecord(value) {
211
+ if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
212
+ const prototype = Object.getPrototypeOf(value);
213
+ return prototype === Object.prototype || prototype === null;
214
+ }
215
+ function nativeAgentUIPartIdMetadataKey(part, partIndex) {
216
+ if (part.type === "text" || part.type === "reasoning") return `${part.type}:${partIndex}`;
217
+ if (part.type === "tool") return `tool:${part.toolCallId}`;
218
+ return void 0;
219
+ }
220
+ function parseNativeAgentUIPartIdsMetadata(message) {
221
+ const stored = message.metadata?.[NATIVE_AGENT_UI_PART_IDS_METADATA_KEY];
222
+ if (!isPlainRecord(stored)) invalidNativePartIds();
223
+ if (Object.keys(stored).length !== 2 || stored.schemaVersion !== NATIVE_AGENT_UI_PART_IDS_METADATA_SCHEMA_VERSION || !isPlainRecord(stored.partIds)) {
224
+ invalidNativePartIds();
225
+ }
226
+ const expected = /* @__PURE__ */ new Map();
227
+ for (const [index, part] of message.parts.entries()) {
228
+ const key = nativeAgentUIPartIdMetadataKey(part, index);
229
+ if (!key || expected.has(key)) {
230
+ if (key) invalidNativePartIds();
231
+ continue;
232
+ }
233
+ expected.set(key, part);
234
+ }
235
+ const entries = Object.entries(stored.partIds);
236
+ if (entries.length !== expected.size) invalidNativePartIds();
237
+ const nativeIdTypes = /* @__PURE__ */ new Map();
238
+ const parsed = {};
239
+ for (const [key, value] of entries) {
240
+ const part = expected.get(key);
241
+ if (!(part && typeof value === "string" && value.length > 0)) {
242
+ invalidNativePartIds();
243
+ }
244
+ const existingType = nativeIdTypes.get(value);
245
+ if (existingType && (part.type === "tool" || existingType !== part.type)) {
246
+ invalidNativePartIds();
247
+ }
248
+ if (part.type === "tool" && value !== part.toolCallId) {
249
+ invalidNativePartIds();
250
+ }
251
+ nativeIdTypes.set(value, part.type);
252
+ parsed[key] = value;
253
+ }
254
+ return parsed;
255
+ }
256
+
165
257
  // src/types/document-layout.ts
166
258
  var MAX_PRESET_DEPTH = 5;
167
259
 
@@ -198,6 +290,10 @@ function isFormSlotFieldRef(f) {
198
290
  function isFormFreeFieldRef(f) {
199
291
  return f.type === "free";
200
292
  }
293
+ function resolveFieldRequired(input) {
294
+ if (input.fieldRequired !== void 0) return input.fieldRequired;
295
+ return input.slotMode === "create" && input.attributeRequired === true;
296
+ }
201
297
  function getSlotFieldTargets(field) {
202
298
  return field.additionalSlotIds?.length ? [field.slotId, ...field.additionalSlotIds] : [field.slotId];
203
299
  }
@@ -263,6 +359,7 @@ function hasOptions(attr) {
263
359
 
264
360
  // src/types/user-profiles.ts
265
361
  var USER_STATUSES = ["active", "suspended"];
362
+ var USER_WORK_POSTURES = ["plan", "manual", "auto"];
266
363
 
267
364
  // src/types/schema-state.ts
268
365
  function viewStateKey(view) {
@@ -284,6 +381,20 @@ function isRelationGroup(group2) {
284
381
  }
285
382
 
286
383
  // src/types/pagination.ts
384
+ var COUNT_MODES = ["none", "estimated", "exact"];
385
+ function parseCountMode(value) {
386
+ if (typeof value === "string" && COUNT_MODES.includes(value)) {
387
+ return value;
388
+ }
389
+ throw new chunkZBWTAKZO_js.ValidationError(
390
+ // biome-ignore lint/style/useTemplate: see the comment above.
391
+ "countMode must be one of: " + COUNT_MODES.join(", ") + " (received: " + String(value) + ")",
392
+ []
393
+ );
394
+ }
395
+ function parseOptionalCountMode(value) {
396
+ return value === void 0 ? void 0 : parseCountMode(value);
397
+ }
287
398
  var ESTIMATED_COUNT_CAP = 1e4;
288
399
 
289
400
  // src/lib/object-helpers.ts
@@ -382,7 +493,7 @@ function isDateRangeValue(value) {
382
493
  return typeof value === "object" && value !== null && typeof value.start === "string";
383
494
  }
384
495
  function normalizeDateValue(value, attr) {
385
- if (chunkFMLZHHWB_js.isNullishOrEmptyString(value)) return null;
496
+ if (chunkZEPGMHCK_js.isNullishOrEmptyString(value)) return null;
386
497
  if (isDateRangeValue(value)) {
387
498
  return attr.endDate ? { start: value.start, end: value.end ?? null } : value.start;
388
499
  }
@@ -520,7 +631,7 @@ function formatMultiselect(value, attribute) {
520
631
  return value.join(", ");
521
632
  }
522
633
  function formatAttributeValue(value, attribute) {
523
- if (chunkFMLZHHWB_js.isNullishOrEmptyString(value)) {
634
+ if (chunkZEPGMHCK_js.isNullishOrEmptyString(value)) {
524
635
  return EMPTY_VALUE_PLACEHOLDER;
525
636
  }
526
637
  switch (attribute.type) {
@@ -667,32 +778,40 @@ function renderLabelExpression(template, values, fallback = DEFAULT_LABEL_FALLBA
667
778
  const alternatives = orParts.filter(Boolean);
668
779
  let value = "";
669
780
  for (const alt of alternatives) {
670
- const v = getValue(values, alt);
671
- if (v != null && v !== "") {
672
- value = v;
781
+ const text2 = toText(getValue(values, alt));
782
+ if (text2 !== "") {
783
+ value = text2;
673
784
  break;
674
785
  }
675
786
  }
676
- const isEmpty2 = chunkFMLZHHWB_js.isNullishOrEmptyString(value);
787
+ const isEmpty2 = chunkZEPGMHCK_js.isNullishOrEmptyString(value);
677
788
  if (isEmpty2 && pipes.length === 0) return "";
678
789
  for (const pipeExpr of pipes) {
679
790
  const { name: pipeName, args } = parsePipeExpression(pipeExpr);
680
791
  const simpleFn = simplePipes[pipeName];
681
792
  if (simpleFn) {
682
- if (value != null && value !== "") {
683
- value = simpleFn(String(value));
793
+ if (value !== "") {
794
+ value = simpleFn(value);
684
795
  }
685
796
  } else {
686
797
  const argFn = pipesWithArgs[pipeName];
687
798
  if (argFn) {
688
- value = argFn(String(value ?? ""), ...args);
799
+ value = argFn(value, ...args);
689
800
  }
690
801
  }
691
802
  }
692
- return String(value ?? "");
803
+ return value;
693
804
  }).trim();
694
805
  return result || fallback;
695
806
  }
807
+ function toText(value) {
808
+ if (value == null) return "";
809
+ if (typeof value === "function") return "";
810
+ if (typeof value !== "object") return String(value);
811
+ if (Array.isArray(value)) return value.map(toText).filter(Boolean).join(",");
812
+ const ownToString = value.toString;
813
+ return typeof ownToString === "function" && ownToString !== Object.prototype.toString ? String(value) : "";
814
+ }
696
815
  function isLabelExpression(value) {
697
816
  return /\{\{\s*\S+.*\}\}/.test(value);
698
817
  }
@@ -742,7 +861,7 @@ function relationPropertyDefs(attribute) {
742
861
  return attribute.properties?.definitions;
743
862
  }
744
863
  function extractValueRefs(value) {
745
- if (chunkFMLZHHWB_js.isNullishOrEmptyString(value)) return [];
864
+ if (chunkZEPGMHCK_js.isNullishOrEmptyString(value)) return [];
746
865
  if (typeof value === "string") return [{ id: value }];
747
866
  if (Array.isArray(value)) return value.flatMap((item) => extractValueRefs(item));
748
867
  if (typeof value === "object" && "id" in value) {
@@ -754,11 +873,26 @@ function extractValueRefs(value) {
754
873
 
755
874
  // src/lib/user-display.ts
756
875
  function getUserDisplayName(user2) {
757
- if (user2.firstName || user2.lastName) {
758
- return [user2.firstName, user2.lastName].filter(Boolean).join(" ");
876
+ const named = [user2.firstName, user2.lastName].map((part) => part?.trim()).filter(Boolean).join(" ");
877
+ if (named !== "") {
878
+ return named;
759
879
  }
760
880
  return user2.email?.split("@")[0] ?? "";
761
881
  }
882
+ var INITIAL_CHARACTER = /\p{L}|\p{N}/u;
883
+ function deriveInitials(label, fallback) {
884
+ const trimmed = label?.trim() ?? "";
885
+ if (trimmed === "") {
886
+ return fallback;
887
+ }
888
+ const words = trimmed.split(/\s+/);
889
+ const parts = words.length === 1 ? trimmed.split("@")[0].split(/[._-]/) : words;
890
+ const initials = parts.map((part) => {
891
+ const initial = part.match(INITIAL_CHARACTER)?.[0];
892
+ return initial === void 0 ? "" : [...initial.toUpperCase()][0] ?? "";
893
+ }).filter(Boolean).slice(0, 2).join("");
894
+ return initials === "" ? fallback : initials;
895
+ }
762
896
 
763
897
  // src/lib/record-creator.ts
764
898
  var RECORD_CREATOR_ROOT_ACTOR_METADATA_KEY = "__creatorRootActorId";
@@ -767,6 +901,20 @@ function getRecordCreatorPrincipalId(record) {
767
901
  return typeof creatorRootActorId === "string" && creatorRootActorId.length > 0 ? creatorRootActorId : record.createdBy;
768
902
  }
769
903
 
904
+ // src/lib/action-grant.ts
905
+ function includesAction(actions, action) {
906
+ return actions?.includes("*") === true || actions?.includes(action) === true;
907
+ }
908
+ function buildPermissionFlags(actions) {
909
+ return {
910
+ canRead: includesAction(actions, "read"),
911
+ canCreate: includesAction(actions, "create"),
912
+ canUpdate: includesAction(actions, "update"),
913
+ canDelete: includesAction(actions, "delete"),
914
+ canManage: includesAction(actions, "manage")
915
+ };
916
+ }
917
+
770
918
  // src/constants/attribute-columns.ts
771
919
  var DB_COLUMN_FIELDS = /* @__PURE__ */ new Set([
772
920
  "id",
@@ -917,24 +1065,24 @@ function validateObjectName(name) {
917
1065
  OBJECT_NAME_SCHEMA.parse(name);
918
1066
  } catch (error) {
919
1067
  if (error instanceof z2__default.default.ZodError) {
920
- throw new chunkRYAQOR7M_js.SchemaError(error.issues[0].message, chunkRYAQOR7M_js.SchemaErrorCode.INVALID_OBJECT_NAME);
1068
+ throw new chunkZBWTAKZO_js.SchemaError(error.issues[0].message, chunkZBWTAKZO_js.SchemaErrorCode.INVALID_OBJECT_NAME);
921
1069
  }
922
1070
  throw error;
923
1071
  }
924
1072
  }
925
1073
  function validateViewName(name) {
926
1074
  if (!name || name.length === 0) {
927
- throw new chunkRYAQOR7M_js.ValidationError("View name cannot be empty", [
1075
+ throw new chunkZBWTAKZO_js.ValidationError("View name cannot be empty", [
928
1076
  { path: ["name"], message: "View name cannot be empty" }
929
1077
  ]);
930
1078
  }
931
1079
  if (name.length > MAX_NAME_LENGTH) {
932
- throw new chunkRYAQOR7M_js.ValidationError("View name is too long", [
1080
+ throw new chunkZBWTAKZO_js.ValidationError("View name is too long", [
933
1081
  { path: ["name"], message: `View name is too long (max ${MAX_NAME_LENGTH} characters)` }
934
1082
  ]);
935
1083
  }
936
1084
  if (!VIEW_NAME_REGEX.test(name)) {
937
- throw new chunkRYAQOR7M_js.ValidationError("Invalid view name format", [
1085
+ throw new chunkZBWTAKZO_js.ValidationError("Invalid view name format", [
938
1086
  {
939
1087
  path: ["name"],
940
1088
  message: "View name must be in kebab-case (e.g., 'detail', 'list-view')"
@@ -966,10 +1114,10 @@ function validateAttributeName(name) {
966
1114
  "[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'"
967
1115
  );
968
1116
  }
969
- if (chunkF32XOFSP_js.RESERVED_ATTRIBUTE_NAMES.includes(name)) {
1117
+ if (chunkQMAVKX3Y_js.RESERVED_ATTRIBUTE_NAMES.includes(name)) {
970
1118
  throw new Error(
971
1119
  `[AttributeBuilder] "${name}" is a reserved name and cannot be used as an attribute name.
972
- Reserved names: ${chunkF32XOFSP_js.RESERVED_ATTRIBUTE_NAMES.join(", ")}`
1120
+ Reserved names: ${chunkQMAVKX3Y_js.RESERVED_ATTRIBUTE_NAMES.join(", ")}`
973
1121
  );
974
1122
  }
975
1123
  }
@@ -1036,7 +1184,7 @@ var DEFAULT_AGENT_EXECUTION_CONFIG = {
1036
1184
  var AgentBuilder = class {
1037
1185
  constructor(config) {
1038
1186
  if (!config.name || config.name.trim().length === 0) {
1039
- throw new chunkRYAQOR7M_js.ValidationError("Agent name is required", []);
1187
+ throw new chunkZBWTAKZO_js.ValidationError("Agent name is required", []);
1040
1188
  }
1041
1189
  this.bp = { name: config.name, system: true, visibility: "workspace", triggers: [] };
1042
1190
  }
@@ -1170,13 +1318,13 @@ var AgentBuilder = class {
1170
1318
  }
1171
1319
  build() {
1172
1320
  if (!this.bp.systemPrompt) {
1173
- throw new chunkRYAQOR7M_js.ValidationError(`Agent "${this.bp.name}": systemPrompt is required`, []);
1321
+ throw new chunkZBWTAKZO_js.ValidationError(`Agent "${this.bp.name}": systemPrompt is required`, []);
1174
1322
  }
1175
1323
  if (!this.bp.model) {
1176
- throw new chunkRYAQOR7M_js.ValidationError(`Agent "${this.bp.name}": model is required`, []);
1324
+ throw new chunkZBWTAKZO_js.ValidationError(`Agent "${this.bp.name}": model is required`, []);
1177
1325
  }
1178
1326
  if (this.bp.system && this.bp.visibility === "private") {
1179
- throw new chunkRYAQOR7M_js.ValidationError(
1327
+ throw new chunkZBWTAKZO_js.ValidationError(
1180
1328
  `Agent "${this.bp.name}": system agents must use workspace visibility`,
1181
1329
  []
1182
1330
  );
@@ -1184,7 +1332,7 @@ var AgentBuilder = class {
1184
1332
  assertUniqueBy(
1185
1333
  this.bp.triggers,
1186
1334
  (t) => t.name,
1187
- (name) => new chunkRYAQOR7M_js.ValidationError(`Agent "${this.bp.name}": duplicate trigger name "${name}"`, [])
1335
+ (name) => new chunkZBWTAKZO_js.ValidationError(`Agent "${this.bp.name}": duplicate trigger name "${name}"`, [])
1188
1336
  );
1189
1337
  return {
1190
1338
  ...this.bp,
@@ -1239,7 +1387,7 @@ var BaseAttributeBuilder = class {
1239
1387
  * @see https://standardschema.dev/
1240
1388
  */
1241
1389
  get "~standard"() {
1242
- const zodSchema = chunkFMLZHHWB_js.createAttributeValidator(this.build());
1390
+ const zodSchema = chunkZEPGMHCK_js.createAttributeValidator(this.build());
1243
1391
  return createStandardSchemaProps(zodSchema);
1244
1392
  }
1245
1393
  constructor(type, name, label) {
@@ -1986,9 +2134,9 @@ var RollupAttributeBuilder = class extends BaseAttributeBuilder {
1986
2134
  if (fn === "original" && targetType !== void 0 && targetType !== "select" && targetType !== "status" && targetType !== "multiselect") {
1987
2135
  const relation2 = this.attr.relationAttribute ?? "relation";
1988
2136
  const target = this.attr.targetAttribute ?? "field";
1989
- throw new chunkRYAQOR7M_js.SchemaError(
2137
+ throw new chunkZBWTAKZO_js.SchemaError(
1990
2138
  `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}").`,
1991
- chunkRYAQOR7M_js.SchemaErrorCode.VALIDATION_FAILED
2139
+ chunkZBWTAKZO_js.SchemaErrorCode.VALIDATION_FAILED
1992
2140
  );
1993
2141
  }
1994
2142
  return super.build();
@@ -2498,7 +2646,7 @@ var ObjectBuilder = class {
2498
2646
  * @see https://standardschema.dev/
2499
2647
  */
2500
2648
  get "~standard"() {
2501
- const zodSchema = chunkFMLZHHWB_js.createObjectValidator(this.build());
2649
+ const zodSchema = chunkZEPGMHCK_js.createObjectValidator(this.build());
2502
2650
  return createStandardSchemaProps(zodSchema);
2503
2651
  }
2504
2652
  /**
@@ -2585,27 +2733,55 @@ var ObjectBuilder = class {
2585
2733
  * into the TRecord generic, enabling full inference.
2586
2734
  *
2587
2735
  * @param attr - Attribute definition or builder (auto-builds if builder)
2736
+ * @throws DuplicateError if the name is already declared on this object
2588
2737
  */
2589
2738
  attribute(attr) {
2590
- if (!this.obj.attributes) {
2591
- this.obj.attributes = [];
2592
- }
2593
- const finalAttr = "build" in attr && typeof attr.build === "function" ? attr.build() : attr;
2594
- this.obj.attributes.push(finalAttr);
2739
+ this.pushAttributes([attr]);
2595
2740
  return this;
2596
2741
  }
2597
2742
  /**
2598
2743
  * Add multiple attributes at once
2599
2744
  * Note: For full type inference, prefer chaining .attribute() calls
2745
+ *
2746
+ * @throws DuplicateError if a name is declared twice, inside this batch or
2747
+ * against an attribute already declared on this object
2600
2748
  */
2601
2749
  attributes(attrs) {
2602
- if (!this.obj.attributes) {
2603
- this.obj.attributes = [];
2604
- }
2605
- const finalAttrs = attrs.map((attr) => "build" in attr ? attr.build() : attr);
2606
- this.obj.attributes.push(...finalAttrs);
2750
+ this.pushAttributes(attrs);
2607
2751
  return this;
2608
2752
  }
2753
+ /**
2754
+ * Build any builders, reject duplicate names, then commit — the single push
2755
+ * path behind `attribute()` and `attributes()`, so both entry points share
2756
+ * one builder detection and one uniqueness guarantee.
2757
+ *
2758
+ * The check runs on the resulting array (already committed + incoming), so one
2759
+ * call catches both a collision inside a single `.attributes([...])` batch and
2760
+ * one spanning several calls.
2761
+ *
2762
+ * Names are compared with raw `===`. Postgres stores `attributes.name` as
2763
+ * plain `text` under a deterministic collation, so `x` and `X` are two
2764
+ * distinct attributes there; folding case here would reject a pair the
2765
+ * database accepts.
2766
+ *
2767
+ * @throws DuplicateError with `SchemaErrorCode.DUPLICATE_ATTRIBUTE`
2768
+ * @internal
2769
+ */
2770
+ pushAttributes(attrs) {
2771
+ const finalAttrs = attrs.map(
2772
+ (attr) => "build" in attr && typeof attr.build === "function" ? attr.build() : attr
2773
+ );
2774
+ assertUniqueBy(
2775
+ [...this.obj.attributes, ...finalAttrs],
2776
+ (attribute) => attribute.name,
2777
+ (name) => new chunkZBWTAKZO_js.DuplicateError(
2778
+ "attribute",
2779
+ name,
2780
+ `Object "${this.obj.name}": duplicate attribute name "${name}"`
2781
+ )
2782
+ );
2783
+ this.obj.attributes.push(...finalAttrs);
2784
+ }
2609
2785
  /**
2610
2786
  * Set metadata. Merges with any previously set metadata (preserves keys
2611
2787
  * written by other builder methods like `.order()`).
@@ -2712,26 +2888,26 @@ var ObjectBuilder = class {
2712
2888
  throw new Error("[ObjectBuilder] Missing required field: label");
2713
2889
  }
2714
2890
  if (!this._labelExpression) {
2715
- throw new chunkRYAQOR7M_js.SchemaError(
2891
+ throw new chunkZBWTAKZO_js.SchemaError(
2716
2892
  `Object "${this.obj.name}" must have a labelExpression. The labelExpression defines how records are displayed in lists and relations (e.g. "{{ name }}").`,
2717
- chunkRYAQOR7M_js.SchemaErrorCode.VALIDATION_FAILED
2893
+ chunkZBWTAKZO_js.SchemaErrorCode.VALIDATION_FAILED
2718
2894
  );
2719
2895
  }
2720
2896
  const labelResult = labelExpressionSchema.safeParse(this._labelExpression);
2721
2897
  if (!labelResult.success) {
2722
2898
  const errorMsg = labelResult.error.issues[0]?.message ?? "Invalid labelExpression";
2723
- throw new chunkRYAQOR7M_js.SchemaError(
2899
+ throw new chunkZBWTAKZO_js.SchemaError(
2724
2900
  `Invalid labelExpression for "${this.obj.name}": ${errorMsg}`,
2725
- chunkRYAQOR7M_js.SchemaErrorCode.VALIDATION_FAILED
2901
+ chunkZBWTAKZO_js.SchemaErrorCode.VALIDATION_FAILED
2726
2902
  );
2727
2903
  }
2728
2904
  if (this._embeddingExpression !== void 0) {
2729
2905
  const embeddingResult = labelExpressionSchema.safeParse(this._embeddingExpression);
2730
2906
  if (!embeddingResult.success) {
2731
2907
  const errorMsg = embeddingResult.error.issues[0]?.message ?? "Invalid embeddingExpression";
2732
- throw new chunkRYAQOR7M_js.SchemaError(
2908
+ throw new chunkZBWTAKZO_js.SchemaError(
2733
2909
  `Invalid embeddingExpression for "${this.obj.name}": ${errorMsg}`,
2734
- chunkRYAQOR7M_js.SchemaErrorCode.VALIDATION_FAILED
2910
+ chunkZBWTAKZO_js.SchemaErrorCode.VALIDATION_FAILED
2735
2911
  );
2736
2912
  }
2737
2913
  }
@@ -2773,7 +2949,7 @@ function object(config) {
2773
2949
  }
2774
2950
  function validatePresetStructure(presetId, nodes, depth) {
2775
2951
  const fail = (message, detail) => {
2776
- throw new chunkRYAQOR7M_js.ValidationError(message, [
2952
+ throw new chunkZBWTAKZO_js.ValidationError(message, [
2777
2953
  { path: ["documentLayout", "presets", presetId], message: detail }
2778
2954
  ]);
2779
2955
  };
@@ -3161,13 +3337,13 @@ var ActivityTabConfig = class {
3161
3337
  return this.view.build();
3162
3338
  }
3163
3339
  };
3164
- var EmailsTabConfig = class {
3340
+ var AddressMatchedTabConfig = class {
3165
3341
  /** @internal */
3166
- constructor(view, base) {
3342
+ constructor(view, base, type) {
3167
3343
  this.view = view;
3168
- this.tabData = { ...base, type: "emails", emailAttributeIds: [] };
3344
+ this.tabData = { ...base, type, emailAttributeIds: [] };
3169
3345
  }
3170
- /** Set the text attributes whose values are matched against email participants. */
3346
+ /** Set the text attributes whose values are matched against participants. */
3171
3347
  emailAttributes(...attributeIds) {
3172
3348
  this.tabData.emailAttributeIds = attributeIds;
3173
3349
  return this;
@@ -3194,6 +3370,18 @@ var EmailsTabConfig = class {
3194
3370
  return this.view.build();
3195
3371
  }
3196
3372
  };
3373
+ var EmailsTabConfig = class extends AddressMatchedTabConfig {
3374
+ /** @internal */
3375
+ constructor(view, base) {
3376
+ super(view, base, "emails");
3377
+ }
3378
+ };
3379
+ var MeetingsTabConfig = class extends AddressMatchedTabConfig {
3380
+ /** @internal */
3381
+ constructor(view, base) {
3382
+ super(view, base, "meetings");
3383
+ }
3384
+ };
3197
3385
  var DocumentsTabConfig = class {
3198
3386
  /** @internal */
3199
3387
  constructor(view, base) {
@@ -3363,6 +3551,13 @@ var TabBuilder = class {
3363
3551
  emails() {
3364
3552
  return new EmailsTabConfig(this.view, this.base);
3365
3553
  }
3554
+ /**
3555
+ * Create a meetings tab (query-time association via email-bearing attributes)
3556
+ * @example .meetings().emailAttributes("email", "backup_email")
3557
+ */
3558
+ meetings() {
3559
+ return new MeetingsTabConfig(this.view, this.base);
3560
+ }
3366
3561
  /**
3367
3562
  * Create a forms tab to launch and track form instances linked to this record
3368
3563
  * @example .tab("forms", "Forms").forms()
@@ -3776,7 +3971,7 @@ var ListViewTabConfigBuilder = class _ListViewTabConfigBuilder {
3776
3971
  const protectedAttribute = findProtectedTabFilterAttribute(filters);
3777
3972
  if (protectedAttribute) {
3778
3973
  const message = `Tab filters cannot target "${protectedAttribute}". Use .visibility("private")`;
3779
- throw new chunkRYAQOR7M_js.ValidationError(message, [{ path: ["filters"], message }]);
3974
+ throw new chunkZBWTAKZO_js.ValidationError(message, [{ path: ["filters"], message }]);
3780
3975
  }
3781
3976
  this.tabData.filters = filters;
3782
3977
  return this;
@@ -3990,7 +4185,7 @@ function jsonFlag(name, defaultValue) {
3990
4185
 
3991
4186
  // src/feature-flags/flag-registry.ts
3992
4187
  function duplicateFlagError(name) {
3993
- return new chunkRYAQOR7M_js.DuplicateError(
4188
+ return new chunkZBWTAKZO_js.DuplicateError(
3994
4189
  "feature flag",
3995
4190
  name,
3996
4191
  `Flag "${name}" is already registered. Each flag name must be unique.`
@@ -4068,7 +4263,7 @@ var FlagRegistry = class {
4068
4263
  getOrThrow(name) {
4069
4264
  const flag = this.get(name);
4070
4265
  if (!flag) {
4071
- throw new chunkRYAQOR7M_js.NotFoundError(
4266
+ throw new chunkZBWTAKZO_js.NotFoundError(
4072
4267
  "Feature flag",
4073
4268
  name,
4074
4269
  void 0,
@@ -4225,19 +4420,19 @@ var FlagService = class {
4225
4420
  */
4226
4421
  async setOverride(flagName, level, value, options = {}) {
4227
4422
  if (!this.repository) {
4228
- throw new chunkRYAQOR7M_js.SchemaError(
4423
+ throw new chunkZBWTAKZO_js.SchemaError(
4229
4424
  "Cannot set override: no FeatureFlagsRepository configured. Add featureFlags to your DatabaseAdapter to enable runtime overrides.",
4230
- chunkRYAQOR7M_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4425
+ chunkZBWTAKZO_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4231
4426
  );
4232
4427
  }
4233
4428
  const flag = this.registry.get(flagName);
4234
4429
  if (flag && !flag.allowedLevels.includes(level)) {
4235
4430
  const message = `Flag "${flagName}" does not allow ${level}-level overrides. Allowed levels: ${flag.allowedLevels.join(", ")}`;
4236
- throw new chunkRYAQOR7M_js.ValidationError(message, [{ path: ["level"], message }]);
4431
+ throw new chunkZBWTAKZO_js.ValidationError(message, [{ path: ["level"], message }]);
4237
4432
  }
4238
4433
  if (flag?.system) {
4239
4434
  const message = `Flag "${flagName}" is a system flag and cannot be overridden via API.`;
4240
- throw new chunkRYAQOR7M_js.ValidationError(message, [{ path: ["flagName"], message }]);
4435
+ throw new chunkZBWTAKZO_js.ValidationError(message, [{ path: ["flagName"], message }]);
4241
4436
  }
4242
4437
  await this.repository.setOverride({
4243
4438
  flagName,
@@ -4257,9 +4452,9 @@ var FlagService = class {
4257
4452
  */
4258
4453
  async deleteOverride(flagName, level, targetId) {
4259
4454
  if (!this.repository) {
4260
- throw new chunkRYAQOR7M_js.SchemaError(
4455
+ throw new chunkZBWTAKZO_js.SchemaError(
4261
4456
  "Cannot delete override: no FeatureFlagsRepository configured.",
4262
- chunkRYAQOR7M_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4457
+ chunkZBWTAKZO_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4263
4458
  );
4264
4459
  }
4265
4460
  await this.repository.deleteOverride(flagName, level, targetId);
@@ -4396,7 +4591,7 @@ var NativeObjectRegistryClass = class {
4396
4591
  if (!object2.system) {
4397
4592
  const message = `[NativeObjectRegistry] Cannot register object "${object2.name}" (id: ${object2.id}): missing system flag.
4398
4593
  Native objects must have system=true. Did you call .runtime() on the builder? Remove that call \u2014 objects are system:true by default.`;
4399
- throw new chunkRYAQOR7M_js.ValidationError(message, []);
4594
+ throw new chunkZBWTAKZO_js.ValidationError(message, []);
4400
4595
  }
4401
4596
  if (this.objects.has(object2.name)) {
4402
4597
  const existing = this.objects.get(object2.name);
@@ -4404,7 +4599,7 @@ Native objects must have system=true. Did you call .runtime() on the builder? Re
4404
4599
  - Existing: "${existing?.label}" (id: ${existing?.id})
4405
4600
  - New: "${object2.label}" (id: ${object2.id})
4406
4601
  Please use unique names for each native object.`;
4407
- throw new chunkRYAQOR7M_js.DuplicateError("object", object2.name, message);
4602
+ throw new chunkZBWTAKZO_js.DuplicateError("object", object2.name, message);
4408
4603
  }
4409
4604
  this.objects.set(object2.name, cloneObjectDefinition(object2));
4410
4605
  }
@@ -4436,7 +4631,7 @@ Please use unique names for each native object.`;
4436
4631
  if (!object2) {
4437
4632
  const message = `[NativeObjectRegistry] Native object "${name}" not found.
4438
4633
  Available objects: ${this.listNames().join(", ")}`;
4439
- throw new chunkRYAQOR7M_js.NotFoundError("Native object", name, chunkRYAQOR7M_js.SchemaErrorCode.OBJECT_NOT_FOUND, message);
4634
+ throw new chunkZBWTAKZO_js.NotFoundError("Native object", name, chunkZBWTAKZO_js.SchemaErrorCode.OBJECT_NOT_FOUND, message);
4440
4635
  }
4441
4636
  return object2;
4442
4637
  }
@@ -4535,19 +4730,36 @@ var SKILL_OBJECT = object({ name: "skill", label: "Skill" }).sealed().icon("spar
4535
4730
  )
4536
4731
  ).attribute(richtext({ name: "content", label: "Content" }).defaultValue(SKILL_CONTENT_TEMPLATE)).build();
4537
4732
  var SKILL_VIEW = detailView("skill-detail", "Skill").for("skill").default().sidePanel({ attributes: ["name", "description"] }).tab("content", "Content").richtext("content").titleAttribute("name").done().tab("files", "Files").documents().done().build();
4538
- var SKILL_LIST_VIEW = listView("skill-list", "Skills").for("skill").default().tab("workspace", "Skills").default().icon("table").visibility("workspace").table().columns("name", "description").sort("name", "asc").tab("mine", "Mes skills").icon("lock").visibility("private").table().columns("name", "description").sort("name", "asc").build();
4539
- var MEMORY_OBJECT = object({ name: "memory", label: "Memory" }).sealed().icon("database").order(Number.MAX_SAFE_INTEGER).pluralLabel("Memories").labelExpression("{{ name }}").embeddingExpression("{{ name }}\n{{ description }}\n{{ content }}").attribute(text({ name: "name", label: "Name" }).maxLength(constants.MEMORY_NAME_MAX_LENGTH).required()).attribute(
4733
+ var SKILL_LIST_VIEW = listView("skill-list", "Skills").for("skill").default().tab("workspace", "Skills").default().icon("table").visibility("workspace").table().columns("name", "description").sort("name", "asc").tab("mine", "My skills").icon("lock").visibility("private").table().columns("name", "description").sort("name", "asc").build();
4734
+ var MEMORY_OBJECT = object({ name: "memory", label: "Memory" }).sealed().icon("database").order(Number.MAX_SAFE_INTEGER).pluralLabel("Memories").labelExpression("{{ name }}").embeddingExpression("{{ name }}\n{{ description }}\n{{ content }}").migration(2, (migration) => migration.changeType("content", "text", "richtext")).attribute(text({ name: "name", label: "Name" }).maxLength(constants.MEMORY_NAME_MAX_LENGTH).required()).attribute(
4540
4735
  text({ name: "description", label: "Description" }).multiline().maxLength(constants.MEMORY_DESCRIPTION_MAX_LENGTH).required()
4541
- ).attribute(text({ name: "content", label: "Content" }).multiline()).attribute(
4736
+ ).attribute(richtext({ name: "content", label: "Content" })).attribute(
4542
4737
  select({ name: "kind", label: "Kind" }).options([
4543
4738
  { value: "fact", label: "Fact" },
4544
4739
  { value: "preference", label: "Preference" },
4545
4740
  { value: "feedback", label: "Feedback" },
4546
4741
  { value: "reference", label: "Reference" }
4547
4742
  ])
4548
- ).attribute(relation({ name: "subjects", label: "Subjects" }).toAny().many()).attribute(relation({ name: "links", label: "Links" }).to("memory").many()).build();
4549
- var MEMORY_VIEW = detailView("memory-detail", "Memory").for("memory").default().sidePanel({ attributes: ["name", "description", "kind", "subjects", "links"] }).tab("content", "Content").form(group("content", "Content").field("content", { span: 12 })).build();
4550
- var MEMORY_LIST_VIEW = listView("memory-list", "Memories").for("memory").default().tab("workspace", "Memories").default().icon("table").visibility("workspace").table().columns("name", "kind", "description", "createdAt").sort("name", "asc").tab("mine", "Mes m\xE9moires").icon("lock").visibility("private").table().columns("name", "kind", "description", "createdAt").sort("name", "asc").build();
4743
+ ).attribute(relation({ name: "subjects", label: "Subjects" }).toAny().many()).attribute(relation({ name: "links", label: "Links" }).to("memory").many()).attribute(
4744
+ select({ name: "source", label: "Source" }).options([
4745
+ { value: "explicit", label: "Saved by an agent" },
4746
+ { value: "extracted", label: "Extracted from a session" },
4747
+ { value: "corroborated", label: "Corroborated across users" }
4748
+ ])
4749
+ ).attribute(date({ name: "validFrom", label: "Valid from" }).includeTime()).attribute(date({ name: "invalidAt", label: "Invalid at" }).includeTime()).attribute(relation({ name: "supersededBy", label: "Superseded by" }).to("memory")).build();
4750
+ var MEMORY_VIEW = detailView("memory-detail", "Memory").for("memory").default().sidePanel({
4751
+ attributes: [
4752
+ "description",
4753
+ "kind",
4754
+ "source",
4755
+ "validFrom",
4756
+ "invalidAt",
4757
+ "supersededBy",
4758
+ "subjects",
4759
+ "links"
4760
+ ]
4761
+ }).tab("content", "Content").richtext("content").titleAttribute("name").build();
4762
+ var MEMORY_LIST_VIEW = listView("memory-list", "Memories").for("memory").default().tab("workspace", "Memories").default().icon("table").visibility("workspace").table().columns("name", "kind", "description", "createdAt").sort("name", "asc").tab("mine", "My memories").icon("lock").visibility("private").table().columns("name", "kind", "description", "createdAt").sort("name", "asc").build();
4551
4763
 
4552
4764
  // src/views/registry.ts
4553
4765
  function cloneViewDefinition(view) {
@@ -4575,7 +4787,7 @@ var ViewRegistry = class {
4575
4787
  const key = this.makeKey(view.object, view.name, view.type);
4576
4788
  if (this.views.has(key)) {
4577
4789
  const message = `[ViewRegistry] Duplicate view: "${view.name}" (${view.type}) for object "${view.object}"`;
4578
- throw new chunkRYAQOR7M_js.DuplicateError("view", key, message);
4790
+ throw new chunkZBWTAKZO_js.DuplicateError("view", key, message);
4579
4791
  }
4580
4792
  const storedView = cloneViewDefinition(view);
4581
4793
  this.views.set(key, storedView);
@@ -4620,7 +4832,7 @@ var ViewRegistry = class {
4620
4832
  const availableNames = available.map((v) => `${v.name} (${v.type})`).join(", ") || "(none)";
4621
4833
  const message = `[ViewRegistry] View "${viewName}" not found for object "${objectName}".
4622
4834
  Available views: ${availableNames}`;
4623
- throw new chunkRYAQOR7M_js.NotFoundError("View", `${objectName}:${viewName}`, void 0, message);
4835
+ throw new chunkZBWTAKZO_js.NotFoundError("View", `${objectName}:${viewName}`, void 0, message);
4624
4836
  }
4625
4837
  return view;
4626
4838
  }
@@ -4708,7 +4920,7 @@ var viewRegistry = new ViewRegistry();
4708
4920
  // src/views/auto-generator.ts
4709
4921
  function getRuntimeAttributes(attributes, excludeNames = []) {
4710
4922
  return attributes.filter(
4711
- (attr) => !(!chunkF32XOFSP_js.getAttributeCapabilities(attr).lifecycle.visibleInRuntime || attr.system || excludeNames.includes(attr.name))
4923
+ (attr) => !(!chunkQMAVKX3Y_js.getAttributeCapabilities(attr).lifecycle.visibleInRuntime || attr.system || excludeNames.includes(attr.name))
4712
4924
  );
4713
4925
  }
4714
4926
  function sortAttributes(attributes) {
@@ -4741,7 +4953,7 @@ function generateDefaultDetailView(object2, options = {}) {
4741
4953
  const { includeActivityTab = true, includeDocumentsTab = true, excludeAttributes = [] } = options;
4742
4954
  const runtimeAttrs = getRuntimeAttributes(object2.attributes, excludeAttributes);
4743
4955
  const sortedAttrs = sortAttributes(
4744
- runtimeAttrs.filter((attr) => chunkF32XOFSP_js.getAttributeCapabilities(attr).presentation.formField)
4956
+ runtimeAttrs.filter((attr) => chunkQMAVKX3Y_js.getAttributeCapabilities(attr).presentation.formField)
4745
4957
  );
4746
4958
  const formTab = {
4747
4959
  id: "form",
@@ -4798,7 +5010,7 @@ function generateDefaultListView(object2, options = {}) {
4798
5010
  const { excludeAttributes = [], maxListColumns = 5 } = options;
4799
5011
  const runtimeAttrs = getRuntimeAttributes(object2.attributes, excludeAttributes);
4800
5012
  const sortedAttrs = sortAttributes(
4801
- runtimeAttrs.filter((attr) => chunkF32XOFSP_js.getAttributeCapabilities(attr).presentation.defaultColumn)
5013
+ runtimeAttrs.filter((attr) => chunkQMAVKX3Y_js.getAttributeCapabilities(attr).presentation.defaultColumn)
4802
5014
  );
4803
5015
  const columns = sortedAttrs.slice(0, maxListColumns).map((attr) => attr.name);
4804
5016
  const config = {
@@ -4928,7 +5140,7 @@ var FormRegistry = class {
4928
5140
  const forms = Array.isArray(formOrForms) ? formOrForms : [formOrForms];
4929
5141
  for (const f of forms) {
4930
5142
  if (this.forms.has(f.name)) {
4931
- throw new chunkRYAQOR7M_js.DuplicateError("form", f.name, `[FormRegistry] Duplicate form: "${f.name}"`);
5143
+ throw new chunkZBWTAKZO_js.DuplicateError("form", f.name, `[FormRegistry] Duplicate form: "${f.name}"`);
4932
5144
  }
4933
5145
  this.forms.set(f.name, cloneFormDefinition(f));
4934
5146
  }
@@ -4956,6 +5168,65 @@ var FormRegistry = class {
4956
5168
  };
4957
5169
  var formRegistry = new FormRegistry();
4958
5170
 
5171
+ // src/realtime/agent-ui-message-batch.ts
5172
+ var AGENT_UI_BATCH_MAX_BYTES = 204800;
5173
+ var AGENT_UI_BATCH_MAX_ITEMS = 256;
5174
+ function isRecord(value) {
5175
+ return typeof value === "object" && value !== null && !Array.isArray(value);
5176
+ }
5177
+ function hasExactKeys(value, allowed) {
5178
+ const keys = Object.keys(value);
5179
+ return keys.length === allowed.length && keys.every((key) => allowed.includes(key));
5180
+ }
5181
+ function isPositiveInteger(value) {
5182
+ return typeof value === "number" && Number.isInteger(value) && value > 0;
5183
+ }
5184
+ function isNonNegativeInteger(value) {
5185
+ return typeof value === "number" && Number.isInteger(value) && value >= 0;
5186
+ }
5187
+ function isContentRange(value) {
5188
+ if (!(isRecord(value) && hasExactKeys(value, ["kind", "startOffset", "endOffset"]))) {
5189
+ return false;
5190
+ }
5191
+ return (value.kind === "text" || value.kind === "reasoning") && isNonNegativeInteger(value.startOffset) && isNonNegativeInteger(value.endOffset) && value.endOffset >= value.startOffset;
5192
+ }
5193
+ function isBatchItem(value) {
5194
+ if (!isRecord(value)) return false;
5195
+ const expectedKeys = value.content === void 0 ? ["sequence", "chunk"] : ["sequence", "content", "chunk"];
5196
+ return hasExactKeys(value, expectedKeys) && isPositiveInteger(value.sequence) && value.chunk !== void 0 && (value.content === void 0 || isContentRange(value.content));
5197
+ }
5198
+ function encodedSize(value) {
5199
+ try {
5200
+ return new TextEncoder().encode(JSON.stringify(value)).byteLength;
5201
+ } catch {
5202
+ return void 0;
5203
+ }
5204
+ }
5205
+ function isAgentUIMessageBatch(value) {
5206
+ if (!(isRecord(value) && hasExactKeys(value, [
5207
+ "schemaVersion",
5208
+ "batchId",
5209
+ "tenantId",
5210
+ "sessionId",
5211
+ "streamId",
5212
+ "sequenceStart",
5213
+ "sequenceEnd",
5214
+ "items"
5215
+ ])) || value.schemaVersion !== 1 || typeof value.batchId !== "string" || value.batchId.trim() === "" || typeof value.tenantId !== "string" || value.tenantId.trim() === "" || typeof value.sessionId !== "string" || value.sessionId.trim() === "" || typeof value.streamId !== "string" || value.streamId.trim() === "" || !isPositiveInteger(value.sequenceStart) || !isPositiveInteger(value.sequenceEnd) || !Array.isArray(value.items) || value.items.length === 0 || value.items.length > AGENT_UI_BATCH_MAX_ITEMS || !value.items.every(isBatchItem)) {
5216
+ return false;
5217
+ }
5218
+ let previous = 0;
5219
+ for (const item of value.items) {
5220
+ if (item.sequence <= previous) return false;
5221
+ previous = item.sequence;
5222
+ }
5223
+ if (value.items[0]?.sequence !== value.sequenceStart || value.items.at(-1)?.sequence !== value.sequenceEnd) {
5224
+ return false;
5225
+ }
5226
+ const size = encodedSize(value);
5227
+ return size !== void 0 && size <= AGENT_UI_BATCH_MAX_BYTES;
5228
+ }
5229
+
4959
5230
  // src/realtime/channels.ts
4960
5231
  function liveChannelKey(channel) {
4961
5232
  switch (channel.kind) {
@@ -5021,47 +5292,6 @@ function parseLiveChannelKey(key) {
5021
5292
  return null;
5022
5293
  }
5023
5294
 
5024
- // src/realtime/cursors.ts
5025
- var LIVE_STREAM_START_CURSOR = "0-0";
5026
- var LIVE_STREAM_CURSOR_PATTERN = /^(0|[1-9]\d*)-(0|[1-9]\d*)$/;
5027
- function parseLiveStreamCursor(cursor) {
5028
- if (!LIVE_STREAM_CURSOR_PATTERN.test(cursor)) {
5029
- return null;
5030
- }
5031
- const [milliseconds = "0", sequence = "0"] = cursor.split("-");
5032
- return [BigInt(milliseconds), BigInt(sequence)];
5033
- }
5034
- function isLiveStreamCursor(value) {
5035
- return typeof value === "string" && parseLiveStreamCursor(value) !== null;
5036
- }
5037
- function assertLiveStreamCursor(cursor, label = "cursor") {
5038
- if (cursor === null) {
5039
- return;
5040
- }
5041
- if (!isLiveStreamCursor(cursor)) {
5042
- throw new Error(`Invalid live stream cursor for ${label}: ${cursor}`);
5043
- }
5044
- }
5045
- function compareLiveStreamCursors(left, right) {
5046
- const leftCursor = parseLiveStreamCursor(left);
5047
- if (!leftCursor) {
5048
- throw new Error(`Invalid live stream cursor for left: ${left}`);
5049
- }
5050
- const rightCursor = parseLiveStreamCursor(right);
5051
- if (!rightCursor) {
5052
- throw new Error(`Invalid live stream cursor for right: ${right}`);
5053
- }
5054
- const [leftMilliseconds, leftSequence] = leftCursor;
5055
- const [rightMilliseconds, rightSequence] = rightCursor;
5056
- if (leftMilliseconds !== rightMilliseconds) {
5057
- return leftMilliseconds < rightMilliseconds ? -1 : 1;
5058
- }
5059
- if (leftSequence !== rightSequence) {
5060
- return leftSequence < rightSequence ? -1 : 1;
5061
- }
5062
- return 0;
5063
- }
5064
-
5065
5295
  // src/realtime/events.ts
5066
5296
  var BROWSER_PREVIEW_STATUSES = ["live", "paused", "ended", "disconnected"];
5067
5297
  var LIVE_EVENT_TYPE_REGISTRY = {
@@ -5146,13 +5376,13 @@ function isLiveEventType(value) {
5146
5376
  return typeof value === "string" && LIVE_EVENT_TYPES.includes(value);
5147
5377
  }
5148
5378
  function isLiveEventPayload(payload) {
5149
- if (!(isRecord(payload) && isLiveEventType(payload.type))) {
5379
+ if (!(isRecord2(payload) && isLiveEventType(payload.type))) {
5150
5380
  return false;
5151
5381
  }
5152
5382
  return isLiveEventPayloadForType(payload.type, payload);
5153
5383
  }
5154
5384
  function isLiveEventPayloadForType(type, payload) {
5155
- if (!isRecord(payload)) {
5385
+ if (!isRecord2(payload)) {
5156
5386
  return false;
5157
5387
  }
5158
5388
  switch (type) {
@@ -5186,7 +5416,7 @@ function isLiveEventPayloadForType(type, payload) {
5186
5416
  return false;
5187
5417
  }
5188
5418
  }
5189
- function isRecord(value) {
5419
+ function isRecord2(value) {
5190
5420
  return typeof value === "object" && value !== null && !Array.isArray(value);
5191
5421
  }
5192
5422
  function isString(value) {
@@ -5248,13 +5478,13 @@ function isNotificationWorkState(value) {
5248
5478
  return isOneOf(value, NOTIFICATION_WORK_STATES);
5249
5479
  }
5250
5480
  function isNotificationSubject(value) {
5251
- return isRecord(value) && hasString(value, "type") && hasString(value, "id");
5481
+ return isRecord2(value) && hasString(value, "type") && hasString(value, "id");
5252
5482
  }
5253
5483
  function isRecordFieldPatch(value) {
5254
- return isRecord(value) && hasString(value, "fieldKey") && Object.hasOwn(value, "value") && hasVersion(value, "version");
5484
+ return isRecord2(value) && hasString(value, "fieldKey") && Object.hasOwn(value, "value") && hasVersion(value, "version");
5255
5485
  }
5256
5486
  function isRecordPatchPayload(payload) {
5257
- return payload.type === "record.patch" && hasString(payload, "objectId") && hasString(payload, "recordId") && hasVersion(payload, "recordVersion") && hasOptional(payload, "label", isString) && hasOptional(payload, "metadata", isRecord) && Array.isArray(payload.fieldPatches) && payload.fieldPatches.every(isRecordFieldPatch) && hasString(payload, "updatedAt");
5487
+ 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");
5258
5488
  }
5259
5489
  function isRecordDeletedPayload(payload) {
5260
5490
  return payload.type === "record.deleted" && hasString(payload, "objectId") && hasString(payload, "recordId") && hasVersion(payload, "recordVersion") && hasString(payload, "deletedAt");
@@ -5263,7 +5493,7 @@ function isRecordRemovedPayload(payload) {
5263
5493
  return payload.type === "record.removed" && hasOnlyKeys(payload, RECORD_REMOVED_PAYLOAD_KEYS) && hasString(payload, "objectId") && hasString(payload, "recordId") && hasVersion(payload, "recordVersion");
5264
5494
  }
5265
5495
  function isRecordLiveSnapshot(value) {
5266
- return isRecord(value) && hasOnlyKeys(value, RECORD_LIVE_SNAPSHOT_KEYS) && hasString(value, "id") && hasString(value, "objectId") && isOneOf(value.visibility, ["workspace", "private"]) && isNullableString(value.ownedBy) && (value.visibility === "workspace" && value.ownedBy === null || value.visibility === "private" && isNonEmptyString(value.ownedBy)) && hasString(value, "label") && isRecord(value.values) && hasOptional(value, "metadata", isRecord) && hasIsoDateString(value, "createdAt") && hasIsoDateString(value, "updatedAt") && hasOptional(value, "createdBy", isString) && hasOptional(value, "lastUpdatedBy", isString) && hasVersion(value, "schemaVersion");
5496
+ return isRecord2(value) && hasOnlyKeys(value, RECORD_LIVE_SNAPSHOT_KEYS) && hasString(value, "id") && hasString(value, "objectId") && isOneOf(value.visibility, ["workspace", "private"]) && isNullableString(value.ownedBy) && (value.visibility === "workspace" && value.ownedBy === null || value.visibility === "private" && isNonEmptyString(value.ownedBy)) && hasString(value, "label") && isRecord2(value.values) && hasOptional(value, "metadata", isRecord2) && hasIsoDateString(value, "createdAt") && hasIsoDateString(value, "updatedAt") && hasOptional(value, "createdBy", isString) && hasOptional(value, "lastUpdatedBy", isString) && hasVersion(value, "schemaVersion");
5267
5497
  }
5268
5498
  function isRecordCreatedPayload(payload) {
5269
5499
  return payload.type === "record.created" && hasOnlyKeys(payload, RECORD_CREATED_PAYLOAD_KEYS) && hasString(payload, "objectId") && hasString(payload, "recordId") && hasVersion(payload, "recordVersion") && isRecordLiveSnapshot(payload.record) && payload.record.id === payload.recordId && payload.record.objectId === payload.objectId;
@@ -5272,19 +5502,19 @@ function isViewProjectionStalePayload(payload) {
5272
5502
  return payload.type === "view.projection.stale" && hasString(payload, "viewId") && isOneOf(payload.reason, VIEW_PROJECTION_STALE_REASONS);
5273
5503
  }
5274
5504
  function isAgentSessionPatchPayload(payload) {
5275
- return payload.type === "agent.session.patch" && hasString(payload, "sessionId") && isRecord(payload.patch) && hasVersion(payload, "version") && hasString(payload, "updatedAt");
5505
+ return payload.type === "agent.session.patch" && hasString(payload, "sessionId") && isRecord2(payload.patch) && hasVersion(payload, "version") && hasString(payload, "updatedAt");
5276
5506
  }
5277
5507
  function isAgentUnreadPatchPayload(payload) {
5278
- return payload.type === "agent.unread.patch" && hasString(payload, "targetActorId") && hasString(payload, "sessionId") && hasVersion(payload, "unreadCount") && hasVersion(payload, "version") && hasString(payload, "updatedAt") && (!Object.hasOwn(payload, "session") || isRecord(payload.session) && payload.session.id === payload.sessionId);
5508
+ return payload.type === "agent.unread.patch" && hasString(payload, "targetActorId") && hasString(payload, "sessionId") && hasVersion(payload, "unreadCount") && hasVersion(payload, "version") && hasString(payload, "updatedAt") && (!Object.hasOwn(payload, "session") || isRecord2(payload.session) && payload.session.id === payload.sessionId);
5279
5509
  }
5280
5510
  function isLiveNotification(value) {
5281
- return isRecord(value) && hasString(value, "id") && hasString(value, "tenantId") && hasOptional(value, "senderActorId", isString) && hasOptional(value, "rootActorId", isString) && hasOptional(value, "triggeredByActorId", isString) && isNotificationKind(value.kind) && hasString(value, "type") && hasOptional(value, "subject", isNotificationSubject) && hasString(value, "title") && hasOptional(value, "summary", isString) && isRecord(value.payload) && isNotificationPriority(value.priority) && isNotificationSensitivity(value.sensitivity) && hasOptional(value, "threadKey", isString) && hasOptional(value, "idempotencyKey", isString) && hasOptional(value, "expiresAt", isIsoDateString) && hasIsoDateString(value, "createdAt") && hasIsoDateString(value, "updatedAt");
5511
+ return isRecord2(value) && hasString(value, "id") && hasString(value, "tenantId") && hasOptional(value, "senderActorId", isString) && hasOptional(value, "rootActorId", isString) && hasOptional(value, "triggeredByActorId", isString) && isNotificationKind(value.kind) && hasString(value, "type") && hasOptional(value, "subject", isNotificationSubject) && hasString(value, "title") && hasOptional(value, "summary", isString) && isRecord2(value.payload) && isNotificationPriority(value.priority) && isNotificationSensitivity(value.sensitivity) && hasOptional(value, "threadKey", isString) && hasOptional(value, "idempotencyKey", isString) && hasOptional(value, "expiresAt", isIsoDateString) && hasIsoDateString(value, "createdAt") && hasIsoDateString(value, "updatedAt");
5282
5512
  }
5283
5513
  function isLiveNotificationRecipient(value) {
5284
- return isRecord(value) && hasString(value, "id") && hasString(value, "tenantId") && hasString(value, "notificationId") && hasString(value, "recipientActorId") && isNotificationInboxState(value.inboxState) && isNotificationWorkState(value.workState) && hasOptional(value, "lockedAt", isIsoDateString) && hasOptional(value, "lockedByActorId", isString) && hasOptional(value, "readAt", isIsoDateString) && hasOptional(value, "archivedAt", isIsoDateString) && hasOptional(value, "snoozedUntil", isIsoDateString) && hasOptional(value, "completedAt", isIsoDateString) && hasOptional(value, "dismissedAt", isIsoDateString) && hasIsoDateString(value, "createdAt") && hasIsoDateString(value, "updatedAt");
5514
+ return isRecord2(value) && hasString(value, "id") && hasString(value, "tenantId") && hasString(value, "notificationId") && hasString(value, "recipientActorId") && isNotificationInboxState(value.inboxState) && isNotificationWorkState(value.workState) && hasOptional(value, "lockedAt", isIsoDateString) && hasOptional(value, "lockedByActorId", isString) && hasOptional(value, "readAt", isIsoDateString) && hasOptional(value, "archivedAt", isIsoDateString) && hasOptional(value, "snoozedUntil", isIsoDateString) && hasOptional(value, "completedAt", isIsoDateString) && hasOptional(value, "dismissedAt", isIsoDateString) && hasIsoDateString(value, "createdAt") && hasIsoDateString(value, "updatedAt");
5285
5515
  }
5286
5516
  function isNotificationRecipientPatch(value) {
5287
- if (!isRecord(value)) {
5517
+ if (!isRecord2(value)) {
5288
5518
  return false;
5289
5519
  }
5290
5520
  return Object.keys(value).every(
@@ -5308,14 +5538,14 @@ function isConversationRenamedPayload(payload) {
5308
5538
  }
5309
5539
  function isBrowserPreviewUpdatedPayload(payload) {
5310
5540
  const preview = payload.preview;
5311
- return payload.type === "browser.preview.updated" && hasOnlyKeys(payload, BROWSER_PREVIEW_UPDATED_PAYLOAD_KEYS) && isRecord(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}`;
5541
+ 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}`;
5312
5542
  }
5313
5543
  function isChannelRevokedPayload(payload) {
5314
5544
  return payload.type === "channel.revoked" && hasString(payload, "channel") && isOneOf(payload.reason, CHANNEL_REVOKED_REASONS);
5315
5545
  }
5316
5546
 
5317
5547
  // src/realtime/protocol.ts
5318
- function isRecord2(value) {
5548
+ function isRecord3(value) {
5319
5549
  return typeof value === "object" && value !== null && !Array.isArray(value);
5320
5550
  }
5321
5551
  function payloadChannel(payload) {
@@ -5323,46 +5553,11 @@ function payloadChannel(payload) {
5323
5553
  return typeof channel === "string" && parseLiveChannelKey(channel) ? channel : null;
5324
5554
  }
5325
5555
  function getLiveProtocolPayloadChannel(payload) {
5326
- return isRecord2(payload) ? payloadChannel(payload) : null;
5556
+ return isRecord3(payload) ? payloadChannel(payload) : null;
5327
5557
  }
5328
5558
  function isLiveEventEnvelope(payload) {
5329
- if (!isRecord2(payload)) return false;
5330
- return typeof payload.id === "string" && isLiveStreamCursor(payload.id) && typeof payload.channel === "string" && typeof payload.type === "string" && typeof payload.tenantId === "string" && payload.tenantId.length > 0 && typeof payload.occurredAt === "string" && isRecord2(payload.payload);
5331
- }
5332
- function parseLiveSubscribePayload(payload) {
5333
- if (!isRecord2(payload)) return null;
5334
- const channel = payloadChannel(payload);
5335
- if (!channel) return null;
5336
- const { cursor } = payload;
5337
- if (cursor !== void 0 && cursor !== null) {
5338
- if (typeof cursor !== "string" || !isLiveStreamCursor(cursor)) {
5339
- return null;
5340
- }
5341
- }
5342
- return { channel, cursor: cursor ?? null };
5343
- }
5344
- function parseLiveUnsubscribePayload(payload) {
5345
- if (payload === void 0 || payload === null) return {};
5346
- if (!isRecord2(payload)) return null;
5347
- if (!Object.hasOwn(payload, "channel")) {
5348
- return {};
5349
- }
5350
- const channel = payloadChannel(payload);
5351
- return channel ? { channel } : null;
5352
- }
5353
- function isLiveReplayCompletePayload(payload) {
5354
- if (!isRecord2(payload)) return false;
5355
- const channel = payloadChannel(payload);
5356
- if (!channel) return false;
5357
- return payload.cursor === null || typeof payload.cursor === "string" && isLiveStreamCursor(payload.cursor);
5358
- }
5359
- function isLiveGapPayload(payload) {
5360
- if (!isRecord2(payload)) return false;
5361
- return payloadChannel(payload) !== null;
5362
- }
5363
- function isLiveErrorPayload(payload) {
5364
- if (!isRecord2(payload)) return false;
5365
- return payloadChannel(payload) !== null;
5559
+ if (!isRecord3(payload)) return false;
5560
+ return typeof payload.id === "string" && payload.id.length > 0 && typeof payload.channel === "string" && typeof payload.type === "string" && typeof payload.tenantId === "string" && payload.tenantId.length > 0 && typeof payload.occurredAt === "string" && isRecord3(payload.payload);
5366
5561
  }
5367
5562
 
5368
5563
  // src/computed/functions.ts
@@ -5506,7 +5701,7 @@ function assertAcyclicComputedDependencies(nodes) {
5506
5701
  }
5507
5702
  function parseCompileFormula(expression) {
5508
5703
  try {
5509
- return chunkKKR6I3YV_js.parseComputedFormula(expression);
5704
+ return chunkDEHBEFGO_js.parseComputedFormula(expression);
5510
5705
  } catch (error) {
5511
5706
  if (error instanceof Error) {
5512
5707
  throw new ComputedFormulaCompileError(error.message);
@@ -6148,14 +6343,14 @@ function resolvePathPart(value, part) {
6148
6343
  if (Array.isArray(value)) {
6149
6344
  return value.map((item) => resolvePathPart(item, part));
6150
6345
  }
6151
- if (!isPlainRecord(value)) {
6346
+ if (!isPlainRecord2(value)) {
6152
6347
  return null;
6153
6348
  }
6154
6349
  if (Object.hasOwn(value, part)) {
6155
6350
  return value[part] ?? null;
6156
6351
  }
6157
6352
  const nestedValues = value.values;
6158
- if (isPlainRecord(nestedValues) && Object.hasOwn(nestedValues, part)) {
6353
+ if (isPlainRecord2(nestedValues) && Object.hasOwn(nestedValues, part)) {
6159
6354
  return nestedValues[part] ?? null;
6160
6355
  }
6161
6356
  return null;
@@ -6257,9 +6452,9 @@ function evaluateCall(functionName, args) {
6257
6452
  case "percent_not_empty":
6258
6453
  return percentByEmptyState(args[0], false);
6259
6454
  case "count_empty":
6260
- return collectionItems(args[0]).filter(chunkFMLZHHWB_js.isNullishOrEmptyString).length;
6455
+ return collectionItems(args[0]).filter(chunkZEPGMHCK_js.isNullishOrEmptyString).length;
6261
6456
  case "count_not_empty":
6262
- return collectionItems(args[0]).filter((item) => !chunkFMLZHHWB_js.isNullishOrEmptyString(item)).length;
6457
+ return collectionItems(args[0]).filter((item) => !chunkZEPGMHCK_js.isNullishOrEmptyString(item)).length;
6263
6458
  case "count_unique":
6264
6459
  return uniqueNonEmpty(collectionItems(args[0])).length;
6265
6460
  default:
@@ -6302,14 +6497,14 @@ function percentByEmptyState(value, countEmpty) {
6302
6497
  if (items.length === 0) {
6303
6498
  return 0;
6304
6499
  }
6305
- const count = items.filter((item) => chunkFMLZHHWB_js.isNullishOrEmptyString(item) === countEmpty).length;
6500
+ const count = items.filter((item) => chunkZEPGMHCK_js.isNullishOrEmptyString(item) === countEmpty).length;
6306
6501
  return count / items.length;
6307
6502
  }
6308
6503
  function uniqueNonEmpty(values) {
6309
6504
  const seen = /* @__PURE__ */ new Set();
6310
6505
  const result = [];
6311
6506
  for (const value of values) {
6312
- if (chunkFMLZHHWB_js.isNullishOrEmptyString(value)) {
6507
+ if (chunkZEPGMHCK_js.isNullishOrEmptyString(value)) {
6313
6508
  continue;
6314
6509
  }
6315
6510
  const key = uniqueKey(value);
@@ -6338,14 +6533,23 @@ function toFiniteNumber(value) {
6338
6533
  const parsed = Number(value);
6339
6534
  return Number.isFinite(parsed) ? parsed : null;
6340
6535
  }
6536
+ if (isCurrencyValue(value)) {
6537
+ return Number.isFinite(value.value) ? value.value : null;
6538
+ }
6341
6539
  return null;
6342
6540
  }
6541
+ function isCurrencyValue(value) {
6542
+ return typeof value === "object" && value !== null && typeof value.value === "number" && typeof value.code === "string";
6543
+ }
6343
6544
  function toDate(value) {
6344
6545
  if (value instanceof Date) {
6345
6546
  return Number.isNaN(value.getTime()) ? null : value;
6346
6547
  }
6347
6548
  if (typeof value !== "string") {
6348
- return null;
6549
+ const start = dateValueStart(value);
6550
+ if (start === null) return null;
6551
+ const ranged = new Date(start);
6552
+ return Number.isNaN(ranged.getTime()) ? null : ranged;
6349
6553
  }
6350
6554
  const date2 = new Date(value);
6351
6555
  return Number.isNaN(date2.getTime()) ? null : date2;
@@ -6360,7 +6564,7 @@ function uniqueKey(value) {
6360
6564
  }
6361
6565
  return `${typeof value}:${JSON.stringify(value)}`;
6362
6566
  }
6363
- function isPlainRecord(value) {
6567
+ function isPlainRecord2(value) {
6364
6568
  return typeof value === "object" && value !== null && !Array.isArray(value);
6365
6569
  }
6366
6570
  function formatComputedResult(value, returnType, decimals) {
@@ -6414,11 +6618,11 @@ function evaluateComputedAst(node, input) {
6414
6618
  return evaluateAst(node, input);
6415
6619
  }
6416
6620
  function evaluateComputedFormula(expression, input) {
6417
- return evaluateAst(chunkKKR6I3YV_js.parseComputedFormula(expression), input);
6621
+ return evaluateAst(chunkDEHBEFGO_js.parseComputedFormula(expression), input);
6418
6622
  }
6419
6623
  function evaluateComputedFormulaWithResult(expression, input, returnType, decimals) {
6420
6624
  try {
6421
- const raw = evaluateAst(chunkKKR6I3YV_js.parseComputedFormula(expression), input);
6625
+ const raw = evaluateAst(chunkDEHBEFGO_js.parseComputedFormula(expression), input);
6422
6626
  const value = returnType ? formatComputedResult(raw, returnType, decimals) : raw;
6423
6627
  return { value };
6424
6628
  } catch (error) {
@@ -6543,10 +6747,10 @@ var COMPUTED_FUNCTION_METADATA = [
6543
6747
  ];
6544
6748
 
6545
6749
  // src/filters/operators.ts
6546
- var isEmpty = (v) => chunkFMLZHHWB_js.isNullishOrEmptyString(v) || Array.isArray(v) && v.length === 0;
6750
+ var isEmpty = (v) => chunkZEPGMHCK_js.isNullishOrEmptyString(v) || Array.isArray(v) && v.length === 0;
6547
6751
  var toStr = (v) => v == null ? "" : String(v);
6548
6752
  var toNum = (v) => {
6549
- if (chunkFMLZHHWB_js.isNullishOrEmptyString(v)) return null;
6753
+ if (chunkZEPGMHCK_js.isNullishOrEmptyString(v)) return null;
6550
6754
  const n = typeof v === "number" ? v : Number(v);
6551
6755
  return Number.isFinite(n) ? n : null;
6552
6756
  };
@@ -6679,7 +6883,7 @@ var OPERATOR_SPECS = {
6679
6883
  appliesTo: ["date"],
6680
6884
  evaluateInMemory: (v, rv) => {
6681
6885
  const d = toDate2(v);
6682
- const bounds = chunkF32XOFSP_js.resolveIsWithinBounds(rv);
6886
+ const bounds = chunkQMAVKX3Y_js.resolveIsWithinBounds(rv);
6683
6887
  if (!(d && bounds)) return false;
6684
6888
  return d.getTime() >= bounds.startMs && d.getTime() < bounds.endMs;
6685
6889
  }
@@ -6715,7 +6919,7 @@ var OPERATOR_SPECS = {
6715
6919
  // src/filters/evaluate.ts
6716
6920
  var systemAttribute = (name, type) => ({ id: `system:${name}`, name, label: name, type, system: true });
6717
6921
  var RECORD_SYSTEM_ATTRIBUTES = [
6718
- ...Object.entries(chunkF32XOFSP_js.SYSTEM_FILTER_ATTRIBUTE_TYPES).map(
6922
+ ...Object.entries(chunkQMAVKX3Y_js.SYSTEM_FILTER_ATTRIBUTE_TYPES).map(
6719
6923
  ([name, type]) => systemAttribute(name, type)
6720
6924
  )
6721
6925
  ];
@@ -6756,7 +6960,7 @@ function evaluateRule(rule, values, attrByName) {
6756
6960
  (definition) => definition.name === rule.property
6757
6961
  );
6758
6962
  if (!property) return false;
6759
- const positiveOperator = chunkF32XOFSP_js.normalizeForEdgeRpc(rule.operator);
6963
+ const positiveOperator = chunkQMAVKX3Y_js.normalizeForEdgeRpc(rule.operator);
6760
6964
  const propertySpec = OPERATOR_SPECS[positiveOperator];
6761
6965
  if (!propertySpec?.appliesTo.includes(property.type)) return false;
6762
6966
  const rootValue = values[rule.attribute];
@@ -6774,7 +6978,7 @@ function evaluateRule(rule, values, attrByName) {
6774
6978
  property
6775
6979
  );
6776
6980
  });
6777
- return (rule.quantifier ?? chunkF32XOFSP_js.getOperatorPolarity(rule.operator)) === "none" ? !matches : matches;
6981
+ return (rule.quantifier ?? chunkQMAVKX3Y_js.getOperatorPolarity(rule.operator)) === "none" ? !matches : matches;
6778
6982
  }
6779
6983
  const spec = OPERATOR_SPECS[rule.operator];
6780
6984
  if (!spec) return false;
@@ -6801,7 +7005,8 @@ function normalizeOperatorComparands(type, operator, storedValue, ruleValue) {
6801
7005
  if (type === "phone") return normalizePhoneComparands(storedValue, ruleValue);
6802
7006
  return [normalizeComparableValue(type, storedValue), normalizeComparableValue(type, ruleValue)];
6803
7007
  }
6804
- function normalizeUtcCalendarDay(value) {
7008
+ function normalizeUtcCalendarDay(raw) {
7009
+ const value = isDateRangeValue(raw) ? dateValueStart(raw) : raw;
6805
7010
  if (value instanceof Date)
6806
7011
  return Number.isNaN(value.getTime()) ? null : value.toISOString().slice(0, 10);
6807
7012
  if (typeof value !== "string" || value === "") return null;
@@ -6822,8 +7027,9 @@ function normalizePhoneComparands(stored, rule) {
6822
7027
  return [normalizeOne(stored), normalizeOne(rule)];
6823
7028
  }
6824
7029
  function normalizeComparableValue(type, value) {
6825
- if (type === "currency") return chunkF32XOFSP_js.extractCurrencyFilterValue(value);
7030
+ if (type === "currency") return chunkQMAVKX3Y_js.extractCurrencyFilterValue(value);
6826
7031
  if (type === "date") {
7032
+ if (isDateRangeValue(value)) return dateValueStart(value);
6827
7033
  if (value instanceof Date) return Number.isNaN(value.getTime()) ? null : value.toISOString();
6828
7034
  return value;
6829
7035
  }
@@ -6859,10 +7065,10 @@ function canonicalStringify(value) {
6859
7065
  case "object":
6860
7066
  break;
6861
7067
  default:
6862
- throw new chunkRYAQOR7M_js.ValidationError(`Cannot canonicalize value of type ${typeof v}`, []);
7068
+ throw new chunkZBWTAKZO_js.ValidationError(`Cannot canonicalize value of type ${typeof v}`, []);
6863
7069
  }
6864
7070
  const obj = v;
6865
- if (seen.has(obj)) throw new chunkRYAQOR7M_js.ValidationError("Cannot canonicalize circular structure", []);
7071
+ if (seen.has(obj)) throw new chunkZBWTAKZO_js.ValidationError("Cannot canonicalize circular structure", []);
6866
7072
  seen.add(obj);
6867
7073
  try {
6868
7074
  if (Array.isArray(obj)) return `[${obj.map((e) => encode(e) ?? "null").join(",")}]`;
@@ -6892,6 +7098,20 @@ function resolveAttributeDefaultValue(attribute, ctx) {
6892
7098
  return attribute.includeTime ? ctx.now.toISOString() : dateInTimezone(ctx.now, ctx.timezone);
6893
7099
  }
6894
7100
 
7101
+ // src/utils/agent-title.ts
7102
+ var AGENT_FALLBACK_TITLE_MAX_LENGTH = 60;
7103
+ var STORAGE_PLACEHOLDER_TITLE = /^Session \d+$/;
7104
+ function buildAgentFallbackTitle(message) {
7105
+ const normalized = message.replace(/\s+/g, " ").trim().replace(/[.!?]+$/, "");
7106
+ if (!normalized) return "New conversation";
7107
+ return normalized.length > AGENT_FALLBACK_TITLE_MAX_LENGTH ? `${normalized.slice(0, AGENT_FALLBACK_TITLE_MAX_LENGTH - 1).trimEnd()}...` : normalized;
7108
+ }
7109
+ function conversationDisplayTitle(input) {
7110
+ const generated = input.generated?.trim();
7111
+ if (generated && !STORAGE_PLACEHOLDER_TITLE.test(generated)) return generated;
7112
+ return input.firstUserText ? buildAgentFallbackTitle(input.firstUserText) : input.emptyLabel;
7113
+ }
7114
+
6895
7115
  // src/utils/view-sync-payload.ts
6896
7116
  function viewSyncPayload(view) {
6897
7117
  return {
@@ -6947,10 +7167,10 @@ var attributeNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
6947
7167
  '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).'
6948
7168
  );
6949
7169
  var objectNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
6950
- if (chunkF32XOFSP_js.RESERVED_OBJECT_NAMES.includes(name)) {
7170
+ if (chunkQMAVKX3Y_js.RESERVED_OBJECT_NAMES.includes(name)) {
6951
7171
  ctx.addIssue({
6952
7172
  code: z2.z.ZodIssueCode.custom,
6953
- message: `"${name}" is a reserved object name (${chunkF32XOFSP_js.RESERVED_OBJECT_NAMES.join(", ")}) and cannot be used for a new object.`
7173
+ message: `"${name}" is a reserved object name (${chunkQMAVKX3Y_js.RESERVED_OBJECT_NAMES.join(", ")}) and cannot be used for a new object.`
6954
7174
  });
6955
7175
  }
6956
7176
  try {
@@ -6964,7 +7184,7 @@ var objectNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
6964
7184
  function withConfigCheck(schema) {
6965
7185
  return schema.superRefine((attribute, ctx) => {
6966
7186
  try {
6967
- const parsedConfig = chunkKKR6I3YV_js.parseAttributeConfigForCreate(attribute.type, {
7187
+ const parsedConfig = chunkDEHBEFGO_js.parseAttributeConfigForCreate(attribute.type, {
6968
7188
  ...attribute.config ?? {},
6969
7189
  description: attribute.description
6970
7190
  });
@@ -6980,7 +7200,7 @@ function withConfigCheck(schema) {
6980
7200
  });
6981
7201
  }
6982
7202
  } catch (error) {
6983
- if (error instanceof chunkRYAQOR7M_js.ValidationError) {
7203
+ if (error instanceof chunkZBWTAKZO_js.ValidationError) {
6984
7204
  for (const issue of error.errors) {
6985
7205
  ctx.addIssue({
6986
7206
  code: z2.z.ZodIssueCode.custom,
@@ -7027,7 +7247,7 @@ var plannedObjectSchema = z2.z.object({
7027
7247
  'Human-readable plural display label (e.g. "Devis"/"Invoices"). Defaults from `label` if omitted.'
7028
7248
  ),
7029
7249
  description: z2.z.string().optional().describe("Help text describing what this object represents."),
7030
- icon: chunkKKR6I3YV_js.iconNameSchema.describe(
7250
+ icon: chunkDEHBEFGO_js.iconNameSchema.describe(
7031
7251
  "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."
7032
7252
  ),
7033
7253
  labelExpression: labelExpressionSchema.describe(
@@ -7074,7 +7294,7 @@ var destructiveSchema = z2.z.object({
7074
7294
  )
7075
7295
  }).strict().default({ attributeRemovals: [], objectRemovals: [], renames: [] });
7076
7296
  var planSummarySchema = z2.z.string().min(1).describe(
7077
- "One or two plain-language sentences describing the change and why, shown to the human who approves or rejects the plan \u2014 this is the only free-text context they see before deciding. If `destructive` is non-empty, say plainly what will be lost (e.g. 'deletes the \"ancienMontant\" column and its data on every devis'). Do not restate the raw plan \u2014 explain intent."
7297
+ "ONE sentence naming the intent of the change \u2014 what it is for, not what it contains. The human approving it has already watched every entry land in the preview window and can read every row of the plan itself, so a recap tells them nothing they do not have. A second sentence is warranted only when `destructive` is non-empty: say plainly what will be lost (e.g. 'deletes the \"ancienMontant\" column and its data on every devis'). Never restate the plan \u2014 explain intent."
7078
7298
  );
7079
7299
  var CANONICAL_CONFIG_DESCRIPTION = "The COMPLETE config this view should end up with \u2014 not a patch. Copy the baseline returned by get_default_view and edit it, preserving every tab and setting you are not changing: anything you omit is dropped. To change the columns shown, set `tabs[].columns` (an array of attribute names) \u2014 there is no top-level `columns` on either view type. For a detail view's side panel, set `sidePanel.attributes`. Every attribute name listed must already exist on the object, or be created earlier in this same plan. ONE EXCEPTION to omit-is-dropped: a tab with `type: \"custom\"` renders a component belonging to the application, which you cannot describe or recreate. Copy every such tab through from the baseline exactly as it came, `name`, `component` and `props` untouched \u2014 dropping one, inventing one, or altering any of those three is rejected rather than applied (`name` is the tab's address in links, not its wording). Its `label` and `icon` you may change.";
7080
7300
  var BASELINE_TOKEN_DESCRIPTION = "Opaque token returned by get_default_view alongside the baseline you edited. REQUIRED when the object already exists \u2014 it proves you authored against the baseline that is still current. Must be OMITTED when this plan creates the object, which has no baseline yet.";
@@ -7085,13 +7305,13 @@ var proposedDefaultViewTargetSchema = z2.z.discriminatedUnion("viewType", [
7085
7305
  z2.z.object({
7086
7306
  objectName: viewTargetObjectNameSchema,
7087
7307
  viewType: z2.z.literal("list").describe("Targets the object's default list view (the grid)."),
7088
- canonicalConfig: chunkF32XOFSP_js.listViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
7308
+ canonicalConfig: chunkQMAVKX3Y_js.listViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
7089
7309
  baselineToken: z2.z.string().min(1).optional().describe(BASELINE_TOKEN_DESCRIPTION)
7090
7310
  }).strict(),
7091
7311
  z2.z.object({
7092
7312
  objectName: viewTargetObjectNameSchema,
7093
7313
  viewType: z2.z.literal("detail").describe("Targets the object's default detail view (the single-record view)."),
7094
- canonicalConfig: chunkF32XOFSP_js.detailViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
7314
+ canonicalConfig: chunkQMAVKX3Y_js.detailViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
7095
7315
  baselineToken: z2.z.string().min(1).optional().describe(BASELINE_TOKEN_DESCRIPTION)
7096
7316
  }).strict()
7097
7317
  ]);
@@ -7105,13 +7325,13 @@ var persistedDefaultViewTargetSchema = z2.z.discriminatedUnion("viewType", [
7105
7325
  z2.z.object({
7106
7326
  objectName: z2.z.string().min(1),
7107
7327
  viewType: z2.z.literal("list"),
7108
- canonicalConfig: chunkF32XOFSP_js.listViewConfigSchema,
7328
+ canonicalConfig: chunkQMAVKX3Y_js.listViewConfigSchema,
7109
7329
  ...persistedBaselineFields
7110
7330
  }).strict(),
7111
7331
  z2.z.object({
7112
7332
  objectName: z2.z.string().min(1),
7113
7333
  viewType: z2.z.literal("detail"),
7114
- canonicalConfig: chunkF32XOFSP_js.detailViewConfigSchema,
7334
+ canonicalConfig: chunkQMAVKX3Y_js.detailViewConfigSchema,
7115
7335
  ...persistedBaselineFields
7116
7336
  }).strict()
7117
7337
  ]).superRefine((target, ctx) => {
@@ -7340,295 +7560,303 @@ Object.defineProperty(exports, "indexBy", {
7340
7560
  });
7341
7561
  Object.defineProperty(exports, "ATTRIBUTE_FILTER_OPERATORS", {
7342
7562
  enumerable: true,
7343
- get: function () { return chunkF32XOFSP_js.ATTRIBUTE_FILTER_OPERATORS; }
7563
+ get: function () { return chunkQMAVKX3Y_js.ATTRIBUTE_FILTER_OPERATORS; }
7344
7564
  });
7345
7565
  Object.defineProperty(exports, "LIST_VIEW_TAB_VISIBILITIES", {
7346
7566
  enumerable: true,
7347
- get: function () { return chunkF32XOFSP_js.LIST_VIEW_TAB_VISIBILITIES; }
7567
+ get: function () { return chunkQMAVKX3Y_js.LIST_VIEW_TAB_VISIBILITIES; }
7348
7568
  });
7349
7569
  Object.defineProperty(exports, "NO_VALUE_OPERATORS", {
7350
7570
  enumerable: true,
7351
- get: function () { return chunkF32XOFSP_js.NO_VALUE_OPERATORS; }
7571
+ get: function () { return chunkQMAVKX3Y_js.NO_VALUE_OPERATORS; }
7352
7572
  });
7353
7573
  Object.defineProperty(exports, "OPERATORS_BY_TYPE", {
7354
7574
  enumerable: true,
7355
- get: function () { return chunkF32XOFSP_js.OPERATORS_BY_TYPE; }
7575
+ get: function () { return chunkQMAVKX3Y_js.OPERATORS_BY_TYPE; }
7356
7576
  });
7357
7577
  Object.defineProperty(exports, "REMOVED_OPERATOR_REPLACEMENTS", {
7358
7578
  enumerable: true,
7359
- get: function () { return chunkF32XOFSP_js.REMOVED_OPERATOR_REPLACEMENTS; }
7579
+ get: function () { return chunkQMAVKX3Y_js.REMOVED_OPERATOR_REPLACEMENTS; }
7360
7580
  });
7361
7581
  Object.defineProperty(exports, "RESERVED_ATTRIBUTE_NAMES", {
7362
7582
  enumerable: true,
7363
- get: function () { return chunkF32XOFSP_js.RESERVED_ATTRIBUTE_NAMES; }
7583
+ get: function () { return chunkQMAVKX3Y_js.RESERVED_ATTRIBUTE_NAMES; }
7364
7584
  });
7365
7585
  Object.defineProperty(exports, "RESERVED_OBJECT_NAMES", {
7366
7586
  enumerable: true,
7367
- get: function () { return chunkF32XOFSP_js.RESERVED_OBJECT_NAMES; }
7587
+ get: function () { return chunkQMAVKX3Y_js.RESERVED_OBJECT_NAMES; }
7368
7588
  });
7369
7589
  Object.defineProperty(exports, "RESOURCE_VISIBILITIES", {
7370
7590
  enumerable: true,
7371
- get: function () { return chunkF32XOFSP_js.RESOURCE_VISIBILITIES; }
7591
+ get: function () { return chunkQMAVKX3Y_js.RESOURCE_VISIBILITIES; }
7372
7592
  });
7373
7593
  Object.defineProperty(exports, "SYNONYM_ALIASES", {
7374
7594
  enumerable: true,
7375
- get: function () { return chunkF32XOFSP_js.SYNONYM_ALIASES; }
7595
+ get: function () { return chunkQMAVKX3Y_js.SYNONYM_ALIASES; }
7376
7596
  });
7377
7597
  Object.defineProperty(exports, "SYSTEM_ATTRIBUTES", {
7378
7598
  enumerable: true,
7379
- get: function () { return chunkF32XOFSP_js.SYSTEM_ATTRIBUTES; }
7599
+ get: function () { return chunkQMAVKX3Y_js.SYSTEM_ATTRIBUTES; }
7380
7600
  });
7381
7601
  Object.defineProperty(exports, "SYSTEM_ATTRIBUTE_I18N_KEYS", {
7382
7602
  enumerable: true,
7383
- get: function () { return chunkF32XOFSP_js.SYSTEM_ATTRIBUTE_I18N_KEYS; }
7603
+ get: function () { return chunkQMAVKX3Y_js.SYSTEM_ATTRIBUTE_I18N_KEYS; }
7384
7604
  });
7385
7605
  Object.defineProperty(exports, "SYSTEM_FIELD_NAMES", {
7386
7606
  enumerable: true,
7387
- get: function () { return chunkF32XOFSP_js.SYSTEM_FIELD_NAMES; }
7607
+ get: function () { return chunkQMAVKX3Y_js.SYSTEM_FIELD_NAMES; }
7388
7608
  });
7389
7609
  Object.defineProperty(exports, "SYSTEM_FILTER_ATTRIBUTE_TYPES", {
7390
7610
  enumerable: true,
7391
- get: function () { return chunkF32XOFSP_js.SYSTEM_FILTER_ATTRIBUTE_TYPES; }
7611
+ get: function () { return chunkQMAVKX3Y_js.SYSTEM_FILTER_ATTRIBUTE_TYPES; }
7392
7612
  });
7393
7613
  Object.defineProperty(exports, "canonicalizeFilterValue", {
7394
7614
  enumerable: true,
7395
- get: function () { return chunkF32XOFSP_js.canonicalizeFilterValue; }
7615
+ get: function () { return chunkQMAVKX3Y_js.canonicalizeFilterValue; }
7396
7616
  });
7397
7617
  Object.defineProperty(exports, "collectQualifiedRuleIssues", {
7398
7618
  enumerable: true,
7399
- get: function () { return chunkF32XOFSP_js.collectQualifiedRuleIssues; }
7619
+ get: function () { return chunkQMAVKX3Y_js.collectQualifiedRuleIssues; }
7400
7620
  });
7401
7621
  Object.defineProperty(exports, "currentActor", {
7402
7622
  enumerable: true,
7403
- get: function () { return chunkF32XOFSP_js.currentActor; }
7623
+ get: function () { return chunkQMAVKX3Y_js.currentActor; }
7404
7624
  });
7405
7625
  Object.defineProperty(exports, "detailTabSchema", {
7406
7626
  enumerable: true,
7407
- get: function () { return chunkF32XOFSP_js.detailTabSchema; }
7627
+ get: function () { return chunkQMAVKX3Y_js.detailTabSchema; }
7408
7628
  });
7409
7629
  Object.defineProperty(exports, "detailViewConfigSchema", {
7410
7630
  enumerable: true,
7411
- get: function () { return chunkF32XOFSP_js.detailViewConfigSchema; }
7631
+ get: function () { return chunkQMAVKX3Y_js.detailViewConfigSchema; }
7412
7632
  });
7413
7633
  Object.defineProperty(exports, "extractCurrencyFilterValue", {
7414
7634
  enumerable: true,
7415
- get: function () { return chunkF32XOFSP_js.extractCurrencyFilterValue; }
7635
+ get: function () { return chunkQMAVKX3Y_js.extractCurrencyFilterValue; }
7416
7636
  });
7417
7637
  Object.defineProperty(exports, "extractFilterValue", {
7418
7638
  enumerable: true,
7419
- get: function () { return chunkF32XOFSP_js.extractFilterValue; }
7639
+ get: function () { return chunkQMAVKX3Y_js.extractFilterValue; }
7420
7640
  });
7421
7641
  Object.defineProperty(exports, "getAttributeCapabilities", {
7422
7642
  enumerable: true,
7423
- get: function () { return chunkF32XOFSP_js.getAttributeCapabilities; }
7643
+ get: function () { return chunkQMAVKX3Y_js.getAttributeCapabilities; }
7424
7644
  });
7425
7645
  Object.defineProperty(exports, "getAttributeFilterOperators", {
7426
7646
  enumerable: true,
7427
- get: function () { return chunkF32XOFSP_js.getAttributeFilterOperators; }
7647
+ get: function () { return chunkQMAVKX3Y_js.getAttributeFilterOperators; }
7428
7648
  });
7429
7649
  Object.defineProperty(exports, "getOperatorPolarity", {
7430
7650
  enumerable: true,
7431
- get: function () { return chunkF32XOFSP_js.getOperatorPolarity; }
7651
+ get: function () { return chunkQMAVKX3Y_js.getOperatorPolarity; }
7432
7652
  });
7433
7653
  Object.defineProperty(exports, "getRollupFilterOperators", {
7434
7654
  enumerable: true,
7435
- get: function () { return chunkF32XOFSP_js.getRollupFilterOperators; }
7655
+ get: function () { return chunkQMAVKX3Y_js.getRollupFilterOperators; }
7436
7656
  });
7437
7657
  Object.defineProperty(exports, "getSystemAttributeI18nKey", {
7438
7658
  enumerable: true,
7439
- get: function () { return chunkF32XOFSP_js.getSystemAttributeI18nKey; }
7659
+ get: function () { return chunkQMAVKX3Y_js.getSystemAttributeI18nKey; }
7440
7660
  });
7441
7661
  Object.defineProperty(exports, "getSystemAttributeList", {
7442
7662
  enumerable: true,
7443
- get: function () { return chunkF32XOFSP_js.getSystemAttributeList; }
7663
+ get: function () { return chunkQMAVKX3Y_js.getSystemAttributeList; }
7444
7664
  });
7445
7665
  Object.defineProperty(exports, "inverseSourceSchema", {
7446
7666
  enumerable: true,
7447
- get: function () { return chunkF32XOFSP_js.inverseSourceSchema; }
7667
+ get: function () { return chunkQMAVKX3Y_js.inverseSourceSchema; }
7448
7668
  });
7449
7669
  Object.defineProperty(exports, "isAttributeFilterable", {
7450
7670
  enumerable: true,
7451
- get: function () { return chunkF32XOFSP_js.isAttributeFilterable; }
7671
+ get: function () { return chunkQMAVKX3Y_js.isAttributeFilterable; }
7452
7672
  });
7453
7673
  Object.defineProperty(exports, "isAttributeGroupable", {
7454
7674
  enumerable: true,
7455
- get: function () { return chunkF32XOFSP_js.isAttributeGroupable; }
7675
+ get: function () { return chunkQMAVKX3Y_js.isAttributeGroupable; }
7456
7676
  });
7457
7677
  Object.defineProperty(exports, "isAttributeKanbanGroupable", {
7458
7678
  enumerable: true,
7459
- get: function () { return chunkF32XOFSP_js.isAttributeKanbanGroupable; }
7679
+ get: function () { return chunkQMAVKX3Y_js.isAttributeKanbanGroupable; }
7460
7680
  });
7461
7681
  Object.defineProperty(exports, "isAttributeSearchable", {
7462
7682
  enumerable: true,
7463
- get: function () { return chunkF32XOFSP_js.isAttributeSearchable; }
7683
+ get: function () { return chunkQMAVKX3Y_js.isAttributeSearchable; }
7464
7684
  });
7465
7685
  Object.defineProperty(exports, "isDynamicValue", {
7466
7686
  enumerable: true,
7467
- get: function () { return chunkF32XOFSP_js.isDynamicValue; }
7687
+ get: function () { return chunkQMAVKX3Y_js.isDynamicValue; }
7468
7688
  });
7469
7689
  Object.defineProperty(exports, "isManagedSystemAttribute", {
7470
7690
  enumerable: true,
7471
- get: function () { return chunkF32XOFSP_js.isManagedSystemAttribute; }
7691
+ get: function () { return chunkQMAVKX3Y_js.isManagedSystemAttribute; }
7472
7692
  });
7473
7693
  Object.defineProperty(exports, "isNoValueOperator", {
7474
7694
  enumerable: true,
7475
- get: function () { return chunkF32XOFSP_js.isNoValueOperator; }
7695
+ get: function () { return chunkQMAVKX3Y_js.isNoValueOperator; }
7476
7696
  });
7477
7697
  Object.defineProperty(exports, "isRelativeDateValue", {
7478
7698
  enumerable: true,
7479
- get: function () { return chunkF32XOFSP_js.isRelativeDateValue; }
7699
+ get: function () { return chunkQMAVKX3Y_js.isRelativeDateValue; }
7480
7700
  });
7481
7701
  Object.defineProperty(exports, "isSetMembershipOperator", {
7482
7702
  enumerable: true,
7483
- get: function () { return chunkF32XOFSP_js.isSetMembershipOperator; }
7703
+ get: function () { return chunkQMAVKX3Y_js.isSetMembershipOperator; }
7484
7704
  });
7485
7705
  Object.defineProperty(exports, "listViewConfigSchema", {
7486
7706
  enumerable: true,
7487
- get: function () { return chunkF32XOFSP_js.listViewConfigSchema; }
7707
+ get: function () { return chunkQMAVKX3Y_js.listViewConfigSchema; }
7488
7708
  });
7489
7709
  Object.defineProperty(exports, "listViewTabSchema", {
7490
7710
  enumerable: true,
7491
- get: function () { return chunkF32XOFSP_js.listViewTabSchema; }
7711
+ get: function () { return chunkQMAVKX3Y_js.listViewTabSchema; }
7492
7712
  });
7493
7713
  Object.defineProperty(exports, "normalizeFilterRule", {
7494
7714
  enumerable: true,
7495
- get: function () { return chunkF32XOFSP_js.normalizeFilterRule; }
7715
+ get: function () { return chunkQMAVKX3Y_js.normalizeFilterRule; }
7496
7716
  });
7497
7717
  Object.defineProperty(exports, "normalizeForEdgeRpc", {
7498
7718
  enumerable: true,
7499
- get: function () { return chunkF32XOFSP_js.normalizeForEdgeRpc; }
7719
+ get: function () { return chunkQMAVKX3Y_js.normalizeForEdgeRpc; }
7500
7720
  });
7501
7721
  Object.defineProperty(exports, "normalizeOperator", {
7502
7722
  enumerable: true,
7503
- get: function () { return chunkF32XOFSP_js.normalizeOperator; }
7723
+ get: function () { return chunkQMAVKX3Y_js.normalizeOperator; }
7504
7724
  });
7505
7725
  Object.defineProperty(exports, "now", {
7506
7726
  enumerable: true,
7507
- get: function () { return chunkF32XOFSP_js.now; }
7727
+ get: function () { return chunkQMAVKX3Y_js.now; }
7728
+ });
7729
+ Object.defineProperty(exports, "parseResourceVisibility", {
7730
+ enumerable: true,
7731
+ get: function () { return chunkQMAVKX3Y_js.parseResourceVisibility; }
7508
7732
  });
7509
7733
  Object.defineProperty(exports, "parseViewConfig", {
7510
7734
  enumerable: true,
7511
- get: function () { return chunkF32XOFSP_js.parseViewConfig; }
7735
+ get: function () { return chunkQMAVKX3Y_js.parseViewConfig; }
7512
7736
  });
7513
7737
  Object.defineProperty(exports, "relationSourceSchema", {
7514
7738
  enumerable: true,
7515
- get: function () { return chunkF32XOFSP_js.relationSourceSchema; }
7739
+ get: function () { return chunkQMAVKX3Y_js.relationSourceSchema; }
7516
7740
  });
7517
7741
  Object.defineProperty(exports, "resolveEffectiveFilterType", {
7518
7742
  enumerable: true,
7519
- get: function () { return chunkF32XOFSP_js.resolveEffectiveFilterType; }
7743
+ get: function () { return chunkQMAVKX3Y_js.resolveEffectiveFilterType; }
7520
7744
  });
7521
7745
  Object.defineProperty(exports, "resolveIsWithinBounds", {
7522
7746
  enumerable: true,
7523
- get: function () { return chunkF32XOFSP_js.resolveIsWithinBounds; }
7747
+ get: function () { return chunkQMAVKX3Y_js.resolveIsWithinBounds; }
7524
7748
  });
7525
7749
  Object.defineProperty(exports, "resolveUtcDayBounds", {
7526
7750
  enumerable: true,
7527
- get: function () { return chunkF32XOFSP_js.resolveUtcDayBounds; }
7751
+ get: function () { return chunkQMAVKX3Y_js.resolveUtcDayBounds; }
7528
7752
  });
7529
7753
  Object.defineProperty(exports, "tableSourceSchema", {
7530
7754
  enumerable: true,
7531
- get: function () { return chunkF32XOFSP_js.tableSourceSchema; }
7755
+ get: function () { return chunkQMAVKX3Y_js.tableSourceSchema; }
7532
7756
  });
7533
7757
  Object.defineProperty(exports, "toMultiValueOperator", {
7534
7758
  enumerable: true,
7535
- get: function () { return chunkF32XOFSP_js.toMultiValueOperator; }
7759
+ get: function () { return chunkQMAVKX3Y_js.toMultiValueOperator; }
7536
7760
  });
7537
7761
  Object.defineProperty(exports, "toUtcDayString", {
7538
7762
  enumerable: true,
7539
- get: function () { return chunkF32XOFSP_js.toUtcDayString; }
7763
+ get: function () { return chunkQMAVKX3Y_js.toUtcDayString; }
7540
7764
  });
7541
7765
  Object.defineProperty(exports, "today", {
7542
7766
  enumerable: true,
7543
- get: function () { return chunkF32XOFSP_js.today; }
7767
+ get: function () { return chunkQMAVKX3Y_js.today; }
7544
7768
  });
7545
7769
  Object.defineProperty(exports, "validateQualifiedRule", {
7546
7770
  enumerable: true,
7547
- get: function () { return chunkF32XOFSP_js.validateQualifiedRule; }
7771
+ get: function () { return chunkQMAVKX3Y_js.validateQualifiedRule; }
7548
7772
  });
7549
7773
  Object.defineProperty(exports, "viewConfigByTypeSchema", {
7550
7774
  enumerable: true,
7551
- get: function () { return chunkF32XOFSP_js.viewConfigByTypeSchema; }
7775
+ get: function () { return chunkQMAVKX3Y_js.viewConfigByTypeSchema; }
7552
7776
  });
7553
7777
  Object.defineProperty(exports, "viewTypeSchema", {
7554
7778
  enumerable: true,
7555
- get: function () { return chunkF32XOFSP_js.viewTypeSchema; }
7779
+ get: function () { return chunkQMAVKX3Y_js.viewTypeSchema; }
7556
7780
  });
7557
7781
  Object.defineProperty(exports, "ComputedFormulaParseError", {
7558
7782
  enumerable: true,
7559
- get: function () { return chunkKKR6I3YV_js.ComputedFormulaParseError; }
7783
+ get: function () { return chunkDEHBEFGO_js.ComputedFormulaParseError; }
7560
7784
  });
7561
7785
  Object.defineProperty(exports, "SCHEMA_LIMITS", {
7562
7786
  enumerable: true,
7563
- get: function () { return chunkKKR6I3YV_js.SCHEMA_LIMITS; }
7787
+ get: function () { return chunkDEHBEFGO_js.SCHEMA_LIMITS; }
7564
7788
  });
7565
7789
  Object.defineProperty(exports, "colorIdSchema", {
7566
7790
  enumerable: true,
7567
- get: function () { return chunkKKR6I3YV_js.colorIdSchema; }
7791
+ get: function () { return chunkDEHBEFGO_js.colorIdSchema; }
7568
7792
  });
7569
7793
  Object.defineProperty(exports, "iconNameSchema", {
7570
7794
  enumerable: true,
7571
- get: function () { return chunkKKR6I3YV_js.iconNameSchema; }
7795
+ get: function () { return chunkDEHBEFGO_js.iconNameSchema; }
7572
7796
  });
7573
7797
  Object.defineProperty(exports, "multiselectOptionWriteSchema", {
7574
7798
  enumerable: true,
7575
- get: function () { return chunkKKR6I3YV_js.multiselectOptionWriteSchema; }
7799
+ get: function () { return chunkDEHBEFGO_js.multiselectOptionWriteSchema; }
7576
7800
  });
7577
7801
  Object.defineProperty(exports, "parseAttributeConfig", {
7578
7802
  enumerable: true,
7579
- get: function () { return chunkKKR6I3YV_js.parseAttributeConfig; }
7803
+ get: function () { return chunkDEHBEFGO_js.parseAttributeConfig; }
7580
7804
  });
7581
7805
  Object.defineProperty(exports, "parseAttributeConfigForCreate", {
7582
7806
  enumerable: true,
7583
- get: function () { return chunkKKR6I3YV_js.parseAttributeConfigForCreate; }
7807
+ get: function () { return chunkDEHBEFGO_js.parseAttributeConfigForCreate; }
7584
7808
  });
7585
7809
  Object.defineProperty(exports, "parseAttributeConfigForUpdate", {
7586
7810
  enumerable: true,
7587
- get: function () { return chunkKKR6I3YV_js.parseAttributeConfigForUpdate; }
7811
+ get: function () { return chunkDEHBEFGO_js.parseAttributeConfigForUpdate; }
7588
7812
  });
7589
7813
  Object.defineProperty(exports, "parseComputedFormula", {
7590
7814
  enumerable: true,
7591
- get: function () { return chunkKKR6I3YV_js.parseComputedFormula; }
7815
+ get: function () { return chunkDEHBEFGO_js.parseComputedFormula; }
7592
7816
  });
7593
7817
  Object.defineProperty(exports, "selectOptionWriteSchema", {
7594
7818
  enumerable: true,
7595
- get: function () { return chunkKKR6I3YV_js.selectOptionWriteSchema; }
7819
+ get: function () { return chunkDEHBEFGO_js.selectOptionWriteSchema; }
7596
7820
  });
7597
7821
  Object.defineProperty(exports, "statusGroupSchema", {
7598
7822
  enumerable: true,
7599
- get: function () { return chunkKKR6I3YV_js.statusGroupSchema; }
7823
+ get: function () { return chunkDEHBEFGO_js.statusGroupSchema; }
7600
7824
  });
7601
7825
  Object.defineProperty(exports, "statusOptionWriteSchema", {
7602
7826
  enumerable: true,
7603
- get: function () { return chunkKKR6I3YV_js.statusOptionWriteSchema; }
7827
+ get: function () { return chunkDEHBEFGO_js.statusOptionWriteSchema; }
7604
7828
  });
7605
7829
  Object.defineProperty(exports, "createFormAttributeValidator", {
7606
7830
  enumerable: true,
7607
- get: function () { return chunkFMLZHHWB_js.createFormAttributeValidator; }
7831
+ get: function () { return chunkZEPGMHCK_js.createFormAttributeValidator; }
7608
7832
  });
7609
7833
  Object.defineProperty(exports, "isNullishOrEmptyString", {
7610
7834
  enumerable: true,
7611
- get: function () { return chunkFMLZHHWB_js.isNullishOrEmptyString; }
7835
+ get: function () { return chunkZEPGMHCK_js.isNullishOrEmptyString; }
7836
+ });
7837
+ Object.defineProperty(exports, "isValuePresent", {
7838
+ enumerable: true,
7839
+ get: function () { return chunkZEPGMHCK_js.isValuePresent; }
7612
7840
  });
7613
7841
  Object.defineProperty(exports, "rejectUnknownAttributesOrThrow", {
7614
7842
  enumerable: true,
7615
- get: function () { return chunkFMLZHHWB_js.rejectUnknownAttributesOrThrow; }
7843
+ get: function () { return chunkZEPGMHCK_js.rejectUnknownAttributesOrThrow; }
7616
7844
  });
7617
7845
  Object.defineProperty(exports, "validateDraft", {
7618
7846
  enumerable: true,
7619
- get: function () { return chunkFMLZHHWB_js.validateDraft; }
7847
+ get: function () { return chunkZEPGMHCK_js.validateDraft; }
7620
7848
  });
7621
7849
  Object.defineProperty(exports, "validateDraftOrThrow", {
7622
7850
  enumerable: true,
7623
- get: function () { return chunkFMLZHHWB_js.validateDraftOrThrow; }
7851
+ get: function () { return chunkZEPGMHCK_js.validateDraftOrThrow; }
7624
7852
  });
7625
7853
  Object.defineProperty(exports, "validateObject", {
7626
7854
  enumerable: true,
7627
- get: function () { return chunkFMLZHHWB_js.validateObject; }
7855
+ get: function () { return chunkZEPGMHCK_js.validateObject; }
7628
7856
  });
7629
7857
  Object.defineProperty(exports, "validateObjectOrThrow", {
7630
7858
  enumerable: true,
7631
- get: function () { return chunkFMLZHHWB_js.validateObjectOrThrow; }
7859
+ get: function () { return chunkZEPGMHCK_js.validateObjectOrThrow; }
7632
7860
  });
7633
7861
  Object.defineProperty(exports, "createCheckboxValidator", {
7634
7862
  enumerable: true,
@@ -7656,155 +7884,155 @@ Object.defineProperty(exports, "resolveTextPattern", {
7656
7884
  });
7657
7885
  Object.defineProperty(exports, "AccessDeniedError", {
7658
7886
  enumerable: true,
7659
- get: function () { return chunkRYAQOR7M_js.AccessDeniedError; }
7887
+ get: function () { return chunkZBWTAKZO_js.AccessDeniedError; }
7660
7888
  });
7661
7889
  Object.defineProperty(exports, "AttributeInUseError", {
7662
7890
  enumerable: true,
7663
- get: function () { return chunkRYAQOR7M_js.AttributeInUseError; }
7891
+ get: function () { return chunkZBWTAKZO_js.AttributeInUseError; }
7664
7892
  });
7665
7893
  Object.defineProperty(exports, "AttributeNotFoundError", {
7666
7894
  enumerable: true,
7667
- get: function () { return chunkRYAQOR7M_js.AttributeNotFoundError; }
7895
+ get: function () { return chunkZBWTAKZO_js.AttributeNotFoundError; }
7668
7896
  });
7669
7897
  Object.defineProperty(exports, "ChangeTypeNotSupportedError", {
7670
7898
  enumerable: true,
7671
- get: function () { return chunkRYAQOR7M_js.ChangeTypeNotSupportedError; }
7899
+ get: function () { return chunkZBWTAKZO_js.ChangeTypeNotSupportedError; }
7672
7900
  });
7673
7901
  Object.defineProperty(exports, "ConcurrentModificationError", {
7674
7902
  enumerable: true,
7675
- get: function () { return chunkRYAQOR7M_js.ConcurrentModificationError; }
7903
+ get: function () { return chunkZBWTAKZO_js.ConcurrentModificationError; }
7676
7904
  });
7677
7905
  Object.defineProperty(exports, "DestructiveSyncNotAllowedError", {
7678
7906
  enumerable: true,
7679
- get: function () { return chunkRYAQOR7M_js.DestructiveSyncNotAllowedError; }
7907
+ get: function () { return chunkZBWTAKZO_js.DestructiveSyncNotAllowedError; }
7680
7908
  });
7681
7909
  Object.defineProperty(exports, "DuplicateError", {
7682
7910
  enumerable: true,
7683
- get: function () { return chunkRYAQOR7M_js.DuplicateError; }
7911
+ get: function () { return chunkZBWTAKZO_js.DuplicateError; }
7684
7912
  });
7685
7913
  Object.defineProperty(exports, "ForbiddenError", {
7686
7914
  enumerable: true,
7687
- get: function () { return chunkRYAQOR7M_js.ForbiddenError; }
7915
+ get: function () { return chunkZBWTAKZO_js.ForbiddenError; }
7688
7916
  });
7689
7917
  Object.defineProperty(exports, "MemoryNotFoundError", {
7690
7918
  enumerable: true,
7691
- get: function () { return chunkRYAQOR7M_js.MemoryNotFoundError; }
7919
+ get: function () { return chunkZBWTAKZO_js.MemoryNotFoundError; }
7692
7920
  });
7693
7921
  Object.defineProperty(exports, "MigrationTimeoutError", {
7694
7922
  enumerable: true,
7695
- get: function () { return chunkRYAQOR7M_js.MigrationTimeoutError; }
7923
+ get: function () { return chunkZBWTAKZO_js.MigrationTimeoutError; }
7696
7924
  });
7697
7925
  Object.defineProperty(exports, "NotFoundError", {
7698
7926
  enumerable: true,
7699
- get: function () { return chunkRYAQOR7M_js.NotFoundError; }
7927
+ get: function () { return chunkZBWTAKZO_js.NotFoundError; }
7700
7928
  });
7701
7929
  Object.defineProperty(exports, "NotImplementedError", {
7702
7930
  enumerable: true,
7703
- get: function () { return chunkRYAQOR7M_js.NotImplementedError; }
7931
+ get: function () { return chunkZBWTAKZO_js.NotImplementedError; }
7704
7932
  });
7705
7933
  Object.defineProperty(exports, "ObjectNotFoundError", {
7706
7934
  enumerable: true,
7707
- get: function () { return chunkRYAQOR7M_js.ObjectNotFoundError; }
7935
+ get: function () { return chunkZBWTAKZO_js.ObjectNotFoundError; }
7708
7936
  });
7709
7937
  Object.defineProperty(exports, "ObjectReferencedError", {
7710
7938
  enumerable: true,
7711
- get: function () { return chunkRYAQOR7M_js.ObjectReferencedError; }
7939
+ get: function () { return chunkZBWTAKZO_js.ObjectReferencedError; }
7712
7940
  });
7713
7941
  Object.defineProperty(exports, "OrphanSystemAttributeError", {
7714
7942
  enumerable: true,
7715
- get: function () { return chunkRYAQOR7M_js.OrphanSystemAttributeError; }
7943
+ get: function () { return chunkZBWTAKZO_js.OrphanSystemAttributeError; }
7716
7944
  });
7717
7945
  Object.defineProperty(exports, "ProtectedResourceError", {
7718
7946
  enumerable: true,
7719
- get: function () { return chunkRYAQOR7M_js.ProtectedResourceError; }
7947
+ get: function () { return chunkZBWTAKZO_js.ProtectedResourceError; }
7720
7948
  });
7721
7949
  Object.defineProperty(exports, "ProtectedRoleError", {
7722
7950
  enumerable: true,
7723
- get: function () { return chunkRYAQOR7M_js.ProtectedRoleError; }
7951
+ get: function () { return chunkZBWTAKZO_js.ProtectedRoleError; }
7724
7952
  });
7725
7953
  Object.defineProperty(exports, "RecordNotFoundError", {
7726
7954
  enumerable: true,
7727
- get: function () { return chunkRYAQOR7M_js.RecordNotFoundError; }
7955
+ get: function () { return chunkZBWTAKZO_js.RecordNotFoundError; }
7728
7956
  });
7729
7957
  Object.defineProperty(exports, "RecordReferencedError", {
7730
7958
  enumerable: true,
7731
- get: function () { return chunkRYAQOR7M_js.RecordReferencedError; }
7959
+ get: function () { return chunkZBWTAKZO_js.RecordReferencedError; }
7732
7960
  });
7733
7961
  Object.defineProperty(exports, "RepositoryError", {
7734
7962
  enumerable: true,
7735
- get: function () { return chunkRYAQOR7M_js.RepositoryError; }
7963
+ get: function () { return chunkZBWTAKZO_js.RepositoryError; }
7736
7964
  });
7737
7965
  Object.defineProperty(exports, "RoleNotFoundError", {
7738
7966
  enumerable: true,
7739
- get: function () { return chunkRYAQOR7M_js.RoleNotFoundError; }
7967
+ get: function () { return chunkZBWTAKZO_js.RoleNotFoundError; }
7740
7968
  });
7741
7969
  Object.defineProperty(exports, "SchemaError", {
7742
7970
  enumerable: true,
7743
- get: function () { return chunkRYAQOR7M_js.SchemaError; }
7971
+ get: function () { return chunkZBWTAKZO_js.SchemaError; }
7744
7972
  });
7745
7973
  Object.defineProperty(exports, "SchemaErrorCode", {
7746
7974
  enumerable: true,
7747
- get: function () { return chunkRYAQOR7M_js.SchemaErrorCode; }
7975
+ get: function () { return chunkZBWTAKZO_js.SchemaErrorCode; }
7748
7976
  });
7749
7977
  Object.defineProperty(exports, "SchemaPlanNotFoundError", {
7750
7978
  enumerable: true,
7751
- get: function () { return chunkRYAQOR7M_js.SchemaPlanNotFoundError; }
7979
+ get: function () { return chunkZBWTAKZO_js.SchemaPlanNotFoundError; }
7752
7980
  });
7753
7981
  Object.defineProperty(exports, "SearchBackendError", {
7754
7982
  enumerable: true,
7755
- get: function () { return chunkRYAQOR7M_js.SearchBackendError; }
7983
+ get: function () { return chunkZBWTAKZO_js.SearchBackendError; }
7756
7984
  });
7757
7985
  Object.defineProperty(exports, "StorageError", {
7758
7986
  enumerable: true,
7759
- get: function () { return chunkRYAQOR7M_js.StorageError; }
7987
+ get: function () { return chunkZBWTAKZO_js.StorageError; }
7760
7988
  });
7761
7989
  Object.defineProperty(exports, "SyncCascadeError", {
7762
7990
  enumerable: true,
7763
- get: function () { return chunkRYAQOR7M_js.SyncCascadeError; }
7991
+ get: function () { return chunkZBWTAKZO_js.SyncCascadeError; }
7764
7992
  });
7765
7993
  Object.defineProperty(exports, "SyncConflictError", {
7766
7994
  enumerable: true,
7767
- get: function () { return chunkRYAQOR7M_js.SyncConflictError; }
7995
+ get: function () { return chunkZBWTAKZO_js.SyncConflictError; }
7768
7996
  });
7769
7997
  Object.defineProperty(exports, "SyncError", {
7770
7998
  enumerable: true,
7771
- get: function () { return chunkRYAQOR7M_js.SyncError; }
7999
+ get: function () { return chunkZBWTAKZO_js.SyncError; }
7772
8000
  });
7773
8001
  Object.defineProperty(exports, "SystemEntityImmutableError", {
7774
8002
  enumerable: true,
7775
- get: function () { return chunkRYAQOR7M_js.SystemEntityImmutableError; }
8003
+ get: function () { return chunkZBWTAKZO_js.SystemEntityImmutableError; }
7776
8004
  });
7777
8005
  Object.defineProperty(exports, "ValidationError", {
7778
8006
  enumerable: true,
7779
- get: function () { return chunkRYAQOR7M_js.ValidationError; }
8007
+ get: function () { return chunkZBWTAKZO_js.ValidationError; }
7780
8008
  });
7781
8009
  Object.defineProperty(exports, "isAttributeInUseError", {
7782
8010
  enumerable: true,
7783
- get: function () { return chunkRYAQOR7M_js.isAttributeInUseError; }
8011
+ get: function () { return chunkZBWTAKZO_js.isAttributeInUseError; }
7784
8012
  });
7785
8013
  Object.defineProperty(exports, "isNotFoundError", {
7786
8014
  enumerable: true,
7787
- get: function () { return chunkRYAQOR7M_js.isNotFoundError; }
8015
+ get: function () { return chunkZBWTAKZO_js.isNotFoundError; }
7788
8016
  });
7789
8017
  Object.defineProperty(exports, "isObjectReferencedError", {
7790
8018
  enumerable: true,
7791
- get: function () { return chunkRYAQOR7M_js.isObjectReferencedError; }
8019
+ get: function () { return chunkZBWTAKZO_js.isObjectReferencedError; }
7792
8020
  });
7793
8021
  Object.defineProperty(exports, "isProtectedResourceError", {
7794
8022
  enumerable: true,
7795
- get: function () { return chunkRYAQOR7M_js.isProtectedResourceError; }
8023
+ get: function () { return chunkZBWTAKZO_js.isProtectedResourceError; }
7796
8024
  });
7797
8025
  Object.defineProperty(exports, "isRecordReferencedError", {
7798
8026
  enumerable: true,
7799
- get: function () { return chunkRYAQOR7M_js.isRecordReferencedError; }
8027
+ get: function () { return chunkZBWTAKZO_js.isRecordReferencedError; }
7800
8028
  });
7801
8029
  Object.defineProperty(exports, "isSchemaError", {
7802
8030
  enumerable: true,
7803
- get: function () { return chunkRYAQOR7M_js.isSchemaError; }
8031
+ get: function () { return chunkZBWTAKZO_js.isSchemaError; }
7804
8032
  });
7805
8033
  Object.defineProperty(exports, "isValidationError", {
7806
8034
  enumerable: true,
7807
- get: function () { return chunkRYAQOR7M_js.isValidationError; }
8035
+ get: function () { return chunkZBWTAKZO_js.isValidationError; }
7808
8036
  });
7809
8037
  Object.defineProperty(exports, "DEFAULT_VALIDATION_MESSAGES", {
7810
8038
  enumerable: true,
@@ -7814,6 +8042,8 @@ Object.defineProperty(exports, "formatZodErrors", {
7814
8042
  enumerable: true,
7815
8043
  get: function () { return chunkYKWSHBT5_js.formatZodErrors; }
7816
8044
  });
8045
+ exports.AGENT_UI_BATCH_MAX_BYTES = AGENT_UI_BATCH_MAX_BYTES;
8046
+ exports.AGENT_UI_BATCH_MAX_ITEMS = AGENT_UI_BATCH_MAX_ITEMS;
7817
8047
  exports.ALLOWED_PROPERTY_TYPES = ALLOWED_PROPERTY_TYPES;
7818
8048
  exports.ALL_ACTIONS = ALL_ACTIONS;
7819
8049
  exports.ALL_SYSTEM_RESOURCES = ALL_SYSTEM_RESOURCES;
@@ -7828,11 +8058,13 @@ exports.COMPUTED_FUNCTIONS = COMPUTED_FUNCTIONS;
7828
8058
  exports.COMPUTED_FUNCTION_METADATA = COMPUTED_FUNCTION_METADATA;
7829
8059
  exports.COMPUTED_FUNCTION_NAMES = COMPUTED_FUNCTION_NAMES;
7830
8060
  exports.CONNECTOR_CALLBACK_PARAM = CONNECTOR_CALLBACK_PARAM;
8061
+ exports.COUNT_MODES = COUNT_MODES;
7831
8062
  exports.ComputedFormulaCompileError = ComputedFormulaCompileError;
7832
8063
  exports.CustomTabConfig = CustomTabConfig;
7833
8064
  exports.DB_COLUMN_FIELDS = DB_COLUMN_FIELDS;
7834
8065
  exports.DEFAULT_AGENT_EXECUTION_CONFIG = DEFAULT_AGENT_EXECUTION_CONFIG;
7835
8066
  exports.DEFAULT_APPROVAL_POLICY = DEFAULT_APPROVAL_POLICY;
8067
+ exports.DEFAULT_LABEL_FALLBACK = DEFAULT_LABEL_FALLBACK;
7836
8068
  exports.DEFAULT_ROLES = DEFAULT_ROLES;
7837
8069
  exports.DEFAULT_ROLE_DESCRIPTIONS = DEFAULT_ROLE_DESCRIPTIONS;
7838
8070
  exports.DEFAULT_ROLE_LABELS = DEFAULT_ROLE_LABELS;
@@ -7853,7 +8085,6 @@ exports.FormStepBuilder = FormStepBuilder;
7853
8085
  exports.GroupBuilder = GroupBuilder;
7854
8086
  exports.IDENTITY_PROPERTIES = IDENTITY_PROPERTIES;
7855
8087
  exports.LIVE_EVENT_TYPES = LIVE_EVENT_TYPES;
7856
- exports.LIVE_STREAM_START_CURSOR = LIVE_STREAM_START_CURSOR;
7857
8088
  exports.ListViewBuilder = ListViewBuilder;
7858
8089
  exports.ListViewTabConfigBuilder = ListViewTabConfigBuilder;
7859
8090
  exports.MAX_PRESET_DEPTH = MAX_PRESET_DEPTH;
@@ -7864,6 +8095,9 @@ exports.MAX_TODO_RESULT_CHARS = MAX_TODO_RESULT_CHARS;
7864
8095
  exports.MEMORY_LIST_VIEW = MEMORY_LIST_VIEW;
7865
8096
  exports.MEMORY_OBJECT = MEMORY_OBJECT;
7866
8097
  exports.MEMORY_VIEW = MEMORY_VIEW;
8098
+ exports.MeetingsTabConfig = MeetingsTabConfig;
8099
+ exports.NATIVE_AGENT_UI_PART_IDS_METADATA_KEY = NATIVE_AGENT_UI_PART_IDS_METADATA_KEY;
8100
+ exports.NATIVE_AGENT_UI_PART_IDS_METADATA_SCHEMA_VERSION = NATIVE_AGENT_UI_PART_IDS_METADATA_SCHEMA_VERSION;
7867
8101
  exports.NOTIFICATION_INBOX_STATES = NOTIFICATION_INBOX_STATES;
7868
8102
  exports.NOTIFICATION_KINDS = NOTIFICATION_KINDS;
7869
8103
  exports.NOTIFICATION_PRIORITIES = NOTIFICATION_PRIORITIES;
@@ -7899,6 +8133,7 @@ exports.TODO_STATUSES = TODO_STATUSES;
7899
8133
  exports.TabBuilder = TabBuilder;
7900
8134
  exports.TableTabConfig = TableTabConfig;
7901
8135
  exports.USER_STATUSES = USER_STATUSES;
8136
+ exports.USER_WORK_POSTURES = USER_WORK_POSTURES;
7902
8137
  exports.accessLevelToActions = accessLevelToActions;
7903
8138
  exports.actionsToAccessLevel = actionsToAccessLevel;
7904
8139
  exports.agent = agent;
@@ -7906,16 +8141,17 @@ exports.agentDisplayName = agentDisplayName;
7906
8141
  exports.applyPipes = applyPipes;
7907
8142
  exports.applyRelationProps = applyRelationProps;
7908
8143
  exports.assertAcyclicComputedDependencies = assertAcyclicComputedDependencies;
7909
- exports.assertLiveStreamCursor = assertLiveStreamCursor;
7910
8144
  exports.booleanFlag = booleanFlag;
8145
+ exports.buildAgentFallbackTitle = buildAgentFallbackTitle;
8146
+ exports.buildPermissionFlags = buildPermissionFlags;
7911
8147
  exports.buildPropertySchema = buildPropertySchema;
7912
8148
  exports.buildQualifiedAttribute = buildQualifiedAttribute;
7913
8149
  exports.canonicalStringify = canonicalStringify;
7914
8150
  exports.checkbox = checkbox;
7915
- exports.compareLiveStreamCursors = compareLiveStreamCursors;
7916
8151
  exports.compileComputedFormula = compileComputedFormula;
7917
8152
  exports.compileRollupAttribute = compileRollupAttribute;
7918
8153
  exports.computeByteMagnitude = computeByteMagnitude;
8154
+ exports.conversationDisplayTitle = conversationDisplayTitle;
7919
8155
  exports.createFlagRegistry = createFlagRegistry;
7920
8156
  exports.createFlagService = createFlagService;
7921
8157
  exports.createStandardSchemaProps = createStandardSchemaProps;
@@ -7923,6 +8159,7 @@ exports.currency = currency;
7923
8159
  exports.date = date;
7924
8160
  exports.dateInTimezone = dateInTimezone;
7925
8161
  exports.dateValueStart = dateValueStart;
8162
+ exports.deriveInitials = deriveInitials;
7926
8163
  exports.destructiveSchema = destructiveSchema;
7927
8164
  exports.detailView = detailView;
7928
8165
  exports.document = document;
@@ -7952,8 +8189,10 @@ exports.getUserDisplayName = getUserDisplayName;
7952
8189
  exports.group = group;
7953
8190
  exports.hasDestructiveEntries = hasDestructiveEntries;
7954
8191
  exports.hasOptions = hasOptions;
8192
+ exports.includesAction = includesAction;
7955
8193
  exports.inferInverseCardinality = inferInverseCardinality;
7956
8194
  exports.inferRollupReturnType = inferRollupReturnType;
8195
+ exports.isAgentUIMessageBatch = isAgentUIMessageBatch;
7957
8196
  exports.isAttributeSortable = isAttributeSortable2;
7958
8197
  exports.isBilateralRelation = isBilateralRelation;
7959
8198
  exports.isCheckboxEquality = isCheckboxEquality;
@@ -7973,33 +8212,33 @@ exports.isFormSlotFieldRef = isFormSlotFieldRef;
7973
8212
  exports.isFormTextRow = isFormTextRow;
7974
8213
  exports.isLabelExpression = isLabelExpression;
7975
8214
  exports.isListView = isListView;
7976
- exports.isLiveErrorPayload = isLiveErrorPayload;
7977
8215
  exports.isLiveEventEnvelope = isLiveEventEnvelope;
7978
8216
  exports.isLiveEventPayload = isLiveEventPayload;
7979
8217
  exports.isLiveEventPayloadForType = isLiveEventPayloadForType;
7980
8218
  exports.isLiveEventType = isLiveEventType;
7981
- exports.isLiveGapPayload = isLiveGapPayload;
7982
- exports.isLiveReplayCompletePayload = isLiveReplayCompletePayload;
7983
- exports.isLiveStreamCursor = isLiveStreamCursor;
7984
8219
  exports.isNotEmpty = isNotEmpty;
7985
- exports.isPlainRecord = isPlainRecord;
8220
+ exports.isPlainRecord = isPlainRecord2;
7986
8221
  exports.isRelationGroup = isRelationGroup;
7987
8222
  exports.isStandardSchema = isStandardSchema;
7988
8223
  exports.isTerminalSessionStatus = isTerminalSessionStatus;
8224
+ exports.isTerminalState = isTerminalState;
7989
8225
  exports.isUniversalRelation = isUniversalRelation;
7990
8226
  exports.jsonFlag = jsonFlag;
8227
+ exports.legacyStatusToSessionState = legacyStatusToSessionState;
7991
8228
  exports.listView = listView;
7992
8229
  exports.liveChannelKey = liveChannelKey;
7993
8230
  exports.location = location;
7994
8231
  exports.matchesAccepts = matchesAccepts;
7995
8232
  exports.multiselect = multiselect;
8233
+ exports.nativeAgentUIPartIdMetadataKey = nativeAgentUIPartIdMetadataKey;
7996
8234
  exports.normalizeDateValue = normalizeDateValue;
7997
8235
  exports.number = number;
7998
8236
  exports.numberFlag = numberFlag;
7999
8237
  exports.object = object;
8238
+ exports.parseCountMode = parseCountMode;
8000
8239
  exports.parseLiveChannelKey = parseLiveChannelKey;
8001
- exports.parseLiveSubscribePayload = parseLiveSubscribePayload;
8002
- exports.parseLiveUnsubscribePayload = parseLiveUnsubscribePayload;
8240
+ exports.parseNativeAgentUIPartIdsMetadata = parseNativeAgentUIPartIdsMetadata;
8241
+ exports.parseOptionalCountMode = parseOptionalCountMode;
8003
8242
  exports.parseQualifiedAttribute = parseQualifiedAttribute;
8004
8243
  exports.persistedDefaultViewTargetSchema = persistedDefaultViewTargetSchema;
8005
8244
  exports.persistedSchemaPlanSchema = persistedSchemaPlanSchema;
@@ -8015,12 +8254,14 @@ exports.relationPropertyDefs = relationPropertyDefs;
8015
8254
  exports.renderLabelExpression = renderLabelExpression;
8016
8255
  exports.resetViewToDefault = resetViewToDefault;
8017
8256
  exports.resolveAttributeDefaultValue = resolveAttributeDefaultValue;
8257
+ exports.resolveFieldRequired = resolveFieldRequired;
8018
8258
  exports.resolvePropertyDefinitions = resolvePropertyDefinitions;
8019
8259
  exports.richtext = richtext;
8020
8260
  exports.rollup = rollup;
8021
8261
  exports.rollupToFormulaExpression = rollupToFormulaExpression;
8022
8262
  exports.schemaPlanSchema = schemaPlanSchema;
8023
8263
  exports.select = select;
8264
+ exports.sessionStateToLegacyStatus = sessionStateToLegacyStatus;
8024
8265
  exports.status = status;
8025
8266
  exports.stringFlag = stringFlag;
8026
8267
  exports.text = text;