@stndrds/schema 1.0.0-alpha.292 → 1.0.0-alpha.294

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 (35) hide show
  1. package/dist/{all-FGIrc6mI.d.ts → all-CDJSpI46.d.ts} +105 -6
  2. package/dist/{all-DaucFjyz.d.mts → all-Cru_CaSY.d.mts} +105 -6
  3. package/dist/{chunk-KLDZHAGX.mjs → chunk-2WWGHULM.mjs} +1 -1
  4. package/dist/{chunk-3YCZ5H3H.js → chunk-4KMUATDG.js} +9 -1
  5. package/dist/{chunk-7WEOBXXA.mjs → chunk-CLZORRMS.mjs} +9 -1
  6. package/dist/{chunk-ZHB4VBCX.js → chunk-DVXGSTWJ.js} +3 -3
  7. package/dist/{chunk-RDYTVHNN.js → chunk-HURC6CW3.js} +4 -4
  8. package/dist/{chunk-QYJ532XI.mjs → chunk-JZNR4HKQ.mjs} +60 -27
  9. package/dist/{chunk-5JMQNH2A.js → chunk-KAWYU7TE.js} +4 -4
  10. package/dist/{chunk-UW3BOSB6.mjs → chunk-QT35SI3K.mjs} +1 -1
  11. package/dist/{chunk-JSQCTLV5.mjs → chunk-R2DAEDRF.mjs} +1 -1
  12. package/dist/{chunk-D4A6FL67.js → chunk-T5PM73EF.js} +96 -59
  13. package/dist/exceptions.d.mts +7 -0
  14. package/dist/exceptions.d.ts +7 -0
  15. package/dist/exceptions.js +39 -39
  16. package/dist/exceptions.mjs +1 -1
  17. package/dist/{index-Eh1tYq3i.d.mts → index-BdVnHL3F.d.mts} +27 -7
  18. package/dist/{index-0VG9u1XW.d.ts → index-CFhPHQaI.d.ts} +27 -7
  19. package/dist/index.d.mts +885 -429
  20. package/dist/index.d.ts +885 -429
  21. package/dist/index.js +655 -334
  22. package/dist/index.mjs +332 -61
  23. package/dist/utils.js +8 -8
  24. package/dist/utils.mjs +2 -2
  25. package/dist/validation/all.d.mts +2 -2
  26. package/dist/validation/all.d.ts +2 -2
  27. package/dist/validation/all.js +29 -29
  28. package/dist/validation/all.mjs +4 -4
  29. package/dist/validation/config/index.d.mts +1 -1
  30. package/dist/validation/config/index.d.ts +1 -1
  31. package/dist/validation/config/index.js +12 -12
  32. package/dist/validation/config/index.mjs +2 -2
  33. package/dist/validation/object/index.js +14 -14
  34. package/dist/validation/object/index.mjs +2 -2
  35. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
 
3
- var chunkZHB4VBCX_js = require('./chunk-ZHB4VBCX.js');
4
- var chunkD4A6FL67_js = require('./chunk-D4A6FL67.js');
5
- var chunkRDYTVHNN_js = require('./chunk-RDYTVHNN.js');
3
+ var chunkDVXGSTWJ_js = require('./chunk-DVXGSTWJ.js');
4
+ var chunkT5PM73EF_js = require('./chunk-T5PM73EF.js');
5
+ var chunkHURC6CW3_js = require('./chunk-HURC6CW3.js');
6
6
  require('./chunk-EEH4XQ7W.js');
7
7
  require('./chunk-EW5XR2X3.js');
8
8
  require('./chunk-QWKLQRBX.js');
9
9
  require('./chunk-KNGWHQLR.js');
10
10
  require('./chunk-HTSTPTNZ.js');
11
11
  require('./chunk-V2UA2D4E.js');
12
- var chunk5JMQNH2A_js = require('./chunk-5JMQNH2A.js');
12
+ var chunkKAWYU7TE_js = require('./chunk-KAWYU7TE.js');
13
13
  var chunk5WATIVCA_js = require('./chunk-5WATIVCA.js');
14
14
  var chunkSI34M4IC_js = require('./chunk-SI34M4IC.js');
15
15
  var chunkYIP5FJ5H_js = require('./chunk-YIP5FJ5H.js');
16
16
  var chunkZPFOKBIN_js = require('./chunk-ZPFOKBIN.js');
17
- var chunk3YCZ5H3H_js = require('./chunk-3YCZ5H3H.js');
17
+ var chunk4KMUATDG_js = require('./chunk-4KMUATDG.js');
18
18
  require('./chunk-ACKMC6FL.js');
19
19
  require('./chunk-E6JUYGJX.js');
20
20
  var chunkQ4SZAMJT_js = require('./chunk-Q4SZAMJT.js');
@@ -93,7 +93,7 @@ function inferInverseCardinality(cardinality) {
93
93
  return cardinality === "one" ? "many" : "many";
94
94
  }
95
95
  function isAttributeSortable2(attr) {
96
- return chunkD4A6FL67_js.isAttributeSortable(attr);
96
+ return chunkT5PM73EF_js.isAttributeSortable(attr);
97
97
  }
98
98
 
99
99
  // src/types/audit.ts
@@ -160,14 +160,14 @@ function sessionStateToLegacyStatus(state) {
160
160
  return "idle";
161
161
  case "parked":
162
162
  if (state.parkedOn === void 0) {
163
- throw new chunk3YCZ5H3H_js.SchemaError("parked state without parkedOn", chunk3YCZ5H3H_js.SchemaErrorCode.INVARIANT_VIOLATION);
163
+ throw new chunk4KMUATDG_js.SchemaError("parked state without parkedOn", chunk4KMUATDG_js.SchemaErrorCode.INVARIANT_VIOLATION);
164
164
  }
165
165
  return state.parkedOn === "agents" ? "waiting_agents" : "waiting_human";
166
166
  case "terminal":
167
167
  if (state.outcome === void 0) {
168
- throw new chunk3YCZ5H3H_js.SchemaError(
168
+ throw new chunk4KMUATDG_js.SchemaError(
169
169
  "terminal state without outcome",
170
- chunk3YCZ5H3H_js.SchemaErrorCode.INVARIANT_VIOLATION
170
+ chunk4KMUATDG_js.SchemaErrorCode.INVARIANT_VIOLATION
171
171
  );
172
172
  }
173
173
  return state.outcome;
@@ -215,6 +215,28 @@ var DEFAULT_APPROVAL_POLICY = Object.freeze({
215
215
  outward: "ask"
216
216
  });
217
217
  var TODO_PLAN_STATUSES = ["active", "completed", "abandoned"];
218
+ var PROVIDER_NAMES = [
219
+ "openai",
220
+ "anthropic",
221
+ "google",
222
+ "spacexai",
223
+ "deepseek",
224
+ "moonshotai",
225
+ "alibaba",
226
+ "mistral",
227
+ "minimax",
228
+ "meta",
229
+ "zai"
230
+ ];
231
+ var INFERENCE_SPEEDS = ["standard", "fast"];
232
+ var INFERENCE_REASONING_OPTIONS = [
233
+ "none",
234
+ "minimal",
235
+ "low",
236
+ "medium",
237
+ "high",
238
+ "xhigh"
239
+ ];
218
240
  function agentDisplayName(agent2) {
219
241
  return agent2.label?.trim() || agent2.name;
220
242
  }
@@ -249,7 +271,7 @@ var NATIVE_AGENT_UI_PART_IDS_METADATA_KEY = "__stndrdsNativeUiPartIds";
249
271
  var NATIVE_AGENT_UI_PART_IDS_METADATA_SCHEMA_VERSION = 1;
250
272
  var INVALID_NATIVE_PART_IDS = "Native agent UI part IDs metadata is invalid";
251
273
  function invalidNativePartIds() {
252
- throw new chunk3YCZ5H3H_js.ValidationError(INVALID_NATIVE_PART_IDS, []);
274
+ throw new chunk4KMUATDG_js.ValidationError(INVALID_NATIVE_PART_IDS, []);
253
275
  }
254
276
  function isPlainRecord(value) {
255
277
  if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
@@ -298,6 +320,39 @@ function parseNativeAgentUIPartIdsMetadata(message) {
298
320
  return parsed;
299
321
  }
300
322
 
323
+ // src/types/ai-dictation.ts
324
+ var DICTATION_SAMPLE_RATE = 16e3;
325
+ var DICTATION_FRAME_BYTES = 3200;
326
+ var DICTATION_MAX_FRAME_BYTES = 6400;
327
+ var DICTATION_MAX_BUFFER_BYTES = 16e3;
328
+ var DICTATION_MAX_TRANSCRIPT_BYTES = 65536;
329
+ var DICTATION_TICKET_TTL_MS = 15e3;
330
+ var DICTATION_PREPARATION_TIMEOUT_MS = 1e4;
331
+ var DICTATION_FINALIZATION_TIMEOUT_MS = 5e3;
332
+ var DICTATION_MODEL_ID = "google/gemini-3.5-transcribe-live";
333
+ var DEFAULT_DICTATION_LIMITS = {
334
+ maxDurationMs: 3e5,
335
+ dailyDurationMs: 36e5,
336
+ monthlyDurationMs: 72e6,
337
+ tenantMonthlyBudgetMicrousd: 5e7,
338
+ globalMonthlyBudgetMicrousd: 5e7,
339
+ estimatedMicrousdPerSecond: 150,
340
+ reservationMultiplier: 2
341
+ };
342
+
343
+ // src/types/artifacts.ts
344
+ var ARTIFACT_KINDS = [
345
+ "web",
346
+ "presentation",
347
+ "document",
348
+ "spreadsheet",
349
+ "image",
350
+ "code",
351
+ "other"
352
+ ];
353
+ var ARTIFACT_RETENTIONS = ["ephemeral", "conversation", "persistent"];
354
+ var ARTIFACT_FILE_ROLES = ["source", "preview", "entrypoint", "asset"];
355
+
301
356
  // src/types/document-layout.ts
302
357
  var MAX_PRESET_DEPTH = 5;
303
358
 
@@ -410,6 +465,14 @@ function hasOptions(attr) {
410
465
  return attr.type === "select" || attr.type === "status" || attr.type === "multiselect";
411
466
  }
412
467
 
468
+ // src/types/tenant-settings.ts
469
+ var DEFAULT_MEETING_BOT_DISPLAY_NAME = "Notetaker";
470
+ var DEFAULT_TENANT_SETTINGS = {
471
+ systemPrompt: null,
472
+ meetingRecordingPolicy: "none",
473
+ meetingBotDisplayName: DEFAULT_MEETING_BOT_DISPLAY_NAME
474
+ };
475
+
413
476
  // src/types/user-profiles.ts
414
477
  var USER_STATUSES = ["active", "suspended"];
415
478
  var USER_WORK_POSTURES = ["plan", "manual", "auto"];
@@ -436,7 +499,7 @@ function parseCountMode(value) {
436
499
  if (typeof value === "string" && COUNT_MODES.includes(value)) {
437
500
  return value;
438
501
  }
439
- throw new chunk3YCZ5H3H_js.ValidationError(
502
+ throw new chunk4KMUATDG_js.ValidationError(
440
503
  `countMode must be one of: ${COUNT_MODES.join(", ")} (received: ${String(value)})`,
441
504
  []
442
505
  );
@@ -478,6 +541,18 @@ function formatByteSize(bytes) {
478
541
  return `${value} ${BYTE_UNIT_LABELS[unitIndex]}`;
479
542
  }
480
543
 
544
+ // src/lib/list-view-presentation.ts
545
+ function getListViewDisplayAttributeNames(tab) {
546
+ if (tab.displayAttributes !== void 0) return [...tab.displayAttributes];
547
+ return [
548
+ ...new Set(
549
+ [tab.cardUserAttribute, tab.cardDateAttribute].filter(
550
+ (name) => name !== void 0
551
+ )
552
+ )
553
+ ];
554
+ }
555
+
481
556
  // src/lib/document-attribute.ts
482
557
  var DOCUMENT_SYSTEM_ATTRIBUTES = {
483
558
  ATTACHMENTS: "attachments"
@@ -542,7 +617,7 @@ function isDateRangeValue(value) {
542
617
  return typeof value === "object" && value !== null && typeof value.start === "string";
543
618
  }
544
619
  function normalizeDateValue(value, attr) {
545
- if (chunkRDYTVHNN_js.isNullishOrEmptyString(value)) return null;
620
+ if (chunkHURC6CW3_js.isNullishOrEmptyString(value)) return null;
546
621
  if (isDateRangeValue(value)) {
547
622
  return attr.endDate ? { start: value.start, end: value.end ?? null } : value.start;
548
623
  }
@@ -680,7 +755,7 @@ function formatMultiselect(value, attribute) {
680
755
  return value.join(", ");
681
756
  }
682
757
  function formatAttributeValue(value, attribute) {
683
- if (chunkRDYTVHNN_js.isNullishOrEmptyString(value)) {
758
+ if (chunkHURC6CW3_js.isNullishOrEmptyString(value)) {
684
759
  return EMPTY_VALUE_PLACEHOLDER;
685
760
  }
686
761
  switch (attribute.type) {
@@ -833,7 +908,7 @@ function renderLabelExpression(template, values, fallback = DEFAULT_LABEL_FALLBA
833
908
  break;
834
909
  }
835
910
  }
836
- const isEmpty2 = chunkRDYTVHNN_js.isNullishOrEmptyString(value);
911
+ const isEmpty2 = chunkHURC6CW3_js.isNullishOrEmptyString(value);
837
912
  if (isEmpty2 && pipes.length === 0) return "";
838
913
  for (const pipeExpr of pipes) {
839
914
  const { name: pipeName, args } = parsePipeExpression(pipeExpr);
@@ -893,7 +968,7 @@ function getEditableLabelAttribute(labelExpression, attributes) {
893
968
  if (name === null) return null;
894
969
  const attribute = attributes.find((candidate) => candidate.name === name);
895
970
  if (!attribute || attribute.type !== "text") return null;
896
- if (chunkD4A6FL67_js.getAttributeCapabilities(attribute).authoring.readOnly) return null;
971
+ if (chunkT5PM73EF_js.getAttributeCapabilities(attribute).authoring.readOnly) return null;
897
972
  return attribute;
898
973
  }
899
974
 
@@ -929,7 +1004,7 @@ function qualifiedPropertyDefs(attribute) {
929
1004
  return void 0;
930
1005
  }
931
1006
  function extractValueRefs(value) {
932
- if (chunkRDYTVHNN_js.isNullishOrEmptyString(value)) return [];
1007
+ if (chunkHURC6CW3_js.isNullishOrEmptyString(value)) return [];
933
1008
  if (typeof value === "string") return [{ id: value }];
934
1009
  if (Array.isArray(value)) return value.flatMap((item) => extractValueRefs(item));
935
1010
  if (typeof value === "object" && "id" in value) {
@@ -1133,24 +1208,24 @@ function validateObjectName(name) {
1133
1208
  OBJECT_NAME_SCHEMA.parse(name);
1134
1209
  } catch (error) {
1135
1210
  if (error instanceof z2__default.default.ZodError) {
1136
- throw new chunk3YCZ5H3H_js.SchemaError(error.issues[0].message, chunk3YCZ5H3H_js.SchemaErrorCode.INVALID_OBJECT_NAME);
1211
+ throw new chunk4KMUATDG_js.SchemaError(error.issues[0].message, chunk4KMUATDG_js.SchemaErrorCode.INVALID_OBJECT_NAME);
1137
1212
  }
1138
1213
  throw error;
1139
1214
  }
1140
1215
  }
1141
1216
  function validateViewName(name) {
1142
1217
  if (!name || name.length === 0) {
1143
- throw new chunk3YCZ5H3H_js.ValidationError("View name cannot be empty", [
1218
+ throw new chunk4KMUATDG_js.ValidationError("View name cannot be empty", [
1144
1219
  { path: ["name"], message: "View name cannot be empty" }
1145
1220
  ]);
1146
1221
  }
1147
1222
  if (name.length > MAX_NAME_LENGTH) {
1148
- throw new chunk3YCZ5H3H_js.ValidationError("View name is too long", [
1223
+ throw new chunk4KMUATDG_js.ValidationError("View name is too long", [
1149
1224
  { path: ["name"], message: `View name is too long (max ${MAX_NAME_LENGTH} characters)` }
1150
1225
  ]);
1151
1226
  }
1152
1227
  if (!VIEW_NAME_REGEX.test(name)) {
1153
- throw new chunk3YCZ5H3H_js.ValidationError("Invalid view name format", [
1228
+ throw new chunk4KMUATDG_js.ValidationError("Invalid view name format", [
1154
1229
  {
1155
1230
  path: ["name"],
1156
1231
  message: "View name must be in kebab-case (e.g., 'detail', 'list-view')"
@@ -1171,7 +1246,7 @@ function assertUniqueBy(items, getKey, buildError) {
1171
1246
  var ATTRIBUTE_NAME_SCHEMA = z2__default.default.string().min(1, "Attribute name cannot be empty").max(MAX_NAME_LENGTH, `Attribute name is too long (max ${MAX_NAME_LENGTH} characters)`).regex(ATTRIBUTE_NAME_REGEX, {
1172
1247
  message: "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'"
1173
1248
  }).refine(
1174
- (name) => !chunkD4A6FL67_js.RESERVED_ATTRIBUTE_NAMES.includes(name),
1249
+ (name) => !chunkT5PM73EF_js.RESERVED_ATTRIBUTE_NAMES.includes(name),
1175
1250
  { message: "This is a reserved attribute name" }
1176
1251
  );
1177
1252
  function validateAttributeName(name) {
@@ -1188,10 +1263,10 @@ function validateAttributeName(name) {
1188
1263
  "[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'"
1189
1264
  );
1190
1265
  }
1191
- if (chunkD4A6FL67_js.RESERVED_ATTRIBUTE_NAMES.includes(name)) {
1266
+ if (chunkT5PM73EF_js.RESERVED_ATTRIBUTE_NAMES.includes(name)) {
1192
1267
  throw new Error(
1193
1268
  `[AttributeBuilder] "${name}" is a reserved name and cannot be used as an attribute name.
1194
- Reserved names: ${chunkD4A6FL67_js.RESERVED_ATTRIBUTE_NAMES.join(", ")}`
1269
+ Reserved names: ${chunkT5PM73EF_js.RESERVED_ATTRIBUTE_NAMES.join(", ")}`
1195
1270
  );
1196
1271
  }
1197
1272
  }
@@ -1258,7 +1333,7 @@ var DEFAULT_AGENT_EXECUTION_CONFIG = {
1258
1333
  var AgentBuilder = class {
1259
1334
  constructor(config) {
1260
1335
  if (!config.name || config.name.trim().length === 0) {
1261
- throw new chunk3YCZ5H3H_js.ValidationError("Agent name is required", []);
1336
+ throw new chunk4KMUATDG_js.ValidationError("Agent name is required", []);
1262
1337
  }
1263
1338
  this.bp = { name: config.name, system: true, visibility: "workspace", triggers: [] };
1264
1339
  }
@@ -1307,13 +1382,21 @@ var AgentBuilder = class {
1307
1382
  * Partial execution config, shallow-merged over the current config
1308
1383
  * (defaulting to {@link DEFAULT_AGENT_EXECUTION_CONFIG} on the first call).
1309
1384
  *
1310
- * The merge is shallow at the top level only: passing a partial
1385
+ * The merge is shallow at the top level except for provider-neutral
1386
+ * `inference` preferences, whose independent dimensions compose across
1387
+ * calls. Passing a partial
1311
1388
  * `retryPolicy` REPLACES the whole `retryPolicy` object rather than
1312
1389
  * merging its individual fields. Pass a complete `retryPolicy` if you
1313
1390
  * only want to override one of its fields.
1314
1391
  */
1315
1392
  config(value) {
1316
- this.bp.config = { ...this.bp.config ?? DEFAULT_AGENT_EXECUTION_CONFIG, ...value };
1393
+ const current = this.bp.config ?? DEFAULT_AGENT_EXECUTION_CONFIG;
1394
+ const inference = value.inference === void 0 ? current.inference : { ...current.inference, ...value.inference };
1395
+ this.bp.config = {
1396
+ ...current,
1397
+ ...value,
1398
+ ...inference === void 0 ? {} : { inference }
1399
+ };
1317
1400
  return this;
1318
1401
  }
1319
1402
  delegation(value) {
@@ -1392,13 +1475,13 @@ var AgentBuilder = class {
1392
1475
  }
1393
1476
  build() {
1394
1477
  if (!this.bp.systemPrompt) {
1395
- throw new chunk3YCZ5H3H_js.ValidationError(`Agent "${this.bp.name}": systemPrompt is required`, []);
1478
+ throw new chunk4KMUATDG_js.ValidationError(`Agent "${this.bp.name}": systemPrompt is required`, []);
1396
1479
  }
1397
1480
  if (!this.bp.model) {
1398
- throw new chunk3YCZ5H3H_js.ValidationError(`Agent "${this.bp.name}": model is required`, []);
1481
+ throw new chunk4KMUATDG_js.ValidationError(`Agent "${this.bp.name}": model is required`, []);
1399
1482
  }
1400
1483
  if (this.bp.system && this.bp.visibility === "private") {
1401
- throw new chunk3YCZ5H3H_js.ValidationError(
1484
+ throw new chunk4KMUATDG_js.ValidationError(
1402
1485
  `Agent "${this.bp.name}": system agents must use workspace visibility`,
1403
1486
  []
1404
1487
  );
@@ -1406,7 +1489,7 @@ var AgentBuilder = class {
1406
1489
  assertUniqueBy(
1407
1490
  this.bp.triggers,
1408
1491
  (t) => t.name,
1409
- (name) => new chunk3YCZ5H3H_js.ValidationError(`Agent "${this.bp.name}": duplicate trigger name "${name}"`, [])
1492
+ (name) => new chunk4KMUATDG_js.ValidationError(`Agent "${this.bp.name}": duplicate trigger name "${name}"`, [])
1410
1493
  );
1411
1494
  return {
1412
1495
  ...this.bp,
@@ -1461,7 +1544,7 @@ var BaseAttributeBuilder = class {
1461
1544
  * @see https://standardschema.dev/
1462
1545
  */
1463
1546
  get "~standard"() {
1464
- const zodSchema = chunkRDYTVHNN_js.createAttributeValidator(this.build());
1547
+ const zodSchema = chunkHURC6CW3_js.createAttributeValidator(this.build());
1465
1548
  return createStandardSchemaProps(zodSchema);
1466
1549
  }
1467
1550
  constructor(type, name, label) {
@@ -2218,9 +2301,9 @@ var RollupAttributeBuilder = class extends BaseAttributeBuilder {
2218
2301
  if (fn === "original" && targetType !== void 0 && targetType !== "select" && targetType !== "status" && targetType !== "multiselect") {
2219
2302
  const relation2 = this.attr.relationAttribute ?? "relation";
2220
2303
  const target = this.attr.targetAttribute ?? "field";
2221
- throw new chunk3YCZ5H3H_js.SchemaError(
2304
+ throw new chunk4KMUATDG_js.SchemaError(
2222
2305
  `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}").`,
2223
- chunk3YCZ5H3H_js.SchemaErrorCode.VALIDATION_FAILED
2306
+ chunk4KMUATDG_js.SchemaErrorCode.VALIDATION_FAILED
2224
2307
  );
2225
2308
  }
2226
2309
  return super.build();
@@ -2730,7 +2813,7 @@ var ObjectBuilder = class {
2730
2813
  * @see https://standardschema.dev/
2731
2814
  */
2732
2815
  get "~standard"() {
2733
- const zodSchema = chunkRDYTVHNN_js.createObjectValidator(this.build());
2816
+ const zodSchema = chunkHURC6CW3_js.createObjectValidator(this.build());
2734
2817
  return createStandardSchemaProps(zodSchema);
2735
2818
  }
2736
2819
  /**
@@ -2858,7 +2941,7 @@ var ObjectBuilder = class {
2858
2941
  assertUniqueBy(
2859
2942
  [...this.obj.attributes, ...finalAttrs],
2860
2943
  (attribute) => attribute.name,
2861
- (name) => new chunk3YCZ5H3H_js.DuplicateError(
2944
+ (name) => new chunk4KMUATDG_js.DuplicateError(
2862
2945
  "attribute",
2863
2946
  name,
2864
2947
  `Object "${this.obj.name}": duplicate attribute name "${name}"`
@@ -2987,26 +3070,26 @@ var ObjectBuilder = class {
2987
3070
  throw new Error("[ObjectBuilder] Missing required field: label");
2988
3071
  }
2989
3072
  if (!this._labelExpression) {
2990
- throw new chunk3YCZ5H3H_js.SchemaError(
3073
+ throw new chunk4KMUATDG_js.SchemaError(
2991
3074
  `Object "${this.obj.name}" must have a labelExpression. The labelExpression defines how records are displayed in lists and relations (e.g. "{{ name }}").`,
2992
- chunk3YCZ5H3H_js.SchemaErrorCode.VALIDATION_FAILED
3075
+ chunk4KMUATDG_js.SchemaErrorCode.VALIDATION_FAILED
2993
3076
  );
2994
3077
  }
2995
3078
  const labelResult = labelExpressionSchema.safeParse(this._labelExpression);
2996
3079
  if (!labelResult.success) {
2997
3080
  const errorMsg = labelResult.error.issues[0]?.message ?? "Invalid labelExpression";
2998
- throw new chunk3YCZ5H3H_js.SchemaError(
3081
+ throw new chunk4KMUATDG_js.SchemaError(
2999
3082
  `Invalid labelExpression for "${this.obj.name}": ${errorMsg}`,
3000
- chunk3YCZ5H3H_js.SchemaErrorCode.VALIDATION_FAILED
3083
+ chunk4KMUATDG_js.SchemaErrorCode.VALIDATION_FAILED
3001
3084
  );
3002
3085
  }
3003
3086
  if (this._embeddingExpression !== void 0) {
3004
3087
  const embeddingResult = labelExpressionSchema.safeParse(this._embeddingExpression);
3005
3088
  if (!embeddingResult.success) {
3006
3089
  const errorMsg = embeddingResult.error.issues[0]?.message ?? "Invalid embeddingExpression";
3007
- throw new chunk3YCZ5H3H_js.SchemaError(
3090
+ throw new chunk4KMUATDG_js.SchemaError(
3008
3091
  `Invalid embeddingExpression for "${this.obj.name}": ${errorMsg}`,
3009
- chunk3YCZ5H3H_js.SchemaErrorCode.VALIDATION_FAILED
3092
+ chunk4KMUATDG_js.SchemaErrorCode.VALIDATION_FAILED
3010
3093
  );
3011
3094
  }
3012
3095
  }
@@ -3048,7 +3131,7 @@ function object(config) {
3048
3131
  }
3049
3132
  function validatePresetStructure(presetId, nodes, depth) {
3050
3133
  const fail = (message, detail) => {
3051
- throw new chunk3YCZ5H3H_js.ValidationError(message, [
3134
+ throw new chunk4KMUATDG_js.ValidationError(message, [
3052
3135
  { path: ["documentLayout", "presets", presetId], message: detail }
3053
3136
  ]);
3054
3137
  };
@@ -3116,7 +3199,7 @@ var GroupBuilder = class {
3116
3199
  }
3117
3200
  /**
3118
3201
  * Add a single field with options
3119
- * @example .field("name", { span: 8, readOnly: true })
3202
+ * @example .field("name", { label: "Full name", readOnly: true })
3120
3203
  */
3121
3204
  field(attribute, options) {
3122
3205
  this.data.fields?.push({ attribute, ...options });
@@ -3770,6 +3853,11 @@ var ListViewBuilder = class {
3770
3853
  this.data.defaultFilters = filters;
3771
3854
  return this;
3772
3855
  }
3856
+ /** Allow Architect to customize only the presentation of a system list view. */
3857
+ allowPresentationCustomization() {
3858
+ this.data.allowPresentationCustomization = true;
3859
+ return this;
3860
+ }
3773
3861
  /**
3774
3862
  * Add a tab with its own full configuration (layout, columns, filters, sorts, groupBy)
3775
3863
  * Returns a ListViewTabConfigBuilder for chaining tab configuration
@@ -3810,16 +3898,41 @@ var ListViewBuilder = class {
3810
3898
  throw new Error("[ListViewBuilder] Only one tab can be marked as default");
3811
3899
  }
3812
3900
  for (const tab of this.data.tabs) {
3813
- if (tab.columns.length === 0) {
3814
- throw new Error(`[ListViewBuilder] Tab "${tab.id}" must have at least one column`);
3901
+ if (tab.layout === "table" && tab.columns.length === 0) {
3902
+ throw new chunk4KMUATDG_js.ValidationError(
3903
+ `[ListViewBuilder] Tab "${tab.id}" must have at least one column`,
3904
+ []
3905
+ );
3815
3906
  }
3816
3907
  if (tab.layout === "kanban" && !tab.groupByAttribute) {
3817
- throw new Error(`[ListViewBuilder] Kanban tab "${tab.id}" requires a groupByAttribute`);
3908
+ throw new chunk4KMUATDG_js.ValidationError(
3909
+ `[ListViewBuilder] Kanban tab "${tab.id}" requires a groupByAttribute`,
3910
+ []
3911
+ );
3912
+ }
3913
+ if (tab.descriptionAttribute !== void 0 && tab.descriptionAttribute.length === 0) {
3914
+ throw new chunk4KMUATDG_js.ValidationError(
3915
+ `[ListViewBuilder] Tab "${tab.id}" requires a nonempty description attribute name`,
3916
+ []
3917
+ );
3918
+ }
3919
+ if (tab.displayAttributes !== void 0) {
3920
+ const parsed = chunkT5PM73EF_js.displayAttributesSchema.safeParse(tab.displayAttributes);
3921
+ if (!parsed.success) {
3922
+ throw new chunk4KMUATDG_js.ValidationError(
3923
+ `[ListViewBuilder] Tab "${tab.id}" has invalid display attributes`,
3924
+ parsed.error.issues.map((issue) => ({
3925
+ path: ["tabs", tab.id, "displayAttributes", ...issue.path.map(String)],
3926
+ message: issue.message
3927
+ }))
3928
+ );
3929
+ }
3818
3930
  }
3819
3931
  }
3820
3932
  const config = {
3933
+ allowPresentationCustomization: this.data.allowPresentationCustomization,
3821
3934
  defaultFilters: this.data.defaultFilters ? {
3822
- id: chunkZHB4VBCX_js.generateId(),
3935
+ id: chunkDVXGSTWJ_js.generateId(),
3823
3936
  combinator: this.data.defaultFilters.combinator,
3824
3937
  rules: this.data.defaultFilters.rules
3825
3938
  } : void 0,
@@ -3833,8 +3946,10 @@ var ListViewBuilder = class {
3833
3946
  // record's own column (see the visibility notes in CLAUDE.md).
3834
3947
  visibility: tab.visibility,
3835
3948
  columns: tab.columns,
3949
+ descriptionAttribute: tab.descriptionAttribute,
3950
+ displayAttributes: tab.displayAttributes,
3836
3951
  filters: tab.filters ? {
3837
- id: chunkZHB4VBCX_js.generateId(),
3952
+ id: chunkDVXGSTWJ_js.generateId(),
3838
3953
  combinator: tab.filters.combinator,
3839
3954
  rules: tab.filters.rules
3840
3955
  } : void 0,
@@ -3852,7 +3967,7 @@ var ListViewBuilder = class {
3852
3967
  kanbanPinnedColumns: tab.kanbanPinnedColumns
3853
3968
  } : {
3854
3969
  ...common,
3855
- layout: "table",
3970
+ layout: tab.layout,
3856
3971
  columnSizing: tab.columnSizing
3857
3972
  };
3858
3973
  })
@@ -3911,9 +4026,24 @@ var ListViewTabConfigBuilder = class _ListViewTabConfigBuilder {
3911
4026
  this.tabData.layout = "table";
3912
4027
  return this;
3913
4028
  }
4029
+ /** Show records as rows with a description and ordered attribute strip. */
4030
+ list() {
4031
+ this.tabData.layout = "list";
4032
+ return this;
4033
+ }
4034
+ /** Choose the text/richtext attribute below each List or Kanban record label. */
4035
+ descriptionAttribute(attributeName) {
4036
+ this.tabData.descriptionAttribute = attributeName;
4037
+ return this;
4038
+ }
4039
+ /** Choose ordered List/Kanban footer attributes; an empty call hides all. */
4040
+ displayAttributes(...names) {
4041
+ this.tabData.displayAttributes = names;
4042
+ return this;
4043
+ }
3914
4044
  /**
3915
4045
  * Set the layout to kanban and specify the grouping attribute
3916
- * @param groupByAttribute - Attribute to group by (must be a select/status type)
4046
+ * @param groupByAttribute - Status attribute to group by
3917
4047
  */
3918
4048
  kanban(groupByAttribute) {
3919
4049
  this.tabData.layout = "kanban";
@@ -3922,6 +4052,7 @@ var ListViewTabConfigBuilder = class _ListViewTabConfigBuilder {
3922
4052
  }
3923
4053
  /**
3924
4054
  * Set the user attribute to display on kanban cards (bottom-left)
4055
+ * @deprecated Use displayAttributes.
3925
4056
  * @param attributeName - Name of a user-type attribute
3926
4057
  */
3927
4058
  cardUserAttribute(attributeName) {
@@ -3930,6 +4061,7 @@ var ListViewTabConfigBuilder = class _ListViewTabConfigBuilder {
3930
4061
  }
3931
4062
  /**
3932
4063
  * Set the date attribute to display on kanban cards (bottom-right)
4064
+ * @deprecated Use displayAttributes.
3933
4065
  * @param attributeName - Name of a date-type attribute
3934
4066
  */
3935
4067
  cardDateAttribute(attributeName) {
@@ -4000,7 +4132,7 @@ var ListViewTabConfigBuilder = class _ListViewTabConfigBuilder {
4000
4132
  const protectedAttribute = findProtectedTabFilterAttribute(filters);
4001
4133
  if (protectedAttribute) {
4002
4134
  const message = `Tab filters cannot target "${protectedAttribute}". Use .visibility("private")`;
4003
- throw new chunk3YCZ5H3H_js.ValidationError(message, [{ path: ["filters"], message }]);
4135
+ throw new chunk4KMUATDG_js.ValidationError(message, [{ path: ["filters"], message }]);
4004
4136
  }
4005
4137
  this.tabData.filters = filters;
4006
4138
  return this;
@@ -4211,7 +4343,7 @@ function jsonFlag(name, defaultValue) {
4211
4343
 
4212
4344
  // src/feature-flags/flag-registry.ts
4213
4345
  function duplicateFlagError(name) {
4214
- return new chunk3YCZ5H3H_js.DuplicateError(
4346
+ return new chunk4KMUATDG_js.DuplicateError(
4215
4347
  "feature flag",
4216
4348
  name,
4217
4349
  `Flag "${name}" is already registered. Each flag name must be unique.`
@@ -4289,7 +4421,7 @@ var FlagRegistry = class {
4289
4421
  getOrThrow(name) {
4290
4422
  const flag = this.get(name);
4291
4423
  if (!flag) {
4292
- throw new chunk3YCZ5H3H_js.NotFoundError(
4424
+ throw new chunk4KMUATDG_js.NotFoundError(
4293
4425
  "Feature flag",
4294
4426
  name,
4295
4427
  void 0,
@@ -4466,19 +4598,19 @@ var FlagService = class {
4466
4598
  */
4467
4599
  async setOverride(flagName, level, value, options = {}) {
4468
4600
  if (!this.repository) {
4469
- throw new chunk3YCZ5H3H_js.SchemaError(
4601
+ throw new chunk4KMUATDG_js.SchemaError(
4470
4602
  "Cannot set override: no FeatureFlagsRepository configured. Add featureFlags to your DatabaseAdapter to enable runtime overrides.",
4471
- chunk3YCZ5H3H_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4603
+ chunk4KMUATDG_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4472
4604
  );
4473
4605
  }
4474
4606
  const flag = this.registry.get(flagName);
4475
4607
  if (flag && !flag.allowedLevels.includes(level)) {
4476
4608
  const message = `Flag "${flagName}" does not allow ${level}-level overrides. Allowed levels: ${flag.allowedLevels.join(", ")}`;
4477
- throw new chunk3YCZ5H3H_js.ValidationError(message, [{ path: ["level"], message }]);
4609
+ throw new chunk4KMUATDG_js.ValidationError(message, [{ path: ["level"], message }]);
4478
4610
  }
4479
4611
  if (flag?.system) {
4480
4612
  const message = `Flag "${flagName}" is a system flag and cannot be overridden via API.`;
4481
- throw new chunk3YCZ5H3H_js.ValidationError(message, [{ path: ["flagName"], message }]);
4613
+ throw new chunk4KMUATDG_js.ValidationError(message, [{ path: ["flagName"], message }]);
4482
4614
  }
4483
4615
  await this.repository.setOverride({
4484
4616
  flagName,
@@ -4498,9 +4630,9 @@ var FlagService = class {
4498
4630
  */
4499
4631
  async deleteOverride(flagName, level, targetId) {
4500
4632
  if (!this.repository) {
4501
- throw new chunk3YCZ5H3H_js.SchemaError(
4633
+ throw new chunk4KMUATDG_js.SchemaError(
4502
4634
  "Cannot delete override: no FeatureFlagsRepository configured.",
4503
- chunk3YCZ5H3H_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4635
+ chunk4KMUATDG_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4504
4636
  );
4505
4637
  }
4506
4638
  await this.repository.deleteOverride(flagName, level, targetId);
@@ -4637,7 +4769,7 @@ var NativeObjectRegistryClass = class {
4637
4769
  if (!object2.system) {
4638
4770
  const message = `[NativeObjectRegistry] Cannot register object "${object2.name}" (id: ${object2.id}): missing system flag.
4639
4771
  Native objects must have system=true. Did you call .runtime() on the builder? Remove that call \u2014 objects are system:true by default.`;
4640
- throw new chunk3YCZ5H3H_js.ValidationError(message, []);
4772
+ throw new chunk4KMUATDG_js.ValidationError(message, []);
4641
4773
  }
4642
4774
  if (this.objects.has(object2.name)) {
4643
4775
  const existing = this.objects.get(object2.name);
@@ -4645,7 +4777,7 @@ Native objects must have system=true. Did you call .runtime() on the builder? Re
4645
4777
  - Existing: "${existing?.label}" (id: ${existing?.id})
4646
4778
  - New: "${object2.label}" (id: ${object2.id})
4647
4779
  Please use unique names for each native object.`;
4648
- throw new chunk3YCZ5H3H_js.DuplicateError("object", object2.name, message);
4780
+ throw new chunk4KMUATDG_js.DuplicateError("object", object2.name, message);
4649
4781
  }
4650
4782
  this.objects.set(object2.name, cloneObjectDefinition(object2));
4651
4783
  }
@@ -4677,7 +4809,7 @@ Please use unique names for each native object.`;
4677
4809
  if (!object2) {
4678
4810
  const message = `[NativeObjectRegistry] Native object "${name}" not found.
4679
4811
  Available objects: ${this.listNames().join(", ")}`;
4680
- throw new chunk3YCZ5H3H_js.NotFoundError("Native object", name, chunk3YCZ5H3H_js.SchemaErrorCode.OBJECT_NOT_FOUND, message);
4812
+ throw new chunk4KMUATDG_js.NotFoundError("Native object", name, chunk4KMUATDG_js.SchemaErrorCode.OBJECT_NOT_FOUND, message);
4681
4813
  }
4682
4814
  return object2;
4683
4815
  }
@@ -4777,16 +4909,16 @@ Show at least one concrete example of the skill applied well.
4777
4909
  - Never \u2026
4778
4910
  - Do not \u2026
4779
4911
  `;
4780
- var SKILL_OBJECT = object({ name: "skill", label: "Skill" }).sealed().icon("sparkles").order(Number.MAX_SAFE_INTEGER).pluralLabel("Skills").labelExpression("{{ name }}").embeddingExpression("{{ name }}\n{{ description }}\n{{ content }}").attribute(text({ name: "name", label: "Name" }).maxLength(constants.SKILL_NAME_MAX_LENGTH).required()).attribute(
4912
+ var SKILL_OBJECT = object({ name: "skill", label: "Skill" }).sealed().icon("book-open").order(Number.MAX_SAFE_INTEGER).pluralLabel("Skills").labelExpression("{{ name }}").embeddingExpression("{{ name }}\n{{ description }}\n{{ content }}").attribute(text({ name: "name", label: "Name" }).maxLength(constants.SKILL_NAME_MAX_LENGTH).required()).attribute(
4781
4913
  text({ name: "description", label: "Description" }).multiline().maxLength(constants.SKILL_DESCRIPTION_MAX_LENGTH).required().placeholder(
4782
4914
  'What this skill does and when to use it \u2014 e.g. "Drafts replies to customer complaints. Use when asked to answer an unhappy customer."'
4783
4915
  )
4784
4916
  ).attribute(richtext({ name: "content", label: "Content" }).defaultValue(SKILL_CONTENT_TEMPLATE)).build();
4785
4917
  var SKILL_VIEW = markSystemView(
4786
- 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()
4918
+ detailView("skill-detail", "Skill").for("skill").default().sidePanel({ attributes: ["name", "description"] }).tab("content", "Content").richtext("content").titleAttribute("name").done().tab("files", "Files").documents().done().tab("activity", "Activity").activity().done().build()
4787
4919
  );
4788
4920
  var SKILL_LIST_VIEW = markSystemView(
4789
- 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()
4921
+ listView("skill-list", "Skills").for("skill").default().allowPresentationCustomization().tab("workspace", "Skills").default().icon("list").visibility("workspace").list().columns("name", "description").descriptionAttribute("description").displayAttributes("createdBy", "updatedAt").sort("name", "asc").tab("mine", "My skills").icon("lock").visibility("private").list().columns("name", "description").descriptionAttribute("description").displayAttributes("createdBy", "updatedAt").sort("name", "asc").build()
4790
4922
  );
4791
4923
  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(
4792
4924
  text({ name: "description", label: "Description" }).multiline().maxLength(constants.MEMORY_DESCRIPTION_MAX_LENGTH).required()
@@ -4801,25 +4933,52 @@ var MEMORY_OBJECT = object({ name: "memory", label: "Memory" }).sealed().icon("d
4801
4933
  select({ name: "source", label: "Source" }).options([
4802
4934
  { value: "explicit", label: "Saved by an agent" },
4803
4935
  { value: "extracted", label: "Extracted from a session" },
4804
- { value: "corroborated", label: "Corroborated across users" }
4936
+ { value: "corroborated", label: "Corroborated across users" },
4937
+ { value: "curated", label: "Curated by Dreamer" }
4805
4938
  ])
4806
- ).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();
4939
+ ).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")).attribute(text({ name: "provenance", label: "Provenance" }).multiline()).attribute(
4940
+ select({ name: "reviewState", label: "Review state" }).options([
4941
+ { value: "needs_review", label: "Needs review" },
4942
+ { value: "skill_candidate", label: "Skill candidate" }
4943
+ ])
4944
+ ).attribute(text({ name: "reviewReason", label: "Review reason" }).multiline()).attribute(date({ name: "curatedAt", label: "Curated at" }).includeTime()).attribute(date({ name: "reviewAfter", label: "Review after" }).includeTime()).attribute(text({ name: "curationFingerprint", label: "Curation fingerprint" })).build();
4945
+ var ACTIVE_MEMORY_FILTER = {
4946
+ combinator: "and",
4947
+ rules: [
4948
+ { attribute: "invalidAt", operator: "is_empty", value: null },
4949
+ { attribute: "reviewState", operator: "is_empty", value: null }
4950
+ ]
4951
+ };
4807
4952
  var MEMORY_VIEW = markSystemView(
4808
4953
  detailView("memory-detail", "Memory").for("memory").default().sidePanel({
4809
4954
  attributes: [
4810
4955
  "description",
4811
4956
  "kind",
4812
4957
  "source",
4958
+ "provenance",
4959
+ "reviewState",
4960
+ "reviewReason",
4813
4961
  "validFrom",
4814
4962
  "invalidAt",
4815
4963
  "supersededBy",
4964
+ "curatedAt",
4965
+ "reviewAfter",
4816
4966
  "subjects",
4817
4967
  "links"
4818
4968
  ]
4819
4969
  }).tab("content", "Content").richtext("content").titleAttribute("name").build()
4820
4970
  );
4821
4971
  var MEMORY_LIST_VIEW = markSystemView(
4822
- 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()
4972
+ listView("memory-list", "Memories").for("memory").default().allowPresentationCustomization().tab("workspace", "Memories").default().icon("list").visibility("workspace").list().columns("name", "kind", "description", "createdAt").descriptionAttribute("description").displayAttributes("kind", "subjects", "createdAt").filter(ACTIVE_MEMORY_FILTER).sort("name", "asc").tab("mine", "My memories").icon("lock").visibility("private").list().columns("name", "kind", "description", "createdAt").descriptionAttribute("description").displayAttributes("kind", "subjects", "createdAt").filter(ACTIVE_MEMORY_FILTER).sort("name", "asc").tab("review", "To review").icon("question-circle").table().columns("name", "reviewState", "reviewReason", "updatedAt").filter({
4973
+ combinator: "and",
4974
+ rules: [
4975
+ { attribute: "invalidAt", operator: "is_empty", value: null },
4976
+ { attribute: "reviewState", operator: "is_not_empty", value: null }
4977
+ ]
4978
+ }).sort("updatedAt", "desc").tab("history", "History").icon("archive").table().columns("name", "kind", "invalidAt", "supersededBy").filter({
4979
+ combinator: "and",
4980
+ rules: [{ attribute: "invalidAt", operator: "is_not_empty", value: null }]
4981
+ }).sort("invalidAt", "desc").build()
4823
4982
  );
4824
4983
 
4825
4984
  // src/native/drive.object.ts
@@ -4832,6 +4991,46 @@ var DRIVE_LIST_VIEW = markSystemView(
4832
4991
  listView("drive-list", "Drives").for(DRIVE_OBJECT_NAME).default().tab("workspace", "Shared").default().icon("users").visibility("workspace").table().columns("name", "description", "updatedAt").sort("name", "asc").tab("mine", "My drives").icon("lock").visibility("private").table().columns("name", "description", "updatedAt").sort("name", "asc").build()
4833
4992
  );
4834
4993
 
4994
+ // src/native/artifact.object.ts
4995
+ var ARTIFACT_OBJECT_NAME = "artifact";
4996
+ var ARTIFACT_OBJECT = object({ name: ARTIFACT_OBJECT_NAME, label: "Artifact" }).sealed().hidden().icon("package").pluralLabel("Artifacts").labelExpression("{{ name }}").embeddingExpression("{{ name }}\n{{ description }}").attribute(text({ name: "name", label: "Name" }).required()).attribute(text({ name: "description", label: "Description" }).multiline()).attribute(
4997
+ select({ name: "kind", label: "Kind" }).options([
4998
+ { value: "web", label: "Web", color: "blue" },
4999
+ { value: "presentation", label: "Presentation", color: "purple" },
5000
+ { value: "document", label: "Document", color: "sky" },
5001
+ { value: "spreadsheet", label: "Spreadsheet", color: "green" },
5002
+ { value: "image", label: "Image", color: "pink" },
5003
+ { value: "code", label: "Code", color: "slate" },
5004
+ { value: "other", label: "Other", color: "gray" }
5005
+ ]).required()
5006
+ ).attribute(
5007
+ select({ name: "retention", label: "Retention" }).options([
5008
+ { value: "ephemeral", label: "Ephemeral", color: "gray" },
5009
+ { value: "conversation", label: "Conversation", color: "blue" },
5010
+ { value: "persistent", label: "Persistent", color: "green" }
5011
+ ]).defaultValue("conversation").required()
5012
+ ).attribute(number({ name: "currentRevision", label: "Current revision" }).integer().min(1)).attribute(date({ name: "expiresAt", label: "Expires at" }).includeTime().hidden()).attribute(text({ name: "sourceSessionId", label: "Source session" }).hidden()).attribute(text({ name: "sourceMessageId", label: "Source message" }).hidden()).attribute(text({ name: "initialToolCallId", label: "Initial tool call" }).hidden()).attribute(
5013
+ document({ name: "versions", label: "Versions" }).qualifyWith(
5014
+ number({ name: "revision", label: "Revision" }).integer().min(1).required(),
5015
+ text({ name: "toolCallId", label: "Tool call" }).hidden(),
5016
+ text({ name: "sourceFileId", label: "Source file" }).hidden(),
5017
+ text({ name: "previewFileId", label: "Preview file" }).hidden(),
5018
+ text({ name: "fileIds", label: "File manifest" }).hidden(),
5019
+ text({ name: "entrypoint", label: "Entrypoint" }).hidden(),
5020
+ text({ name: "sourceMessageId", label: "Source message" }).hidden(),
5021
+ text({ name: "artifactName", label: "Artifact name" }).hidden(),
5022
+ text({ name: "artifactDescription", label: "Artifact description" }).hidden(),
5023
+ text({ name: "artifactKind", label: "Artifact kind" }).hidden(),
5024
+ text({ name: "displayMode", label: "Display mode" }).hidden(),
5025
+ text({ name: "displayInteraction", label: "Display interaction" }).hidden(),
5026
+ text({ name: "displaySize", label: "Display size" }).hidden(),
5027
+ number({ name: "displayAspectRatio", label: "Display aspect ratio" }).hidden()
5028
+ )
5029
+ ).build();
5030
+ var ARTIFACT_LIST_VIEW = markSystemView(
5031
+ listView("artifact-list", "Artifacts").for(ARTIFACT_OBJECT_NAME).default().allowPresentationCustomization().tab("all", "Artifacts").default().icon("list").list().columns("name", "kind", "currentRevision", "updatedAt").descriptionAttribute("description").displayAttributes("kind", "currentRevision", "versions").sort("updatedAt", "desc").build()
5032
+ );
5033
+
4835
5034
  // src/views/registry.ts
4836
5035
  function cloneViewDefinition(view) {
4837
5036
  return structuredClone(view);
@@ -4858,7 +5057,7 @@ var ViewRegistry = class {
4858
5057
  const key = this.makeKey(view.object, view.name, view.type);
4859
5058
  if (this.views.has(key)) {
4860
5059
  const message = `[ViewRegistry] Duplicate view: "${view.name}" (${view.type}) for object "${view.object}"`;
4861
- throw new chunk3YCZ5H3H_js.DuplicateError("view", key, message);
5060
+ throw new chunk4KMUATDG_js.DuplicateError("view", key, message);
4862
5061
  }
4863
5062
  const storedView = cloneViewDefinition(view);
4864
5063
  this.views.set(key, storedView);
@@ -4903,7 +5102,7 @@ var ViewRegistry = class {
4903
5102
  const availableNames = available.map((v) => `${v.name} (${v.type})`).join(", ") || "(none)";
4904
5103
  const message = `[ViewRegistry] View "${viewName}" not found for object "${objectName}".
4905
5104
  Available views: ${availableNames}`;
4906
- throw new chunk3YCZ5H3H_js.NotFoundError("View", `${objectName}:${viewName}`, void 0, message);
5105
+ throw new chunk4KMUATDG_js.NotFoundError("View", `${objectName}:${viewName}`, void 0, message);
4907
5106
  }
4908
5107
  return view;
4909
5108
  }
@@ -4991,7 +5190,7 @@ var viewRegistry = new ViewRegistry();
4991
5190
  // src/views/auto-generator.ts
4992
5191
  function getRuntimeAttributes(attributes, excludeNames = []) {
4993
5192
  return attributes.filter(
4994
- (attr) => !(!chunkD4A6FL67_js.getAttributeCapabilities(attr).lifecycle.visibleInRuntime || attr.system || excludeNames.includes(attr.name))
5193
+ (attr) => !(!chunkT5PM73EF_js.getAttributeCapabilities(attr).lifecycle.visibleInRuntime || attr.system || excludeNames.includes(attr.name))
4995
5194
  );
4996
5195
  }
4997
5196
  function sortAttributes(attributes) {
@@ -5024,7 +5223,7 @@ function generateDefaultDetailView(object2, options = {}) {
5024
5223
  const { includeActivityTab = true, includeDocumentsTab = true, excludeAttributes = [] } = options;
5025
5224
  const runtimeAttrs = getRuntimeAttributes(object2.attributes, excludeAttributes);
5026
5225
  const sortedAttrs = sortAttributes(
5027
- runtimeAttrs.filter((attr) => chunkD4A6FL67_js.getAttributeCapabilities(attr).presentation.formField)
5226
+ runtimeAttrs.filter((attr) => chunkT5PM73EF_js.getAttributeCapabilities(attr).presentation.formField)
5028
5227
  );
5029
5228
  const formTab = {
5030
5229
  id: "form",
@@ -5081,7 +5280,7 @@ function generateDefaultListView(object2, options = {}) {
5081
5280
  const { excludeAttributes = [], maxListColumns = 5 } = options;
5082
5281
  const runtimeAttrs = getRuntimeAttributes(object2.attributes, excludeAttributes);
5083
5282
  const sortedAttrs = sortAttributes(
5084
- runtimeAttrs.filter((attr) => chunkD4A6FL67_js.getAttributeCapabilities(attr).presentation.defaultColumn)
5283
+ runtimeAttrs.filter((attr) => chunkT5PM73EF_js.getAttributeCapabilities(attr).presentation.defaultColumn)
5085
5284
  );
5086
5285
  const columns = sortedAttrs.slice(0, maxListColumns).map((attr) => attr.name);
5087
5286
  const config = {
@@ -5211,7 +5410,7 @@ var FormRegistry = class {
5211
5410
  const forms = Array.isArray(formOrForms) ? formOrForms : [formOrForms];
5212
5411
  for (const f of forms) {
5213
5412
  if (this.forms.has(f.name)) {
5214
- throw new chunk3YCZ5H3H_js.DuplicateError("form", f.name, `[FormRegistry] Duplicate form: "${f.name}"`);
5413
+ throw new chunk4KMUATDG_js.DuplicateError("form", f.name, `[FormRegistry] Duplicate form: "${f.name}"`);
5215
5414
  }
5216
5415
  this.forms.set(f.name, cloneFormDefinition(f));
5217
5416
  }
@@ -5392,6 +5591,7 @@ var LIVE_EVENT_TYPE_REGISTRY = {
5392
5591
  "reflex.run.completed": true,
5393
5592
  "reflex.authoring.progress": true,
5394
5593
  "architect.draft.updated": true,
5594
+ "meeting.recording.patch": true,
5395
5595
  "channel.revoked": true
5396
5596
  };
5397
5597
  var LIVE_EVENT_TYPES = Object.keys(LIVE_EVENT_TYPE_REGISTRY);
@@ -5493,6 +5693,8 @@ function isLiveEventPayloadForType(type, payload) {
5493
5693
  return isReflexAuthoringProgressPayload(payload);
5494
5694
  case "architect.draft.updated":
5495
5695
  return isArchitectDraftUpdatedPayload(payload);
5696
+ case "meeting.recording.patch":
5697
+ return isMeetingRecordingPatchPayload(payload);
5496
5698
  case "channel.revoked":
5497
5699
  return isChannelRevokedPayload(payload);
5498
5700
  default:
@@ -5653,6 +5855,16 @@ function isReflexRunCompletedPayload(payload) {
5653
5855
  function isReflexAuthoringProgressPayload(payload) {
5654
5856
  return payload.type === "reflex.authoring.progress" && hasNonEmptyString(payload, "reflexId") && isOneOf(payload.status, REFLEX_AUTHORING_STATUSES) && hasIsoDateString(payload, "updatedAt");
5655
5857
  }
5858
+ var MEETING_RECORDING_STATUSES = [
5859
+ "none",
5860
+ "scheduled",
5861
+ "recording",
5862
+ "completed",
5863
+ "failed"
5864
+ ];
5865
+ function isMeetingRecordingPatchPayload(payload) {
5866
+ return payload.type === "meeting.recording.patch" && hasNonEmptyString(payload, "meetingId") && isOneOf(payload.status, MEETING_RECORDING_STATUSES) && isNullableString(payload.failureReason) && hasIsoDateString(payload, "updatedAt");
5867
+ }
5656
5868
  function isChannelRevokedPayload(payload) {
5657
5869
  return payload.type === "channel.revoked" && hasString(payload, "channel") && isOneOf(payload.reason, CHANNEL_REVOKED_REASONS);
5658
5870
  }
@@ -5814,7 +6026,7 @@ function assertAcyclicComputedDependencies(nodes) {
5814
6026
  }
5815
6027
  function parseCompileFormula(expression) {
5816
6028
  try {
5817
- return chunk5JMQNH2A_js.parseComputedFormula(expression);
6029
+ return chunkKAWYU7TE_js.parseComputedFormula(expression);
5818
6030
  } catch (error) {
5819
6031
  if (error instanceof Error) {
5820
6032
  throw new ComputedFormulaCompileError(error.message);
@@ -6583,9 +6795,9 @@ function evaluateCall(functionName, args) {
6583
6795
  case "percent_not_empty":
6584
6796
  return percentByEmptyState(args[0], false);
6585
6797
  case "count_empty":
6586
- return collectionItems(args[0]).filter(chunkRDYTVHNN_js.isNullishOrEmptyString).length;
6798
+ return collectionItems(args[0]).filter(chunkHURC6CW3_js.isNullishOrEmptyString).length;
6587
6799
  case "count_not_empty":
6588
- return collectionItems(args[0]).filter((item) => !chunkRDYTVHNN_js.isNullishOrEmptyString(item)).length;
6800
+ return collectionItems(args[0]).filter((item) => !chunkHURC6CW3_js.isNullishOrEmptyString(item)).length;
6589
6801
  case "count_unique":
6590
6802
  return uniqueNonEmpty(collectionItems(args[0])).length;
6591
6803
  default:
@@ -6646,14 +6858,14 @@ function percentByEmptyState(value, countEmpty) {
6646
6858
  if (items.length === 0) {
6647
6859
  return 0;
6648
6860
  }
6649
- const count = items.filter((item) => chunkRDYTVHNN_js.isNullishOrEmptyString(item) === countEmpty).length;
6861
+ const count = items.filter((item) => chunkHURC6CW3_js.isNullishOrEmptyString(item) === countEmpty).length;
6650
6862
  return count / items.length;
6651
6863
  }
6652
6864
  function uniqueNonEmpty(values) {
6653
6865
  const seen = /* @__PURE__ */ new Set();
6654
6866
  const result = [];
6655
6867
  for (const value of values) {
6656
- if (chunkRDYTVHNN_js.isNullishOrEmptyString(value)) {
6868
+ if (chunkHURC6CW3_js.isNullishOrEmptyString(value)) {
6657
6869
  continue;
6658
6870
  }
6659
6871
  const key = uniqueKey(value);
@@ -6770,11 +6982,11 @@ function evaluateComputedAst(node, input) {
6770
6982
  return evaluateAst(node, input);
6771
6983
  }
6772
6984
  function evaluateComputedFormula(expression, input) {
6773
- return evaluateAst(chunk5JMQNH2A_js.parseComputedFormula(expression), input);
6985
+ return evaluateAst(chunkKAWYU7TE_js.parseComputedFormula(expression), input);
6774
6986
  }
6775
6987
  function evaluateComputedFormulaWithResult(expression, input, returnType, decimals) {
6776
6988
  try {
6777
- const raw = evaluateAst(chunk5JMQNH2A_js.parseComputedFormula(expression), input);
6989
+ const raw = evaluateAst(chunkKAWYU7TE_js.parseComputedFormula(expression), input);
6778
6990
  const value = returnType ? formatComputedResult(raw, returnType, decimals) : raw;
6779
6991
  return { value };
6780
6992
  } catch (error) {
@@ -6899,10 +7111,10 @@ var COMPUTED_FUNCTION_METADATA = [
6899
7111
  ];
6900
7112
 
6901
7113
  // src/filters/operators.ts
6902
- var isEmpty = (v) => chunkRDYTVHNN_js.isNullishOrEmptyString(v) || Array.isArray(v) && v.length === 0;
7114
+ var isEmpty = (v) => chunkHURC6CW3_js.isNullishOrEmptyString(v) || Array.isArray(v) && v.length === 0;
6903
7115
  var toStr = (v) => v == null ? "" : String(v);
6904
7116
  var toNum = (v) => {
6905
- if (chunkRDYTVHNN_js.isNullishOrEmptyString(v)) return null;
7117
+ if (chunkHURC6CW3_js.isNullishOrEmptyString(v)) return null;
6906
7118
  const n = typeof v === "number" ? v : Number(v);
6907
7119
  return Number.isFinite(n) ? n : null;
6908
7120
  };
@@ -7035,7 +7247,7 @@ var OPERATOR_SPECS = {
7035
7247
  appliesTo: ["date"],
7036
7248
  evaluateInMemory: (v, rv) => {
7037
7249
  const d = toDate2(v);
7038
- const bounds = chunkD4A6FL67_js.resolveIsWithinBounds(rv);
7250
+ const bounds = chunkT5PM73EF_js.resolveIsWithinBounds(rv);
7039
7251
  if (!(d && bounds)) return false;
7040
7252
  return d.getTime() >= bounds.startMs && d.getTime() < bounds.endMs;
7041
7253
  }
@@ -7071,7 +7283,7 @@ var OPERATOR_SPECS = {
7071
7283
  // src/filters/evaluate.ts
7072
7284
  var systemAttribute = (name, type) => ({ id: `system:${name}`, name, label: name, type, system: true });
7073
7285
  var RECORD_SYSTEM_ATTRIBUTES = [
7074
- ...Object.entries(chunkD4A6FL67_js.SYSTEM_FILTER_ATTRIBUTE_TYPES).map(
7286
+ ...Object.entries(chunkT5PM73EF_js.SYSTEM_FILTER_ATTRIBUTE_TYPES).map(
7075
7287
  ([name, type]) => systemAttribute(name, type)
7076
7288
  )
7077
7289
  ];
@@ -7107,12 +7319,22 @@ function evaluateFilterState(state, values, attributes) {
7107
7319
  function evaluateRule(rule, values, attrByName) {
7108
7320
  const attr = attrByName.get(rule.attribute);
7109
7321
  if (!attr) return false;
7322
+ if (rule.property && attr.type === "location") {
7323
+ if (!(chunkT5PM73EF_js.isLocationFilterProperty(rule.property) && chunkT5PM73EF_js.isLocationPartOperator(rule.operator))) {
7324
+ return false;
7325
+ }
7326
+ const spec2 = OPERATOR_SPECS[rule.operator];
7327
+ if (!spec2) return false;
7328
+ const stored = values[rule.attribute];
7329
+ const part = typeof stored === "object" && stored !== null ? stored[rule.property] : void 0;
7330
+ return evaluateNormalizedComparands(spec2, "text", rule.operator, part, rule.value, attr);
7331
+ }
7110
7332
  if (rule.property) {
7111
7333
  const property = resolvePropertyDefinitions(attr).find(
7112
7334
  (definition) => definition.name === rule.property
7113
7335
  );
7114
7336
  if (!property) return false;
7115
- const positiveOperator = chunkD4A6FL67_js.normalizeForEdgeRpc(rule.operator);
7337
+ const positiveOperator = chunkT5PM73EF_js.normalizeForEdgeRpc(rule.operator);
7116
7338
  const propertySpec = OPERATOR_SPECS[positiveOperator];
7117
7339
  if (!propertySpec?.appliesTo.includes(property.type)) return false;
7118
7340
  const rootValue = values[rule.attribute];
@@ -7130,7 +7352,7 @@ function evaluateRule(rule, values, attrByName) {
7130
7352
  property
7131
7353
  );
7132
7354
  });
7133
- return (rule.quantifier ?? chunkD4A6FL67_js.getOperatorPolarity(rule.operator)) === "none" ? !matches : matches;
7355
+ return (rule.quantifier ?? chunkT5PM73EF_js.getOperatorPolarity(rule.operator)) === "none" ? !matches : matches;
7134
7356
  }
7135
7357
  const spec = OPERATOR_SPECS[rule.operator];
7136
7358
  if (!spec) return false;
@@ -7179,7 +7401,7 @@ function normalizePhoneComparands(stored, rule) {
7179
7401
  return [normalizeOne(stored), normalizeOne(rule)];
7180
7402
  }
7181
7403
  function normalizeComparableValue(type, value) {
7182
- if (type === "currency") return chunkD4A6FL67_js.extractCurrencyFilterValue(value);
7404
+ if (type === "currency") return chunkT5PM73EF_js.extractCurrencyFilterValue(value);
7183
7405
  if (type === "date") {
7184
7406
  if (isDateRangeValue(value)) return dateValueStart(value);
7185
7407
  if (value instanceof Date) return Number.isNaN(value.getTime()) ? null : value.toISOString();
@@ -7226,20 +7448,20 @@ function deriveCreateDefaultsFromFilters(state, attributes, ctx) {
7226
7448
  if (!attribute) continue;
7227
7449
  const value = extractDeterministicValue(rule, ctx);
7228
7450
  if (value === void 0) continue;
7229
- defaults[rule.attribute] = chunkD4A6FL67_js.getAttributeCapabilities(attribute).storage.cardinality === "many" ? [value] : value;
7451
+ defaults[rule.attribute] = chunkT5PM73EF_js.getAttributeCapabilities(attribute).storage.cardinality === "many" ? [value] : value;
7230
7452
  }
7231
7453
  return defaults;
7232
7454
  }
7233
7455
  function extractDeterministicValue(rule, ctx) {
7234
7456
  if (rule.operator === "is") {
7235
- if (chunkD4A6FL67_js.isDynamicValue(rule.value)) return resolveDynamicValue(rule.value, ctx);
7457
+ if (chunkT5PM73EF_js.isDynamicValue(rule.value)) return resolveDynamicValue(rule.value, ctx);
7236
7458
  if (rule.value === null || Array.isArray(rule.value)) return void 0;
7237
7459
  return rule.value;
7238
7460
  }
7239
7461
  if (rule.operator === "any_of") {
7240
7462
  if (!Array.isArray(rule.value) || rule.value.length !== 1) return void 0;
7241
7463
  const single = rule.value[0];
7242
- if (chunkD4A6FL67_js.isDynamicValue(single)) return resolveDynamicValue(single, ctx);
7464
+ if (chunkT5PM73EF_js.isDynamicValue(single)) return resolveDynamicValue(single, ctx);
7243
7465
  return single;
7244
7466
  }
7245
7467
  return void 0;
@@ -7259,6 +7481,17 @@ var CONNECTOR_CALLBACK_PARAM = {
7259
7481
  provider: "connector_provider"
7260
7482
  };
7261
7483
 
7484
+ // src/types/meetings.ts
7485
+ var RECORDING_OVERRIDES = ["force", "skip"];
7486
+ var RECORDING_POLICIES = ["none", "all", "external_only"];
7487
+ var FAKE_MEETING_BOT_SIGNATURE_HEADER = "x-fake-signature";
7488
+ var NO_RECORDING = {
7489
+ override: null,
7490
+ status: "none",
7491
+ failureReason: null,
7492
+ botId: null
7493
+ };
7494
+
7262
7495
  // src/utils/agent-title.ts
7263
7496
  var AGENT_FALLBACK_TITLE_MAX_LENGTH = 60;
7264
7497
  var STORAGE_PLACEHOLDER_TITLE = /^Session \d+$/;
@@ -7328,10 +7561,10 @@ var attributeNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
7328
7561
  '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).'
7329
7562
  );
7330
7563
  var objectNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
7331
- if (chunkD4A6FL67_js.RESERVED_OBJECT_NAMES.includes(name)) {
7564
+ if (chunkT5PM73EF_js.RESERVED_OBJECT_NAMES.includes(name)) {
7332
7565
  ctx.addIssue({
7333
7566
  code: z2.z.ZodIssueCode.custom,
7334
- message: `"${name}" is a reserved object name (${chunkD4A6FL67_js.RESERVED_OBJECT_NAMES.join(", ")}) and cannot be used for a new object.`
7567
+ message: `"${name}" is a reserved object name (${chunkT5PM73EF_js.RESERVED_OBJECT_NAMES.join(", ")}) and cannot be used for a new object.`
7335
7568
  });
7336
7569
  }
7337
7570
  try {
@@ -7345,7 +7578,7 @@ var objectNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
7345
7578
  function withConfigCheck(schema) {
7346
7579
  return schema.superRefine((attribute, ctx) => {
7347
7580
  try {
7348
- const parsedConfig = chunk5JMQNH2A_js.parseAttributeConfigForCreate(attribute.type, {
7581
+ const parsedConfig = chunkKAWYU7TE_js.parseAttributeConfigForCreate(attribute.type, {
7349
7582
  ...attribute.config ?? {},
7350
7583
  description: attribute.description
7351
7584
  });
@@ -7361,7 +7594,7 @@ function withConfigCheck(schema) {
7361
7594
  });
7362
7595
  }
7363
7596
  } catch (error) {
7364
- if (error instanceof chunk3YCZ5H3H_js.ValidationError) {
7597
+ if (error instanceof chunk4KMUATDG_js.ValidationError) {
7365
7598
  for (const issue of error.errors) {
7366
7599
  ctx.addIssue({
7367
7600
  code: z2.z.ZodIssueCode.custom,
@@ -7408,7 +7641,7 @@ var plannedObjectSchema = z2.z.object({
7408
7641
  'Human-readable plural display label (e.g. "Devis"/"Invoices"). Defaults from `label` if omitted.'
7409
7642
  ),
7410
7643
  description: z2.z.string().optional().describe("Help text describing what this object represents."),
7411
- icon: chunk5JMQNH2A_js.iconNameSchema.describe(
7644
+ icon: chunkKAWYU7TE_js.iconNameSchema.describe(
7412
7645
  "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."
7413
7646
  ),
7414
7647
  labelExpression: labelExpressionSchema.describe(
@@ -7466,13 +7699,13 @@ var proposedDefaultViewTargetSchema = z2.z.discriminatedUnion("viewType", [
7466
7699
  z2.z.object({
7467
7700
  objectName: viewTargetObjectNameSchema,
7468
7701
  viewType: z2.z.literal("list").describe("Targets the object's default list view (the grid)."),
7469
- canonicalConfig: chunkD4A6FL67_js.listViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
7702
+ canonicalConfig: chunkT5PM73EF_js.listViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
7470
7703
  baselineToken: z2.z.string().min(1).optional().describe(BASELINE_TOKEN_DESCRIPTION)
7471
7704
  }).strict(),
7472
7705
  z2.z.object({
7473
7706
  objectName: viewTargetObjectNameSchema,
7474
7707
  viewType: z2.z.literal("detail").describe("Targets the object's default detail view (the single-record view)."),
7475
- canonicalConfig: chunkD4A6FL67_js.detailViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
7708
+ canonicalConfig: chunkT5PM73EF_js.detailViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
7476
7709
  baselineToken: z2.z.string().min(1).optional().describe(BASELINE_TOKEN_DESCRIPTION)
7477
7710
  }).strict()
7478
7711
  ]);
@@ -7486,13 +7719,13 @@ var persistedDefaultViewTargetSchema = z2.z.discriminatedUnion("viewType", [
7486
7719
  z2.z.object({
7487
7720
  objectName: z2.z.string().min(1),
7488
7721
  viewType: z2.z.literal("list"),
7489
- canonicalConfig: chunkD4A6FL67_js.listViewConfigSchema,
7722
+ canonicalConfig: chunkT5PM73EF_js.listViewConfigSchema,
7490
7723
  ...persistedBaselineFields
7491
7724
  }).strict(),
7492
7725
  z2.z.object({
7493
7726
  objectName: z2.z.string().min(1),
7494
7727
  viewType: z2.z.literal("detail"),
7495
- canonicalConfig: chunkD4A6FL67_js.detailViewConfigSchema,
7728
+ canonicalConfig: chunkT5PM73EF_js.detailViewConfigSchema,
7496
7729
  ...persistedBaselineFields
7497
7730
  }).strict()
7498
7731
  ]).superRefine((target, ctx) => {
@@ -7639,7 +7872,7 @@ function boundSerializedPlanInput(input, ctx) {
7639
7872
  });
7640
7873
  return z2.z.NEVER;
7641
7874
  }
7642
- const serializedBytes = new TextEncoder().encode(chunkZHB4VBCX_js.canonicalStringify(input)).byteLength;
7875
+ const serializedBytes = new TextEncoder().encode(chunkDVXGSTWJ_js.canonicalStringify(input)).byteLength;
7643
7876
  if (serializedBytes > SCHEMA_PLAN_LIMITS.serializedBytes) {
7644
7877
  ctx.addIssue({
7645
7878
  code: "too_big",
@@ -7699,6 +7932,25 @@ var persistedSchemaPlanSchema = z2.z.preprocess(
7699
7932
  structuralPersistedSchemaPlanSchema
7700
7933
  );
7701
7934
  var nonNegativeNumberSchema = z2.z.number().finite().nonnegative();
7935
+ var providerNameSchema = z2.z.enum(PROVIDER_NAMES);
7936
+ var inferenceSpeedSchema = z2.z.enum(INFERENCE_SPEEDS);
7937
+ var inferenceReasoningSchema = z2.z.enum(INFERENCE_REASONING_OPTIONS);
7938
+ var modelReferenceSchema = z2.z.object({
7939
+ provider: providerNameSchema,
7940
+ model: z2.z.string().min(1)
7941
+ }).strict();
7942
+ var agentInferencePreferencesSchema = z2.z.object({
7943
+ speed: inferenceSpeedSchema.optional(),
7944
+ reasoning: inferenceReasoningSchema.optional()
7945
+ }).strict();
7946
+ var agentSessionInferenceOverridesSchema = z2.z.object({
7947
+ model: modelReferenceSchema.optional(),
7948
+ speed: inferenceSpeedSchema.optional(),
7949
+ reasoning: inferenceReasoningSchema.optional()
7950
+ }).strict().refine(
7951
+ (overrides) => overrides.model !== void 0 || overrides.speed !== void 0 || overrides.reasoning !== void 0,
7952
+ { message: "At least one inference override is required" }
7953
+ );
7702
7954
  var toolImpactSchema = z2.z.object({
7703
7955
  label: z2.z.string(),
7704
7956
  denied: z2.z.boolean().optional(),
@@ -7791,7 +8043,7 @@ var mentionReferenceSchema = z2.z.object({
7791
8043
  endIndex: nonNegativeNumberSchema
7792
8044
  }).strict();
7793
8045
  var modelDefinitionSchema = z2.z.object({
7794
- provider: z2.z.enum(["anthropic", "openai", "google", "mistral"]),
8046
+ provider: providerNameSchema,
7795
8047
  model: z2.z.string(),
7796
8048
  maxTokens: nonNegativeNumberSchema.optional(),
7797
8049
  contextWindow: nonNegativeNumberSchema.optional()
@@ -7882,7 +8134,7 @@ function isAgentUIDataName(value) {
7882
8134
  return value in customDataChunkSchemas;
7883
8135
  }
7884
8136
  function agentUIValidationError(issues) {
7885
- return new chunk3YCZ5H3H_js.ValidationError(
8137
+ return new chunk4KMUATDG_js.ValidationError(
7886
8138
  "Invalid agent UI message chunk",
7887
8139
  issues.map((issue) => ({
7888
8140
  path: issue.path.map(String),
@@ -7893,19 +8145,19 @@ function agentUIValidationError(issues) {
7893
8145
  }
7894
8146
  function assertCustomAgentUIMessageChunk(value) {
7895
8147
  if (typeof value !== "object" || value === null || typeof value.type !== "string") {
7896
- throw new chunk3YCZ5H3H_js.ValidationError("Invalid agent UI message chunk", [
8148
+ throw new chunk4KMUATDG_js.ValidationError("Invalid agent UI message chunk", [
7897
8149
  { path: ["type"], message: "Expected UI message chunk type", code: "invalid_type" }
7898
8150
  ]);
7899
8151
  }
7900
8152
  const type = value.type;
7901
8153
  if (!type.startsWith("data-")) {
7902
- throw new chunk3YCZ5H3H_js.ValidationError("Invalid agent UI message chunk", [
8154
+ throw new chunk4KMUATDG_js.ValidationError("Invalid agent UI message chunk", [
7903
8155
  { path: ["type"], message: "Expected agent data chunk type", code: "invalid_value" }
7904
8156
  ]);
7905
8157
  }
7906
8158
  const name = type.slice("data-".length);
7907
8159
  if (!isAgentUIDataName(name)) {
7908
- throw new chunk3YCZ5H3H_js.ValidationError("Invalid agent UI message chunk", [
8160
+ throw new chunk4KMUATDG_js.ValidationError("Invalid agent UI message chunk", [
7909
8161
  { path: ["type"], message: `Unknown agent UI data type: ${name}`, code: "invalid_value" }
7910
8162
  ]);
7911
8163
  }
@@ -7949,7 +8201,7 @@ var operationBase = { id: z2.z.string().min(1) };
7949
8201
  var viewOperationBase = { ...operationBase, viewId: z2.z.string().min(1) };
7950
8202
  function mapView(state, viewId, fn) {
7951
8203
  if (!state.views.some((v) => v.id === viewId)) {
7952
- throw new chunk3YCZ5H3H_js.ValidationError(`View "${viewId}" is not in the draftable state`, []);
8204
+ throw new chunk4KMUATDG_js.ValidationError(`View "${viewId}" is not in the draftable state`, []);
7953
8205
  }
7954
8206
  return { ...state, views: state.views.map((v) => v.id === viewId ? fn(v) : v) };
7955
8207
  }
@@ -7961,14 +8213,14 @@ function moveWithin(items, from, toIndex) {
7961
8213
  }
7962
8214
  function reorderById(items, order, what) {
7963
8215
  if (order.length !== items.length) {
7964
- throw new chunk3YCZ5H3H_js.ValidationError(
8216
+ throw new chunk4KMUATDG_js.ValidationError(
7965
8217
  `${what} order lists ${order.length} ids for ${items.length} items`,
7966
8218
  []
7967
8219
  );
7968
8220
  }
7969
8221
  return order.map((id) => {
7970
8222
  const found = items.find((item) => item.id === id);
7971
- if (!found) throw new chunk3YCZ5H3H_js.ValidationError(`${what} "${id}" is not in this collection`, []);
8223
+ if (!found) throw new chunk4KMUATDG_js.ValidationError(`${what} "${id}" is not in this collection`, []);
7972
8224
  return found;
7973
8225
  });
7974
8226
  }
@@ -7976,15 +8228,15 @@ function reorderById(items, order, what) {
7976
8228
  // src/architect/operations/detail-view.ts
7977
8229
  function mapFormTab(view, tabId, fn) {
7978
8230
  const found = view.tabs.find((t) => t.id === tabId);
7979
- if (!found) throw new chunk3YCZ5H3H_js.ValidationError(`Tab "${tabId}" is not in view "${view.id}"`, []);
8231
+ if (!found) throw new chunk4KMUATDG_js.ValidationError(`Tab "${tabId}" is not in view "${view.id}"`, []);
7980
8232
  if (found.type !== "form") {
7981
- throw new chunk3YCZ5H3H_js.ValidationError(`Tab "${tabId}" is not a form tab`, []);
8233
+ throw new chunk4KMUATDG_js.ValidationError(`Tab "${tabId}" is not a form tab`, []);
7982
8234
  }
7983
8235
  return { ...view, tabs: view.tabs.map((t) => t.id === tabId ? fn(found) : t) };
7984
8236
  }
7985
8237
  function requireGroup(tab, groupId) {
7986
8238
  const found = tab.groups.find((g) => g.id === groupId);
7987
- if (!found) throw new chunk3YCZ5H3H_js.ValidationError(`Group "${groupId}" is not in tab "${tab.id}"`, []);
8239
+ if (!found) throw new chunk4KMUATDG_js.ValidationError(`Group "${groupId}" is not in tab "${tab.id}"`, []);
7988
8240
  return found;
7989
8241
  }
7990
8242
  function locateField(tab, fieldId) {
@@ -7992,7 +8244,7 @@ function locateField(tab, fieldId) {
7992
8244
  const field = group2.fields.find((f) => f.id === fieldId);
7993
8245
  if (field) return { group: group2, field };
7994
8246
  }
7995
- throw new chunk3YCZ5H3H_js.ValidationError(`Field slot "${fieldId}" is not in tab "${tab.id}"`, []);
8247
+ throw new chunk4KMUATDG_js.ValidationError(`Field slot "${fieldId}" is not in tab "${tab.id}"`, []);
7996
8248
  }
7997
8249
  function viewFocus(op) {
7998
8250
  return { viewId: op.viewId };
@@ -8032,9 +8284,9 @@ function firstChangedProperty(op) {
8032
8284
  const keys = Object.keys(op.changes).sort();
8033
8285
  return keys.length === 1 ? [keys[0]] : void 0;
8034
8286
  }
8035
- var tabPayload = chunkD4A6FL67_js.detailTabDraftSchema;
8036
- var groupPayload = chunkD4A6FL67_js.groupWriteSchema;
8037
- var fieldPayload = chunkD4A6FL67_js.fieldSlotSchema;
8287
+ var tabPayload = chunkT5PM73EF_js.detailTabDraftSchema;
8288
+ var groupPayload = chunkT5PM73EF_js.groupWriteSchema;
8289
+ var fieldPayload = chunkT5PM73EF_js.fieldSlotSchema;
8038
8290
  var addTabSchema = z2.z.object({
8039
8291
  ...viewOperationBase,
8040
8292
  type: z2.z.literal("add_tab"),
@@ -8045,7 +8297,7 @@ var addTab = defineOperation({
8045
8297
  schema: addTabSchema,
8046
8298
  apply: (state, op) => mapView(state, op.viewId, (view) => {
8047
8299
  if (view.tabs.some((t) => t.id === op.tab.id)) {
8048
- throw new chunk3YCZ5H3H_js.ValidationError(`Tab "${op.tab.id}" already exists in view "${op.viewId}"`, []);
8300
+ throw new chunk4KMUATDG_js.ValidationError(`Tab "${op.tab.id}" already exists in view "${op.viewId}"`, []);
8049
8301
  }
8050
8302
  return { ...view, tabs: [...view.tabs, op.tab] };
8051
8303
  }),
@@ -8063,7 +8315,7 @@ var removeTab = defineOperation({
8063
8315
  schema: removeTabSchema,
8064
8316
  apply: (state, op) => mapView(state, op.viewId, (view) => {
8065
8317
  if (!view.tabs.some((t) => t.id === op.tabId)) {
8066
- throw new chunk3YCZ5H3H_js.ValidationError(`Tab "${op.tabId}" is not in view "${op.viewId}"`, []);
8318
+ throw new chunk4KMUATDG_js.ValidationError(`Tab "${op.tabId}" is not in view "${op.viewId}"`, []);
8067
8319
  }
8068
8320
  return { ...view, tabs: view.tabs.filter((t) => t.id !== op.tabId) };
8069
8321
  }),
@@ -8073,7 +8325,7 @@ var removeTab = defineOperation({
8073
8325
  });
8074
8326
  var updateTabChanges = z2.z.object({
8075
8327
  label: z2.z.string().min(1).optional(),
8076
- icon: chunk5JMQNH2A_js.iconNameSchema.optional(),
8328
+ icon: chunkKAWYU7TE_js.iconNameSchema.optional(),
8077
8329
  order: z2.z.number().int().optional()
8078
8330
  });
8079
8331
  var UPDATE_TAB_CHANGE_KEYS = Object.keys(
@@ -8097,7 +8349,7 @@ var updateTab = defineOperation({
8097
8349
  schema: updateTabSchema,
8098
8350
  apply: (state, op) => mapView(state, op.viewId, (view) => {
8099
8351
  if (!view.tabs.some((t) => t.id === op.tabId)) {
8100
- throw new chunk3YCZ5H3H_js.ValidationError(`Tab "${op.tabId}" is not in view "${op.viewId}"`, []);
8352
+ throw new chunk4KMUATDG_js.ValidationError(`Tab "${op.tabId}" is not in view "${op.viewId}"`, []);
8101
8353
  }
8102
8354
  return {
8103
8355
  ...view,
@@ -8138,7 +8390,7 @@ var addGroup = defineOperation({
8138
8390
  op.viewId,
8139
8391
  (view) => mapFormTab(view, op.tabId, (tab) => {
8140
8392
  if (tab.groups.some((g) => g.id === op.group.id)) {
8141
- throw new chunk3YCZ5H3H_js.ValidationError(
8393
+ throw new chunk4KMUATDG_js.ValidationError(
8142
8394
  `Group "${op.group.id}" already exists in tab "${op.tabId}"`,
8143
8395
  []
8144
8396
  );
@@ -8245,7 +8497,7 @@ var addField = defineOperation({
8245
8497
  (view) => mapFormTab(view, op.tabId, (tab) => {
8246
8498
  requireGroup(tab, op.groupId);
8247
8499
  if (tab.groups.some((g) => g.fields.some((f) => f.id === op.field.id))) {
8248
- throw new chunk3YCZ5H3H_js.ValidationError(
8500
+ throw new chunk4KMUATDG_js.ValidationError(
8249
8501
  `Field slot "${op.field.id}" already exists in tab "${op.tabId}"`,
8250
8502
  []
8251
8503
  );
@@ -8391,14 +8643,14 @@ var updateTableTabChanges = z2.z.object({
8391
8643
  * splitting the pair across two operations would wipe the column list while
8392
8644
  * the source change vanished (#2763, #2787).
8393
8645
  */
8394
- source: chunkD4A6FL67_js.tableSourceSchema.optional(),
8395
- columns: chunkD4A6FL67_js.columnsSchema.optional(),
8646
+ source: chunkT5PM73EF_js.tableSourceSchema.optional(),
8647
+ columns: chunkT5PM73EF_js.columnsSchema.optional(),
8396
8648
  // Nullable, not merely optional: the panels clear a filter list or a sort
8397
8649
  // list by sending `null`, because `undefined` does not survive
8398
8650
  // `JSON.stringify` and the operation would arrive with no changes at all
8399
8651
  // (#2787). `apply` drops the key rather than storing the null.
8400
- filters: chunkD4A6FL67_js.filterStateSchema.nullable().optional(),
8401
- sorts: chunkD4A6FL67_js.sortsSchema.nullable().optional(),
8652
+ filters: chunkT5PM73EF_js.filterStateSchema.nullable().optional(),
8653
+ sorts: chunkT5PM73EF_js.sortsSchema.nullable().optional(),
8402
8654
  allowCreate: z2.z.boolean().optional(),
8403
8655
  allowEdit: z2.z.boolean().optional(),
8404
8656
  allowDelete: z2.z.boolean().optional(),
@@ -8455,12 +8707,12 @@ var updateTabConfig = defineOperation({
8455
8707
  apply: (state, op) => mapView(state, op.viewId, (view) => {
8456
8708
  const found = view.tabs.find((t) => t.id === op.tabId);
8457
8709
  if (!found) {
8458
- throw new chunk3YCZ5H3H_js.ValidationError(`Tab "${op.tabId}" is not in view "${view.id}"`, []);
8710
+ throw new chunk4KMUATDG_js.ValidationError(`Tab "${op.tabId}" is not in view "${view.id}"`, []);
8459
8711
  }
8460
8712
  for (const key of Object.keys(op.changes)) {
8461
8713
  const allowed = TAB_CONFIG_FIELD_OWNERS[key];
8462
8714
  if (allowed && !allowed.includes(found.type)) {
8463
- throw new chunk3YCZ5H3H_js.ValidationError(`"${key}" is not a setting of a "${found.type}" tab`, []);
8715
+ throw new chunk4KMUATDG_js.ValidationError(`"${key}" is not a setting of a "${found.type}" tab`, []);
8464
8716
  }
8465
8717
  }
8466
8718
  return {
@@ -8490,9 +8742,9 @@ var updateTableTab = defineOperation({
8490
8742
  schema: updateTableTabSchema,
8491
8743
  apply: (state, op) => mapView(state, op.viewId, (view) => {
8492
8744
  const found = view.tabs.find((t) => t.id === op.tabId);
8493
- if (!found) throw new chunk3YCZ5H3H_js.ValidationError(`Tab "${op.tabId}" is not in view "${view.id}"`, []);
8745
+ if (!found) throw new chunk4KMUATDG_js.ValidationError(`Tab "${op.tabId}" is not in view "${view.id}"`, []);
8494
8746
  if (found.type !== "table") {
8495
- throw new chunk3YCZ5H3H_js.ValidationError(`Tab "${op.tabId}" is not a table tab`, []);
8747
+ throw new chunk4KMUATDG_js.ValidationError(`Tab "${op.tabId}" is not a table tab`, []);
8496
8748
  }
8497
8749
  const entries = Object.entries(op.changes);
8498
8750
  const applied = Object.fromEntries(entries.filter(([, value]) => value !== null));
@@ -8562,22 +8814,22 @@ function firstChangedProperty2(op) {
8562
8814
  }
8563
8815
  function withoutKanbanKeys(tab) {
8564
8816
  const rest = { ...tab };
8565
- for (const key of chunkD4A6FL67_js.LIST_TAB_KANBAN_KEYS) delete rest[key];
8817
+ for (const key of chunkT5PM73EF_js.LIST_TAB_KANBAN_KEYS) delete rest[key];
8566
8818
  return rest;
8567
8819
  }
8568
8820
  function withoutTableKeys(tab) {
8569
8821
  const rest = { ...tab };
8570
- for (const key of chunkD4A6FL67_js.LIST_TAB_TABLE_KEYS) delete rest[key];
8822
+ for (const key of chunkT5PM73EF_js.LIST_TAB_TABLE_KEYS) delete rest[key];
8571
8823
  return rest;
8572
8824
  }
8573
8825
  function assertStillPublishableTab(before, after, viewId, tabId) {
8574
- const parsed = chunkD4A6FL67_js.listViewTabSchema.safeParse(after);
8826
+ const parsed = chunkT5PM73EF_js.listViewTabSchema.safeParse(after);
8575
8827
  if (!parsed.success) {
8576
- if (!chunkD4A6FL67_js.listViewTabSchema.safeParse(before).success) return after;
8828
+ if (!chunkT5PM73EF_js.listViewTabSchema.safeParse(before).success) return after;
8577
8829
  const detail = parsed.error.issues.map(
8578
8830
  (issue) => issue.path.length ? `${issue.path.join(".")}: ${issue.message}` : issue.message
8579
8831
  ).join(", ");
8580
- throw new chunk3YCZ5H3H_js.ValidationError(
8832
+ throw new chunk4KMUATDG_js.ValidationError(
8581
8833
  `List tab "${tabId}" in view "${viewId}" would no longer be publishable: ${detail}`,
8582
8834
  []
8583
8835
  );
@@ -8588,7 +8840,7 @@ function mapListTab(state, viewId, tabId, fn) {
8588
8840
  return mapView(state, viewId, (view) => {
8589
8841
  const tabs = view.config.tabs ?? [];
8590
8842
  if (!tabs.some((t) => t.id === tabId)) {
8591
- throw new chunk3YCZ5H3H_js.ValidationError(`List tab "${tabId}" is not in view "${viewId}"`, []);
8843
+ throw new chunk4KMUATDG_js.ValidationError(`List tab "${tabId}" is not in view "${viewId}"`, []);
8592
8844
  }
8593
8845
  return {
8594
8846
  ...view,
@@ -8601,9 +8853,9 @@ function mapListTab(state, viewId, tabId, fn) {
8601
8853
  };
8602
8854
  });
8603
8855
  }
8604
- var listTabPayload = chunkD4A6FL67_js.listViewTabSchema;
8605
- var filterGroupPayload = chunkD4A6FL67_js.filterGroupSchema;
8606
- var sortRulesPayload = chunkD4A6FL67_js.sortsSchema;
8856
+ var listTabPayload = chunkT5PM73EF_js.listViewTabSchema;
8857
+ var filterGroupPayload = chunkT5PM73EF_js.filterGroupSchema;
8858
+ var sortRulesPayload = chunkT5PM73EF_js.sortsSchema;
8607
8859
  function setOnTab(type, key, valueSchema, describe) {
8608
8860
  const schema = z2.z.object({ ...listTabBase, type: z2.z.literal(type), value: valueSchema });
8609
8861
  return defineOperation({
@@ -8632,7 +8884,7 @@ var addListTab = defineOperation({
8632
8884
  apply: (state, op) => mapView(state, op.viewId, (view) => {
8633
8885
  const tabs = view.config.tabs ?? [];
8634
8886
  if (tabs.some((t) => t.id === op.tab.id)) {
8635
- throw new chunk3YCZ5H3H_js.ValidationError(
8887
+ throw new chunk4KMUATDG_js.ValidationError(
8636
8888
  `List tab "${op.tab.id}" already exists in view "${op.viewId}"`,
8637
8889
  []
8638
8890
  );
@@ -8653,7 +8905,7 @@ var removeListTab = defineOperation({
8653
8905
  apply: (state, op) => mapView(state, op.viewId, (view) => {
8654
8906
  const tabs = view.config.tabs ?? [];
8655
8907
  if (!tabs.some((t) => t.id === op.tabId)) {
8656
- throw new chunk3YCZ5H3H_js.ValidationError(`List tab "${op.tabId}" is not in view "${op.viewId}"`, []);
8908
+ throw new chunk4KMUATDG_js.ValidationError(`List tab "${op.tabId}" is not in view "${op.viewId}"`, []);
8657
8909
  }
8658
8910
  return {
8659
8911
  ...view,
@@ -8669,9 +8921,9 @@ var updateListTabSchema = z2.z.object({
8669
8921
  type: z2.z.literal("update_list_tab"),
8670
8922
  changes: z2.z.object({
8671
8923
  label: z2.z.string().min(1).optional(),
8672
- icon: chunk5JMQNH2A_js.iconNameSchema.optional(),
8924
+ icon: chunkKAWYU7TE_js.iconNameSchema.optional(),
8673
8925
  default: z2.z.boolean().optional(),
8674
- visibility: z2.z.enum(chunkD4A6FL67_js.LIST_VIEW_TAB_VISIBILITIES).optional()
8926
+ visibility: z2.z.enum(chunkT5PM73EF_js.LIST_VIEW_TAB_VISIBILITIES).optional()
8675
8927
  }).refine((c) => Object.keys(c).length > 0, "update_list_tab needs at least one change")
8676
8928
  });
8677
8929
  var updateListTabFocus = (op) => ({
@@ -8722,15 +8974,15 @@ var setColumnSizing = setOnTab(
8722
8974
  var setLayoutSchema = z2.z.object({
8723
8975
  ...listTabBase,
8724
8976
  type: z2.z.literal("set_layout"),
8725
- value: z2.z.enum(["table", "kanban"])
8977
+ value: z2.z.enum(["table", "list", "kanban"])
8726
8978
  });
8727
8979
  var setLayout = defineOperation({
8728
8980
  type: "set_layout",
8729
8981
  schema: setLayoutSchema,
8730
8982
  apply: (state, op) => mapListTab(state, op.viewId, op.tabId, (tab) => {
8731
- if (op.value === "table") return { ...withoutKanbanKeys(tab), layout: "table" };
8983
+ if (op.value !== "kanban") return { ...withoutKanbanKeys(tab), layout: op.value };
8732
8984
  if (tab.groupByAttribute === void 0) {
8733
- throw new chunk3YCZ5H3H_js.ValidationError(
8985
+ throw new chunk4KMUATDG_js.ValidationError(
8734
8986
  `List tab "${op.tabId}" cannot switch to kanban without a group attribute \u2014 use set_group_by, which switches the layout itself`,
8735
8987
  []
8736
8988
  );
@@ -8796,6 +9048,18 @@ var setCardDateAttribute = setOnTab(
8796
9048
  z2.z.string().min(1).nullable(),
8797
9049
  (value) => value ? `Affiche ${value} sur les cartes` : "Retire la date des cartes"
8798
9050
  );
9051
+ var setDescriptionAttribute = setOnTab(
9052
+ "set_description_attribute",
9053
+ "descriptionAttribute",
9054
+ z2.z.string().min(1).nullable(),
9055
+ (value) => value ? `Affiche ${value} en description` : "Retire la description"
9056
+ );
9057
+ var setDisplayAttributes = setOnTab(
9058
+ "set_display_attributes",
9059
+ "displayAttributes",
9060
+ chunkT5PM73EF_js.displayAttributesSchema.nullable(),
9061
+ (value) => `Affiche ${Array.isArray(value) ? value.length : 0} attribut(s)`
9062
+ );
8799
9063
  var setDefaultFiltersSchema = z2.z.object({
8800
9064
  ...viewOperationBase,
8801
9065
  type: z2.z.literal("set_default_filters"),
@@ -8830,11 +9094,49 @@ var LIST_VIEW_OPERATIONS = [
8830
9094
  setCreateMode,
8831
9095
  setReadOnly,
8832
9096
  setCardUserAttribute,
8833
- setCardDateAttribute
9097
+ setCardDateAttribute,
9098
+ setDescriptionAttribute,
9099
+ setDisplayAttributes
8834
9100
  ];
9101
+
9102
+ // src/architect/object-projection.ts
9103
+ function toDraftableObject(object2) {
9104
+ return {
9105
+ id: object2.id ?? object2.name,
9106
+ name: object2.name,
9107
+ label: object2.label,
9108
+ ...object2.icon === void 0 ? {} : { icon: object2.icon }
9109
+ };
9110
+ }
9111
+ function toDraftableAttributes(object2) {
9112
+ const objectId = object2.id ?? object2.name;
9113
+ return (object2.attributes ?? []).map((attribute) => toDraftableAttribute(attribute, objectId));
9114
+ }
9115
+ function toAttribute(attribute) {
9116
+ return {
9117
+ id: attribute.id,
9118
+ name: attribute.name,
9119
+ label: attribute.label,
9120
+ type: attribute.attributeType,
9121
+ ...attribute.config
9122
+ };
9123
+ }
9124
+ function toDraftableAttribute(attribute, objectId) {
9125
+ const { id: _id, name: _name, label: _label, type: _type, ...config } = attribute;
9126
+ return {
9127
+ id: attribute.id ?? attribute.name,
9128
+ objectId,
9129
+ name: attribute.name,
9130
+ label: attribute.label ?? attribute.name,
9131
+ attributeType: attribute.type,
9132
+ config
9133
+ };
9134
+ }
9135
+
9136
+ // src/architect/operations/schema.ts
8835
9137
  function requireObject(state, objectId) {
8836
9138
  if (!state.objects.some((o) => o.id === objectId)) {
8837
- throw new chunk3YCZ5H3H_js.ValidationError(`Object "${objectId}" is not in the draftable state`, []);
9139
+ throw new chunk4KMUATDG_js.ValidationError(`Object "${objectId}" is not in the draftable state`, []);
8838
9140
  }
8839
9141
  }
8840
9142
  function objectFocus(op) {
@@ -8866,10 +9168,10 @@ var addObject = defineOperation({
8866
9168
  schema: addObjectSchema,
8867
9169
  apply: (state, op) => {
8868
9170
  if (state.objects.some((o) => o.name === op.name)) {
8869
- throw new chunk3YCZ5H3H_js.ValidationError(`Object "${op.name}" already exists`, []);
9171
+ throw new chunk4KMUATDG_js.ValidationError(`Object "${op.name}" already exists`, []);
8870
9172
  }
8871
9173
  if (state.objects.some((o) => o.id === op.objectId)) {
8872
- throw new chunk3YCZ5H3H_js.ValidationError(`Object id "${op.objectId}" is already taken`, []);
9174
+ throw new chunk4KMUATDG_js.ValidationError(`Object id "${op.objectId}" is already taken`, []);
8873
9175
  }
8874
9176
  const created = {
8875
9177
  id: op.objectId,
@@ -8944,9 +9246,9 @@ var addAttributeSchema = z2.z.object({
8944
9246
  config: z2.z.record(z2.z.string(), z2.z.unknown()).optional()
8945
9247
  }).superRefine((op, ctx) => {
8946
9248
  try {
8947
- chunk5JMQNH2A_js.parseAttributeConfigForCreate(op.attributeType, op.config ?? {});
9249
+ chunkKAWYU7TE_js.parseAttributeConfigForCreate(op.attributeType, op.config ?? {});
8948
9250
  } catch (error) {
8949
- if (error instanceof chunk3YCZ5H3H_js.ValidationError) {
9251
+ if (error instanceof chunk4KMUATDG_js.ValidationError) {
8950
9252
  for (const detail of error.errors) {
8951
9253
  ctx.addIssue({
8952
9254
  code: "custom",
@@ -8965,7 +9267,7 @@ var addAttribute = defineOperation({
8965
9267
  apply: (state, op) => {
8966
9268
  requireObject(state, op.objectId);
8967
9269
  if (state.attributes.some((a) => a.objectId === op.objectId && a.name === op.name)) {
8968
- throw new chunk3YCZ5H3H_js.ValidationError(
9270
+ throw new chunk4KMUATDG_js.ValidationError(
8969
9271
  `Attribute "${op.name}" already exists on object "${op.objectId}"`,
8970
9272
  []
8971
9273
  );
@@ -9001,7 +9303,7 @@ var updateAttribute = defineOperation({
9001
9303
  schema: updateAttributeSchema,
9002
9304
  apply: (state, op) => {
9003
9305
  if (!state.attributes.some((a) => a.id === op.attributeId)) {
9004
- throw new chunk3YCZ5H3H_js.ValidationError(`Attribute "${op.attributeId}" is not in the draftable state`, []);
9306
+ throw new chunk4KMUATDG_js.ValidationError(`Attribute "${op.attributeId}" is not in the draftable state`, []);
9005
9307
  }
9006
9308
  return {
9007
9309
  ...state,
@@ -9028,13 +9330,13 @@ var removeAttribute = defineOperation({
9028
9330
  apply: (state, op) => {
9029
9331
  const removed = state.attributes.find((a) => a.id === op.attributeId);
9030
9332
  if (!removed) {
9031
- throw new chunk3YCZ5H3H_js.ValidationError(`Attribute "${op.attributeId}" is not in the draftable state`, []);
9333
+ throw new chunk4KMUATDG_js.ValidationError(`Attribute "${op.attributeId}" is not in the draftable state`, []);
9032
9334
  }
9033
9335
  const user2 = state.sampleRecords.find(
9034
9336
  (r) => r.objectId === removed.objectId && removed.name in r.values
9035
9337
  );
9036
9338
  if (user2) {
9037
- throw new chunk3YCZ5H3H_js.ValidationError(
9339
+ throw new chunk4KMUATDG_js.ValidationError(
9038
9340
  `Attribute "${removed.name}" is still used by sample record "${user2.id}"`,
9039
9341
  []
9040
9342
  );
@@ -9047,23 +9349,17 @@ var removeAttribute = defineOperation({
9047
9349
  describe: (op) => `Supprime l'attribut ${op.attributeId}`
9048
9350
  });
9049
9351
  function assertSampleValue(recordId, key, attribute, value) {
9050
- const reconstructed = {
9051
- id: attribute.id,
9052
- name: attribute.name,
9053
- label: attribute.label,
9054
- type: attribute.attributeType,
9055
- ...attribute.config
9056
- };
9352
+ const reconstructed = toAttribute(attribute);
9057
9353
  try {
9058
- chunkRDYTVHNN_js.createAttributeValidator(reconstructed);
9354
+ chunkHURC6CW3_js.createAttributeValidator(reconstructed);
9059
9355
  } catch {
9060
9356
  return;
9061
9357
  }
9062
- const result = chunkRDYTVHNN_js.validateAttribute(reconstructed, value);
9358
+ const result = chunkHURC6CW3_js.validateAttribute(reconstructed, value);
9063
9359
  if (result.success) return;
9064
9360
  const errors = result.errors ?? [];
9065
9361
  const detail = errors.map((error) => error.message).join(", ");
9066
- throw new chunk3YCZ5H3H_js.ValidationError(
9362
+ throw new chunk4KMUATDG_js.ValidationError(
9067
9363
  `Sample record "${recordId}" has an invalid value for "${key}": ${detail}`,
9068
9364
  errors.map((error) => ({ path: error.path, message: error.message }))
9069
9365
  );
@@ -9072,7 +9368,7 @@ function assertRequiredCovered(recordId, attribute, values) {
9072
9368
  if (attribute.config?.required !== true) return;
9073
9369
  if (attribute.config?.defaultValue !== void 0) return;
9074
9370
  if (attribute.name in values && values[attribute.name] !== void 0) return;
9075
- throw new chunk3YCZ5H3H_js.ValidationError(
9371
+ throw new chunk4KMUATDG_js.ValidationError(
9076
9372
  `Sample record "${recordId}" is missing a value for required attribute "${attribute.name}"`,
9077
9373
  []
9078
9374
  );
@@ -9090,7 +9386,7 @@ var addSampleRecord = defineOperation({
9090
9386
  apply: (state, op) => {
9091
9387
  requireObject(state, op.objectId);
9092
9388
  if (state.sampleRecords.some((r) => r.id === op.recordId)) {
9093
- throw new chunk3YCZ5H3H_js.ValidationError(`Sample record "${op.recordId}" already exists`, []);
9389
+ throw new chunk4KMUATDG_js.ValidationError(`Sample record "${op.recordId}" already exists`, []);
9094
9390
  }
9095
9391
  const known = new Map(
9096
9392
  state.attributes.filter((a) => a.objectId === op.objectId).map((a) => [a.name, a])
@@ -9098,7 +9394,7 @@ var addSampleRecord = defineOperation({
9098
9394
  for (const [key, value] of Object.entries(op.values)) {
9099
9395
  const attribute = known.get(key);
9100
9396
  if (!attribute) {
9101
- throw new chunk3YCZ5H3H_js.ValidationError(
9397
+ throw new chunk4KMUATDG_js.ValidationError(
9102
9398
  `Sample record "${op.recordId}" uses unknown attribute "${key}"`,
9103
9399
  []
9104
9400
  );
@@ -9132,7 +9428,7 @@ var removeSampleRecord = defineOperation({
9132
9428
  schema: removeSampleRecordSchema,
9133
9429
  apply: (state, op) => {
9134
9430
  if (!state.sampleRecords.some((r) => r.id === op.recordId && r.objectId === op.objectId)) {
9135
- throw new chunk3YCZ5H3H_js.ValidationError(
9431
+ throw new chunk4KMUATDG_js.ValidationError(
9136
9432
  `Sample record "${op.recordId}" is not in object "${op.objectId}"`,
9137
9433
  []
9138
9434
  );
@@ -9163,7 +9459,7 @@ function build() {
9163
9459
  ...LIST_VIEW_OPERATIONS
9164
9460
  ]) {
9165
9461
  if (map.has(definition.type)) {
9166
- throw new chunk3YCZ5H3H_js.DuplicateError("architect operation", definition.type);
9462
+ throw new chunk4KMUATDG_js.DuplicateError("architect operation", definition.type);
9167
9463
  }
9168
9464
  map.set(definition.type, definition);
9169
9465
  }
@@ -9176,7 +9472,7 @@ var ALL_OPERATION_TYPES = [...OPERATION_REGISTRY.keys()];
9176
9472
  function defOf(operation) {
9177
9473
  const definition = OPERATION_REGISTRY.get(operation.type);
9178
9474
  if (!definition) {
9179
- throw new chunk3YCZ5H3H_js.ValidationError(
9475
+ throw new chunk4KMUATDG_js.ValidationError(
9180
9476
  `Operation "${operation.id}" has unknown type "${operation.type}"`,
9181
9477
  []
9182
9478
  );
@@ -9197,19 +9493,19 @@ function describeOperations(operations, ctx) {
9197
9493
  }
9198
9494
  function parseOperation(candidate) {
9199
9495
  if (typeof candidate !== "object" || candidate === null || !("type" in candidate)) {
9200
- throw new chunk3YCZ5H3H_js.ValidationError("An operation must be an object carrying a type", []);
9496
+ throw new chunk4KMUATDG_js.ValidationError("An operation must be an object carrying a type", []);
9201
9497
  }
9202
9498
  const type = candidate.type;
9203
9499
  if (typeof type !== "string") {
9204
- throw new chunk3YCZ5H3H_js.ValidationError("An operation's type must be a string", []);
9500
+ throw new chunk4KMUATDG_js.ValidationError("An operation's type must be a string", []);
9205
9501
  }
9206
9502
  const definition = OPERATION_REGISTRY.get(type);
9207
9503
  if (!definition) {
9208
- throw new chunk3YCZ5H3H_js.ValidationError(`Unknown operation type "${type}"`, []);
9504
+ throw new chunk4KMUATDG_js.ValidationError(`Unknown operation type "${type}"`, []);
9209
9505
  }
9210
9506
  const parsed = definition.schema.safeParse(candidate);
9211
9507
  if (!parsed.success) {
9212
- throw new chunk3YCZ5H3H_js.ValidationError(
9508
+ throw new chunk4KMUATDG_js.ValidationError(
9213
9509
  `Operation "${type}" is invalid: ${parsed.error.issues.map((i) => `${i.path.join(".")} ${i.message}`).join("; ")}`,
9214
9510
  []
9215
9511
  );
@@ -9222,16 +9518,16 @@ function toJsonSchema(schema) {
9222
9518
  function describeOperationInput(type) {
9223
9519
  const definition = OPERATION_REGISTRY.get(type);
9224
9520
  if (!definition) {
9225
- throw new chunk3YCZ5H3H_js.ValidationError(`Unknown operation type "${type}"`, []);
9521
+ throw new chunk4KMUATDG_js.ValidationError(`Unknown operation type "${type}"`, []);
9226
9522
  }
9227
9523
  return toJsonSchema(definition.schema);
9228
9524
  }
9229
9525
  function describeAttributeConfig(type) {
9230
9526
  const draftable = DRAFTABLE_ATTRIBUTE_TYPES.find((candidate) => candidate === type);
9231
9527
  if (!draftable) {
9232
- throw new chunk3YCZ5H3H_js.ValidationError(`Unknown attribute type "${type}"`, []);
9528
+ throw new chunk4KMUATDG_js.ValidationError(`Unknown attribute type "${type}"`, []);
9233
9529
  }
9234
- return toJsonSchema(chunk5JMQNH2A_js.getAttributeConfigWriteSchema(draftable));
9530
+ return toJsonSchema(chunkKAWYU7TE_js.getAttributeConfigWriteSchema(draftable));
9235
9531
  }
9236
9532
  function listDescribableNames() {
9237
9533
  return { operations: [...ALL_OPERATION_TYPES], attributeTypes: [...DRAFTABLE_ATTRIBUTE_TYPES] };
@@ -9329,31 +9625,6 @@ function deriveArchitectChanges(initial, operations) {
9329
9625
  });
9330
9626
  }
9331
9627
 
9332
- // src/architect/object-projection.ts
9333
- function toDraftableObject(object2) {
9334
- return {
9335
- id: object2.id ?? object2.name,
9336
- name: object2.name,
9337
- label: object2.label,
9338
- ...object2.icon === void 0 ? {} : { icon: object2.icon }
9339
- };
9340
- }
9341
- function toDraftableAttributes(object2) {
9342
- const objectId = object2.id ?? object2.name;
9343
- return (object2.attributes ?? []).map((attribute) => toDraftableAttribute(attribute, objectId));
9344
- }
9345
- function toDraftableAttribute(attribute, objectId) {
9346
- const { id: _id, name: _name, label: _label, type: _type, ...config } = attribute;
9347
- return {
9348
- id: attribute.id ?? attribute.name,
9349
- objectId,
9350
- name: attribute.name,
9351
- label: attribute.label ?? attribute.name,
9352
- attributeType: attribute.type,
9353
- config
9354
- };
9355
- }
9356
-
9357
9628
  // src/architect/view-projection.ts
9358
9629
  function toDraftableView(view) {
9359
9630
  return {
@@ -9385,371 +9656,387 @@ function fromDraftableView(original, drafted) {
9385
9656
 
9386
9657
  Object.defineProperty(exports, "asTenantId", {
9387
9658
  enumerable: true,
9388
- get: function () { return chunkZHB4VBCX_js.asTenantId; }
9659
+ get: function () { return chunkDVXGSTWJ_js.asTenantId; }
9389
9660
  });
9390
9661
  Object.defineProperty(exports, "asUserId", {
9391
9662
  enumerable: true,
9392
- get: function () { return chunkZHB4VBCX_js.asUserId; }
9663
+ get: function () { return chunkDVXGSTWJ_js.asUserId; }
9393
9664
  });
9394
9665
  Object.defineProperty(exports, "canonicalStringify", {
9395
9666
  enumerable: true,
9396
- get: function () { return chunkZHB4VBCX_js.canonicalStringify; }
9667
+ get: function () { return chunkDVXGSTWJ_js.canonicalStringify; }
9397
9668
  });
9398
9669
  Object.defineProperty(exports, "deepEqual", {
9399
9670
  enumerable: true,
9400
- get: function () { return chunkZHB4VBCX_js.deepEqual; }
9671
+ get: function () { return chunkDVXGSTWJ_js.deepEqual; }
9401
9672
  });
9402
9673
  Object.defineProperty(exports, "generateId", {
9403
9674
  enumerable: true,
9404
- get: function () { return chunkZHB4VBCX_js.generateId; }
9675
+ get: function () { return chunkDVXGSTWJ_js.generateId; }
9405
9676
  });
9406
9677
  Object.defineProperty(exports, "indexBy", {
9407
9678
  enumerable: true,
9408
- get: function () { return chunkZHB4VBCX_js.indexBy; }
9679
+ get: function () { return chunkDVXGSTWJ_js.indexBy; }
9409
9680
  });
9410
9681
  Object.defineProperty(exports, "ATTRIBUTE_FILTER_OPERATORS", {
9411
9682
  enumerable: true,
9412
- get: function () { return chunkD4A6FL67_js.ATTRIBUTE_FILTER_OPERATORS; }
9683
+ get: function () { return chunkT5PM73EF_js.ATTRIBUTE_FILTER_OPERATORS; }
9413
9684
  });
9414
9685
  Object.defineProperty(exports, "LIST_TAB_KANBAN_KEYS", {
9415
9686
  enumerable: true,
9416
- get: function () { return chunkD4A6FL67_js.LIST_TAB_KANBAN_KEYS; }
9687
+ get: function () { return chunkT5PM73EF_js.LIST_TAB_KANBAN_KEYS; }
9417
9688
  });
9418
9689
  Object.defineProperty(exports, "LIST_TAB_TABLE_KEYS", {
9419
9690
  enumerable: true,
9420
- get: function () { return chunkD4A6FL67_js.LIST_TAB_TABLE_KEYS; }
9691
+ get: function () { return chunkT5PM73EF_js.LIST_TAB_TABLE_KEYS; }
9421
9692
  });
9422
9693
  Object.defineProperty(exports, "LIST_VIEW_TAB_VISIBILITIES", {
9423
9694
  enumerable: true,
9424
- get: function () { return chunkD4A6FL67_js.LIST_VIEW_TAB_VISIBILITIES; }
9695
+ get: function () { return chunkT5PM73EF_js.LIST_VIEW_TAB_VISIBILITIES; }
9696
+ });
9697
+ Object.defineProperty(exports, "LOCATION_FILTER_PROPERTIES", {
9698
+ enumerable: true,
9699
+ get: function () { return chunkT5PM73EF_js.LOCATION_FILTER_PROPERTIES; }
9425
9700
  });
9426
9701
  Object.defineProperty(exports, "NO_VALUE_OPERATORS", {
9427
9702
  enumerable: true,
9428
- get: function () { return chunkD4A6FL67_js.NO_VALUE_OPERATORS; }
9703
+ get: function () { return chunkT5PM73EF_js.NO_VALUE_OPERATORS; }
9429
9704
  });
9430
9705
  Object.defineProperty(exports, "OPERATORS_BY_TYPE", {
9431
9706
  enumerable: true,
9432
- get: function () { return chunkD4A6FL67_js.OPERATORS_BY_TYPE; }
9707
+ get: function () { return chunkT5PM73EF_js.OPERATORS_BY_TYPE; }
9433
9708
  });
9434
9709
  Object.defineProperty(exports, "REMOVED_OPERATOR_REPLACEMENTS", {
9435
9710
  enumerable: true,
9436
- get: function () { return chunkD4A6FL67_js.REMOVED_OPERATOR_REPLACEMENTS; }
9711
+ get: function () { return chunkT5PM73EF_js.REMOVED_OPERATOR_REPLACEMENTS; }
9437
9712
  });
9438
9713
  Object.defineProperty(exports, "RESERVED_ATTRIBUTE_NAMES", {
9439
9714
  enumerable: true,
9440
- get: function () { return chunkD4A6FL67_js.RESERVED_ATTRIBUTE_NAMES; }
9715
+ get: function () { return chunkT5PM73EF_js.RESERVED_ATTRIBUTE_NAMES; }
9441
9716
  });
9442
9717
  Object.defineProperty(exports, "RESERVED_OBJECT_NAMES", {
9443
9718
  enumerable: true,
9444
- get: function () { return chunkD4A6FL67_js.RESERVED_OBJECT_NAMES; }
9719
+ get: function () { return chunkT5PM73EF_js.RESERVED_OBJECT_NAMES; }
9445
9720
  });
9446
9721
  Object.defineProperty(exports, "RESOURCE_VISIBILITIES", {
9447
9722
  enumerable: true,
9448
- get: function () { return chunkD4A6FL67_js.RESOURCE_VISIBILITIES; }
9723
+ get: function () { return chunkT5PM73EF_js.RESOURCE_VISIBILITIES; }
9449
9724
  });
9450
9725
  Object.defineProperty(exports, "SYNONYM_ALIASES", {
9451
9726
  enumerable: true,
9452
- get: function () { return chunkD4A6FL67_js.SYNONYM_ALIASES; }
9727
+ get: function () { return chunkT5PM73EF_js.SYNONYM_ALIASES; }
9453
9728
  });
9454
9729
  Object.defineProperty(exports, "SYSTEM_ATTRIBUTES", {
9455
9730
  enumerable: true,
9456
- get: function () { return chunkD4A6FL67_js.SYSTEM_ATTRIBUTES; }
9731
+ get: function () { return chunkT5PM73EF_js.SYSTEM_ATTRIBUTES; }
9457
9732
  });
9458
9733
  Object.defineProperty(exports, "SYSTEM_ATTRIBUTE_I18N_KEYS", {
9459
9734
  enumerable: true,
9460
- get: function () { return chunkD4A6FL67_js.SYSTEM_ATTRIBUTE_I18N_KEYS; }
9735
+ get: function () { return chunkT5PM73EF_js.SYSTEM_ATTRIBUTE_I18N_KEYS; }
9461
9736
  });
9462
9737
  Object.defineProperty(exports, "SYSTEM_FIELD_NAMES", {
9463
9738
  enumerable: true,
9464
- get: function () { return chunkD4A6FL67_js.SYSTEM_FIELD_NAMES; }
9739
+ get: function () { return chunkT5PM73EF_js.SYSTEM_FIELD_NAMES; }
9465
9740
  });
9466
9741
  Object.defineProperty(exports, "SYSTEM_FILTER_ATTRIBUTE_TYPES", {
9467
9742
  enumerable: true,
9468
- get: function () { return chunkD4A6FL67_js.SYSTEM_FILTER_ATTRIBUTE_TYPES; }
9743
+ get: function () { return chunkT5PM73EF_js.SYSTEM_FILTER_ATTRIBUTE_TYPES; }
9469
9744
  });
9470
9745
  Object.defineProperty(exports, "canonicalizeFilterValue", {
9471
9746
  enumerable: true,
9472
- get: function () { return chunkD4A6FL67_js.canonicalizeFilterValue; }
9747
+ get: function () { return chunkT5PM73EF_js.canonicalizeFilterValue; }
9473
9748
  });
9474
9749
  Object.defineProperty(exports, "collectQualifiedRuleIssues", {
9475
9750
  enumerable: true,
9476
- get: function () { return chunkD4A6FL67_js.collectQualifiedRuleIssues; }
9751
+ get: function () { return chunkT5PM73EF_js.collectQualifiedRuleIssues; }
9477
9752
  });
9478
9753
  Object.defineProperty(exports, "columnsSchema", {
9479
9754
  enumerable: true,
9480
- get: function () { return chunkD4A6FL67_js.columnsSchema; }
9755
+ get: function () { return chunkT5PM73EF_js.columnsSchema; }
9481
9756
  });
9482
9757
  Object.defineProperty(exports, "currentActor", {
9483
9758
  enumerable: true,
9484
- get: function () { return chunkD4A6FL67_js.currentActor; }
9759
+ get: function () { return chunkT5PM73EF_js.currentActor; }
9485
9760
  });
9486
9761
  Object.defineProperty(exports, "detailTabDraftSchema", {
9487
9762
  enumerable: true,
9488
- get: function () { return chunkD4A6FL67_js.detailTabDraftSchema; }
9763
+ get: function () { return chunkT5PM73EF_js.detailTabDraftSchema; }
9489
9764
  });
9490
9765
  Object.defineProperty(exports, "detailTabSchema", {
9491
9766
  enumerable: true,
9492
- get: function () { return chunkD4A6FL67_js.detailTabSchema; }
9767
+ get: function () { return chunkT5PM73EF_js.detailTabSchema; }
9493
9768
  });
9494
9769
  Object.defineProperty(exports, "detailViewConfigSchema", {
9495
9770
  enumerable: true,
9496
- get: function () { return chunkD4A6FL67_js.detailViewConfigSchema; }
9771
+ get: function () { return chunkT5PM73EF_js.detailViewConfigSchema; }
9772
+ });
9773
+ Object.defineProperty(exports, "displayAttributesSchema", {
9774
+ enumerable: true,
9775
+ get: function () { return chunkT5PM73EF_js.displayAttributesSchema; }
9497
9776
  });
9498
9777
  Object.defineProperty(exports, "extractCurrencyFilterValue", {
9499
9778
  enumerable: true,
9500
- get: function () { return chunkD4A6FL67_js.extractCurrencyFilterValue; }
9779
+ get: function () { return chunkT5PM73EF_js.extractCurrencyFilterValue; }
9501
9780
  });
9502
9781
  Object.defineProperty(exports, "extractFilterValue", {
9503
9782
  enumerable: true,
9504
- get: function () { return chunkD4A6FL67_js.extractFilterValue; }
9783
+ get: function () { return chunkT5PM73EF_js.extractFilterValue; }
9505
9784
  });
9506
9785
  Object.defineProperty(exports, "fieldSchema", {
9507
9786
  enumerable: true,
9508
- get: function () { return chunkD4A6FL67_js.fieldSchema; }
9787
+ get: function () { return chunkT5PM73EF_js.fieldSchema; }
9509
9788
  });
9510
9789
  Object.defineProperty(exports, "fieldShape", {
9511
9790
  enumerable: true,
9512
- get: function () { return chunkD4A6FL67_js.fieldShape; }
9791
+ get: function () { return chunkT5PM73EF_js.fieldShape; }
9513
9792
  });
9514
9793
  Object.defineProperty(exports, "fieldSlotSchema", {
9515
9794
  enumerable: true,
9516
- get: function () { return chunkD4A6FL67_js.fieldSlotSchema; }
9795
+ get: function () { return chunkT5PM73EF_js.fieldSlotSchema; }
9517
9796
  });
9518
9797
  Object.defineProperty(exports, "filterGroupSchema", {
9519
9798
  enumerable: true,
9520
- get: function () { return chunkD4A6FL67_js.filterGroupSchema; }
9799
+ get: function () { return chunkT5PM73EF_js.filterGroupSchema; }
9521
9800
  });
9522
9801
  Object.defineProperty(exports, "filterStateSchema", {
9523
9802
  enumerable: true,
9524
- get: function () { return chunkD4A6FL67_js.filterStateSchema; }
9803
+ get: function () { return chunkT5PM73EF_js.filterStateSchema; }
9525
9804
  });
9526
9805
  Object.defineProperty(exports, "getAttributeCapabilities", {
9527
9806
  enumerable: true,
9528
- get: function () { return chunkD4A6FL67_js.getAttributeCapabilities; }
9807
+ get: function () { return chunkT5PM73EF_js.getAttributeCapabilities; }
9529
9808
  });
9530
9809
  Object.defineProperty(exports, "getAttributeFilterOperators", {
9531
9810
  enumerable: true,
9532
- get: function () { return chunkD4A6FL67_js.getAttributeFilterOperators; }
9811
+ get: function () { return chunkT5PM73EF_js.getAttributeFilterOperators; }
9533
9812
  });
9534
9813
  Object.defineProperty(exports, "getOperatorPolarity", {
9535
9814
  enumerable: true,
9536
- get: function () { return chunkD4A6FL67_js.getOperatorPolarity; }
9815
+ get: function () { return chunkT5PM73EF_js.getOperatorPolarity; }
9537
9816
  });
9538
9817
  Object.defineProperty(exports, "getRollupFilterOperators", {
9539
9818
  enumerable: true,
9540
- get: function () { return chunkD4A6FL67_js.getRollupFilterOperators; }
9819
+ get: function () { return chunkT5PM73EF_js.getRollupFilterOperators; }
9541
9820
  });
9542
9821
  Object.defineProperty(exports, "getSystemAttributeI18nKey", {
9543
9822
  enumerable: true,
9544
- get: function () { return chunkD4A6FL67_js.getSystemAttributeI18nKey; }
9823
+ get: function () { return chunkT5PM73EF_js.getSystemAttributeI18nKey; }
9545
9824
  });
9546
9825
  Object.defineProperty(exports, "getSystemAttributeList", {
9547
9826
  enumerable: true,
9548
- get: function () { return chunkD4A6FL67_js.getSystemAttributeList; }
9827
+ get: function () { return chunkT5PM73EF_js.getSystemAttributeList; }
9549
9828
  });
9550
9829
  Object.defineProperty(exports, "groupWriteSchema", {
9551
9830
  enumerable: true,
9552
- get: function () { return chunkD4A6FL67_js.groupWriteSchema; }
9831
+ get: function () { return chunkT5PM73EF_js.groupWriteSchema; }
9553
9832
  });
9554
9833
  Object.defineProperty(exports, "inverseSourceSchema", {
9555
9834
  enumerable: true,
9556
- get: function () { return chunkD4A6FL67_js.inverseSourceSchema; }
9835
+ get: function () { return chunkT5PM73EF_js.inverseSourceSchema; }
9557
9836
  });
9558
9837
  Object.defineProperty(exports, "isAttributeFilterable", {
9559
9838
  enumerable: true,
9560
- get: function () { return chunkD4A6FL67_js.isAttributeFilterable; }
9839
+ get: function () { return chunkT5PM73EF_js.isAttributeFilterable; }
9561
9840
  });
9562
9841
  Object.defineProperty(exports, "isAttributeGroupable", {
9563
9842
  enumerable: true,
9564
- get: function () { return chunkD4A6FL67_js.isAttributeGroupable; }
9843
+ get: function () { return chunkT5PM73EF_js.isAttributeGroupable; }
9565
9844
  });
9566
9845
  Object.defineProperty(exports, "isAttributeKanbanGroupable", {
9567
9846
  enumerable: true,
9568
- get: function () { return chunkD4A6FL67_js.isAttributeKanbanGroupable; }
9847
+ get: function () { return chunkT5PM73EF_js.isAttributeKanbanGroupable; }
9569
9848
  });
9570
9849
  Object.defineProperty(exports, "isAttributeSearchable", {
9571
9850
  enumerable: true,
9572
- get: function () { return chunkD4A6FL67_js.isAttributeSearchable; }
9851
+ get: function () { return chunkT5PM73EF_js.isAttributeSearchable; }
9573
9852
  });
9574
9853
  Object.defineProperty(exports, "isDynamicValue", {
9575
9854
  enumerable: true,
9576
- get: function () { return chunkD4A6FL67_js.isDynamicValue; }
9855
+ get: function () { return chunkT5PM73EF_js.isDynamicValue; }
9856
+ });
9857
+ Object.defineProperty(exports, "isLocationFilterProperty", {
9858
+ enumerable: true,
9859
+ get: function () { return chunkT5PM73EF_js.isLocationFilterProperty; }
9860
+ });
9861
+ Object.defineProperty(exports, "isLocationPartOperator", {
9862
+ enumerable: true,
9863
+ get: function () { return chunkT5PM73EF_js.isLocationPartOperator; }
9577
9864
  });
9578
9865
  Object.defineProperty(exports, "isManagedSystemAttribute", {
9579
9866
  enumerable: true,
9580
- get: function () { return chunkD4A6FL67_js.isManagedSystemAttribute; }
9867
+ get: function () { return chunkT5PM73EF_js.isManagedSystemAttribute; }
9581
9868
  });
9582
9869
  Object.defineProperty(exports, "isNoValueOperator", {
9583
9870
  enumerable: true,
9584
- get: function () { return chunkD4A6FL67_js.isNoValueOperator; }
9871
+ get: function () { return chunkT5PM73EF_js.isNoValueOperator; }
9585
9872
  });
9586
9873
  Object.defineProperty(exports, "isRelativeDateValue", {
9587
9874
  enumerable: true,
9588
- get: function () { return chunkD4A6FL67_js.isRelativeDateValue; }
9875
+ get: function () { return chunkT5PM73EF_js.isRelativeDateValue; }
9589
9876
  });
9590
9877
  Object.defineProperty(exports, "isSetMembershipOperator", {
9591
9878
  enumerable: true,
9592
- get: function () { return chunkD4A6FL67_js.isSetMembershipOperator; }
9879
+ get: function () { return chunkT5PM73EF_js.isSetMembershipOperator; }
9593
9880
  });
9594
9881
  Object.defineProperty(exports, "listViewConfigSchema", {
9595
9882
  enumerable: true,
9596
- get: function () { return chunkD4A6FL67_js.listViewConfigSchema; }
9883
+ get: function () { return chunkT5PM73EF_js.listViewConfigSchema; }
9597
9884
  });
9598
9885
  Object.defineProperty(exports, "listViewTabSchema", {
9599
9886
  enumerable: true,
9600
- get: function () { return chunkD4A6FL67_js.listViewTabSchema; }
9887
+ get: function () { return chunkT5PM73EF_js.listViewTabSchema; }
9601
9888
  });
9602
9889
  Object.defineProperty(exports, "normalizeFilterRule", {
9603
9890
  enumerable: true,
9604
- get: function () { return chunkD4A6FL67_js.normalizeFilterRule; }
9891
+ get: function () { return chunkT5PM73EF_js.normalizeFilterRule; }
9605
9892
  });
9606
9893
  Object.defineProperty(exports, "normalizeForEdgeRpc", {
9607
9894
  enumerable: true,
9608
- get: function () { return chunkD4A6FL67_js.normalizeForEdgeRpc; }
9895
+ get: function () { return chunkT5PM73EF_js.normalizeForEdgeRpc; }
9609
9896
  });
9610
9897
  Object.defineProperty(exports, "normalizeOperator", {
9611
9898
  enumerable: true,
9612
- get: function () { return chunkD4A6FL67_js.normalizeOperator; }
9899
+ get: function () { return chunkT5PM73EF_js.normalizeOperator; }
9613
9900
  });
9614
9901
  Object.defineProperty(exports, "now", {
9615
9902
  enumerable: true,
9616
- get: function () { return chunkD4A6FL67_js.now; }
9903
+ get: function () { return chunkT5PM73EF_js.now; }
9617
9904
  });
9618
9905
  Object.defineProperty(exports, "parseResourceVisibility", {
9619
9906
  enumerable: true,
9620
- get: function () { return chunkD4A6FL67_js.parseResourceVisibility; }
9907
+ get: function () { return chunkT5PM73EF_js.parseResourceVisibility; }
9621
9908
  });
9622
9909
  Object.defineProperty(exports, "parseViewConfig", {
9623
9910
  enumerable: true,
9624
- get: function () { return chunkD4A6FL67_js.parseViewConfig; }
9911
+ get: function () { return chunkT5PM73EF_js.parseViewConfig; }
9625
9912
  });
9626
9913
  Object.defineProperty(exports, "relationSourceSchema", {
9627
9914
  enumerable: true,
9628
- get: function () { return chunkD4A6FL67_js.relationSourceSchema; }
9915
+ get: function () { return chunkT5PM73EF_js.relationSourceSchema; }
9629
9916
  });
9630
9917
  Object.defineProperty(exports, "resolveEffectiveFilterType", {
9631
9918
  enumerable: true,
9632
- get: function () { return chunkD4A6FL67_js.resolveEffectiveFilterType; }
9919
+ get: function () { return chunkT5PM73EF_js.resolveEffectiveFilterType; }
9633
9920
  });
9634
9921
  Object.defineProperty(exports, "resolveIsWithinBounds", {
9635
9922
  enumerable: true,
9636
- get: function () { return chunkD4A6FL67_js.resolveIsWithinBounds; }
9923
+ get: function () { return chunkT5PM73EF_js.resolveIsWithinBounds; }
9637
9924
  });
9638
9925
  Object.defineProperty(exports, "resolveUtcDayBounds", {
9639
9926
  enumerable: true,
9640
- get: function () { return chunkD4A6FL67_js.resolveUtcDayBounds; }
9927
+ get: function () { return chunkT5PM73EF_js.resolveUtcDayBounds; }
9641
9928
  });
9642
9929
  Object.defineProperty(exports, "sortsSchema", {
9643
9930
  enumerable: true,
9644
- get: function () { return chunkD4A6FL67_js.sortsSchema; }
9931
+ get: function () { return chunkT5PM73EF_js.sortsSchema; }
9645
9932
  });
9646
9933
  Object.defineProperty(exports, "tableSourceSchema", {
9647
9934
  enumerable: true,
9648
- get: function () { return chunkD4A6FL67_js.tableSourceSchema; }
9935
+ get: function () { return chunkT5PM73EF_js.tableSourceSchema; }
9649
9936
  });
9650
9937
  Object.defineProperty(exports, "toMultiValueOperator", {
9651
9938
  enumerable: true,
9652
- get: function () { return chunkD4A6FL67_js.toMultiValueOperator; }
9939
+ get: function () { return chunkT5PM73EF_js.toMultiValueOperator; }
9653
9940
  });
9654
9941
  Object.defineProperty(exports, "toUtcDayString", {
9655
9942
  enumerable: true,
9656
- get: function () { return chunkD4A6FL67_js.toUtcDayString; }
9943
+ get: function () { return chunkT5PM73EF_js.toUtcDayString; }
9657
9944
  });
9658
9945
  Object.defineProperty(exports, "today", {
9659
9946
  enumerable: true,
9660
- get: function () { return chunkD4A6FL67_js.today; }
9947
+ get: function () { return chunkT5PM73EF_js.today; }
9661
9948
  });
9662
9949
  Object.defineProperty(exports, "validateQualifiedRule", {
9663
9950
  enumerable: true,
9664
- get: function () { return chunkD4A6FL67_js.validateQualifiedRule; }
9951
+ get: function () { return chunkT5PM73EF_js.validateQualifiedRule; }
9665
9952
  });
9666
9953
  Object.defineProperty(exports, "viewConfigByTypeSchema", {
9667
9954
  enumerable: true,
9668
- get: function () { return chunkD4A6FL67_js.viewConfigByTypeSchema; }
9955
+ get: function () { return chunkT5PM73EF_js.viewConfigByTypeSchema; }
9669
9956
  });
9670
9957
  Object.defineProperty(exports, "viewTypeSchema", {
9671
9958
  enumerable: true,
9672
- get: function () { return chunkD4A6FL67_js.viewTypeSchema; }
9959
+ get: function () { return chunkT5PM73EF_js.viewTypeSchema; }
9673
9960
  });
9674
9961
  Object.defineProperty(exports, "createFormAttributeValidator", {
9675
9962
  enumerable: true,
9676
- get: function () { return chunkRDYTVHNN_js.createFormAttributeValidator; }
9963
+ get: function () { return chunkHURC6CW3_js.createFormAttributeValidator; }
9677
9964
  });
9678
9965
  Object.defineProperty(exports, "isNullishOrEmptyString", {
9679
9966
  enumerable: true,
9680
- get: function () { return chunkRDYTVHNN_js.isNullishOrEmptyString; }
9967
+ get: function () { return chunkHURC6CW3_js.isNullishOrEmptyString; }
9681
9968
  });
9682
9969
  Object.defineProperty(exports, "isValuePresent", {
9683
9970
  enumerable: true,
9684
- get: function () { return chunkRDYTVHNN_js.isValuePresent; }
9971
+ get: function () { return chunkHURC6CW3_js.isValuePresent; }
9685
9972
  });
9686
9973
  Object.defineProperty(exports, "rejectUnknownAttributesOrThrow", {
9687
9974
  enumerable: true,
9688
- get: function () { return chunkRDYTVHNN_js.rejectUnknownAttributesOrThrow; }
9975
+ get: function () { return chunkHURC6CW3_js.rejectUnknownAttributesOrThrow; }
9689
9976
  });
9690
9977
  Object.defineProperty(exports, "validateDraft", {
9691
9978
  enumerable: true,
9692
- get: function () { return chunkRDYTVHNN_js.validateDraft; }
9979
+ get: function () { return chunkHURC6CW3_js.validateDraft; }
9693
9980
  });
9694
9981
  Object.defineProperty(exports, "validateDraftOrThrow", {
9695
9982
  enumerable: true,
9696
- get: function () { return chunkRDYTVHNN_js.validateDraftOrThrow; }
9983
+ get: function () { return chunkHURC6CW3_js.validateDraftOrThrow; }
9697
9984
  });
9698
9985
  Object.defineProperty(exports, "validateObject", {
9699
9986
  enumerable: true,
9700
- get: function () { return chunkRDYTVHNN_js.validateObject; }
9987
+ get: function () { return chunkHURC6CW3_js.validateObject; }
9701
9988
  });
9702
9989
  Object.defineProperty(exports, "validateObjectOrThrow", {
9703
9990
  enumerable: true,
9704
- get: function () { return chunkRDYTVHNN_js.validateObjectOrThrow; }
9991
+ get: function () { return chunkHURC6CW3_js.validateObjectOrThrow; }
9705
9992
  });
9706
9993
  Object.defineProperty(exports, "ComputedFormulaParseError", {
9707
9994
  enumerable: true,
9708
- get: function () { return chunk5JMQNH2A_js.ComputedFormulaParseError; }
9995
+ get: function () { return chunkKAWYU7TE_js.ComputedFormulaParseError; }
9709
9996
  });
9710
9997
  Object.defineProperty(exports, "SCHEMA_LIMITS", {
9711
9998
  enumerable: true,
9712
- get: function () { return chunk5JMQNH2A_js.SCHEMA_LIMITS; }
9999
+ get: function () { return chunkKAWYU7TE_js.SCHEMA_LIMITS; }
9713
10000
  });
9714
10001
  Object.defineProperty(exports, "colorIdSchema", {
9715
10002
  enumerable: true,
9716
- get: function () { return chunk5JMQNH2A_js.colorIdSchema; }
10003
+ get: function () { return chunkKAWYU7TE_js.colorIdSchema; }
9717
10004
  });
9718
10005
  Object.defineProperty(exports, "iconNameSchema", {
9719
10006
  enumerable: true,
9720
- get: function () { return chunk5JMQNH2A_js.iconNameSchema; }
10007
+ get: function () { return chunkKAWYU7TE_js.iconNameSchema; }
9721
10008
  });
9722
10009
  Object.defineProperty(exports, "multiselectOptionWriteSchema", {
9723
10010
  enumerable: true,
9724
- get: function () { return chunk5JMQNH2A_js.multiselectOptionWriteSchema; }
10011
+ get: function () { return chunkKAWYU7TE_js.multiselectOptionWriteSchema; }
9725
10012
  });
9726
10013
  Object.defineProperty(exports, "parseAttributeConfig", {
9727
10014
  enumerable: true,
9728
- get: function () { return chunk5JMQNH2A_js.parseAttributeConfig; }
10015
+ get: function () { return chunkKAWYU7TE_js.parseAttributeConfig; }
9729
10016
  });
9730
10017
  Object.defineProperty(exports, "parseAttributeConfigForCreate", {
9731
10018
  enumerable: true,
9732
- get: function () { return chunk5JMQNH2A_js.parseAttributeConfigForCreate; }
10019
+ get: function () { return chunkKAWYU7TE_js.parseAttributeConfigForCreate; }
9733
10020
  });
9734
10021
  Object.defineProperty(exports, "parseAttributeConfigForUpdate", {
9735
10022
  enumerable: true,
9736
- get: function () { return chunk5JMQNH2A_js.parseAttributeConfigForUpdate; }
10023
+ get: function () { return chunkKAWYU7TE_js.parseAttributeConfigForUpdate; }
9737
10024
  });
9738
10025
  Object.defineProperty(exports, "parseComputedFormula", {
9739
10026
  enumerable: true,
9740
- get: function () { return chunk5JMQNH2A_js.parseComputedFormula; }
10027
+ get: function () { return chunkKAWYU7TE_js.parseComputedFormula; }
9741
10028
  });
9742
10029
  Object.defineProperty(exports, "selectOptionWriteSchema", {
9743
10030
  enumerable: true,
9744
- get: function () { return chunk5JMQNH2A_js.selectOptionWriteSchema; }
10031
+ get: function () { return chunkKAWYU7TE_js.selectOptionWriteSchema; }
9745
10032
  });
9746
10033
  Object.defineProperty(exports, "statusGroupSchema", {
9747
10034
  enumerable: true,
9748
- get: function () { return chunk5JMQNH2A_js.statusGroupSchema; }
10035
+ get: function () { return chunkKAWYU7TE_js.statusGroupSchema; }
9749
10036
  });
9750
10037
  Object.defineProperty(exports, "statusOptionWriteSchema", {
9751
10038
  enumerable: true,
9752
- get: function () { return chunk5JMQNH2A_js.statusOptionWriteSchema; }
10039
+ get: function () { return chunkKAWYU7TE_js.statusOptionWriteSchema; }
9753
10040
  });
9754
10041
  Object.defineProperty(exports, "createCheckboxValidator", {
9755
10042
  enumerable: true,
@@ -9777,155 +10064,155 @@ Object.defineProperty(exports, "resolveTextPattern", {
9777
10064
  });
9778
10065
  Object.defineProperty(exports, "AccessDeniedError", {
9779
10066
  enumerable: true,
9780
- get: function () { return chunk3YCZ5H3H_js.AccessDeniedError; }
10067
+ get: function () { return chunk4KMUATDG_js.AccessDeniedError; }
9781
10068
  });
9782
10069
  Object.defineProperty(exports, "AttributeInUseError", {
9783
10070
  enumerable: true,
9784
- get: function () { return chunk3YCZ5H3H_js.AttributeInUseError; }
10071
+ get: function () { return chunk4KMUATDG_js.AttributeInUseError; }
9785
10072
  });
9786
10073
  Object.defineProperty(exports, "AttributeNotFoundError", {
9787
10074
  enumerable: true,
9788
- get: function () { return chunk3YCZ5H3H_js.AttributeNotFoundError; }
10075
+ get: function () { return chunk4KMUATDG_js.AttributeNotFoundError; }
9789
10076
  });
9790
10077
  Object.defineProperty(exports, "ChangeTypeNotSupportedError", {
9791
10078
  enumerable: true,
9792
- get: function () { return chunk3YCZ5H3H_js.ChangeTypeNotSupportedError; }
10079
+ get: function () { return chunk4KMUATDG_js.ChangeTypeNotSupportedError; }
9793
10080
  });
9794
10081
  Object.defineProperty(exports, "ConcurrentModificationError", {
9795
10082
  enumerable: true,
9796
- get: function () { return chunk3YCZ5H3H_js.ConcurrentModificationError; }
10083
+ get: function () { return chunk4KMUATDG_js.ConcurrentModificationError; }
9797
10084
  });
9798
10085
  Object.defineProperty(exports, "DestructiveSyncNotAllowedError", {
9799
10086
  enumerable: true,
9800
- get: function () { return chunk3YCZ5H3H_js.DestructiveSyncNotAllowedError; }
10087
+ get: function () { return chunk4KMUATDG_js.DestructiveSyncNotAllowedError; }
9801
10088
  });
9802
10089
  Object.defineProperty(exports, "DuplicateError", {
9803
10090
  enumerable: true,
9804
- get: function () { return chunk3YCZ5H3H_js.DuplicateError; }
10091
+ get: function () { return chunk4KMUATDG_js.DuplicateError; }
9805
10092
  });
9806
10093
  Object.defineProperty(exports, "ForbiddenError", {
9807
10094
  enumerable: true,
9808
- get: function () { return chunk3YCZ5H3H_js.ForbiddenError; }
10095
+ get: function () { return chunk4KMUATDG_js.ForbiddenError; }
9809
10096
  });
9810
10097
  Object.defineProperty(exports, "MemoryNotFoundError", {
9811
10098
  enumerable: true,
9812
- get: function () { return chunk3YCZ5H3H_js.MemoryNotFoundError; }
10099
+ get: function () { return chunk4KMUATDG_js.MemoryNotFoundError; }
9813
10100
  });
9814
10101
  Object.defineProperty(exports, "MigrationTimeoutError", {
9815
10102
  enumerable: true,
9816
- get: function () { return chunk3YCZ5H3H_js.MigrationTimeoutError; }
10103
+ get: function () { return chunk4KMUATDG_js.MigrationTimeoutError; }
9817
10104
  });
9818
10105
  Object.defineProperty(exports, "NotFoundError", {
9819
10106
  enumerable: true,
9820
- get: function () { return chunk3YCZ5H3H_js.NotFoundError; }
10107
+ get: function () { return chunk4KMUATDG_js.NotFoundError; }
9821
10108
  });
9822
10109
  Object.defineProperty(exports, "NotImplementedError", {
9823
10110
  enumerable: true,
9824
- get: function () { return chunk3YCZ5H3H_js.NotImplementedError; }
10111
+ get: function () { return chunk4KMUATDG_js.NotImplementedError; }
9825
10112
  });
9826
10113
  Object.defineProperty(exports, "ObjectNotFoundError", {
9827
10114
  enumerable: true,
9828
- get: function () { return chunk3YCZ5H3H_js.ObjectNotFoundError; }
10115
+ get: function () { return chunk4KMUATDG_js.ObjectNotFoundError; }
9829
10116
  });
9830
10117
  Object.defineProperty(exports, "ObjectReferencedError", {
9831
10118
  enumerable: true,
9832
- get: function () { return chunk3YCZ5H3H_js.ObjectReferencedError; }
10119
+ get: function () { return chunk4KMUATDG_js.ObjectReferencedError; }
9833
10120
  });
9834
10121
  Object.defineProperty(exports, "OrphanSystemAttributeError", {
9835
10122
  enumerable: true,
9836
- get: function () { return chunk3YCZ5H3H_js.OrphanSystemAttributeError; }
10123
+ get: function () { return chunk4KMUATDG_js.OrphanSystemAttributeError; }
9837
10124
  });
9838
10125
  Object.defineProperty(exports, "ProtectedResourceError", {
9839
10126
  enumerable: true,
9840
- get: function () { return chunk3YCZ5H3H_js.ProtectedResourceError; }
10127
+ get: function () { return chunk4KMUATDG_js.ProtectedResourceError; }
9841
10128
  });
9842
10129
  Object.defineProperty(exports, "ProtectedRoleError", {
9843
10130
  enumerable: true,
9844
- get: function () { return chunk3YCZ5H3H_js.ProtectedRoleError; }
10131
+ get: function () { return chunk4KMUATDG_js.ProtectedRoleError; }
9845
10132
  });
9846
10133
  Object.defineProperty(exports, "RecordNotFoundError", {
9847
10134
  enumerable: true,
9848
- get: function () { return chunk3YCZ5H3H_js.RecordNotFoundError; }
10135
+ get: function () { return chunk4KMUATDG_js.RecordNotFoundError; }
9849
10136
  });
9850
10137
  Object.defineProperty(exports, "RecordReferencedError", {
9851
10138
  enumerable: true,
9852
- get: function () { return chunk3YCZ5H3H_js.RecordReferencedError; }
10139
+ get: function () { return chunk4KMUATDG_js.RecordReferencedError; }
9853
10140
  });
9854
10141
  Object.defineProperty(exports, "RepositoryError", {
9855
10142
  enumerable: true,
9856
- get: function () { return chunk3YCZ5H3H_js.RepositoryError; }
10143
+ get: function () { return chunk4KMUATDG_js.RepositoryError; }
9857
10144
  });
9858
10145
  Object.defineProperty(exports, "RoleNotFoundError", {
9859
10146
  enumerable: true,
9860
- get: function () { return chunk3YCZ5H3H_js.RoleNotFoundError; }
10147
+ get: function () { return chunk4KMUATDG_js.RoleNotFoundError; }
9861
10148
  });
9862
10149
  Object.defineProperty(exports, "SchemaError", {
9863
10150
  enumerable: true,
9864
- get: function () { return chunk3YCZ5H3H_js.SchemaError; }
10151
+ get: function () { return chunk4KMUATDG_js.SchemaError; }
9865
10152
  });
9866
10153
  Object.defineProperty(exports, "SchemaErrorCode", {
9867
10154
  enumerable: true,
9868
- get: function () { return chunk3YCZ5H3H_js.SchemaErrorCode; }
10155
+ get: function () { return chunk4KMUATDG_js.SchemaErrorCode; }
9869
10156
  });
9870
10157
  Object.defineProperty(exports, "SchemaPlanNotFoundError", {
9871
10158
  enumerable: true,
9872
- get: function () { return chunk3YCZ5H3H_js.SchemaPlanNotFoundError; }
10159
+ get: function () { return chunk4KMUATDG_js.SchemaPlanNotFoundError; }
9873
10160
  });
9874
10161
  Object.defineProperty(exports, "SearchBackendError", {
9875
10162
  enumerable: true,
9876
- get: function () { return chunk3YCZ5H3H_js.SearchBackendError; }
10163
+ get: function () { return chunk4KMUATDG_js.SearchBackendError; }
9877
10164
  });
9878
10165
  Object.defineProperty(exports, "StorageError", {
9879
10166
  enumerable: true,
9880
- get: function () { return chunk3YCZ5H3H_js.StorageError; }
10167
+ get: function () { return chunk4KMUATDG_js.StorageError; }
9881
10168
  });
9882
10169
  Object.defineProperty(exports, "SyncCascadeError", {
9883
10170
  enumerable: true,
9884
- get: function () { return chunk3YCZ5H3H_js.SyncCascadeError; }
10171
+ get: function () { return chunk4KMUATDG_js.SyncCascadeError; }
9885
10172
  });
9886
10173
  Object.defineProperty(exports, "SyncConflictError", {
9887
10174
  enumerable: true,
9888
- get: function () { return chunk3YCZ5H3H_js.SyncConflictError; }
10175
+ get: function () { return chunk4KMUATDG_js.SyncConflictError; }
9889
10176
  });
9890
10177
  Object.defineProperty(exports, "SyncError", {
9891
10178
  enumerable: true,
9892
- get: function () { return chunk3YCZ5H3H_js.SyncError; }
10179
+ get: function () { return chunk4KMUATDG_js.SyncError; }
9893
10180
  });
9894
10181
  Object.defineProperty(exports, "SystemEntityImmutableError", {
9895
10182
  enumerable: true,
9896
- get: function () { return chunk3YCZ5H3H_js.SystemEntityImmutableError; }
10183
+ get: function () { return chunk4KMUATDG_js.SystemEntityImmutableError; }
9897
10184
  });
9898
10185
  Object.defineProperty(exports, "ValidationError", {
9899
10186
  enumerable: true,
9900
- get: function () { return chunk3YCZ5H3H_js.ValidationError; }
10187
+ get: function () { return chunk4KMUATDG_js.ValidationError; }
9901
10188
  });
9902
10189
  Object.defineProperty(exports, "isAttributeInUseError", {
9903
10190
  enumerable: true,
9904
- get: function () { return chunk3YCZ5H3H_js.isAttributeInUseError; }
10191
+ get: function () { return chunk4KMUATDG_js.isAttributeInUseError; }
9905
10192
  });
9906
10193
  Object.defineProperty(exports, "isNotFoundError", {
9907
10194
  enumerable: true,
9908
- get: function () { return chunk3YCZ5H3H_js.isNotFoundError; }
10195
+ get: function () { return chunk4KMUATDG_js.isNotFoundError; }
9909
10196
  });
9910
10197
  Object.defineProperty(exports, "isObjectReferencedError", {
9911
10198
  enumerable: true,
9912
- get: function () { return chunk3YCZ5H3H_js.isObjectReferencedError; }
10199
+ get: function () { return chunk4KMUATDG_js.isObjectReferencedError; }
9913
10200
  });
9914
10201
  Object.defineProperty(exports, "isProtectedResourceError", {
9915
10202
  enumerable: true,
9916
- get: function () { return chunk3YCZ5H3H_js.isProtectedResourceError; }
10203
+ get: function () { return chunk4KMUATDG_js.isProtectedResourceError; }
9917
10204
  });
9918
10205
  Object.defineProperty(exports, "isRecordReferencedError", {
9919
10206
  enumerable: true,
9920
- get: function () { return chunk3YCZ5H3H_js.isRecordReferencedError; }
10207
+ get: function () { return chunk4KMUATDG_js.isRecordReferencedError; }
9921
10208
  });
9922
10209
  Object.defineProperty(exports, "isSchemaError", {
9923
10210
  enumerable: true,
9924
- get: function () { return chunk3YCZ5H3H_js.isSchemaError; }
10211
+ get: function () { return chunk4KMUATDG_js.isSchemaError; }
9925
10212
  });
9926
10213
  Object.defineProperty(exports, "isValidationError", {
9927
10214
  enumerable: true,
9928
- get: function () { return chunk3YCZ5H3H_js.isValidationError; }
10215
+ get: function () { return chunk4KMUATDG_js.isValidationError; }
9929
10216
  });
9930
10217
  Object.defineProperty(exports, "DEFAULT_VALIDATION_MESSAGES", {
9931
10218
  enumerable: true,
@@ -9941,6 +10228,12 @@ exports.ALLOWED_PROPERTY_TYPES = ALLOWED_PROPERTY_TYPES;
9941
10228
  exports.ALL_ACTIONS = ALL_ACTIONS;
9942
10229
  exports.ALL_OPERATION_TYPES = ALL_OPERATION_TYPES;
9943
10230
  exports.ALL_SYSTEM_RESOURCES = ALL_SYSTEM_RESOURCES;
10231
+ exports.ARTIFACT_FILE_ROLES = ARTIFACT_FILE_ROLES;
10232
+ exports.ARTIFACT_KINDS = ARTIFACT_KINDS;
10233
+ exports.ARTIFACT_LIST_VIEW = ARTIFACT_LIST_VIEW;
10234
+ exports.ARTIFACT_OBJECT = ARTIFACT_OBJECT;
10235
+ exports.ARTIFACT_OBJECT_NAME = ARTIFACT_OBJECT_NAME;
10236
+ exports.ARTIFACT_RETENTIONS = ARTIFACT_RETENTIONS;
9944
10237
  exports.ATTRIBUTE_TYPES = ATTRIBUTE_TYPES;
9945
10238
  exports.AUDIT_ACTIONS = AUDIT_ACTIONS;
9946
10239
  exports.AUDIT_RESOURCE_TYPES = AUDIT_RESOURCE_TYPES;
@@ -9959,11 +10252,23 @@ exports.CustomTabConfig = CustomTabConfig;
9959
10252
  exports.DB_COLUMN_FIELDS = DB_COLUMN_FIELDS;
9960
10253
  exports.DEFAULT_AGENT_EXECUTION_CONFIG = DEFAULT_AGENT_EXECUTION_CONFIG;
9961
10254
  exports.DEFAULT_APPROVAL_POLICY = DEFAULT_APPROVAL_POLICY;
10255
+ exports.DEFAULT_DICTATION_LIMITS = DEFAULT_DICTATION_LIMITS;
9962
10256
  exports.DEFAULT_LABEL_FALLBACK = DEFAULT_LABEL_FALLBACK;
10257
+ exports.DEFAULT_MEETING_BOT_DISPLAY_NAME = DEFAULT_MEETING_BOT_DISPLAY_NAME;
9963
10258
  exports.DEFAULT_ROLES = DEFAULT_ROLES;
9964
10259
  exports.DEFAULT_ROLE_DESCRIPTIONS = DEFAULT_ROLE_DESCRIPTIONS;
9965
10260
  exports.DEFAULT_ROLE_LABELS = DEFAULT_ROLE_LABELS;
9966
10261
  exports.DEFAULT_ROLE_PERMISSIONS = DEFAULT_ROLE_PERMISSIONS;
10262
+ exports.DEFAULT_TENANT_SETTINGS = DEFAULT_TENANT_SETTINGS;
10263
+ exports.DICTATION_FINALIZATION_TIMEOUT_MS = DICTATION_FINALIZATION_TIMEOUT_MS;
10264
+ exports.DICTATION_FRAME_BYTES = DICTATION_FRAME_BYTES;
10265
+ exports.DICTATION_MAX_BUFFER_BYTES = DICTATION_MAX_BUFFER_BYTES;
10266
+ exports.DICTATION_MAX_FRAME_BYTES = DICTATION_MAX_FRAME_BYTES;
10267
+ exports.DICTATION_MAX_TRANSCRIPT_BYTES = DICTATION_MAX_TRANSCRIPT_BYTES;
10268
+ exports.DICTATION_MODEL_ID = DICTATION_MODEL_ID;
10269
+ exports.DICTATION_PREPARATION_TIMEOUT_MS = DICTATION_PREPARATION_TIMEOUT_MS;
10270
+ exports.DICTATION_SAMPLE_RATE = DICTATION_SAMPLE_RATE;
10271
+ exports.DICTATION_TICKET_TTL_MS = DICTATION_TICKET_TTL_MS;
9967
10272
  exports.DOCUMENT_SYSTEM_ATTRIBUTES = DOCUMENT_SYSTEM_ATTRIBUTES;
9968
10273
  exports.DRAFTABLE_ATTRIBUTE_TYPES = DRAFTABLE_ATTRIBUTE_TYPES;
9969
10274
  exports.DRIVE_LIST_VIEW = DRIVE_LIST_VIEW;
@@ -9975,6 +10280,7 @@ exports.DocumentsTabConfig = DocumentsTabConfig;
9975
10280
  exports.EMPTY_VALUE_PLACEHOLDER = EMPTY_VALUE_PLACEHOLDER;
9976
10281
  exports.ESTIMATED_COUNT_CAP = ESTIMATED_COUNT_CAP;
9977
10282
  exports.EmailsTabConfig = EmailsTabConfig;
10283
+ exports.FAKE_MEETING_BOT_SIGNATURE_HEADER = FAKE_MEETING_BOT_SIGNATURE_HEADER;
9978
10284
  exports.FORM_FORBIDDEN_ATTRIBUTE_TYPES = FORM_FORBIDDEN_ATTRIBUTE_TYPES;
9979
10285
  exports.FlagRegistry = FlagRegistry;
9980
10286
  exports.FlagService = FlagService;
@@ -9984,6 +10290,8 @@ exports.FormRowBuilder = FormRowBuilder;
9984
10290
  exports.FormStepBuilder = FormStepBuilder;
9985
10291
  exports.GroupBuilder = GroupBuilder;
9986
10292
  exports.IDENTITY_PROPERTIES = IDENTITY_PROPERTIES;
10293
+ exports.INFERENCE_REASONING_OPTIONS = INFERENCE_REASONING_OPTIONS;
10294
+ exports.INFERENCE_SPEEDS = INFERENCE_SPEEDS;
9987
10295
  exports.LIVE_EVENT_TYPES = LIVE_EVENT_TYPES;
9988
10296
  exports.ListViewBuilder = ListViewBuilder;
9989
10297
  exports.ListViewTabConfigBuilder = ListViewTabConfigBuilder;
@@ -10007,6 +10315,7 @@ exports.NOTIFICATION_TYPE_AGENT_QUESTION_REQUESTED = NOTIFICATION_TYPE_AGENT_QUE
10007
10315
  exports.NOTIFICATION_TYPE_AGENT_SESSION_WAITING_HUMAN = NOTIFICATION_TYPE_AGENT_SESSION_WAITING_HUMAN;
10008
10316
  exports.NOTIFICATION_TYPE_AGENT_TASK_ASSIGNED = NOTIFICATION_TYPE_AGENT_TASK_ASSIGNED;
10009
10317
  exports.NOTIFICATION_WORK_STATES = NOTIFICATION_WORK_STATES;
10318
+ exports.NO_RECORDING = NO_RECORDING;
10010
10319
  exports.NoopGeocodingAdapter = NoopGeocodingAdapter;
10011
10320
  exports.OBJECT_NAME_SCHEMA = OBJECT_NAME_SCHEMA;
10012
10321
  exports.OPEN_TOOL_PART_STATES = OPEN_TOOL_PART_STATES;
@@ -10014,13 +10323,17 @@ exports.OPERATION_REGISTRY = OPERATION_REGISTRY;
10014
10323
  exports.OPERATOR_SPECS = OPERATOR_SPECS;
10015
10324
  exports.ObjectBuilder = ObjectBuilder;
10016
10325
  exports.PRESENTATION_PROPERTIES = PRESENTATION_PROPERTIES;
10326
+ exports.PROVIDER_NAMES = PROVIDER_NAMES;
10017
10327
  exports.QUALIFIED_SEPARATOR = QUALIFIED_SEPARATOR;
10328
+ exports.RECORDING_OVERRIDES = RECORDING_OVERRIDES;
10329
+ exports.RECORDING_POLICIES = RECORDING_POLICIES;
10018
10330
  exports.RECORD_CREATOR_ROOT_ACTOR_METADATA_KEY = RECORD_CREATOR_ROOT_ACTOR_METADATA_KEY;
10019
10331
  exports.RELATION_TARGET_ANY = RELATION_TARGET_ANY;
10020
10332
  exports.RichtextTabConfig = RichtextTabConfig;
10021
10333
  exports.SCHEMA_PLAN_LIMITS = SCHEMA_PLAN_LIMITS;
10022
10334
  exports.SESSION_STATE_STREAM_ID = SESSION_STATE_STREAM_ID;
10023
10335
  exports.SESSION_TERMINAL_STATUSES = SESSION_TERMINAL_STATUSES;
10336
+ exports.SKILL_CONTENT_TEMPLATE = SKILL_CONTENT_TEMPLATE;
10024
10337
  exports.SKILL_LIST_VIEW = SKILL_LIST_VIEW;
10025
10338
  exports.SKILL_OBJECT = SKILL_OBJECT;
10026
10339
  exports.SKILL_VIEW = SKILL_VIEW;
@@ -10043,8 +10356,10 @@ exports.actionsToAccessLevel = actionsToAccessLevel;
10043
10356
  exports.agent = agent;
10044
10357
  exports.agentDataChunk = agentDataChunk;
10045
10358
  exports.agentDisplayName = agentDisplayName;
10359
+ exports.agentInferencePreferencesSchema = agentInferencePreferencesSchema;
10046
10360
  exports.agentMessageAttachmentSchema = agentMessageAttachmentSchema;
10047
10361
  exports.agentMessagePartSchema = agentMessagePartSchema;
10362
+ exports.agentSessionInferenceOverridesSchema = agentSessionInferenceOverridesSchema;
10048
10363
  exports.agentSessionMessageSchema = agentSessionMessageSchema;
10049
10364
  exports.agentUIValidationError = agentUIValidationError;
10050
10365
  exports.applyOperations = applyOperations;
@@ -10110,6 +10425,7 @@ exports.generateDefaultListView = generateDefaultListView;
10110
10425
  exports.getActiveTab = getActiveTab;
10111
10426
  exports.getEditableLabelAttribute = getEditableLabelAttribute;
10112
10427
  exports.getErrorMessage = getErrorMessage;
10428
+ exports.getListViewDisplayAttributeNames = getListViewDisplayAttributeNames;
10113
10429
  exports.getLiveProtocolPayloadChannel = getLiveProtocolPayloadChannel;
10114
10430
  exports.getRecordCreatorPrincipalId = getRecordCreatorPrincipalId;
10115
10431
  exports.getSingleAttributeFromExpression = getSingleAttributeFromExpression;
@@ -10121,6 +10437,8 @@ exports.hasOptions = hasOptions;
10121
10437
  exports.includesAction = includesAction;
10122
10438
  exports.inferInverseCardinality = inferInverseCardinality;
10123
10439
  exports.inferRollupReturnType = inferRollupReturnType;
10440
+ exports.inferenceReasoningSchema = inferenceReasoningSchema;
10441
+ exports.inferenceSpeedSchema = inferenceSpeedSchema;
10124
10442
  exports.isAgentUIDataName = isAgentUIDataName;
10125
10443
  exports.isAgentUIMessageBatch = isAgentUIMessageBatch;
10126
10444
  exports.isAttributeSortable = isAttributeSortable2;
@@ -10165,6 +10483,7 @@ exports.makeFieldId = makeFieldId;
10165
10483
  exports.matchesAccepts = matchesAccepts;
10166
10484
  exports.mentionReferenceSchema = mentionReferenceSchema;
10167
10485
  exports.modelDefinitionSchema = modelDefinitionSchema;
10486
+ exports.modelReferenceSchema = modelReferenceSchema;
10168
10487
  exports.multiselect = multiselect;
10169
10488
  exports.nativeAgentUIPartIdMetadataKey = nativeAgentUIPartIdMetadataKey;
10170
10489
  exports.normalizeDateValue = normalizeDateValue;
@@ -10187,6 +10506,7 @@ exports.plannedInlineAttributeSchema = plannedInlineAttributeSchema;
10187
10506
  exports.plannedObjectSchema = plannedObjectSchema;
10188
10507
  exports.presentationOf = presentationOf;
10189
10508
  exports.proposedDefaultViewTargetSchema = proposedDefaultViewTargetSchema;
10509
+ exports.providerNameSchema = providerNameSchema;
10190
10510
  exports.qualifiedPropertyDefs = qualifiedPropertyDefs;
10191
10511
  exports.readFormFieldValue = readFormFieldValue;
10192
10512
  exports.registry = registry;
@@ -10206,6 +10526,7 @@ exports.sessionStateToLegacyStatus = sessionStateToLegacyStatus;
10206
10526
  exports.status = status;
10207
10527
  exports.stringFlag = stringFlag;
10208
10528
  exports.text = text;
10529
+ exports.toAttribute = toAttribute;
10209
10530
  exports.toDraftableAttributes = toDraftableAttributes;
10210
10531
  exports.toDraftableObject = toDraftableObject;
10211
10532
  exports.toDraftableView = toDraftableView;