@stndrds/schema 1.0.0-alpha.224 → 1.0.0-alpha.226

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.
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  var chunkFRCDMQER_js = require('./chunk-FRCDMQER.js');
4
4
  require('./chunk-PGERPYDR.js');
5
5
  var chunkNSM2JPC3_js = require('./chunk-NSM2JPC3.js');
6
- var chunkXTPYL6OM_js = require('./chunk-XTPYL6OM.js');
6
+ var chunkMUGKKCY3_js = require('./chunk-MUGKKCY3.js');
7
7
  require('./chunk-5WATIVCA.js');
8
8
  require('./chunk-O44XVGHE.js');
9
9
  require('./chunk-YIP5FJ5H.js');
@@ -1096,6 +1096,8 @@ var SYSTEM_RESOURCES = {
1096
1096
  AUDIT: "audit",
1097
1097
  /** Programmatic access keys */
1098
1098
  API_KEYS: "api-keys",
1099
+ /** OAuth connector connections (mailboxes, etc.) */
1100
+ CONNECTORS: "connectors",
1099
1101
  /** Environment variables for agents */
1100
1102
  ENV_VARS: "env-vars",
1101
1103
  /** Agent session visibility — required for an agent actor to read its own sessions */
@@ -1112,6 +1114,7 @@ var ALL_SYSTEM_RESOURCES = [
1112
1114
  SYSTEM_RESOURCES.DOCUMENTS,
1113
1115
  SYSTEM_RESOURCES.AUDIT,
1114
1116
  SYSTEM_RESOURCES.API_KEYS,
1117
+ SYSTEM_RESOURCES.CONNECTORS,
1115
1118
  SYSTEM_RESOURCES.ENV_VARS,
1116
1119
  SYSTEM_RESOURCES.SESSION
1117
1120
  ];
@@ -1126,6 +1129,7 @@ var SYSTEM_RESOURCE_LABELS = {
1126
1129
  documents: "Documents",
1127
1130
  audit: "Audit",
1128
1131
  "api-keys": "API keys",
1132
+ connectors: "Connected accounts",
1129
1133
  "env-vars": "Environment variables",
1130
1134
  session: "Agent sessions"
1131
1135
  };
@@ -1148,6 +1152,7 @@ var DEFAULT_ROLE_DESCRIPTIONS = {
1148
1152
  agent_default: "Default role for AI agents \u2014 CRUD on records plus documents and files"
1149
1153
  };
1150
1154
  var ALL_ACTIONS2 = ["read", "create", "update", "delete", "manage"];
1155
+ var MEMBER_CONNECTOR_ACTIONS = ["read", "create", "delete"];
1151
1156
  var DEFAULT_ROLE_PERMISSIONS = {
1152
1157
  owner: {
1153
1158
  system: [{ target: "*", actions: ALL_ACTIONS2 }],
@@ -1156,7 +1161,8 @@ var DEFAULT_ROLE_PERMISSIONS = {
1156
1161
  member: {
1157
1162
  system: [
1158
1163
  { target: "people", actions: ["read"] },
1159
- { target: "workspace", actions: ["read"] }
1164
+ { target: "workspace", actions: ["read"] },
1165
+ { target: "connectors", actions: MEMBER_CONNECTOR_ACTIONS }
1160
1166
  ],
1161
1167
  object: [{ target: "*", actions: ALL_ACTIONS2 }]
1162
1168
  },
@@ -1294,7 +1300,7 @@ var BaseAttributeBuilder = class {
1294
1300
  * @see https://standardschema.dev/
1295
1301
  */
1296
1302
  get "~standard"() {
1297
- const zodSchema = chunkXTPYL6OM_js.createAttributeValidator(this.build());
1303
+ const zodSchema = chunkMUGKKCY3_js.createAttributeValidator(this.build());
1298
1304
  return createStandardSchemaProps(zodSchema);
1299
1305
  }
1300
1306
  constructor(type, name, label) {
@@ -2067,9 +2073,9 @@ var RollupAttributeBuilder = class extends BaseAttributeBuilder {
2067
2073
  if (fn === "original" && targetType !== void 0 && targetType !== "select" && targetType !== "status" && targetType !== "multiselect") {
2068
2074
  const relation2 = this.attr.relationAttribute ?? "relation";
2069
2075
  const target = this.attr.targetAttribute ?? "field";
2070
- throw new chunkXTPYL6OM_js.SchemaError(
2076
+ throw new chunkMUGKKCY3_js.SchemaError(
2071
2077
  `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}").`,
2072
- chunkXTPYL6OM_js.SchemaErrorCode.VALIDATION_FAILED
2078
+ chunkMUGKKCY3_js.SchemaErrorCode.VALIDATION_FAILED
2073
2079
  );
2074
2080
  }
2075
2081
  return super.build();
@@ -2565,7 +2571,7 @@ var ObjectBuilder = class {
2565
2571
  * @see https://standardschema.dev/
2566
2572
  */
2567
2573
  get "~standard"() {
2568
- const zodSchema = chunkXTPYL6OM_js.createObjectValidator(this.build());
2574
+ const zodSchema = chunkMUGKKCY3_js.createObjectValidator(this.build());
2569
2575
  return createStandardSchemaProps(zodSchema);
2570
2576
  }
2571
2577
  /**
@@ -2779,26 +2785,26 @@ var ObjectBuilder = class {
2779
2785
  throw new Error("[ObjectBuilder] Missing required field: label");
2780
2786
  }
2781
2787
  if (!this._labelExpression) {
2782
- throw new chunkXTPYL6OM_js.SchemaError(
2788
+ throw new chunkMUGKKCY3_js.SchemaError(
2783
2789
  `Object "${this.obj.name}" must have a labelExpression. The labelExpression defines how records are displayed in lists and relations (e.g. "{{ name }}").`,
2784
- chunkXTPYL6OM_js.SchemaErrorCode.VALIDATION_FAILED
2790
+ chunkMUGKKCY3_js.SchemaErrorCode.VALIDATION_FAILED
2785
2791
  );
2786
2792
  }
2787
2793
  const labelResult = labelExpressionSchema.safeParse(this._labelExpression);
2788
2794
  if (!labelResult.success) {
2789
2795
  const errorMsg = labelResult.error.issues[0]?.message ?? "Invalid labelExpression";
2790
- throw new chunkXTPYL6OM_js.SchemaError(
2796
+ throw new chunkMUGKKCY3_js.SchemaError(
2791
2797
  `Invalid labelExpression for "${this.obj.name}": ${errorMsg}`,
2792
- chunkXTPYL6OM_js.SchemaErrorCode.VALIDATION_FAILED
2798
+ chunkMUGKKCY3_js.SchemaErrorCode.VALIDATION_FAILED
2793
2799
  );
2794
2800
  }
2795
2801
  if (this._embeddingExpression !== void 0) {
2796
2802
  const embeddingResult = labelExpressionSchema.safeParse(this._embeddingExpression);
2797
2803
  if (!embeddingResult.success) {
2798
2804
  const errorMsg = embeddingResult.error.issues[0]?.message ?? "Invalid embeddingExpression";
2799
- throw new chunkXTPYL6OM_js.SchemaError(
2805
+ throw new chunkMUGKKCY3_js.SchemaError(
2800
2806
  `Invalid embeddingExpression for "${this.obj.name}": ${errorMsg}`,
2801
- chunkXTPYL6OM_js.SchemaErrorCode.VALIDATION_FAILED
2807
+ chunkMUGKKCY3_js.SchemaErrorCode.VALIDATION_FAILED
2802
2808
  );
2803
2809
  }
2804
2810
  }
@@ -2839,7 +2845,7 @@ var ObjectBuilder = class {
2839
2845
  objectNameSchema.parse(name);
2840
2846
  } catch (error) {
2841
2847
  if (error instanceof z3__default.default.ZodError) {
2842
- throw new chunkXTPYL6OM_js.SchemaError(error.issues[0].message, chunkXTPYL6OM_js.SchemaErrorCode.INVALID_OBJECT_NAME);
2848
+ throw new chunkMUGKKCY3_js.SchemaError(error.issues[0].message, chunkMUGKKCY3_js.SchemaErrorCode.INVALID_OBJECT_NAME);
2843
2849
  }
2844
2850
  throw error;
2845
2851
  }
@@ -3273,6 +3279,39 @@ var ActivityTabConfig = class {
3273
3279
  return this.view.build();
3274
3280
  }
3275
3281
  };
3282
+ var EmailsTabConfig = class {
3283
+ /** @internal */
3284
+ constructor(view, base) {
3285
+ this.view = view;
3286
+ this.tabData = { ...base, type: "emails", emailAttributeIds: [] };
3287
+ }
3288
+ /** Set the text attributes whose values are matched against email participants. */
3289
+ emailAttributes(...attributeIds) {
3290
+ this.tabData.emailAttributeIds = attributeIds;
3291
+ return this;
3292
+ }
3293
+ /**
3294
+ * Continue building with a new tab
3295
+ */
3296
+ tab(name, label) {
3297
+ this.view._addTab(this.tabData);
3298
+ return new TabBuilder(this.view, name, label);
3299
+ }
3300
+ /**
3301
+ * Finish this tab and return to DetailViewBuilder
3302
+ */
3303
+ done() {
3304
+ this.view._addTab(this.tabData);
3305
+ return this.view;
3306
+ }
3307
+ /**
3308
+ * Build the final view definition
3309
+ */
3310
+ build() {
3311
+ this.view._addTab(this.tabData);
3312
+ return this.view.build();
3313
+ }
3314
+ };
3276
3315
  var DocumentsTabConfig = class {
3277
3316
  /** @internal */
3278
3317
  constructor(view, base) {
@@ -3435,6 +3474,13 @@ var TabBuilder = class {
3435
3474
  documents() {
3436
3475
  return new DocumentsTabConfig(this.view, this.base);
3437
3476
  }
3477
+ /**
3478
+ * Create an emails tab (query-time association via email-bearing attributes)
3479
+ * @example .emails().emailAttributes("email", "backup_email")
3480
+ */
3481
+ emails() {
3482
+ return new EmailsTabConfig(this.view, this.base);
3483
+ }
3438
3484
  /**
3439
3485
  * Create a forms tab to launch and track form instances linked to this record
3440
3486
  * @example .tab("forms", "Forms").forms()
@@ -4556,9 +4602,9 @@ Available objects: ${this.listNames().join(", ")}`
4556
4602
  }
4557
4603
  };
4558
4604
  var registry = new NativeObjectRegistryClass();
4559
-
4560
- // src/native/skill.object.ts
4561
- 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" }).required()).attribute(text({ name: "description", label: "Description" }).multiline().required()).attribute(richtext({ name: "content", label: "Content" })).build();
4605
+ 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(
4606
+ text({ name: "description", label: "Description" }).multiline().maxLength(constants.SKILL_DESCRIPTION_MAX_LENGTH).required()
4607
+ ).attribute(richtext({ name: "content", label: "Content" })).build();
4562
4608
  var SKILL_VIEW = detailView("skill-detail", "Skill").for("skill").default().sidePanel({ attributes: ["name", "description"] }).tab("content", "Content").richtext("content").titleAttribute("name").done().build();
4563
4609
  var SKILL_LIST_VIEW = listView("skill-list", "Skills").for("skill").default().tab("all", "All").table().columns("name", "description").sort("name", "asc").build();
4564
4610
 
@@ -6792,7 +6838,7 @@ function assertOperatorForType(operator, type, context) {
6792
6838
  if (!ops?.includes(operator)) {
6793
6839
  const validList = ops?.length ? ops.join(", ") : "(no operators registered for this type)";
6794
6840
  const summary = `Operator "${operator}" is not valid for ${context} type "${type}". Valid operators: ${validList}.`;
6795
- throw new chunkXTPYL6OM_js.ValidationError(summary, [
6841
+ throw new chunkMUGKKCY3_js.ValidationError(summary, [
6796
6842
  {
6797
6843
  path: ["operator"],
6798
6844
  message: summary
@@ -6808,7 +6854,7 @@ function assertRelativeDateValue(rule) {
6808
6854
  const valid = typeof v === "object" && v !== null && typeof v.amount === "number" && Number.isFinite(v.amount) && v.amount > 0 && typeof v.unit === "string" && RELATIVE_DATE_UNITS.has(v.unit) && typeof v.direction === "string" && RELATIVE_DATE_DIRECTIONS.has(v.direction);
6809
6855
  if (!valid) {
6810
6856
  const m = `Operator "is_within" requires a relative-date value { amount: positive number, unit: days|weeks|months|years, direction: past|future }`;
6811
- throw new chunkXTPYL6OM_js.ValidationError(m, [{ path: ["value"], message: m }]);
6857
+ throw new chunkMUGKKCY3_js.ValidationError(m, [{ path: ["value"], message: m }]);
6812
6858
  }
6813
6859
  }
6814
6860
  function assertDynamicValueForAttribute(rule, attrType) {
@@ -6816,34 +6862,34 @@ function assertDynamicValueForAttribute(rule, attrType) {
6816
6862
  const v = rule.value;
6817
6863
  if (v.dynamic === "actor" && attrType !== "user") {
6818
6864
  const m = `actor token (@me) is only valid on user attributes, not "${attrType}"`;
6819
- throw new chunkXTPYL6OM_js.ValidationError(m, [{ path: ["value"], message: m }]);
6865
+ throw new chunkMUGKKCY3_js.ValidationError(m, [{ path: ["value"], message: m }]);
6820
6866
  }
6821
6867
  if (v.dynamic === "date" && attrType !== "date") {
6822
6868
  const m = `date token (@today/@now) is only valid on date attributes, not "${attrType}"`;
6823
- throw new chunkXTPYL6OM_js.ValidationError(m, [{ path: ["value"], message: m }]);
6869
+ throw new chunkMUGKKCY3_js.ValidationError(m, [{ path: ["value"], message: m }]);
6824
6870
  }
6825
6871
  }
6826
6872
  function validateQualifiedRule(rule, context) {
6827
6873
  const rootAttr = context.attributes.find((a) => a.name === rule.attribute);
6828
6874
  const systemOps = SYSTEM_FILTER_OPERATORS[rule.attribute];
6829
6875
  if (!(rootAttr || systemOps)) {
6830
- throw new chunkXTPYL6OM_js.ValidationError(`Unknown attribute: ${rule.attribute}`, [
6876
+ throw new chunkMUGKKCY3_js.ValidationError(`Unknown attribute: ${rule.attribute}`, [
6831
6877
  { path: ["attribute"], message: `Unknown attribute: ${rule.attribute}` }
6832
6878
  ]);
6833
6879
  }
6834
6880
  if (rule.quantifier !== void 0 && !rule.property) {
6835
6881
  const m = `quantifier is only valid on qualified edge rules (set "property")`;
6836
- throw new chunkXTPYL6OM_js.ValidationError(m, [{ path: ["quantifier"], message: m }]);
6882
+ throw new chunkMUGKKCY3_js.ValidationError(m, [{ path: ["quantifier"], message: m }]);
6837
6883
  }
6838
6884
  if (!rootAttr) {
6839
6885
  if (rule.property) {
6840
- throw new chunkXTPYL6OM_js.ValidationError(`Cannot qualify system attribute "${rule.attribute}"`, [
6886
+ throw new chunkMUGKKCY3_js.ValidationError(`Cannot qualify system attribute "${rule.attribute}"`, [
6841
6887
  { path: ["property"], message: `"${rule.attribute}" is a system column, not a reference` }
6842
6888
  ]);
6843
6889
  }
6844
6890
  if (!systemOps.includes(rule.operator)) {
6845
6891
  const summary = `Operator "${rule.operator}" is not valid for system attribute "${rule.attribute}". Valid operators: ${systemOps.join(", ")}.`;
6846
- throw new chunkXTPYL6OM_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
6892
+ throw new chunkMUGKKCY3_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
6847
6893
  }
6848
6894
  assertRelativeDateValue(rule);
6849
6895
  return;
@@ -6854,25 +6900,25 @@ function validateQualifiedRule(rule, context) {
6854
6900
  if (!ops.includes(rule.operator)) {
6855
6901
  const validList = ops.length ? ops.join(", ") : "(not filterable)";
6856
6902
  const summary = `Operator "${rule.operator}" is not valid for attribute "${rootAttr.name}". Valid operators: ${validList}.`;
6857
- throw new chunkXTPYL6OM_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
6903
+ throw new chunkMUGKKCY3_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
6858
6904
  }
6859
6905
  assertRelativeDateValue(rule);
6860
6906
  return;
6861
6907
  }
6862
6908
  if (!REFERENCE_TYPES.has(rootAttr.type)) {
6863
- throw new chunkXTPYL6OM_js.ValidationError(`Cannot qualify ${rootAttr.type} attribute "${rule.attribute}"`, [
6909
+ throw new chunkMUGKKCY3_js.ValidationError(`Cannot qualify ${rootAttr.type} attribute "${rule.attribute}"`, [
6864
6910
  { path: ["property"], message: `Attribute "${rule.attribute}" is not a reference type` }
6865
6911
  ]);
6866
6912
  }
6867
6913
  const propSchema = rootAttr.properties;
6868
6914
  if (!propSchema) {
6869
- throw new chunkXTPYL6OM_js.ValidationError(`Attribute "${rule.attribute}" has no qualifyWith schema`, [
6915
+ throw new chunkMUGKKCY3_js.ValidationError(`Attribute "${rule.attribute}" has no qualifyWith schema`, [
6870
6916
  { path: ["property"], message: `"${rule.attribute}" has no qualifyWith` }
6871
6917
  ]);
6872
6918
  }
6873
6919
  const propDef = propSchema.definitions.find((p) => p.name === rule.property);
6874
6920
  if (!propDef) {
6875
- throw new chunkXTPYL6OM_js.ValidationError(
6921
+ throw new chunkMUGKKCY3_js.ValidationError(
6876
6922
  `Property "${rule.property}" not defined on "${rule.attribute}".qualifyWith()`,
6877
6923
  [{ path: ["property"], message: `Unknown property: ${rule.property}` }]
6878
6924
  );
@@ -6915,179 +6961,179 @@ Object.defineProperty(exports, "parseComputedFormula", {
6915
6961
  });
6916
6962
  Object.defineProperty(exports, "AccessDeniedError", {
6917
6963
  enumerable: true,
6918
- get: function () { return chunkXTPYL6OM_js.AccessDeniedError; }
6964
+ get: function () { return chunkMUGKKCY3_js.AccessDeniedError; }
6919
6965
  });
6920
6966
  Object.defineProperty(exports, "AttributeInUseError", {
6921
6967
  enumerable: true,
6922
- get: function () { return chunkXTPYL6OM_js.AttributeInUseError; }
6968
+ get: function () { return chunkMUGKKCY3_js.AttributeInUseError; }
6923
6969
  });
6924
6970
  Object.defineProperty(exports, "AttributeNotFoundError", {
6925
6971
  enumerable: true,
6926
- get: function () { return chunkXTPYL6OM_js.AttributeNotFoundError; }
6972
+ get: function () { return chunkMUGKKCY3_js.AttributeNotFoundError; }
6927
6973
  });
6928
6974
  Object.defineProperty(exports, "ChangeTypeNotSupportedError", {
6929
6975
  enumerable: true,
6930
- get: function () { return chunkXTPYL6OM_js.ChangeTypeNotSupportedError; }
6976
+ get: function () { return chunkMUGKKCY3_js.ChangeTypeNotSupportedError; }
6931
6977
  });
6932
6978
  Object.defineProperty(exports, "ConcurrentModificationError", {
6933
6979
  enumerable: true,
6934
- get: function () { return chunkXTPYL6OM_js.ConcurrentModificationError; }
6980
+ get: function () { return chunkMUGKKCY3_js.ConcurrentModificationError; }
6935
6981
  });
6936
6982
  Object.defineProperty(exports, "DestructiveSyncNotAllowedError", {
6937
6983
  enumerable: true,
6938
- get: function () { return chunkXTPYL6OM_js.DestructiveSyncNotAllowedError; }
6984
+ get: function () { return chunkMUGKKCY3_js.DestructiveSyncNotAllowedError; }
6939
6985
  });
6940
6986
  Object.defineProperty(exports, "DuplicateError", {
6941
6987
  enumerable: true,
6942
- get: function () { return chunkXTPYL6OM_js.DuplicateError; }
6988
+ get: function () { return chunkMUGKKCY3_js.DuplicateError; }
6943
6989
  });
6944
6990
  Object.defineProperty(exports, "ForbiddenError", {
6945
6991
  enumerable: true,
6946
- get: function () { return chunkXTPYL6OM_js.ForbiddenError; }
6992
+ get: function () { return chunkMUGKKCY3_js.ForbiddenError; }
6947
6993
  });
6948
6994
  Object.defineProperty(exports, "MemoryNotFoundError", {
6949
6995
  enumerable: true,
6950
- get: function () { return chunkXTPYL6OM_js.MemoryNotFoundError; }
6996
+ get: function () { return chunkMUGKKCY3_js.MemoryNotFoundError; }
6951
6997
  });
6952
6998
  Object.defineProperty(exports, "MigrationTimeoutError", {
6953
6999
  enumerable: true,
6954
- get: function () { return chunkXTPYL6OM_js.MigrationTimeoutError; }
7000
+ get: function () { return chunkMUGKKCY3_js.MigrationTimeoutError; }
6955
7001
  });
6956
7002
  Object.defineProperty(exports, "NotFoundError", {
6957
7003
  enumerable: true,
6958
- get: function () { return chunkXTPYL6OM_js.NotFoundError; }
7004
+ get: function () { return chunkMUGKKCY3_js.NotFoundError; }
6959
7005
  });
6960
7006
  Object.defineProperty(exports, "NotImplementedError", {
6961
7007
  enumerable: true,
6962
- get: function () { return chunkXTPYL6OM_js.NotImplementedError; }
7008
+ get: function () { return chunkMUGKKCY3_js.NotImplementedError; }
6963
7009
  });
6964
7010
  Object.defineProperty(exports, "ObjectNotFoundError", {
6965
7011
  enumerable: true,
6966
- get: function () { return chunkXTPYL6OM_js.ObjectNotFoundError; }
7012
+ get: function () { return chunkMUGKKCY3_js.ObjectNotFoundError; }
6967
7013
  });
6968
7014
  Object.defineProperty(exports, "ObjectReferencedError", {
6969
7015
  enumerable: true,
6970
- get: function () { return chunkXTPYL6OM_js.ObjectReferencedError; }
7016
+ get: function () { return chunkMUGKKCY3_js.ObjectReferencedError; }
6971
7017
  });
6972
7018
  Object.defineProperty(exports, "OrphanSystemAttributeError", {
6973
7019
  enumerable: true,
6974
- get: function () { return chunkXTPYL6OM_js.OrphanSystemAttributeError; }
7020
+ get: function () { return chunkMUGKKCY3_js.OrphanSystemAttributeError; }
6975
7021
  });
6976
7022
  Object.defineProperty(exports, "ProtectedResourceError", {
6977
7023
  enumerable: true,
6978
- get: function () { return chunkXTPYL6OM_js.ProtectedResourceError; }
7024
+ get: function () { return chunkMUGKKCY3_js.ProtectedResourceError; }
6979
7025
  });
6980
7026
  Object.defineProperty(exports, "ProtectedRoleError", {
6981
7027
  enumerable: true,
6982
- get: function () { return chunkXTPYL6OM_js.ProtectedRoleError; }
7028
+ get: function () { return chunkMUGKKCY3_js.ProtectedRoleError; }
6983
7029
  });
6984
7030
  Object.defineProperty(exports, "RecordNotFoundError", {
6985
7031
  enumerable: true,
6986
- get: function () { return chunkXTPYL6OM_js.RecordNotFoundError; }
7032
+ get: function () { return chunkMUGKKCY3_js.RecordNotFoundError; }
6987
7033
  });
6988
7034
  Object.defineProperty(exports, "RecordReferencedError", {
6989
7035
  enumerable: true,
6990
- get: function () { return chunkXTPYL6OM_js.RecordReferencedError; }
7036
+ get: function () { return chunkMUGKKCY3_js.RecordReferencedError; }
6991
7037
  });
6992
7038
  Object.defineProperty(exports, "RepositoryError", {
6993
7039
  enumerable: true,
6994
- get: function () { return chunkXTPYL6OM_js.RepositoryError; }
7040
+ get: function () { return chunkMUGKKCY3_js.RepositoryError; }
6995
7041
  });
6996
7042
  Object.defineProperty(exports, "RoleNotFoundError", {
6997
7043
  enumerable: true,
6998
- get: function () { return chunkXTPYL6OM_js.RoleNotFoundError; }
7044
+ get: function () { return chunkMUGKKCY3_js.RoleNotFoundError; }
6999
7045
  });
7000
7046
  Object.defineProperty(exports, "SchemaError", {
7001
7047
  enumerable: true,
7002
- get: function () { return chunkXTPYL6OM_js.SchemaError; }
7048
+ get: function () { return chunkMUGKKCY3_js.SchemaError; }
7003
7049
  });
7004
7050
  Object.defineProperty(exports, "SchemaErrorCode", {
7005
7051
  enumerable: true,
7006
- get: function () { return chunkXTPYL6OM_js.SchemaErrorCode; }
7052
+ get: function () { return chunkMUGKKCY3_js.SchemaErrorCode; }
7007
7053
  });
7008
7054
  Object.defineProperty(exports, "SearchBackendError", {
7009
7055
  enumerable: true,
7010
- get: function () { return chunkXTPYL6OM_js.SearchBackendError; }
7056
+ get: function () { return chunkMUGKKCY3_js.SearchBackendError; }
7011
7057
  });
7012
7058
  Object.defineProperty(exports, "StorageError", {
7013
7059
  enumerable: true,
7014
- get: function () { return chunkXTPYL6OM_js.StorageError; }
7060
+ get: function () { return chunkMUGKKCY3_js.StorageError; }
7015
7061
  });
7016
7062
  Object.defineProperty(exports, "SyncCascadeError", {
7017
7063
  enumerable: true,
7018
- get: function () { return chunkXTPYL6OM_js.SyncCascadeError; }
7064
+ get: function () { return chunkMUGKKCY3_js.SyncCascadeError; }
7019
7065
  });
7020
7066
  Object.defineProperty(exports, "SyncConflictError", {
7021
7067
  enumerable: true,
7022
- get: function () { return chunkXTPYL6OM_js.SyncConflictError; }
7068
+ get: function () { return chunkMUGKKCY3_js.SyncConflictError; }
7023
7069
  });
7024
7070
  Object.defineProperty(exports, "SyncError", {
7025
7071
  enumerable: true,
7026
- get: function () { return chunkXTPYL6OM_js.SyncError; }
7072
+ get: function () { return chunkMUGKKCY3_js.SyncError; }
7027
7073
  });
7028
7074
  Object.defineProperty(exports, "SystemEntityImmutableError", {
7029
7075
  enumerable: true,
7030
- get: function () { return chunkXTPYL6OM_js.SystemEntityImmutableError; }
7076
+ get: function () { return chunkMUGKKCY3_js.SystemEntityImmutableError; }
7031
7077
  });
7032
7078
  Object.defineProperty(exports, "ValidationError", {
7033
7079
  enumerable: true,
7034
- get: function () { return chunkXTPYL6OM_js.ValidationError; }
7080
+ get: function () { return chunkMUGKKCY3_js.ValidationError; }
7035
7081
  });
7036
7082
  Object.defineProperty(exports, "computeRecordStatus", {
7037
7083
  enumerable: true,
7038
- get: function () { return chunkXTPYL6OM_js.computeRecordStatus; }
7084
+ get: function () { return chunkMUGKKCY3_js.computeRecordStatus; }
7039
7085
  });
7040
7086
  Object.defineProperty(exports, "createFormAttributeValidator", {
7041
7087
  enumerable: true,
7042
- get: function () { return chunkXTPYL6OM_js.createFormAttributeValidator; }
7088
+ get: function () { return chunkMUGKKCY3_js.createFormAttributeValidator; }
7043
7089
  });
7044
7090
  Object.defineProperty(exports, "isAttributeInUseError", {
7045
7091
  enumerable: true,
7046
- get: function () { return chunkXTPYL6OM_js.isAttributeInUseError; }
7092
+ get: function () { return chunkMUGKKCY3_js.isAttributeInUseError; }
7047
7093
  });
7048
7094
  Object.defineProperty(exports, "isNotFoundError", {
7049
7095
  enumerable: true,
7050
- get: function () { return chunkXTPYL6OM_js.isNotFoundError; }
7096
+ get: function () { return chunkMUGKKCY3_js.isNotFoundError; }
7051
7097
  });
7052
7098
  Object.defineProperty(exports, "isObjectReferencedError", {
7053
7099
  enumerable: true,
7054
- get: function () { return chunkXTPYL6OM_js.isObjectReferencedError; }
7100
+ get: function () { return chunkMUGKKCY3_js.isObjectReferencedError; }
7055
7101
  });
7056
7102
  Object.defineProperty(exports, "isProtectedResourceError", {
7057
7103
  enumerable: true,
7058
- get: function () { return chunkXTPYL6OM_js.isProtectedResourceError; }
7104
+ get: function () { return chunkMUGKKCY3_js.isProtectedResourceError; }
7059
7105
  });
7060
7106
  Object.defineProperty(exports, "isRecordReferencedError", {
7061
7107
  enumerable: true,
7062
- get: function () { return chunkXTPYL6OM_js.isRecordReferencedError; }
7108
+ get: function () { return chunkMUGKKCY3_js.isRecordReferencedError; }
7063
7109
  });
7064
7110
  Object.defineProperty(exports, "isSchemaError", {
7065
7111
  enumerable: true,
7066
- get: function () { return chunkXTPYL6OM_js.isSchemaError; }
7112
+ get: function () { return chunkMUGKKCY3_js.isSchemaError; }
7067
7113
  });
7068
7114
  Object.defineProperty(exports, "isValidationError", {
7069
7115
  enumerable: true,
7070
- get: function () { return chunkXTPYL6OM_js.isValidationError; }
7116
+ get: function () { return chunkMUGKKCY3_js.isValidationError; }
7071
7117
  });
7072
7118
  Object.defineProperty(exports, "rejectUnknownAttributesOrThrow", {
7073
7119
  enumerable: true,
7074
- get: function () { return chunkXTPYL6OM_js.rejectUnknownAttributesOrThrow; }
7120
+ get: function () { return chunkMUGKKCY3_js.rejectUnknownAttributesOrThrow; }
7075
7121
  });
7076
7122
  Object.defineProperty(exports, "validateDraft", {
7077
7123
  enumerable: true,
7078
- get: function () { return chunkXTPYL6OM_js.validateDraft; }
7124
+ get: function () { return chunkMUGKKCY3_js.validateDraft; }
7079
7125
  });
7080
7126
  Object.defineProperty(exports, "validateDraftOrThrow", {
7081
7127
  enumerable: true,
7082
- get: function () { return chunkXTPYL6OM_js.validateDraftOrThrow; }
7128
+ get: function () { return chunkMUGKKCY3_js.validateDraftOrThrow; }
7083
7129
  });
7084
7130
  Object.defineProperty(exports, "validateObject", {
7085
7131
  enumerable: true,
7086
- get: function () { return chunkXTPYL6OM_js.validateObject; }
7132
+ get: function () { return chunkMUGKKCY3_js.validateObject; }
7087
7133
  });
7088
7134
  Object.defineProperty(exports, "validateObjectOrThrow", {
7089
7135
  enumerable: true,
7090
- get: function () { return chunkXTPYL6OM_js.validateObjectOrThrow; }
7136
+ get: function () { return chunkMUGKKCY3_js.validateObjectOrThrow; }
7091
7137
  });
7092
7138
  Object.defineProperty(exports, "DEFAULT_VALIDATION_MESSAGES", {
7093
7139
  enumerable: true,
@@ -7120,6 +7166,7 @@ exports.DetailViewBuilder = DetailViewBuilder;
7120
7166
  exports.DocumentSlotValidationError = DocumentSlotValidationError;
7121
7167
  exports.DocumentsTabConfig = DocumentsTabConfig;
7122
7168
  exports.EMPTY_VALUE_PLACEHOLDER = EMPTY_VALUE_PLACEHOLDER;
7169
+ exports.EmailsTabConfig = EmailsTabConfig;
7123
7170
  exports.FORM_FORBIDDEN_ATTRIBUTE_TYPES = FORM_FORBIDDEN_ATTRIBUTE_TYPES;
7124
7171
  exports.FlagRegistry = FlagRegistry;
7125
7172
  exports.FlagService = FlagService;
package/dist/index.mjs CHANGED
@@ -3,8 +3,8 @@ export { asTenantId, asUserId, deepEqual, generateId, indexBy } from './chunk-QY
3
3
  import './chunk-SP3PNHYF.mjs';
4
4
  import { parseComputedFormula } from './chunk-AAXJJNY6.mjs';
5
5
  export { ComputedFormulaParseError, parseAttributeConfig, parseComputedFormula } from './chunk-AAXJJNY6.mjs';
6
- import { createObjectValidator, SchemaError, SchemaErrorCode, createAttributeValidator, ValidationError } from './chunk-5WYDO3ZB.mjs';
7
- export { AccessDeniedError, AttributeInUseError, AttributeNotFoundError, ChangeTypeNotSupportedError, ConcurrentModificationError, DestructiveSyncNotAllowedError, DuplicateError, ForbiddenError, MemoryNotFoundError, MigrationTimeoutError, NotFoundError, NotImplementedError, ObjectNotFoundError, ObjectReferencedError, OrphanSystemAttributeError, ProtectedResourceError, ProtectedRoleError, RecordNotFoundError, RecordReferencedError, RepositoryError, RoleNotFoundError, SchemaError, SchemaErrorCode, SearchBackendError, StorageError, SyncCascadeError, SyncConflictError, SyncError, SystemEntityImmutableError, ValidationError, computeRecordStatus, createFormAttributeValidator, isAttributeInUseError, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isValidationError, rejectUnknownAttributesOrThrow, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow } from './chunk-5WYDO3ZB.mjs';
6
+ import { createObjectValidator, SchemaError, SchemaErrorCode, createAttributeValidator, ValidationError } from './chunk-6CTUPVHH.mjs';
7
+ export { AccessDeniedError, AttributeInUseError, AttributeNotFoundError, ChangeTypeNotSupportedError, ConcurrentModificationError, DestructiveSyncNotAllowedError, DuplicateError, ForbiddenError, MemoryNotFoundError, MigrationTimeoutError, NotFoundError, NotImplementedError, ObjectNotFoundError, ObjectReferencedError, OrphanSystemAttributeError, ProtectedResourceError, ProtectedRoleError, RecordNotFoundError, RecordReferencedError, RepositoryError, RoleNotFoundError, SchemaError, SchemaErrorCode, SearchBackendError, StorageError, SyncCascadeError, SyncConflictError, SyncError, SystemEntityImmutableError, ValidationError, computeRecordStatus, createFormAttributeValidator, isAttributeInUseError, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isValidationError, rejectUnknownAttributesOrThrow, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow } from './chunk-6CTUPVHH.mjs';
8
8
  import './chunk-OSSGN43B.mjs';
9
9
  import './chunk-6I2R22CX.mjs';
10
10
  import './chunk-UANQJ2GH.mjs';
@@ -20,7 +20,7 @@ import './chunk-YUFTHPOE.mjs';
20
20
  import { formatPhoneForDisplay } from './chunk-JUKLL5RJ.mjs';
21
21
  import './chunk-GO6LQADH.mjs';
22
22
  export { DEFAULT_VALIDATION_MESSAGES, formatZodErrors } from './chunk-HRQEZUAA.mjs';
23
- import { ICONS, getCountryDisplayNameByIso3 } from '@stndrds/constants';
23
+ import { ICONS, SKILL_NAME_MAX_LENGTH, SKILL_DESCRIPTION_MAX_LENGTH, getCountryDisplayNameByIso3 } from '@stndrds/constants';
24
24
  import z3, { z } from 'zod';
25
25
 
26
26
  // src/types/notifications.ts
@@ -1093,6 +1093,8 @@ var SYSTEM_RESOURCES = {
1093
1093
  AUDIT: "audit",
1094
1094
  /** Programmatic access keys */
1095
1095
  API_KEYS: "api-keys",
1096
+ /** OAuth connector connections (mailboxes, etc.) */
1097
+ CONNECTORS: "connectors",
1096
1098
  /** Environment variables for agents */
1097
1099
  ENV_VARS: "env-vars",
1098
1100
  /** Agent session visibility — required for an agent actor to read its own sessions */
@@ -1109,6 +1111,7 @@ var ALL_SYSTEM_RESOURCES = [
1109
1111
  SYSTEM_RESOURCES.DOCUMENTS,
1110
1112
  SYSTEM_RESOURCES.AUDIT,
1111
1113
  SYSTEM_RESOURCES.API_KEYS,
1114
+ SYSTEM_RESOURCES.CONNECTORS,
1112
1115
  SYSTEM_RESOURCES.ENV_VARS,
1113
1116
  SYSTEM_RESOURCES.SESSION
1114
1117
  ];
@@ -1123,6 +1126,7 @@ var SYSTEM_RESOURCE_LABELS = {
1123
1126
  documents: "Documents",
1124
1127
  audit: "Audit",
1125
1128
  "api-keys": "API keys",
1129
+ connectors: "Connected accounts",
1126
1130
  "env-vars": "Environment variables",
1127
1131
  session: "Agent sessions"
1128
1132
  };
@@ -1145,6 +1149,7 @@ var DEFAULT_ROLE_DESCRIPTIONS = {
1145
1149
  agent_default: "Default role for AI agents \u2014 CRUD on records plus documents and files"
1146
1150
  };
1147
1151
  var ALL_ACTIONS2 = ["read", "create", "update", "delete", "manage"];
1152
+ var MEMBER_CONNECTOR_ACTIONS = ["read", "create", "delete"];
1148
1153
  var DEFAULT_ROLE_PERMISSIONS = {
1149
1154
  owner: {
1150
1155
  system: [{ target: "*", actions: ALL_ACTIONS2 }],
@@ -1153,7 +1158,8 @@ var DEFAULT_ROLE_PERMISSIONS = {
1153
1158
  member: {
1154
1159
  system: [
1155
1160
  { target: "people", actions: ["read"] },
1156
- { target: "workspace", actions: ["read"] }
1161
+ { target: "workspace", actions: ["read"] },
1162
+ { target: "connectors", actions: MEMBER_CONNECTOR_ACTIONS }
1157
1163
  ],
1158
1164
  object: [{ target: "*", actions: ALL_ACTIONS2 }]
1159
1165
  },
@@ -3270,6 +3276,39 @@ var ActivityTabConfig = class {
3270
3276
  return this.view.build();
3271
3277
  }
3272
3278
  };
3279
+ var EmailsTabConfig = class {
3280
+ /** @internal */
3281
+ constructor(view, base) {
3282
+ this.view = view;
3283
+ this.tabData = { ...base, type: "emails", emailAttributeIds: [] };
3284
+ }
3285
+ /** Set the text attributes whose values are matched against email participants. */
3286
+ emailAttributes(...attributeIds) {
3287
+ this.tabData.emailAttributeIds = attributeIds;
3288
+ return this;
3289
+ }
3290
+ /**
3291
+ * Continue building with a new tab
3292
+ */
3293
+ tab(name, label) {
3294
+ this.view._addTab(this.tabData);
3295
+ return new TabBuilder(this.view, name, label);
3296
+ }
3297
+ /**
3298
+ * Finish this tab and return to DetailViewBuilder
3299
+ */
3300
+ done() {
3301
+ this.view._addTab(this.tabData);
3302
+ return this.view;
3303
+ }
3304
+ /**
3305
+ * Build the final view definition
3306
+ */
3307
+ build() {
3308
+ this.view._addTab(this.tabData);
3309
+ return this.view.build();
3310
+ }
3311
+ };
3273
3312
  var DocumentsTabConfig = class {
3274
3313
  /** @internal */
3275
3314
  constructor(view, base) {
@@ -3432,6 +3471,13 @@ var TabBuilder = class {
3432
3471
  documents() {
3433
3472
  return new DocumentsTabConfig(this.view, this.base);
3434
3473
  }
3474
+ /**
3475
+ * Create an emails tab (query-time association via email-bearing attributes)
3476
+ * @example .emails().emailAttributes("email", "backup_email")
3477
+ */
3478
+ emails() {
3479
+ return new EmailsTabConfig(this.view, this.base);
3480
+ }
3435
3481
  /**
3436
3482
  * Create a forms tab to launch and track form instances linked to this record
3437
3483
  * @example .tab("forms", "Forms").forms()
@@ -4553,9 +4599,9 @@ Available objects: ${this.listNames().join(", ")}`
4553
4599
  }
4554
4600
  };
4555
4601
  var registry = new NativeObjectRegistryClass();
4556
-
4557
- // src/native/skill.object.ts
4558
- 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" }).required()).attribute(text({ name: "description", label: "Description" }).multiline().required()).attribute(richtext({ name: "content", label: "Content" })).build();
4602
+ 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(SKILL_NAME_MAX_LENGTH).required()).attribute(
4603
+ text({ name: "description", label: "Description" }).multiline().maxLength(SKILL_DESCRIPTION_MAX_LENGTH).required()
4604
+ ).attribute(richtext({ name: "content", label: "Content" })).build();
4559
4605
  var SKILL_VIEW = detailView("skill-detail", "Skill").for("skill").default().sidePanel({ attributes: ["name", "description"] }).tab("content", "Content").richtext("content").titleAttribute("name").done().build();
4560
4606
  var SKILL_LIST_VIEW = listView("skill-list", "Skills").for("skill").default().tab("all", "All").table().columns("name", "description").sort("name", "asc").build();
4561
4607
 
@@ -6878,4 +6924,4 @@ function validateQualifiedRule(rule, context) {
6878
6924
  assertRelativeDateValue(rule);
6879
6925
  }
6880
6926
 
6881
- export { ALLOWED_PROPERTY_TYPES, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, ATTRIBUTE_FILTER_OPERATORS, AUTOFILL_ELIGIBLE_TYPES, ActivityTabConfig, BEHAVIOR_PROPERTIES, COMPUTED_FUNCTIONS, COMPUTED_FUNCTION_METADATA, COMPUTED_FUNCTION_NAMES, ComputedFormulaCompileError, CustomTabConfig, DB_COLUMN_FIELDS, DEFAULT_DOCUMENT_SLOT, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DOCUMENT_SYSTEM_ATTRIBUTES, DetailViewBuilder, DocumentSlotValidationError, DocumentsTabConfig, EMPTY_VALUE_PLACEHOLDER, FORM_FORBIDDEN_ATTRIBUTE_TYPES, FlagRegistry, FlagService, FormBuilder, FormRegistry, FormRowBuilder, FormStepBuilder, GroupBuilder, IDENTITY_PROPERTIES, LIVE_EVENT_TYPES, LIVE_STREAM_START_CURSOR, ListViewBuilder, ListViewTabConfigBuilder, MAX_PRESET_DEPTH, NOTIFICATION_INBOX_STATES, NOTIFICATION_KINDS, NOTIFICATION_PRIORITIES, NOTIFICATION_SENSITIVITIES, NOTIFICATION_TYPES_V1, NOTIFICATION_TYPE_AGENT_QUESTION_REQUESTED, NOTIFICATION_TYPE_AGENT_SESSION_COMPLETED, NOTIFICATION_TYPE_AGENT_SESSION_FAILED, NOTIFICATION_TYPE_AGENT_SESSION_TIMEOUT, NOTIFICATION_TYPE_AGENT_SESSION_WAITING_HUMAN, NOTIFICATION_TYPE_AGENT_TASK_ASSIGNED, NOTIFICATION_WORK_STATES, NO_VALUE_OPERATORS, NoopGeocodingAdapter, OPERATORS_BY_TYPE, OPERATOR_SPECS, ObjectBuilder, PRESENTATION_PROPERTIES, QUALIFIED_SEPARATOR, RELATION_TARGET_ANY, RESERVED_ATTRIBUTE_NAMES, RESERVED_OBJECT_NAMES, RelationGroupBuilder, RichtextTabConfig, SKILL_LIST_VIEW, SKILL_OBJECT, SKILL_VIEW, STANDARD_SCHEMA_VENDOR, SYSTEM_ATTRIBUTES, SYSTEM_ATTRIBUTE_I18N_KEYS, SYSTEM_FIELD_NAMES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, TabBuilder, TableTabConfig, USER_STATUSES, accessLevelToActions, actionsToAccessLevel, applyPipes, assertAcyclicComputedDependencies, assertLiveStreamCursor, booleanFlag, buildPropertySchema, buildQualifiedAttribute, checkbox, compareLiveStreamCursors, compileComputedFormula, compileRollupAttribute, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, currentActor, date, detailView, document, evaluateComputedAst, evaluateComputedFormula, evaluateComputedFormulaWithResult, evaluateFilterState, extractAttributeNames, file, flagRegistry, form, formRegistry, formatAttributeValue, formatComputedResult, formatLocationValue, formula, generateDefaultDetailView, generateDefaultListView, getActiveTab, getAttributeCapabilities, getAttributeFilterOperators, getErrorMessage, getLiveProtocolPayloadChannel, getOperatorPolarity, getRollupFilterOperators2 as getRollupFilterOperators, getSystemAttributeI18nKey, getSystemAttributeList, group, hasOptions, inferInverseCardinality, inferRollupReturnType, isAttributeFilterable, isAttributeGroupable, isAttributeKanbanGroupable, isAttributeSearchable, isAttributeSortable2 as isAttributeSortable, isBilateralRelation, isComputedFunctionName, isDefaultRole, isDetailView, isDocumentAttribute, isDynamicValue, isEmptyObject, isFieldGroup, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isListView, isLiveErrorPayload, isLiveEventEnvelope, isLiveEventPayload, isLiveEventPayloadForType, isLiveEventType, isLiveGapPayload, isLiveReplayCompletePayload, isLiveStreamCursor, isNoValueOperator, isNotEmpty, isPlainRecord, isRelationGroup, isStandardSchema, isUniversalRelation, jsonFlag, listView, liveChannelKey, location, matchesMime, multiselect, normaliseDocumentSlots, normalizeForEdgeRpc, now, number, numberFlag, object, parseLiveChannelKey, parseLiveSubscribePayload, parseLiveUnsubscribePayload, parseQualifiedAttribute, phone, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, resolvePropertyDefinitions, richtext, rollup, rollupToFormulaExpression, select, status, stringFlag, text, toUndefinedIfEmpty, today, user, validateAttributeName, validateQualifiedRule, validateSlotAgainstConfig, viewRegistry };
6927
+ export { ALLOWED_PROPERTY_TYPES, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, ATTRIBUTE_FILTER_OPERATORS, AUTOFILL_ELIGIBLE_TYPES, ActivityTabConfig, BEHAVIOR_PROPERTIES, COMPUTED_FUNCTIONS, COMPUTED_FUNCTION_METADATA, COMPUTED_FUNCTION_NAMES, ComputedFormulaCompileError, CustomTabConfig, DB_COLUMN_FIELDS, DEFAULT_DOCUMENT_SLOT, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DOCUMENT_SYSTEM_ATTRIBUTES, DetailViewBuilder, DocumentSlotValidationError, DocumentsTabConfig, EMPTY_VALUE_PLACEHOLDER, EmailsTabConfig, FORM_FORBIDDEN_ATTRIBUTE_TYPES, FlagRegistry, FlagService, FormBuilder, FormRegistry, FormRowBuilder, FormStepBuilder, GroupBuilder, IDENTITY_PROPERTIES, LIVE_EVENT_TYPES, LIVE_STREAM_START_CURSOR, ListViewBuilder, ListViewTabConfigBuilder, MAX_PRESET_DEPTH, NOTIFICATION_INBOX_STATES, NOTIFICATION_KINDS, NOTIFICATION_PRIORITIES, NOTIFICATION_SENSITIVITIES, NOTIFICATION_TYPES_V1, NOTIFICATION_TYPE_AGENT_QUESTION_REQUESTED, NOTIFICATION_TYPE_AGENT_SESSION_COMPLETED, NOTIFICATION_TYPE_AGENT_SESSION_FAILED, NOTIFICATION_TYPE_AGENT_SESSION_TIMEOUT, NOTIFICATION_TYPE_AGENT_SESSION_WAITING_HUMAN, NOTIFICATION_TYPE_AGENT_TASK_ASSIGNED, NOTIFICATION_WORK_STATES, NO_VALUE_OPERATORS, NoopGeocodingAdapter, OPERATORS_BY_TYPE, OPERATOR_SPECS, ObjectBuilder, PRESENTATION_PROPERTIES, QUALIFIED_SEPARATOR, RELATION_TARGET_ANY, RESERVED_ATTRIBUTE_NAMES, RESERVED_OBJECT_NAMES, RelationGroupBuilder, RichtextTabConfig, SKILL_LIST_VIEW, SKILL_OBJECT, SKILL_VIEW, STANDARD_SCHEMA_VENDOR, SYSTEM_ATTRIBUTES, SYSTEM_ATTRIBUTE_I18N_KEYS, SYSTEM_FIELD_NAMES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, TabBuilder, TableTabConfig, USER_STATUSES, accessLevelToActions, actionsToAccessLevel, applyPipes, assertAcyclicComputedDependencies, assertLiveStreamCursor, booleanFlag, buildPropertySchema, buildQualifiedAttribute, checkbox, compareLiveStreamCursors, compileComputedFormula, compileRollupAttribute, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, currentActor, date, detailView, document, evaluateComputedAst, evaluateComputedFormula, evaluateComputedFormulaWithResult, evaluateFilterState, extractAttributeNames, file, flagRegistry, form, formRegistry, formatAttributeValue, formatComputedResult, formatLocationValue, formula, generateDefaultDetailView, generateDefaultListView, getActiveTab, getAttributeCapabilities, getAttributeFilterOperators, getErrorMessage, getLiveProtocolPayloadChannel, getOperatorPolarity, getRollupFilterOperators2 as getRollupFilterOperators, getSystemAttributeI18nKey, getSystemAttributeList, group, hasOptions, inferInverseCardinality, inferRollupReturnType, isAttributeFilterable, isAttributeGroupable, isAttributeKanbanGroupable, isAttributeSearchable, isAttributeSortable2 as isAttributeSortable, isBilateralRelation, isComputedFunctionName, isDefaultRole, isDetailView, isDocumentAttribute, isDynamicValue, isEmptyObject, isFieldGroup, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isListView, isLiveErrorPayload, isLiveEventEnvelope, isLiveEventPayload, isLiveEventPayloadForType, isLiveEventType, isLiveGapPayload, isLiveReplayCompletePayload, isLiveStreamCursor, isNoValueOperator, isNotEmpty, isPlainRecord, isRelationGroup, isStandardSchema, isUniversalRelation, jsonFlag, listView, liveChannelKey, location, matchesMime, multiselect, normaliseDocumentSlots, normalizeForEdgeRpc, now, number, numberFlag, object, parseLiveChannelKey, parseLiveSubscribePayload, parseLiveUnsubscribePayload, parseQualifiedAttribute, phone, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, resolvePropertyDefinitions, richtext, rollup, rollupToFormulaExpression, select, status, stringFlag, text, toUndefinedIfEmpty, today, user, validateAttributeName, validateQualifiedRule, validateSlotAgainstConfig, viewRegistry };