@epilot/sdk 2.3.10 → 2.4.1

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 (127) hide show
  1. package/definitions/entity-runtime.json +1 -1
  2. package/definitions/entity.json +391 -4
  3. package/dist/apis/access-token.cjs +6 -6
  4. package/dist/apis/access-token.js +1 -1
  5. package/dist/apis/address-suggestions.cjs +6 -6
  6. package/dist/apis/address-suggestions.js +1 -1
  7. package/dist/apis/address.cjs +6 -6
  8. package/dist/apis/address.js +1 -1
  9. package/dist/apis/ai-agents.cjs +6 -6
  10. package/dist/apis/ai-agents.js +1 -1
  11. package/dist/apis/app.cjs +6 -6
  12. package/dist/apis/app.js +1 -1
  13. package/dist/apis/audit-logs.cjs +6 -6
  14. package/dist/apis/audit-logs.js +1 -1
  15. package/dist/apis/automation.cjs +6 -6
  16. package/dist/apis/automation.js +1 -1
  17. package/dist/apis/billing.cjs +6 -6
  18. package/dist/apis/billing.js +1 -1
  19. package/dist/apis/blueprint-manifest.cjs +6 -6
  20. package/dist/apis/blueprint-manifest.js +1 -1
  21. package/dist/apis/configuration-hub.cjs +6 -6
  22. package/dist/apis/configuration-hub.js +1 -1
  23. package/dist/apis/consent.cjs +6 -6
  24. package/dist/apis/consent.js +1 -1
  25. package/dist/apis/customer-portal.cjs +6 -6
  26. package/dist/apis/customer-portal.js +1 -1
  27. package/dist/apis/dashboard.cjs +6 -6
  28. package/dist/apis/dashboard.js +1 -1
  29. package/dist/apis/data-governance.cjs +6 -6
  30. package/dist/apis/data-governance.js +1 -1
  31. package/dist/apis/deduplication.cjs +6 -6
  32. package/dist/apis/deduplication.js +1 -1
  33. package/dist/apis/design.cjs +6 -6
  34. package/dist/apis/design.js +1 -1
  35. package/dist/apis/document.cjs +6 -6
  36. package/dist/apis/document.js +1 -1
  37. package/dist/apis/email-settings.cjs +6 -6
  38. package/dist/apis/email-settings.js +1 -1
  39. package/dist/apis/email-template.cjs +6 -6
  40. package/dist/apis/email-template.js +1 -1
  41. package/dist/apis/entity-mapping.cjs +6 -6
  42. package/dist/apis/entity-mapping.js +1 -1
  43. package/dist/apis/entity.cjs +8 -8
  44. package/dist/apis/entity.d.cts +2 -2
  45. package/dist/apis/entity.d.ts +2 -2
  46. package/dist/apis/entity.js +2 -2
  47. package/dist/apis/environments.cjs +6 -6
  48. package/dist/apis/environments.js +1 -1
  49. package/dist/apis/event-catalog.cjs +6 -6
  50. package/dist/apis/event-catalog.js +1 -1
  51. package/dist/apis/file.cjs +6 -6
  52. package/dist/apis/file.js +1 -1
  53. package/dist/apis/iban.cjs +6 -6
  54. package/dist/apis/iban.js +1 -1
  55. package/dist/apis/integration-toolkit.cjs +6 -6
  56. package/dist/apis/integration-toolkit.js +1 -1
  57. package/dist/apis/journey.cjs +6 -6
  58. package/dist/apis/journey.js +1 -1
  59. package/dist/apis/kanban.cjs +6 -6
  60. package/dist/apis/kanban.js +1 -1
  61. package/dist/apis/message.cjs +6 -6
  62. package/dist/apis/message.js +1 -1
  63. package/dist/apis/metering.cjs +6 -6
  64. package/dist/apis/metering.js +1 -1
  65. package/dist/apis/notes.cjs +6 -6
  66. package/dist/apis/notes.js +1 -1
  67. package/dist/apis/notification.cjs +6 -6
  68. package/dist/apis/notification.js +1 -1
  69. package/dist/apis/organization.cjs +6 -6
  70. package/dist/apis/organization.js +1 -1
  71. package/dist/apis/partner-directory.cjs +6 -6
  72. package/dist/apis/partner-directory.js +1 -1
  73. package/dist/apis/permissions.cjs +6 -6
  74. package/dist/apis/permissions.js +1 -1
  75. package/dist/apis/pricing-tier.cjs +6 -6
  76. package/dist/apis/pricing-tier.js +1 -1
  77. package/dist/apis/pricing.cjs +6 -6
  78. package/dist/apis/pricing.js +1 -1
  79. package/dist/apis/purpose.cjs +6 -6
  80. package/dist/apis/purpose.js +1 -1
  81. package/dist/apis/query.cjs +6 -6
  82. package/dist/apis/query.js +1 -1
  83. package/dist/apis/sandbox.cjs +6 -6
  84. package/dist/apis/sandbox.js +1 -1
  85. package/dist/apis/sharing.cjs +6 -6
  86. package/dist/apis/sharing.js +1 -1
  87. package/dist/apis/submission.cjs +6 -6
  88. package/dist/apis/submission.js +1 -1
  89. package/dist/apis/target.cjs +6 -6
  90. package/dist/apis/target.js +1 -1
  91. package/dist/apis/targeting.cjs +6 -6
  92. package/dist/apis/targeting.js +1 -1
  93. package/dist/apis/template-variables.cjs +6 -6
  94. package/dist/apis/template-variables.js +1 -1
  95. package/dist/apis/user.cjs +6 -6
  96. package/dist/apis/user.js +1 -1
  97. package/dist/apis/validation-rules.cjs +6 -6
  98. package/dist/apis/validation-rules.js +1 -1
  99. package/dist/apis/webhooks.cjs +6 -6
  100. package/dist/apis/webhooks.js +1 -1
  101. package/dist/apis/workflow-definition.cjs +6 -6
  102. package/dist/apis/workflow-definition.js +1 -1
  103. package/dist/apis/workflow.cjs +6 -6
  104. package/dist/apis/workflow.js +1 -1
  105. package/dist/bin/cli.js +1 -1
  106. package/dist/chunk-M6Z6ES3I.js +14 -0
  107. package/dist/{chunk-W7YCS4FU.js → chunk-O2AUZKUD.js} +2 -2
  108. package/dist/{chunk-MDLNRFJV.cjs → chunk-OK74PNHY.cjs} +2 -2
  109. package/dist/chunk-UBQCDPW6.cjs +14 -0
  110. package/dist/entity-H6ESUH3Y.js +7 -0
  111. package/dist/entity-ZVDKWQSF.cjs +7 -0
  112. package/dist/entity-runtime-3J5EDLXP.cjs +5 -0
  113. package/dist/{entity-runtime-D4DV5XRM.js → entity-runtime-LNAZILIN.js} +1 -1
  114. package/dist/{entity.d-ByufVI16.d.cts → entity.d-BHR9dEon.d.cts} +2020 -15
  115. package/dist/{entity.d-ByufVI16.d.ts → entity.d-BHR9dEon.d.ts} +2020 -15
  116. package/dist/index.cjs +10 -10
  117. package/dist/index.d.cts +1 -1
  118. package/dist/index.d.ts +1 -1
  119. package/dist/index.js +2 -2
  120. package/dist/{js-yaml-DLCVPJ7G.js → js-yaml-UPZKYVRY.js} +15 -17
  121. package/docs/entity.md +1156 -40
  122. package/package.json +1 -1
  123. package/dist/chunk-F7W62NKV.js +0 -14
  124. package/dist/chunk-QA2OYK7N.cjs +0 -14
  125. package/dist/entity-CK76MXVN.js +0 -7
  126. package/dist/entity-TFMH5VTZ.cjs +0 -7
  127. package/dist/entity-runtime-DUJTRYLQ.cjs +0 -5
@@ -17,7 +17,9 @@ declare namespace Components {
17
17
  * 01F130Q52Q6MWSNS8N2AVXV4JN
18
18
  */
19
19
  Schemas.ActivityId /* ulid ^01[0-9a-zA-Z]{24}$ */ | ("" | null);
20
+ export type ApplyChangesetsQueryParam = boolean;
20
21
  export type AsyncOperationQueryParam = boolean;
22
+ export type DirectQueryParam = boolean;
21
23
  export type DryRunQueryParam = boolean;
22
24
  export type EntityIdPathParam = Schemas.EntityId /* uuid */;
23
25
  export type EntityRelationsModeQueryParam = "direct" | "reverse" | "both";
@@ -86,6 +88,8 @@ declare namespace Components {
86
88
  DryRunQueryParam?: Parameters.DryRunQueryParam;
87
89
  FillActivityQueryParam?: Parameters.FillActivityQueryParam;
88
90
  ValidateEntityQueryParam?: Parameters.ValidateEntityQueryParam;
91
+ DirectQueryParam?: Parameters.DirectQueryParam;
92
+ ApplyChangesetsQueryParam?: Parameters.ApplyChangesetsQueryParam;
89
93
  }
90
94
  namespace Responses {
91
95
  /**
@@ -171,6 +175,10 @@ declare namespace Components {
171
175
  * - RelationsSoftDeleted
172
176
  * - RelationsRestored
173
177
  * - RelationsDeleted
178
+ * - ChangesetCreated
179
+ * - ChangesetAutoCleared
180
+ * - ChangesetApplied
181
+ * - ChangesetDismissed
174
182
  *
175
183
  */
176
184
  ActivityType;
@@ -284,6 +292,10 @@ declare namespace Components {
284
292
  * - RelationsSoftDeleted
285
293
  * - RelationsRestored
286
294
  * - RelationsDeleted
295
+ * - ChangesetCreated
296
+ * - ChangesetAutoCleared
297
+ * - ChangesetApplied
298
+ * - ChangesetDismissed
287
299
  *
288
300
  */
289
301
  ActivityType;
@@ -340,6 +352,10 @@ declare namespace Components {
340
352
  * - RelationsSoftDeleted
341
353
  * - RelationsRestored
342
354
  * - RelationsDeleted
355
+ * - ChangesetCreated
356
+ * - ChangesetAutoCleared
357
+ * - ChangesetApplied
358
+ * - ChangesetDismissed
343
359
  *
344
360
  */
345
361
  export type ActivityType = string;
@@ -496,6 +512,45 @@ declare namespace Components {
496
512
  */
497
513
  repeatable?: boolean;
498
514
  has_primary?: boolean;
515
+ /**
516
+ * Controls how updates to this attribute are handled.
517
+ * - `direct` (default): update is applied immediately. No changeset created.
518
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
519
+ * - `approval`: update creates a changeset, requires explicit human approval.
520
+ *
521
+ */
522
+ edit_mode?: "direct" | "external" | "approval";
523
+ /**
524
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
525
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
526
+ * they are ignored for `approval` mode, which resolves via explicit
527
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
528
+ *
529
+ */
530
+ edit_mode_config?: {
531
+ match_strategy?: /**
532
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
533
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
534
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
535
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
536
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
537
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
538
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
539
+ *
540
+ */
541
+ MatchStrategy;
542
+ fuzzy_config?: /**
543
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
544
+ * Not used for `edit_mode: approval`.
545
+ *
546
+ * Type compatibility with attribute shape is enforced at schema save time:
547
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
548
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
549
+ * - relation attributes: `relation_set`
550
+ *
551
+ */
552
+ FuzzyConfig;
553
+ };
499
554
  type: "address";
500
555
  default_address_fields?: /**
501
556
  * Default fields visible on addresses
@@ -677,6 +732,45 @@ declare namespace Components {
677
732
  */
678
733
  repeatable?: boolean;
679
734
  has_primary?: boolean;
735
+ /**
736
+ * Controls how updates to this attribute are handled.
737
+ * - `direct` (default): update is applied immediately. No changeset created.
738
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
739
+ * - `approval`: update creates a changeset, requires explicit human approval.
740
+ *
741
+ */
742
+ edit_mode?: "direct" | "external" | "approval";
743
+ /**
744
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
745
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
746
+ * they are ignored for `approval` mode, which resolves via explicit
747
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
748
+ *
749
+ */
750
+ edit_mode_config?: {
751
+ match_strategy?: /**
752
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
753
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
754
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
755
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
756
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
757
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
758
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
759
+ *
760
+ */
761
+ MatchStrategy;
762
+ fuzzy_config?: /**
763
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
764
+ * Not used for `edit_mode: approval`.
765
+ *
766
+ * Type compatibility with attribute shape is enforced at schema save time:
767
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
768
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
769
+ * - relation attributes: `relation_set`
770
+ *
771
+ */
772
+ FuzzyConfig;
773
+ };
680
774
  type: "relation_address";
681
775
  default_address_fields?: /**
682
776
  * Default fields visible on addresses
@@ -875,6 +969,45 @@ declare namespace Components {
875
969
  */
876
970
  repeatable?: boolean;
877
971
  has_primary?: boolean;
972
+ /**
973
+ * Controls how updates to this attribute are handled.
974
+ * - `direct` (default): update is applied immediately. No changeset created.
975
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
976
+ * - `approval`: update creates a changeset, requires explicit human approval.
977
+ *
978
+ */
979
+ edit_mode?: "direct" | "external" | "approval";
980
+ /**
981
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
982
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
983
+ * they are ignored for `approval` mode, which resolves via explicit
984
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
985
+ *
986
+ */
987
+ edit_mode_config?: {
988
+ match_strategy?: /**
989
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
990
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
991
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
992
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
993
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
994
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
995
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
996
+ *
997
+ */
998
+ MatchStrategy;
999
+ fuzzy_config?: /**
1000
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
1001
+ * Not used for `edit_mode: approval`.
1002
+ *
1003
+ * Type compatibility with attribute shape is enforced at schema save time:
1004
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
1005
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
1006
+ * - relation attributes: `relation_set`
1007
+ *
1008
+ */
1009
+ FuzzyConfig;
1010
+ };
878
1011
  type: "automation";
879
1012
  }
880
1013
  export interface BaseActivityItem {
@@ -899,6 +1032,10 @@ declare namespace Components {
899
1032
  * - RelationsSoftDeleted
900
1033
  * - RelationsRestored
901
1034
  * - RelationsDeleted
1035
+ * - ChangesetCreated
1036
+ * - ChangesetAutoCleared
1037
+ * - ChangesetApplied
1038
+ * - ChangesetDismissed
902
1039
  *
903
1040
  */
904
1041
  ActivityType;
@@ -1084,6 +1221,45 @@ declare namespace Components {
1084
1221
  */
1085
1222
  repeatable?: boolean;
1086
1223
  has_primary?: boolean;
1224
+ /**
1225
+ * Controls how updates to this attribute are handled.
1226
+ * - `direct` (default): update is applied immediately. No changeset created.
1227
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
1228
+ * - `approval`: update creates a changeset, requires explicit human approval.
1229
+ *
1230
+ */
1231
+ edit_mode?: "direct" | "external" | "approval";
1232
+ /**
1233
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
1234
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
1235
+ * they are ignored for `approval` mode, which resolves via explicit
1236
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
1237
+ *
1238
+ */
1239
+ edit_mode_config?: {
1240
+ match_strategy?: /**
1241
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
1242
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
1243
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
1244
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
1245
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
1246
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
1247
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
1248
+ *
1249
+ */
1250
+ MatchStrategy;
1251
+ fuzzy_config?: /**
1252
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
1253
+ * Not used for `edit_mode: approval`.
1254
+ *
1255
+ * Type compatibility with attribute shape is enforced at schema save time:
1256
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
1257
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
1258
+ * - relation attributes: `relation_set`
1259
+ *
1260
+ */
1261
+ FuzzyConfig;
1262
+ };
1087
1263
  }
1088
1264
  /**
1089
1265
  * example:
@@ -1166,6 +1342,15 @@ declare namespace Components {
1166
1342
  * Manifest ID used to create/update the entity
1167
1343
  */
1168
1344
  _manifest?: string /* uuid */[] | null;
1345
+ /**
1346
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
1347
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
1348
+ * Use the changeset management endpoints to apply or dismiss changesets.
1349
+ *
1350
+ */
1351
+ _changesets?: {
1352
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
1353
+ } | null;
1169
1354
  }
1170
1355
  /**
1171
1356
  * Reference to blueprint
@@ -1324,9 +1509,118 @@ declare namespace Components {
1324
1509
  */
1325
1510
  repeatable?: boolean;
1326
1511
  has_primary?: boolean;
1512
+ /**
1513
+ * Controls how updates to this attribute are handled.
1514
+ * - `direct` (default): update is applied immediately. No changeset created.
1515
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
1516
+ * - `approval`: update creates a changeset, requires explicit human approval.
1517
+ *
1518
+ */
1519
+ edit_mode?: "direct" | "external" | "approval";
1520
+ /**
1521
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
1522
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
1523
+ * they are ignored for `approval` mode, which resolves via explicit
1524
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
1525
+ *
1526
+ */
1527
+ edit_mode_config?: {
1528
+ match_strategy?: /**
1529
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
1530
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
1531
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
1532
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
1533
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
1534
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
1535
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
1536
+ *
1537
+ */
1538
+ MatchStrategy;
1539
+ fuzzy_config?: /**
1540
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
1541
+ * Not used for `edit_mode: approval`.
1542
+ *
1543
+ * Type compatibility with attribute shape is enforced at schema save time:
1544
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
1545
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
1546
+ * - relation attributes: `relation_set`
1547
+ *
1548
+ */
1549
+ FuzzyConfig;
1550
+ };
1327
1551
  type: "boolean";
1328
1552
  display_type?: "switch" | "checkbox";
1329
1553
  }
1554
+ /**
1555
+ * A pending proposed change for a single entity attribute, awaiting external confirmation or human approval.
1556
+ */
1557
+ export interface Changeset {
1558
+ /**
1559
+ * The proposed new value for the attribute. Type matches the attribute type.
1560
+ */
1561
+ proposed_value: any;
1562
+ /**
1563
+ * The attribute value at the time the changeset was created. Stored for reference.
1564
+ */
1565
+ previous_value?: any;
1566
+ /**
1567
+ * Timestamp when the changeset was created
1568
+ */
1569
+ created_at: string; // date-time
1570
+ created_by?: /* Identifies the actor that created the changeset. */ ChangesetCreator;
1571
+ /**
1572
+ * The edit mode that triggered this changeset.
1573
+ * - `external`: auto-cleared by a matching `?direct=true` write (see `match_strategy`).
1574
+ * - `approval`: resolved only via explicit `:apply` / `:dismiss` endpoints; never auto-clears.
1575
+ *
1576
+ */
1577
+ edit_mode: "external" | "approval";
1578
+ /**
1579
+ * Match strategy copied from the attribute's `edit_mode_config` at changeset
1580
+ * creation time. Only consulted when `edit_mode` is `external`; ignored for
1581
+ * `approval` (which never auto-clears).
1582
+ *
1583
+ */
1584
+ match_strategy?: "exact" | "fuzzy" | "any";
1585
+ /**
1586
+ * Optional label indicating where the change originated (e.g. end_customer_portal, installer_portal, journey, automation)
1587
+ */
1588
+ source?: string;
1589
+ /**
1590
+ * Proposed and previous values for related fields in a multi-field attribute group (e.g. currency _decimal/_currency suffixes). Keyed by full field name.
1591
+ */
1592
+ related_values?: {
1593
+ [name: string]: {
1594
+ /**
1595
+ * The proposed new value for the related field.
1596
+ */
1597
+ proposed_value?: any;
1598
+ /**
1599
+ * The value of the related field when the changeset was created.
1600
+ */
1601
+ previous_value?: any;
1602
+ };
1603
+ };
1604
+ }
1605
+ /**
1606
+ * Identifies the actor that created the changeset.
1607
+ */
1608
+ export interface ChangesetCreator {
1609
+ /**
1610
+ * Type of actor that created the changeset
1611
+ */
1612
+ type?: "user" | "portal_user" | "api_client" | "automation";
1613
+ /**
1614
+ * ID of the actor (user ID, portal user ID, API client ID, etc.)
1615
+ */
1616
+ id?: string;
1617
+ }
1618
+ /**
1619
+ * Map of attribute name to pending changeset. At most one changeset per attribute.
1620
+ */
1621
+ export interface ChangesetMap {
1622
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
1623
+ }
1330
1624
  /**
1331
1625
  * example:
1332
1626
  * taxonomy-slug:classification-slug
@@ -1522,6 +1816,45 @@ declare namespace Components {
1522
1816
  */
1523
1817
  repeatable?: boolean;
1524
1818
  has_primary?: boolean;
1819
+ /**
1820
+ * Controls how updates to this attribute are handled.
1821
+ * - `direct` (default): update is applied immediately. No changeset created.
1822
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
1823
+ * - `approval`: update creates a changeset, requires explicit human approval.
1824
+ *
1825
+ */
1826
+ edit_mode?: "direct" | "external" | "approval";
1827
+ /**
1828
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
1829
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
1830
+ * they are ignored for `approval` mode, which resolves via explicit
1831
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
1832
+ *
1833
+ */
1834
+ edit_mode_config?: {
1835
+ match_strategy?: /**
1836
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
1837
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
1838
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
1839
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
1840
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
1841
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
1842
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
1843
+ *
1844
+ */
1845
+ MatchStrategy;
1846
+ fuzzy_config?: /**
1847
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
1848
+ * Not used for `edit_mode: approval`.
1849
+ *
1850
+ * Type compatibility with attribute shape is enforced at schema save time:
1851
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
1852
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
1853
+ * - relation attributes: `relation_set`
1854
+ *
1855
+ */
1856
+ FuzzyConfig;
1857
+ };
1525
1858
  type: "computed";
1526
1859
  computed?: boolean;
1527
1860
  /**
@@ -1686,6 +2019,45 @@ declare namespace Components {
1686
2019
  */
1687
2020
  repeatable?: boolean;
1688
2021
  has_primary?: boolean;
2022
+ /**
2023
+ * Controls how updates to this attribute are handled.
2024
+ * - `direct` (default): update is applied immediately. No changeset created.
2025
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
2026
+ * - `approval`: update creates a changeset, requires explicit human approval.
2027
+ *
2028
+ */
2029
+ edit_mode?: "direct" | "external" | "approval";
2030
+ /**
2031
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
2032
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
2033
+ * they are ignored for `approval` mode, which resolves via explicit
2034
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
2035
+ *
2036
+ */
2037
+ edit_mode_config?: {
2038
+ match_strategy?: /**
2039
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
2040
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
2041
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
2042
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
2043
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
2044
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
2045
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
2046
+ *
2047
+ */
2048
+ MatchStrategy;
2049
+ fuzzy_config?: /**
2050
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
2051
+ * Not used for `edit_mode: approval`.
2052
+ *
2053
+ * Type compatibility with attribute shape is enforced at schema save time:
2054
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
2055
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
2056
+ * - relation attributes: `relation_set`
2057
+ *
2058
+ */
2059
+ FuzzyConfig;
2060
+ };
1689
2061
  type: "consent";
1690
2062
  topic: string;
1691
2063
  identifiers?: string[];
@@ -1843,6 +2215,45 @@ declare namespace Components {
1843
2215
  */
1844
2216
  repeatable?: boolean;
1845
2217
  has_primary?: boolean;
2218
+ /**
2219
+ * Controls how updates to this attribute are handled.
2220
+ * - `direct` (default): update is applied immediately. No changeset created.
2221
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
2222
+ * - `approval`: update creates a changeset, requires explicit human approval.
2223
+ *
2224
+ */
2225
+ edit_mode?: "direct" | "external" | "approval";
2226
+ /**
2227
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
2228
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
2229
+ * they are ignored for `approval` mode, which resolves via explicit
2230
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
2231
+ *
2232
+ */
2233
+ edit_mode_config?: {
2234
+ match_strategy?: /**
2235
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
2236
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
2237
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
2238
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
2239
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
2240
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
2241
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
2242
+ *
2243
+ */
2244
+ MatchStrategy;
2245
+ fuzzy_config?: /**
2246
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
2247
+ * Not used for `edit_mode: approval`.
2248
+ *
2249
+ * Type compatibility with attribute shape is enforced at schema save time:
2250
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
2251
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
2252
+ * - relation attributes: `relation_set`
2253
+ *
2254
+ */
2255
+ FuzzyConfig;
2256
+ };
1846
2257
  type: "country";
1847
2258
  }
1848
2259
  /**
@@ -1998,6 +2409,45 @@ declare namespace Components {
1998
2409
  */
1999
2410
  repeatable?: boolean;
2000
2411
  has_primary?: boolean;
2412
+ /**
2413
+ * Controls how updates to this attribute are handled.
2414
+ * - `direct` (default): update is applied immediately. No changeset created.
2415
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
2416
+ * - `approval`: update creates a changeset, requires explicit human approval.
2417
+ *
2418
+ */
2419
+ edit_mode?: "direct" | "external" | "approval";
2420
+ /**
2421
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
2422
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
2423
+ * they are ignored for `approval` mode, which resolves via explicit
2424
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
2425
+ *
2426
+ */
2427
+ edit_mode_config?: {
2428
+ match_strategy?: /**
2429
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
2430
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
2431
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
2432
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
2433
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
2434
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
2435
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
2436
+ *
2437
+ */
2438
+ MatchStrategy;
2439
+ fuzzy_config?: /**
2440
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
2441
+ * Not used for `edit_mode: approval`.
2442
+ *
2443
+ * Type compatibility with attribute shape is enforced at schema save time:
2444
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
2445
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
2446
+ * - relation attributes: `relation_set`
2447
+ *
2448
+ */
2449
+ FuzzyConfig;
2450
+ };
2001
2451
  type: "currency";
2002
2452
  currency_selector_only?: boolean;
2003
2453
  /**
@@ -2163,6 +2613,45 @@ declare namespace Components {
2163
2613
  */
2164
2614
  repeatable?: boolean;
2165
2615
  has_primary?: boolean;
2616
+ /**
2617
+ * Controls how updates to this attribute are handled.
2618
+ * - `direct` (default): update is applied immediately. No changeset created.
2619
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
2620
+ * - `approval`: update creates a changeset, requires explicit human approval.
2621
+ *
2622
+ */
2623
+ edit_mode?: "direct" | "external" | "approval";
2624
+ /**
2625
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
2626
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
2627
+ * they are ignored for `approval` mode, which resolves via explicit
2628
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
2629
+ *
2630
+ */
2631
+ edit_mode_config?: {
2632
+ match_strategy?: /**
2633
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
2634
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
2635
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
2636
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
2637
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
2638
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
2639
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
2640
+ *
2641
+ */
2642
+ MatchStrategy;
2643
+ fuzzy_config?: /**
2644
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
2645
+ * Not used for `edit_mode: approval`.
2646
+ *
2647
+ * Type compatibility with attribute shape is enforced at schema save time:
2648
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
2649
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
2650
+ * - relation attributes: `relation_set`
2651
+ *
2652
+ */
2653
+ FuzzyConfig;
2654
+ };
2166
2655
  type: "date" | "datetime";
2167
2656
  }
2168
2657
  /**
@@ -2201,6 +2690,38 @@ declare namespace Components {
2201
2690
  */
2202
2691
  cluster?: string;
2203
2692
  }
2693
+ /**
2694
+ * Configuration for `edit_mode: external` auto-clear matching.
2695
+ * Fields here (`match_strategy`, `fuzzy_config`) only take effect when
2696
+ * `edit_mode` is `external`. They are ignored for `edit_mode: approval`,
2697
+ * which never auto-clears and is resolved exclusively via the
2698
+ * `:apply` / `:dismiss` changeset endpoints.
2699
+ *
2700
+ */
2701
+ export interface EditModeConfig {
2702
+ match_strategy?: /**
2703
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
2704
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
2705
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
2706
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
2707
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
2708
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
2709
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
2710
+ *
2711
+ */
2712
+ MatchStrategy;
2713
+ fuzzy_config?: /**
2714
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
2715
+ * Not used for `edit_mode: approval`.
2716
+ *
2717
+ * Type compatibility with attribute shape is enforced at schema save time:
2718
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
2719
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
2720
+ * - relation attributes: `relation_set`
2721
+ *
2722
+ */
2723
+ FuzzyConfig;
2724
+ }
2204
2725
  /**
2205
2726
  * Email address
2206
2727
  */
@@ -2354,6 +2875,45 @@ declare namespace Components {
2354
2875
  */
2355
2876
  repeatable?: boolean;
2356
2877
  has_primary?: boolean;
2878
+ /**
2879
+ * Controls how updates to this attribute are handled.
2880
+ * - `direct` (default): update is applied immediately. No changeset created.
2881
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
2882
+ * - `approval`: update creates a changeset, requires explicit human approval.
2883
+ *
2884
+ */
2885
+ edit_mode?: "direct" | "external" | "approval";
2886
+ /**
2887
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
2888
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
2889
+ * they are ignored for `approval` mode, which resolves via explicit
2890
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
2891
+ *
2892
+ */
2893
+ edit_mode_config?: {
2894
+ match_strategy?: /**
2895
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
2896
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
2897
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
2898
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
2899
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
2900
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
2901
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
2902
+ *
2903
+ */
2904
+ MatchStrategy;
2905
+ fuzzy_config?: /**
2906
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
2907
+ * Not used for `edit_mode: approval`.
2908
+ *
2909
+ * Type compatibility with attribute shape is enforced at schema save time:
2910
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
2911
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
2912
+ * - relation attributes: `relation_set`
2913
+ *
2914
+ */
2915
+ FuzzyConfig;
2916
+ };
2357
2917
  type: "email";
2358
2918
  }
2359
2919
  /**
@@ -2437,6 +2997,15 @@ declare namespace Components {
2437
2997
  * Manifest ID used to create/update the entity
2438
2998
  */
2439
2999
  _manifest?: string /* uuid */[] | null;
3000
+ /**
3001
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
3002
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
3003
+ * Use the changeset management endpoints to apply or dismiss changesets.
3004
+ *
3005
+ */
3006
+ _changesets?: {
3007
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
3008
+ } | null;
2440
3009
  }
2441
3010
  /**
2442
3011
  * Access control list (ACL) for an entity. Defines sharing access to external orgs or users.
@@ -2932,6 +3501,15 @@ declare namespace Components {
2932
3501
  * Manifest ID used to create/update the entity
2933
3502
  */
2934
3503
  _manifest?: string /* uuid */[] | null;
3504
+ /**
3505
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
3506
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
3507
+ * Use the changeset management endpoints to apply or dismiss changesets.
3508
+ *
3509
+ */
3510
+ _changesets?: {
3511
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
3512
+ } | null;
2935
3513
  }
2936
3514
  export interface EntityListParams {
2937
3515
  /**
@@ -3108,6 +3686,10 @@ declare namespace Components {
3108
3686
  * - RelationsSoftDeleted
3109
3687
  * - RelationsRestored
3110
3688
  * - RelationsDeleted
3689
+ * - ChangesetCreated
3690
+ * - ChangesetAutoCleared
3691
+ * - ChangesetApplied
3692
+ * - ChangesetDismissed
3111
3693
  *
3112
3694
  */
3113
3695
  ActivityType;
@@ -3210,6 +3792,15 @@ declare namespace Components {
3210
3792
  * Manifest ID used to create/update the entity
3211
3793
  */
3212
3794
  _manifest?: string /* uuid */[] | null;
3795
+ /**
3796
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
3797
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
3798
+ * Use the changeset management endpoints to apply or dismiss changesets.
3799
+ *
3800
+ */
3801
+ _changesets?: {
3802
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
3803
+ } | null;
3213
3804
  };
3214
3805
  diff?: {
3215
3806
  /**
@@ -3294,6 +3885,15 @@ declare namespace Components {
3294
3885
  * Manifest ID used to create/update the entity
3295
3886
  */
3296
3887
  _manifest?: string /* uuid */[] | null;
3888
+ /**
3889
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
3890
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
3891
+ * Use the changeset management endpoints to apply or dismiss changesets.
3892
+ *
3893
+ */
3894
+ _changesets?: {
3895
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
3896
+ } | null;
3297
3897
  };
3298
3898
  /**
3299
3899
  * Attributes updated in the entity. Note: These values contain the previous values before the update!
@@ -3377,6 +3977,15 @@ declare namespace Components {
3377
3977
  * Manifest ID used to create/update the entity
3378
3978
  */
3379
3979
  _manifest?: string /* uuid */[] | null;
3980
+ /**
3981
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
3982
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
3983
+ * Use the changeset management endpoints to apply or dismiss changesets.
3984
+ *
3985
+ */
3986
+ _changesets?: {
3987
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
3988
+ } | null;
3380
3989
  };
3381
3990
  /**
3382
3991
  * Attributes removed from the entity as part of the operation
@@ -3460,6 +4069,15 @@ declare namespace Components {
3460
4069
  * Manifest ID used to create/update the entity
3461
4070
  */
3462
4071
  _manifest?: string /* uuid */[] | null;
4072
+ /**
4073
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
4074
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
4075
+ * Use the changeset management endpoints to apply or dismiss changesets.
4076
+ *
4077
+ */
4078
+ _changesets?: {
4079
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
4080
+ } | null;
3463
4081
  };
3464
4082
  };
3465
4083
  /**
@@ -4793,6 +5411,45 @@ declare namespace Components {
4793
5411
  */
4794
5412
  repeatable?: boolean;
4795
5413
  has_primary?: boolean;
5414
+ /**
5415
+ * Controls how updates to this attribute are handled.
5416
+ * - `direct` (default): update is applied immediately. No changeset created.
5417
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
5418
+ * - `approval`: update creates a changeset, requires explicit human approval.
5419
+ *
5420
+ */
5421
+ edit_mode?: "direct" | "external" | "approval";
5422
+ /**
5423
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
5424
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
5425
+ * they are ignored for `approval` mode, which resolves via explicit
5426
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
5427
+ *
5428
+ */
5429
+ edit_mode_config?: {
5430
+ match_strategy?: /**
5431
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
5432
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
5433
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
5434
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
5435
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
5436
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
5437
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
5438
+ *
5439
+ */
5440
+ MatchStrategy;
5441
+ fuzzy_config?: /**
5442
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
5443
+ * Not used for `edit_mode: approval`.
5444
+ *
5445
+ * Type compatibility with attribute shape is enforced at schema save time:
5446
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
5447
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
5448
+ * - relation attributes: `relation_set`
5449
+ *
5450
+ */
5451
+ FuzzyConfig;
5452
+ };
4796
5453
  type: "image" | "file";
4797
5454
  multiple?: boolean;
4798
5455
  /**
@@ -4817,6 +5474,65 @@ declare namespace Components {
4817
5474
  */
4818
5475
  file_size_bytes?: number;
4819
5476
  }
5477
+ /**
5478
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
5479
+ * Not used for `edit_mode: approval`.
5480
+ *
5481
+ * Type compatibility with attribute shape is enforced at schema save time:
5482
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
5483
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
5484
+ * - relation attributes: `relation_set`
5485
+ *
5486
+ */
5487
+ export interface FuzzyConfig {
5488
+ /**
5489
+ * Which fuzzy algorithm to apply.
5490
+ */
5491
+ type: "suffix" | "digits_only" | "normalize_phone" | "ignore_fields" | "set_equivalent" | "entry_match" | "relation_set" | "regex";
5492
+ /**
5493
+ * For type=suffix: number of characters to compare from end of string.
5494
+ */
5495
+ suffix_length?: number;
5496
+ /**
5497
+ * For type=ignore_fields and type=set_equivalent: field names to exclude when comparing array entries. `_id` is always stripped by the platform regardless of this config.
5498
+ */
5499
+ fields_to_ignore?: string[];
5500
+ /**
5501
+ * For type=regex: flags to apply to the regex (e.g. 'i' for case-insensitive).
5502
+ */
5503
+ regex_flags?: string;
5504
+ /**
5505
+ * For type=normalize_phone: country dialing code digits to strip (e.g. '49' for Germany). No '+' prefix.
5506
+ */
5507
+ country_code?: string;
5508
+ /**
5509
+ * For type=normalize_phone: attribute key within array entries to compare on (e.g. 'phone_number').
5510
+ */
5511
+ match_on?: string;
5512
+ /**
5513
+ * For type=entry_match: business key(s) within each entry used to match proposed entries against incoming entries.
5514
+ */
5515
+ key?: /* For type=entry_match: business key(s) within each entry used to match proposed entries against incoming entries. */ string | string[];
5516
+ /**
5517
+ * For type=entry_match and type=set_equivalent: how strict the comparison is.
5518
+ * - `subset` (default for entry_match): every proposed entry must exist in incoming; extra incoming entries are allowed.
5519
+ * - `exact_set` (default for set_equivalent): the two sides must contain the same entries (order-insensitive, multiset semantics).
5520
+ *
5521
+ */
5522
+ mode?: "subset" | "exact_set";
5523
+ /**
5524
+ * For type=relation_set: when true, relation order is significant. Defaults to false (order-insensitive).
5525
+ */
5526
+ ordered?: boolean;
5527
+ /**
5528
+ * For type=relation_set: when true, each relation item's `_tags` must match on both sides (order-insensitive). Defaults to false — `_tags` are stripped before compare.
5529
+ */
5530
+ require_tags_match?: boolean;
5531
+ /**
5532
+ * For type=regex: regular expression pattern to test the incoming value against.
5533
+ */
5534
+ pattern?: string;
5535
+ }
4820
5536
  export interface GenerateEntityTableAIFiltersRequest {
4821
5537
  /**
4822
5538
  * The prompt to generate the filters
@@ -4984,6 +5700,10 @@ declare namespace Components {
4984
5700
  * If true, return full entity objects in entityNodes instead of just entity IDs in nodes
4985
5701
  */
4986
5702
  hydrate?: boolean;
5703
+ /**
5704
+ * When true and hydrate is also true, entity objects in entityNodes have pending changeset proposed values applied in-place. The _changesets field is still included in the response.
5705
+ */
5706
+ apply_changesets?: boolean;
4987
5707
  }
4988
5708
  export interface GraphQueryResponse {
4989
5709
  /**
@@ -5400,6 +6120,15 @@ declare namespace Components {
5400
6120
  * Manifest ID used to create/update the entity
5401
6121
  */
5402
6122
  _manifest?: string /* uuid */[] | null;
6123
+ /**
6124
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
6125
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
6126
+ * Use the changeset management endpoints to apply or dismiss changesets.
6127
+ *
6128
+ */
6129
+ _changesets?: {
6130
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
6131
+ } | null;
5403
6132
  _relations: {
5404
6133
  entity_id: EntityId /* uuid */;
5405
6134
  }[];
@@ -5557,18 +6286,57 @@ declare namespace Components {
5557
6286
  */
5558
6287
  repeatable?: boolean;
5559
6288
  has_primary?: boolean;
5560
- type: "internal";
5561
- }
5562
- /**
5563
- * Epilot internal user info
5564
- */
5565
- export interface InternalUserAttribute {
5566
6289
  /**
5567
- * ID for the entity attribute
5568
- * example:
5569
- * d5839b94-ba20-4225-a78e-76951d352bd6
6290
+ * Controls how updates to this attribute are handled.
6291
+ * - `direct` (default): update is applied immediately. No changeset created.
6292
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
6293
+ * - `approval`: update creates a changeset, requires explicit human approval.
6294
+ *
5570
6295
  */
5571
- id?: string;
6296
+ edit_mode?: "direct" | "external" | "approval";
6297
+ /**
6298
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
6299
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
6300
+ * they are ignored for `approval` mode, which resolves via explicit
6301
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
6302
+ *
6303
+ */
6304
+ edit_mode_config?: {
6305
+ match_strategy?: /**
6306
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
6307
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
6308
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
6309
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
6310
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
6311
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
6312
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
6313
+ *
6314
+ */
6315
+ MatchStrategy;
6316
+ fuzzy_config?: /**
6317
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
6318
+ * Not used for `edit_mode: approval`.
6319
+ *
6320
+ * Type compatibility with attribute shape is enforced at schema save time:
6321
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
6322
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
6323
+ * - relation attributes: `relation_set`
6324
+ *
6325
+ */
6326
+ FuzzyConfig;
6327
+ };
6328
+ type: "internal";
6329
+ }
6330
+ /**
6331
+ * Epilot internal user info
6332
+ */
6333
+ export interface InternalUserAttribute {
6334
+ /**
6335
+ * ID for the entity attribute
6336
+ * example:
6337
+ * d5839b94-ba20-4225-a78e-76951d352bd6
6338
+ */
6339
+ id?: string;
5572
6340
  name: string;
5573
6341
  label: string;
5574
6342
  placeholder?: string;
@@ -5712,6 +6480,45 @@ declare namespace Components {
5712
6480
  */
5713
6481
  repeatable?: boolean;
5714
6482
  has_primary?: boolean;
6483
+ /**
6484
+ * Controls how updates to this attribute are handled.
6485
+ * - `direct` (default): update is applied immediately. No changeset created.
6486
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
6487
+ * - `approval`: update creates a changeset, requires explicit human approval.
6488
+ *
6489
+ */
6490
+ edit_mode?: "direct" | "external" | "approval";
6491
+ /**
6492
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
6493
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
6494
+ * they are ignored for `approval` mode, which resolves via explicit
6495
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
6496
+ *
6497
+ */
6498
+ edit_mode_config?: {
6499
+ match_strategy?: /**
6500
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
6501
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
6502
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
6503
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
6504
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
6505
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
6506
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
6507
+ *
6508
+ */
6509
+ MatchStrategy;
6510
+ fuzzy_config?: /**
6511
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
6512
+ * Not used for `edit_mode: approval`.
6513
+ *
6514
+ * Type compatibility with attribute shape is enforced at schema save time:
6515
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
6516
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
6517
+ * - relation attributes: `relation_set`
6518
+ *
6519
+ */
6520
+ FuzzyConfig;
6521
+ };
5715
6522
  type: "internal_user";
5716
6523
  }
5717
6524
  /**
@@ -5867,6 +6674,45 @@ declare namespace Components {
5867
6674
  */
5868
6675
  repeatable?: boolean;
5869
6676
  has_primary?: boolean;
6677
+ /**
6678
+ * Controls how updates to this attribute are handled.
6679
+ * - `direct` (default): update is applied immediately. No changeset created.
6680
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
6681
+ * - `approval`: update creates a changeset, requires explicit human approval.
6682
+ *
6683
+ */
6684
+ edit_mode?: "direct" | "external" | "approval";
6685
+ /**
6686
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
6687
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
6688
+ * they are ignored for `approval` mode, which resolves via explicit
6689
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
6690
+ *
6691
+ */
6692
+ edit_mode_config?: {
6693
+ match_strategy?: /**
6694
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
6695
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
6696
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
6697
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
6698
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
6699
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
6700
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
6701
+ *
6702
+ */
6703
+ MatchStrategy;
6704
+ fuzzy_config?: /**
6705
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
6706
+ * Not used for `edit_mode: approval`.
6707
+ *
6708
+ * Type compatibility with attribute shape is enforced at schema save time:
6709
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
6710
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
6711
+ * - relation attributes: `relation_set`
6712
+ *
6713
+ */
6714
+ FuzzyConfig;
6715
+ };
5870
6716
  type: "invitation_email";
5871
6717
  }
5872
6718
  /**
@@ -6030,6 +6876,45 @@ declare namespace Components {
6030
6876
  */
6031
6877
  repeatable?: boolean;
6032
6878
  has_primary?: boolean;
6879
+ /**
6880
+ * Controls how updates to this attribute are handled.
6881
+ * - `direct` (default): update is applied immediately. No changeset created.
6882
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
6883
+ * - `approval`: update creates a changeset, requires explicit human approval.
6884
+ *
6885
+ */
6886
+ edit_mode?: "direct" | "external" | "approval";
6887
+ /**
6888
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
6889
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
6890
+ * they are ignored for `approval` mode, which resolves via explicit
6891
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
6892
+ *
6893
+ */
6894
+ edit_mode_config?: {
6895
+ match_strategy?: /**
6896
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
6897
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
6898
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
6899
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
6900
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
6901
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
6902
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
6903
+ *
6904
+ */
6905
+ MatchStrategy;
6906
+ fuzzy_config?: /**
6907
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
6908
+ * Not used for `edit_mode: approval`.
6909
+ *
6910
+ * Type compatibility with attribute shape is enforced at schema save time:
6911
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
6912
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
6913
+ * - relation attributes: `relation_set`
6914
+ *
6915
+ */
6916
+ FuzzyConfig;
6917
+ };
6033
6918
  type: "link";
6034
6919
  }
6035
6920
  export interface ListSavedViewsResults {
@@ -6040,6 +6925,17 @@ declare namespace Components {
6040
6925
  hits?: number;
6041
6926
  results?: /* A saved entity view */ SavedViewItem[];
6042
6927
  }
6928
+ /**
6929
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
6930
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
6931
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
6932
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
6933
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
6934
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
6935
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
6936
+ *
6937
+ */
6938
+ export type MatchStrategy = "exact" | "fuzzy" | "any";
6043
6939
  /**
6044
6940
  * Message emil address
6045
6941
  */
@@ -6193,6 +7089,45 @@ declare namespace Components {
6193
7089
  */
6194
7090
  repeatable?: boolean;
6195
7091
  has_primary?: boolean;
7092
+ /**
7093
+ * Controls how updates to this attribute are handled.
7094
+ * - `direct` (default): update is applied immediately. No changeset created.
7095
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
7096
+ * - `approval`: update creates a changeset, requires explicit human approval.
7097
+ *
7098
+ */
7099
+ edit_mode?: "direct" | "external" | "approval";
7100
+ /**
7101
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
7102
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
7103
+ * they are ignored for `approval` mode, which resolves via explicit
7104
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
7105
+ *
7106
+ */
7107
+ edit_mode_config?: {
7108
+ match_strategy?: /**
7109
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
7110
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
7111
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
7112
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
7113
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
7114
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
7115
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
7116
+ *
7117
+ */
7118
+ MatchStrategy;
7119
+ fuzzy_config?: /**
7120
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
7121
+ * Not used for `edit_mode: approval`.
7122
+ *
7123
+ * Type compatibility with attribute shape is enforced at schema save time:
7124
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
7125
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
7126
+ * - relation attributes: `relation_set`
7127
+ *
7128
+ */
7129
+ FuzzyConfig;
7130
+ };
6196
7131
  type: "message_email_address";
6197
7132
  address?: string;
6198
7133
  send_status?: string;
@@ -6351,6 +7286,45 @@ declare namespace Components {
6351
7286
  */
6352
7287
  repeatable?: boolean;
6353
7288
  has_primary?: boolean;
7289
+ /**
7290
+ * Controls how updates to this attribute are handled.
7291
+ * - `direct` (default): update is applied immediately. No changeset created.
7292
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
7293
+ * - `approval`: update creates a changeset, requires explicit human approval.
7294
+ *
7295
+ */
7296
+ edit_mode?: "direct" | "external" | "approval";
7297
+ /**
7298
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
7299
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
7300
+ * they are ignored for `approval` mode, which resolves via explicit
7301
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
7302
+ *
7303
+ */
7304
+ edit_mode_config?: {
7305
+ match_strategy?: /**
7306
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
7307
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
7308
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
7309
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
7310
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
7311
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
7312
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
7313
+ *
7314
+ */
7315
+ MatchStrategy;
7316
+ fuzzy_config?: /**
7317
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
7318
+ * Not used for `edit_mode: approval`.
7319
+ *
7320
+ * Type compatibility with attribute shape is enforced at schema save time:
7321
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
7322
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
7323
+ * - relation attributes: `relation_set`
7324
+ *
7325
+ */
7326
+ FuzzyConfig;
7327
+ };
6354
7328
  type: "multiselect" | "checkbox";
6355
7329
  /**
6356
7330
  * controls if the matching of values against the options is case sensitive or not
@@ -6450,6 +7424,15 @@ declare namespace Components {
6450
7424
  * Manifest ID used to create/update the entity
6451
7425
  */
6452
7426
  _manifest?: string /* uuid */[] | null;
7427
+ /**
7428
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
7429
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
7430
+ * Use the changeset management endpoints to apply or dismiss changesets.
7431
+ *
7432
+ */
7433
+ _changesets?: {
7434
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
7435
+ } | null;
6453
7436
  } | null;
6454
7437
  /**
6455
7438
  * Numeric input
@@ -6604,6 +7587,45 @@ declare namespace Components {
6604
7587
  */
6605
7588
  repeatable?: boolean;
6606
7589
  has_primary?: boolean;
7590
+ /**
7591
+ * Controls how updates to this attribute are handled.
7592
+ * - `direct` (default): update is applied immediately. No changeset created.
7593
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
7594
+ * - `approval`: update creates a changeset, requires explicit human approval.
7595
+ *
7596
+ */
7597
+ edit_mode?: "direct" | "external" | "approval";
7598
+ /**
7599
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
7600
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
7601
+ * they are ignored for `approval` mode, which resolves via explicit
7602
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
7603
+ *
7604
+ */
7605
+ edit_mode_config?: {
7606
+ match_strategy?: /**
7607
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
7608
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
7609
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
7610
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
7611
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
7612
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
7613
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
7614
+ *
7615
+ */
7616
+ MatchStrategy;
7617
+ fuzzy_config?: /**
7618
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
7619
+ * Not used for `edit_mode: approval`.
7620
+ *
7621
+ * Type compatibility with attribute shape is enforced at schema save time:
7622
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
7623
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
7624
+ * - relation attributes: `relation_set`
7625
+ *
7626
+ */
7627
+ FuzzyConfig;
7628
+ };
6607
7629
  type: "number";
6608
7630
  /**
6609
7631
  * Optional data type override. When set to 'number', the value is stored as a number instead of a string. Defaults to 'string'.
@@ -6768,6 +7790,45 @@ declare namespace Components {
6768
7790
  */
6769
7791
  repeatable?: boolean;
6770
7792
  has_primary?: boolean;
7793
+ /**
7794
+ * Controls how updates to this attribute are handled.
7795
+ * - `direct` (default): update is applied immediately. No changeset created.
7796
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
7797
+ * - `approval`: update creates a changeset, requires explicit human approval.
7798
+ *
7799
+ */
7800
+ edit_mode?: "direct" | "external" | "approval";
7801
+ /**
7802
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
7803
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
7804
+ * they are ignored for `approval` mode, which resolves via explicit
7805
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
7806
+ *
7807
+ */
7808
+ edit_mode_config?: {
7809
+ match_strategy?: /**
7810
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
7811
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
7812
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
7813
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
7814
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
7815
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
7816
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
7817
+ *
7818
+ */
7819
+ MatchStrategy;
7820
+ fuzzy_config?: /**
7821
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
7822
+ * Not used for `edit_mode: approval`.
7823
+ *
7824
+ * Type compatibility with attribute shape is enforced at schema save time:
7825
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
7826
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
7827
+ * - relation attributes: `relation_set`
7828
+ *
7829
+ */
7830
+ FuzzyConfig;
7831
+ };
6771
7832
  type: "ordered_list";
6772
7833
  }
6773
7834
  /**
@@ -6923,6 +7984,45 @@ declare namespace Components {
6923
7984
  */
6924
7985
  repeatable?: boolean;
6925
7986
  has_primary?: boolean;
7987
+ /**
7988
+ * Controls how updates to this attribute are handled.
7989
+ * - `direct` (default): update is applied immediately. No changeset created.
7990
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
7991
+ * - `approval`: update creates a changeset, requires explicit human approval.
7992
+ *
7993
+ */
7994
+ edit_mode?: "direct" | "external" | "approval";
7995
+ /**
7996
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
7997
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
7998
+ * they are ignored for `approval` mode, which resolves via explicit
7999
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
8000
+ *
8001
+ */
8002
+ edit_mode_config?: {
8003
+ match_strategy?: /**
8004
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
8005
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
8006
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
8007
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
8008
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
8009
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
8010
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
8011
+ *
8012
+ */
8013
+ MatchStrategy;
8014
+ fuzzy_config?: /**
8015
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
8016
+ * Not used for `edit_mode: approval`.
8017
+ *
8018
+ * Type compatibility with attribute shape is enforced at schema save time:
8019
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
8020
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
8021
+ * - relation attributes: `relation_set`
8022
+ *
8023
+ */
8024
+ FuzzyConfig;
8025
+ };
6926
8026
  type: "partner_organisation";
6927
8027
  }
6928
8028
  /**
@@ -7078,6 +8178,45 @@ declare namespace Components {
7078
8178
  */
7079
8179
  repeatable?: boolean;
7080
8180
  has_primary?: boolean;
8181
+ /**
8182
+ * Controls how updates to this attribute are handled.
8183
+ * - `direct` (default): update is applied immediately. No changeset created.
8184
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
8185
+ * - `approval`: update creates a changeset, requires explicit human approval.
8186
+ *
8187
+ */
8188
+ edit_mode?: "direct" | "external" | "approval";
8189
+ /**
8190
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
8191
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
8192
+ * they are ignored for `approval` mode, which resolves via explicit
8193
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
8194
+ *
8195
+ */
8196
+ edit_mode_config?: {
8197
+ match_strategy?: /**
8198
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
8199
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
8200
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
8201
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
8202
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
8203
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
8204
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
8205
+ *
8206
+ */
8207
+ MatchStrategy;
8208
+ fuzzy_config?: /**
8209
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
8210
+ * Not used for `edit_mode: approval`.
8211
+ *
8212
+ * Type compatibility with attribute shape is enforced at schema save time:
8213
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
8214
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
8215
+ * - relation attributes: `relation_set`
8216
+ *
8217
+ */
8218
+ FuzzyConfig;
8219
+ };
7081
8220
  type: "partner_status";
7082
8221
  }
7083
8222
  /**
@@ -7233,6 +8372,45 @@ declare namespace Components {
7233
8372
  */
7234
8373
  repeatable?: boolean;
7235
8374
  has_primary?: boolean;
8375
+ /**
8376
+ * Controls how updates to this attribute are handled.
8377
+ * - `direct` (default): update is applied immediately. No changeset created.
8378
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
8379
+ * - `approval`: update creates a changeset, requires explicit human approval.
8380
+ *
8381
+ */
8382
+ edit_mode?: "direct" | "external" | "approval";
8383
+ /**
8384
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
8385
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
8386
+ * they are ignored for `approval` mode, which resolves via explicit
8387
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
8388
+ *
8389
+ */
8390
+ edit_mode_config?: {
8391
+ match_strategy?: /**
8392
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
8393
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
8394
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
8395
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
8396
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
8397
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
8398
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
8399
+ *
8400
+ */
8401
+ MatchStrategy;
8402
+ fuzzy_config?: /**
8403
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
8404
+ * Not used for `edit_mode: approval`.
8405
+ *
8406
+ * Type compatibility with attribute shape is enforced at schema save time:
8407
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
8408
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
8409
+ * - relation attributes: `relation_set`
8410
+ *
8411
+ */
8412
+ FuzzyConfig;
8413
+ };
7236
8414
  type: "payment";
7237
8415
  }
7238
8416
  /**
@@ -7388,6 +8566,45 @@ declare namespace Components {
7388
8566
  */
7389
8567
  repeatable?: boolean;
7390
8568
  has_primary?: boolean;
8569
+ /**
8570
+ * Controls how updates to this attribute are handled.
8571
+ * - `direct` (default): update is applied immediately. No changeset created.
8572
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
8573
+ * - `approval`: update creates a changeset, requires explicit human approval.
8574
+ *
8575
+ */
8576
+ edit_mode?: "direct" | "external" | "approval";
8577
+ /**
8578
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
8579
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
8580
+ * they are ignored for `approval` mode, which resolves via explicit
8581
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
8582
+ *
8583
+ */
8584
+ edit_mode_config?: {
8585
+ match_strategy?: /**
8586
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
8587
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
8588
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
8589
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
8590
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
8591
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
8592
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
8593
+ *
8594
+ */
8595
+ MatchStrategy;
8596
+ fuzzy_config?: /**
8597
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
8598
+ * Not used for `edit_mode: approval`.
8599
+ *
8600
+ * Type compatibility with attribute shape is enforced at schema save time:
8601
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
8602
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
8603
+ * - relation attributes: `relation_set`
8604
+ *
8605
+ */
8606
+ FuzzyConfig;
8607
+ };
7391
8608
  type: "relation_payment_method";
7392
8609
  }
7393
8610
  /**
@@ -7543,6 +8760,45 @@ declare namespace Components {
7543
8760
  */
7544
8761
  repeatable?: boolean;
7545
8762
  has_primary?: boolean;
8763
+ /**
8764
+ * Controls how updates to this attribute are handled.
8765
+ * - `direct` (default): update is applied immediately. No changeset created.
8766
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
8767
+ * - `approval`: update creates a changeset, requires explicit human approval.
8768
+ *
8769
+ */
8770
+ edit_mode?: "direct" | "external" | "approval";
8771
+ /**
8772
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
8773
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
8774
+ * they are ignored for `approval` mode, which resolves via explicit
8775
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
8776
+ *
8777
+ */
8778
+ edit_mode_config?: {
8779
+ match_strategy?: /**
8780
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
8781
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
8782
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
8783
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
8784
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
8785
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
8786
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
8787
+ *
8788
+ */
8789
+ MatchStrategy;
8790
+ fuzzy_config?: /**
8791
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
8792
+ * Not used for `edit_mode: approval`.
8793
+ *
8794
+ * Type compatibility with attribute shape is enforced at schema save time:
8795
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
8796
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
8797
+ * - relation attributes: `relation_set`
8798
+ *
8799
+ */
8800
+ FuzzyConfig;
8801
+ };
7546
8802
  type: "phone";
7547
8803
  }
7548
8804
  /**
@@ -7698,6 +8954,45 @@ declare namespace Components {
7698
8954
  */
7699
8955
  repeatable?: boolean;
7700
8956
  has_primary?: boolean;
8957
+ /**
8958
+ * Controls how updates to this attribute are handled.
8959
+ * - `direct` (default): update is applied immediately. No changeset created.
8960
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
8961
+ * - `approval`: update creates a changeset, requires explicit human approval.
8962
+ *
8963
+ */
8964
+ edit_mode?: "direct" | "external" | "approval";
8965
+ /**
8966
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
8967
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
8968
+ * they are ignored for `approval` mode, which resolves via explicit
8969
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
8970
+ *
8971
+ */
8972
+ edit_mode_config?: {
8973
+ match_strategy?: /**
8974
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
8975
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
8976
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
8977
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
8978
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
8979
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
8980
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
8981
+ *
8982
+ */
8983
+ MatchStrategy;
8984
+ fuzzy_config?: /**
8985
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
8986
+ * Not used for `edit_mode: approval`.
8987
+ *
8988
+ * Type compatibility with attribute shape is enforced at schema save time:
8989
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
8990
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
8991
+ * - relation attributes: `relation_set`
8992
+ *
8993
+ */
8994
+ FuzzyConfig;
8995
+ };
7701
8996
  type: "portal_access";
7702
8997
  }
7703
8998
  /**
@@ -7853,6 +9148,45 @@ declare namespace Components {
7853
9148
  */
7854
9149
  repeatable?: boolean;
7855
9150
  has_primary?: boolean;
9151
+ /**
9152
+ * Controls how updates to this attribute are handled.
9153
+ * - `direct` (default): update is applied immediately. No changeset created.
9154
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
9155
+ * - `approval`: update creates a changeset, requires explicit human approval.
9156
+ *
9157
+ */
9158
+ edit_mode?: "direct" | "external" | "approval";
9159
+ /**
9160
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
9161
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
9162
+ * they are ignored for `approval` mode, which resolves via explicit
9163
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
9164
+ *
9165
+ */
9166
+ edit_mode_config?: {
9167
+ match_strategy?: /**
9168
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
9169
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
9170
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
9171
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
9172
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
9173
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
9174
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
9175
+ *
9176
+ */
9177
+ MatchStrategy;
9178
+ fuzzy_config?: /**
9179
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
9180
+ * Not used for `edit_mode: approval`.
9181
+ *
9182
+ * Type compatibility with attribute shape is enforced at schema save time:
9183
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
9184
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
9185
+ * - relation attributes: `relation_set`
9186
+ *
9187
+ */
9188
+ FuzzyConfig;
9189
+ };
7856
9190
  type: "price_component";
7857
9191
  }
7858
9192
  /**
@@ -8008,6 +9342,45 @@ declare namespace Components {
8008
9342
  */
8009
9343
  repeatable?: boolean;
8010
9344
  has_primary?: boolean;
9345
+ /**
9346
+ * Controls how updates to this attribute are handled.
9347
+ * - `direct` (default): update is applied immediately. No changeset created.
9348
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
9349
+ * - `approval`: update creates a changeset, requires explicit human approval.
9350
+ *
9351
+ */
9352
+ edit_mode?: "direct" | "external" | "approval";
9353
+ /**
9354
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
9355
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
9356
+ * they are ignored for `approval` mode, which resolves via explicit
9357
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
9358
+ *
9359
+ */
9360
+ edit_mode_config?: {
9361
+ match_strategy?: /**
9362
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
9363
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
9364
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
9365
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
9366
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
9367
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
9368
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
9369
+ *
9370
+ */
9371
+ MatchStrategy;
9372
+ fuzzy_config?: /**
9373
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
9374
+ * Not used for `edit_mode: approval`.
9375
+ *
9376
+ * Type compatibility with attribute shape is enforced at schema save time:
9377
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
9378
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
9379
+ * - relation attributes: `relation_set`
9380
+ *
9381
+ */
9382
+ FuzzyConfig;
9383
+ };
8011
9384
  type: "purpose";
8012
9385
  }
8013
9386
  /**
@@ -8178,6 +9551,45 @@ declare namespace Components {
8178
9551
  */
8179
9552
  repeatable?: boolean;
8180
9553
  has_primary?: boolean;
9554
+ /**
9555
+ * Controls how updates to this attribute are handled.
9556
+ * - `direct` (default): update is applied immediately. No changeset created.
9557
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
9558
+ * - `approval`: update creates a changeset, requires explicit human approval.
9559
+ *
9560
+ */
9561
+ edit_mode?: "direct" | "external" | "approval" | "list-view";
9562
+ /**
9563
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
9564
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
9565
+ * they are ignored for `approval` mode, which resolves via explicit
9566
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
9567
+ *
9568
+ */
9569
+ edit_mode_config?: {
9570
+ match_strategy?: /**
9571
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
9572
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
9573
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
9574
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
9575
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
9576
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
9577
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
9578
+ *
9579
+ */
9580
+ MatchStrategy;
9581
+ fuzzy_config?: /**
9582
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
9583
+ * Not used for `edit_mode: approval`.
9584
+ *
9585
+ * Type compatibility with attribute shape is enforced at schema save time:
9586
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
9587
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
9588
+ * - relation attributes: `relation_set`
9589
+ *
9590
+ */
9591
+ FuzzyConfig;
9592
+ };
8181
9593
  type: "relation";
8182
9594
  relation_type?: "has_many" | "has_one";
8183
9595
  /**
@@ -8199,7 +9611,6 @@ declare namespace Components {
8199
9611
  * When enable_relation_picker is set to true the user will be able to pick existing relations as values. Otherwise, the user will need to create new relation to link.
8200
9612
  */
8201
9613
  enable_relation_picker?: boolean;
8202
- edit_mode?: "list-view";
8203
9614
  /**
8204
9615
  * Enables the preview, edition, and creation of relation items on a Master-Details view mode.
8205
9616
  */
@@ -8373,6 +9784,15 @@ declare namespace Components {
8373
9784
  * Manifest ID used to create/update the entity
8374
9785
  */
8375
9786
  _manifest?: string /* uuid */[] | null;
9787
+ /**
9788
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
9789
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
9790
+ * Use the changeset management endpoints to apply or dismiss changesets.
9791
+ *
9792
+ */
9793
+ _changesets?: {
9794
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
9795
+ } | null;
8376
9796
  $relation?: RelationItem;
8377
9797
  }
8378
9798
  export interface RelationItem {
@@ -8547,6 +9967,45 @@ declare namespace Components {
8547
9967
  */
8548
9968
  repeatable?: boolean;
8549
9969
  has_primary?: boolean;
9970
+ /**
9971
+ * Controls how updates to this attribute are handled.
9972
+ * - `direct` (default): update is applied immediately. No changeset created.
9973
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
9974
+ * - `approval`: update creates a changeset, requires explicit human approval.
9975
+ *
9976
+ */
9977
+ edit_mode?: "direct" | "external" | "approval";
9978
+ /**
9979
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
9980
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
9981
+ * they are ignored for `approval` mode, which resolves via explicit
9982
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
9983
+ *
9984
+ */
9985
+ edit_mode_config?: {
9986
+ match_strategy?: /**
9987
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
9988
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
9989
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
9990
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
9991
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
9992
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
9993
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
9994
+ *
9995
+ */
9996
+ MatchStrategy;
9997
+ fuzzy_config?: /**
9998
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
9999
+ * Not used for `edit_mode: approval`.
10000
+ *
10001
+ * Type compatibility with attribute shape is enforced at schema save time:
10002
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
10003
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
10004
+ * - relation attributes: `relation_set`
10005
+ *
10006
+ */
10007
+ FuzzyConfig;
10008
+ };
8550
10009
  }
8551
10010
  /**
8552
10011
  * A saved entity view
@@ -8943,10 +10402,14 @@ declare namespace Components {
8943
10402
  export interface SearchMappings {
8944
10403
  [name: string]: {
8945
10404
  index?: boolean;
8946
- type?: "keyword" | "text" | "boolean" | "integer" | "long" | "float" | "date" | "flattened" | "nested";
10405
+ type?: "keyword" | "text" | "boolean" | "integer" | "long" | "float" | "date" | "flattened" | "nested" | "object";
8947
10406
  fields?: {
8948
10407
  [name: string]: any;
8949
10408
  };
10409
+ /**
10410
+ * When false, prevents ES from inferring types for nested fields. Used for _changesets where values can be any type.
10411
+ */
10412
+ dynamic?: boolean;
8950
10413
  };
8951
10414
  }
8952
10415
  /**
@@ -9102,6 +10565,45 @@ declare namespace Components {
9102
10565
  */
9103
10566
  repeatable?: boolean;
9104
10567
  has_primary?: boolean;
10568
+ /**
10569
+ * Controls how updates to this attribute are handled.
10570
+ * - `direct` (default): update is applied immediately. No changeset created.
10571
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
10572
+ * - `approval`: update creates a changeset, requires explicit human approval.
10573
+ *
10574
+ */
10575
+ edit_mode?: "direct" | "external" | "approval";
10576
+ /**
10577
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
10578
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
10579
+ * they are ignored for `approval` mode, which resolves via explicit
10580
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
10581
+ *
10582
+ */
10583
+ edit_mode_config?: {
10584
+ match_strategy?: /**
10585
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
10586
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
10587
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
10588
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
10589
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
10590
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
10591
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
10592
+ *
10593
+ */
10594
+ MatchStrategy;
10595
+ fuzzy_config?: /**
10596
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
10597
+ * Not used for `edit_mode: approval`.
10598
+ *
10599
+ * Type compatibility with attribute shape is enforced at schema save time:
10600
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
10601
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
10602
+ * - relation attributes: `relation_set`
10603
+ *
10604
+ */
10605
+ FuzzyConfig;
10606
+ };
9105
10607
  type: "select" | "radio";
9106
10608
  options?: ({
9107
10609
  value: string;
@@ -9265,6 +10767,45 @@ declare namespace Components {
9265
10767
  */
9266
10768
  repeatable?: boolean;
9267
10769
  has_primary?: boolean;
10770
+ /**
10771
+ * Controls how updates to this attribute are handled.
10772
+ * - `direct` (default): update is applied immediately. No changeset created.
10773
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
10774
+ * - `approval`: update creates a changeset, requires explicit human approval.
10775
+ *
10776
+ */
10777
+ edit_mode?: "direct" | "external" | "approval";
10778
+ /**
10779
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
10780
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
10781
+ * they are ignored for `approval` mode, which resolves via explicit
10782
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
10783
+ *
10784
+ */
10785
+ edit_mode_config?: {
10786
+ match_strategy?: /**
10787
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
10788
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
10789
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
10790
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
10791
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
10792
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
10793
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
10794
+ *
10795
+ */
10796
+ MatchStrategy;
10797
+ fuzzy_config?: /**
10798
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
10799
+ * Not used for `edit_mode: approval`.
10800
+ *
10801
+ * Type compatibility with attribute shape is enforced at schema save time:
10802
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
10803
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
10804
+ * - relation attributes: `relation_set`
10805
+ *
10806
+ */
10807
+ FuzzyConfig;
10808
+ };
9268
10809
  type: "sequence";
9269
10810
  /**
9270
10811
  * Prefix added before the sequence number
@@ -9437,6 +10978,45 @@ declare namespace Components {
9437
10978
  */
9438
10979
  repeatable?: boolean;
9439
10980
  has_primary?: boolean;
10981
+ /**
10982
+ * Controls how updates to this attribute are handled.
10983
+ * - `direct` (default): update is applied immediately. No changeset created.
10984
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
10985
+ * - `approval`: update creates a changeset, requires explicit human approval.
10986
+ *
10987
+ */
10988
+ edit_mode?: "direct" | "external" | "approval";
10989
+ /**
10990
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
10991
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
10992
+ * they are ignored for `approval` mode, which resolves via explicit
10993
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
10994
+ *
10995
+ */
10996
+ edit_mode_config?: {
10997
+ match_strategy?: /**
10998
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
10999
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
11000
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
11001
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
11002
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
11003
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
11004
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
11005
+ *
11006
+ */
11007
+ MatchStrategy;
11008
+ fuzzy_config?: /**
11009
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
11010
+ * Not used for `edit_mode: approval`.
11011
+ *
11012
+ * Type compatibility with attribute shape is enforced at schema save time:
11013
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
11014
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
11015
+ * - relation attributes: `relation_set`
11016
+ *
11017
+ */
11018
+ FuzzyConfig;
11019
+ };
9440
11020
  type: "status";
9441
11021
  options?: ((string | null) | {
9442
11022
  /**
@@ -9688,6 +11268,45 @@ declare namespace Components {
9688
11268
  */
9689
11269
  repeatable?: boolean;
9690
11270
  has_primary?: boolean;
11271
+ /**
11272
+ * Controls how updates to this attribute are handled.
11273
+ * - `direct` (default): update is applied immediately. No changeset created.
11274
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
11275
+ * - `approval`: update creates a changeset, requires explicit human approval.
11276
+ *
11277
+ */
11278
+ edit_mode?: "direct" | "external" | "approval";
11279
+ /**
11280
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
11281
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
11282
+ * they are ignored for `approval` mode, which resolves via explicit
11283
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
11284
+ *
11285
+ */
11286
+ edit_mode_config?: {
11287
+ match_strategy?: /**
11288
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
11289
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
11290
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
11291
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
11292
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
11293
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
11294
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
11295
+ *
11296
+ */
11297
+ MatchStrategy;
11298
+ fuzzy_config?: /**
11299
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
11300
+ * Not used for `edit_mode: approval`.
11301
+ *
11302
+ * Type compatibility with attribute shape is enforced at schema save time:
11303
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
11304
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
11305
+ * - relation attributes: `relation_set`
11306
+ *
11307
+ */
11308
+ FuzzyConfig;
11309
+ };
9691
11310
  type: "table";
9692
11311
  /**
9693
11312
  * Column definitions for the table
@@ -9899,6 +11518,45 @@ declare namespace Components {
9899
11518
  */
9900
11519
  repeatable?: boolean;
9901
11520
  has_primary?: boolean;
11521
+ /**
11522
+ * Controls how updates to this attribute are handled.
11523
+ * - `direct` (default): update is applied immediately. No changeset created.
11524
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
11525
+ * - `approval`: update creates a changeset, requires explicit human approval.
11526
+ *
11527
+ */
11528
+ edit_mode?: "direct" | "external" | "approval";
11529
+ /**
11530
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
11531
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
11532
+ * they are ignored for `approval` mode, which resolves via explicit
11533
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
11534
+ *
11535
+ */
11536
+ edit_mode_config?: {
11537
+ match_strategy?: /**
11538
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
11539
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
11540
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
11541
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
11542
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
11543
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
11544
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
11545
+ *
11546
+ */
11547
+ MatchStrategy;
11548
+ fuzzy_config?: /**
11549
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
11550
+ * Not used for `edit_mode: approval`.
11551
+ *
11552
+ * Type compatibility with attribute shape is enforced at schema save time:
11553
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
11554
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
11555
+ * - relation attributes: `relation_set`
11556
+ *
11557
+ */
11558
+ FuzzyConfig;
11559
+ };
9902
11560
  type: "tags";
9903
11561
  options?: string[];
9904
11562
  suggestions?: string[];
@@ -10256,6 +11914,45 @@ declare namespace Components {
10256
11914
  */
10257
11915
  repeatable?: boolean;
10258
11916
  has_primary?: boolean;
11917
+ /**
11918
+ * Controls how updates to this attribute are handled.
11919
+ * - `direct` (default): update is applied immediately. No changeset created.
11920
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
11921
+ * - `approval`: update creates a changeset, requires explicit human approval.
11922
+ *
11923
+ */
11924
+ edit_mode?: "direct" | "external" | "approval";
11925
+ /**
11926
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
11927
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
11928
+ * they are ignored for `approval` mode, which resolves via explicit
11929
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
11930
+ *
11931
+ */
11932
+ edit_mode_config?: {
11933
+ match_strategy?: /**
11934
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
11935
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
11936
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
11937
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
11938
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
11939
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
11940
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
11941
+ *
11942
+ */
11943
+ MatchStrategy;
11944
+ fuzzy_config?: /**
11945
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
11946
+ * Not used for `edit_mode: approval`.
11947
+ *
11948
+ * Type compatibility with attribute shape is enforced at schema save time:
11949
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
11950
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
11951
+ * - relation attributes: `relation_set`
11952
+ *
11953
+ */
11954
+ FuzzyConfig;
11955
+ };
10259
11956
  type: "string";
10260
11957
  multiline?: boolean;
10261
11958
  rich_text?: boolean;
@@ -10424,6 +12121,45 @@ declare namespace Components {
10424
12121
  */
10425
12122
  repeatable?: boolean;
10426
12123
  has_primary?: boolean;
12124
+ /**
12125
+ * Controls how updates to this attribute are handled.
12126
+ * - `direct` (default): update is applied immediately. No changeset created.
12127
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
12128
+ * - `approval`: update creates a changeset, requires explicit human approval.
12129
+ *
12130
+ */
12131
+ edit_mode?: "direct" | "external" | "approval";
12132
+ /**
12133
+ * Configuration for auto-clear matching on `edit_mode: external` attributes.
12134
+ * `match_strategy` and `fuzzy_config` are only consulted for `external` mode —
12135
+ * they are ignored for `approval` mode, which resolves via explicit
12136
+ * `:apply` / `:dismiss` endpoints and never auto-clears.
12137
+ *
12138
+ */
12139
+ edit_mode_config?: {
12140
+ match_strategy?: /**
12141
+ * Strategy for auto-clearing a changeset on an `edit_mode: external` attribute
12142
+ * when a direct write (`?direct=true`) arrives — typically an ERP inbound sync.
12143
+ * Ignored for `edit_mode: approval`, which does not auto-clear and is resolved
12144
+ * exclusively via the `:apply` / `:dismiss` changeset endpoints.
12145
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
12146
+ * - `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.
12147
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
12148
+ *
12149
+ */
12150
+ MatchStrategy;
12151
+ fuzzy_config?: /**
12152
+ * Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.
12153
+ * Not used for `edit_mode: approval`.
12154
+ *
12155
+ * Type compatibility with attribute shape is enforced at schema save time:
12156
+ * - scalar string attributes: `suffix`, `digits_only`, `regex`
12157
+ * - repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`
12158
+ * - relation attributes: `relation_set`
12159
+ *
12160
+ */
12161
+ FuzzyConfig;
12162
+ };
10427
12163
  type: "relation_user";
10428
12164
  multiple?: boolean;
10429
12165
  }
@@ -10469,6 +12205,81 @@ declare namespace Paths {
10469
12205
  Components.Responses.NotFoundError;
10470
12206
  }
10471
12207
  }
12208
+ namespace ApplyChangeset {
12209
+ namespace Parameters {
12210
+ export type Attribute = string;
12211
+ export type Id = Components.Schemas.EntityId /* uuid */;
12212
+ export type Slug = /**
12213
+ * URL-friendly identifier for the entity schema
12214
+ * example:
12215
+ * contact
12216
+ */
12217
+ Components.Schemas.EntitySlug /* ^[a-zA-Z0-9_-]+$ */;
12218
+ }
12219
+ export interface PathParameters {
12220
+ slug: Parameters.Slug;
12221
+ id: Parameters.Id;
12222
+ attribute: Parameters.Attribute;
12223
+ }
12224
+ namespace Responses {
12225
+ export type $200 = /**
12226
+ * example:
12227
+ * {
12228
+ * "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
12229
+ * "_org": "123",
12230
+ * "_owners": [
12231
+ * {
12232
+ * "org_id": "123",
12233
+ * "user_id": "123"
12234
+ * },
12235
+ * {
12236
+ * "org_id": "123",
12237
+ * "user_id": "123"
12238
+ * }
12239
+ * ],
12240
+ * "_schema": "contact",
12241
+ * "_tags": [
12242
+ * "example",
12243
+ * "mock",
12244
+ * "example",
12245
+ * "mock"
12246
+ * ],
12247
+ * "_created_at": "2021-02-09T12:41:43.662Z",
12248
+ * "_updated_at": "2021-02-09T12:41:43.662Z",
12249
+ * "_acl": {
12250
+ * "view": [
12251
+ * "org:456",
12252
+ * "org:789",
12253
+ * "org:456",
12254
+ * "org:789"
12255
+ * ],
12256
+ * "edit": [
12257
+ * "org:456",
12258
+ * "org:456"
12259
+ * ],
12260
+ * "delete": [
12261
+ * "org:456",
12262
+ * "org:456"
12263
+ * ]
12264
+ * },
12265
+ * "_manifest": [
12266
+ * "123e4567-e89b-12d3-a456-426614174000",
12267
+ * "123e4567-e89b-12d3-a456-426614174000"
12268
+ * ]
12269
+ * }
12270
+ */
12271
+ Components.Schemas.EntityItem;
12272
+ export type $404 = /**
12273
+ * A generic error returned by the API
12274
+ * example:
12275
+ * {
12276
+ * "status": 404,
12277
+ * "error": "Not Found"
12278
+ * }
12279
+ */
12280
+ Components.Responses.NotFoundError;
12281
+ }
12282
+ }
10472
12283
  namespace AttachActivity {
10473
12284
  namespace Parameters {
10474
12285
  export type Entities = Components.Schemas.EntityId /* uuid */[];
@@ -11235,6 +13046,87 @@ declare namespace Paths {
11235
13046
  Components.Responses.TooManyRequestsError;
11236
13047
  }
11237
13048
  }
13049
+ namespace DismissChangeset {
13050
+ namespace Parameters {
13051
+ export type Attribute = string;
13052
+ export type Id = Components.Schemas.EntityId /* uuid */;
13053
+ export type Slug = /**
13054
+ * URL-friendly identifier for the entity schema
13055
+ * example:
13056
+ * contact
13057
+ */
13058
+ Components.Schemas.EntitySlug /* ^[a-zA-Z0-9_-]+$ */;
13059
+ }
13060
+ export interface PathParameters {
13061
+ slug: Parameters.Slug;
13062
+ id: Parameters.Id;
13063
+ attribute: Parameters.Attribute;
13064
+ }
13065
+ export interface RequestBody {
13066
+ /**
13067
+ * Optional reason for dismissing the changeset
13068
+ */
13069
+ reason?: string;
13070
+ }
13071
+ namespace Responses {
13072
+ export type $200 = /**
13073
+ * example:
13074
+ * {
13075
+ * "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
13076
+ * "_org": "123",
13077
+ * "_owners": [
13078
+ * {
13079
+ * "org_id": "123",
13080
+ * "user_id": "123"
13081
+ * },
13082
+ * {
13083
+ * "org_id": "123",
13084
+ * "user_id": "123"
13085
+ * }
13086
+ * ],
13087
+ * "_schema": "contact",
13088
+ * "_tags": [
13089
+ * "example",
13090
+ * "mock",
13091
+ * "example",
13092
+ * "mock"
13093
+ * ],
13094
+ * "_created_at": "2021-02-09T12:41:43.662Z",
13095
+ * "_updated_at": "2021-02-09T12:41:43.662Z",
13096
+ * "_acl": {
13097
+ * "view": [
13098
+ * "org:456",
13099
+ * "org:789",
13100
+ * "org:456",
13101
+ * "org:789"
13102
+ * ],
13103
+ * "edit": [
13104
+ * "org:456",
13105
+ * "org:456"
13106
+ * ],
13107
+ * "delete": [
13108
+ * "org:456",
13109
+ * "org:456"
13110
+ * ]
13111
+ * },
13112
+ * "_manifest": [
13113
+ * "123e4567-e89b-12d3-a456-426614174000",
13114
+ * "123e4567-e89b-12d3-a456-426614174000"
13115
+ * ]
13116
+ * }
13117
+ */
13118
+ Components.Schemas.EntityItem;
13119
+ export type $404 = /**
13120
+ * A generic error returned by the API
13121
+ * example:
13122
+ * {
13123
+ * "status": 404,
13124
+ * "error": "Not Found"
13125
+ * }
13126
+ */
13127
+ Components.Responses.NotFoundError;
13128
+ }
13129
+ }
11238
13130
  namespace ExportEntities {
11239
13131
  namespace Parameters {
11240
13132
  export type IsTemplate = /* Pass 'true' to generate import template */ Components.Schemas.IsTemplate;
@@ -11542,6 +13434,7 @@ declare namespace Paths {
11542
13434
  }
11543
13435
  namespace GetEntityV2 {
11544
13436
  namespace Parameters {
13437
+ export type ApplyChangesets = boolean;
11545
13438
  export type Fields = /**
11546
13439
  * List of entity fields to include or exclude in the response
11547
13440
  *
@@ -11576,6 +13469,7 @@ declare namespace Paths {
11576
13469
  export interface QueryParameters {
11577
13470
  hydrate?: Parameters.Hydrate;
11578
13471
  fields?: Parameters.Fields;
13472
+ apply_changesets?: Parameters.ApplyChangesets;
11579
13473
  }
11580
13474
  namespace Responses {
11581
13475
  export type $200 = /**
@@ -12480,7 +14374,7 @@ declare namespace Paths {
12480
14374
  /**
12481
14375
  * ISO 8601 timestamp to filter jobs created after this time (e.g., 2023-01-01T00:00:00Z).
12482
14376
  * example:
12483
- * 2023-01-01T00:00:00.000Z
14377
+ * 2023-01-01T00:00:00Z
12484
14378
  */
12485
14379
  export type CreatedAfter = string; // date-time
12486
14380
  /**
@@ -12506,7 +14400,7 @@ declare namespace Paths {
12506
14400
  created_after?: /**
12507
14401
  * ISO 8601 timestamp to filter jobs created after this time (e.g., 2023-01-01T00:00:00Z).
12508
14402
  * example:
12509
- * 2023-01-01T00:00:00.000Z
14403
+ * 2023-01-01T00:00:00Z
12510
14404
  */
12511
14405
  Parameters.CreatedAfter /* date-time */;
12512
14406
  sort_pending_first?: /* When true, sorts PENDING status jobs to the top of the results. */ Parameters.SortPendingFirst;
@@ -12593,6 +14487,33 @@ declare namespace Paths {
12593
14487
  }
12594
14488
  }
12595
14489
  }
14490
+ namespace ListChangesets {
14491
+ namespace Parameters {
14492
+ export type Id = Components.Schemas.EntityId /* uuid */;
14493
+ export type Slug = /**
14494
+ * URL-friendly identifier for the entity schema
14495
+ * example:
14496
+ * contact
14497
+ */
14498
+ Components.Schemas.EntitySlug /* ^[a-zA-Z0-9_-]+$ */;
14499
+ }
14500
+ export interface PathParameters {
14501
+ slug: Parameters.Slug;
14502
+ id: Parameters.Id;
14503
+ }
14504
+ namespace Responses {
14505
+ export type $200 = /* Map of attribute name to pending changeset. At most one changeset per attribute. */ Components.Schemas.ChangesetMap;
14506
+ export type $404 = /**
14507
+ * A generic error returned by the API
14508
+ * example:
14509
+ * {
14510
+ * "status": 404,
14511
+ * "error": "Not Found"
14512
+ * }
14513
+ */
14514
+ Components.Responses.NotFoundError;
14515
+ }
14516
+ }
12596
14517
  namespace ListEntities {
12597
14518
  export type RequestBody = Components.Schemas.EntityListParams;
12598
14519
  namespace Responses {
@@ -12753,6 +14674,7 @@ declare namespace Paths {
12753
14674
  */
12754
14675
  Components.Schemas.ActivityId /* ulid ^01[0-9a-zA-Z]{24}$ */ | ("" | null);
12755
14676
  export type Async = boolean;
14677
+ export type Direct = boolean;
12756
14678
  export type DryRun = boolean;
12757
14679
  export type FillActivity = boolean;
12758
14680
  export type Id = Components.Schemas.EntityId /* uuid */;
@@ -12774,6 +14696,7 @@ declare namespace Paths {
12774
14696
  dry_run?: Parameters.DryRun;
12775
14697
  async?: Parameters.Async;
12776
14698
  validate?: Parameters.Validate;
14699
+ direct?: Parameters.Direct;
12777
14700
  }
12778
14701
  export type RequestBody = /**
12779
14702
  * example:
@@ -13401,6 +15324,7 @@ declare namespace Paths {
13401
15324
  */
13402
15325
  Components.Schemas.ActivityId /* ulid ^01[0-9a-zA-Z]{24}$ */ | ("" | null);
13403
15326
  export type Async = boolean;
15327
+ export type Direct = boolean;
13404
15328
  export type FillActivity = boolean;
13405
15329
  export type Id = Components.Schemas.EntityId /* uuid */;
13406
15330
  export type Slug = /**
@@ -13420,6 +15344,7 @@ declare namespace Paths {
13420
15344
  fill_activity?: Parameters.FillActivity;
13421
15345
  async?: Parameters.Async;
13422
15346
  validate?: Parameters.Validate;
15347
+ direct?: Parameters.Direct;
13423
15348
  }
13424
15349
  export type RequestBody = /**
13425
15350
  * example:
@@ -13928,6 +15853,7 @@ declare namespace Paths {
13928
15853
  }
13929
15854
  }
13930
15855
 
15856
+
13931
15857
  interface OperationMethods {
13932
15858
  /**
13933
15859
  * listSchemas - listSchemas
@@ -14498,6 +16424,39 @@ interface OperationMethods {
14498
16424
  data?: any,
14499
16425
  config?: AxiosRequestConfig
14500
16426
  ): OperationResponse<Paths.AttachActivity.Responses.$200>
16427
+ /**
16428
+ * applyChangeset - applyChangeset
16429
+ *
16430
+ * Applies the proposed value from a pending changeset to the entity attribute
16431
+ * and removes the changeset. Used for human approval of pending changes.
16432
+ *
16433
+ */
16434
+ 'applyChangeset'(
16435
+ parameters?: Parameters<Paths.ApplyChangeset.PathParameters> | null,
16436
+ data?: any,
16437
+ config?: AxiosRequestConfig
16438
+ ): OperationResponse<Paths.ApplyChangeset.Responses.$200>
16439
+ /**
16440
+ * dismissChangeset - dismissChangeset
16441
+ *
16442
+ * Removes a pending changeset without applying it. The attribute value remains unchanged.
16443
+ *
16444
+ */
16445
+ 'dismissChangeset'(
16446
+ parameters?: Parameters<Paths.DismissChangeset.PathParameters> | null,
16447
+ data?: Paths.DismissChangeset.RequestBody,
16448
+ config?: AxiosRequestConfig
16449
+ ): OperationResponse<Paths.DismissChangeset.Responses.$200>
16450
+ /**
16451
+ * listChangesets - listChangesets
16452
+ *
16453
+ * Returns all pending changesets for an entity.
16454
+ */
16455
+ 'listChangesets'(
16456
+ parameters?: Parameters<Paths.ListChangesets.PathParameters> | null,
16457
+ data?: any,
16458
+ config?: AxiosRequestConfig
16459
+ ): OperationResponse<Paths.ListChangesets.Responses.$200>
14501
16460
  /**
14502
16461
  * getEntityActivityFeed - getEntityActivityFeed
14503
16462
  *
@@ -15694,6 +17653,45 @@ interface PathsDictionary {
15694
17653
  config?: AxiosRequestConfig
15695
17654
  ): OperationResponse<Paths.AttachActivity.Responses.$200>
15696
17655
  }
17656
+ ['/v1/entity/{slug}/{id}/changesets/{attribute}:apply']: {
17657
+ /**
17658
+ * applyChangeset - applyChangeset
17659
+ *
17660
+ * Applies the proposed value from a pending changeset to the entity attribute
17661
+ * and removes the changeset. Used for human approval of pending changes.
17662
+ *
17663
+ */
17664
+ 'post'(
17665
+ parameters?: Parameters<Paths.ApplyChangeset.PathParameters> | null,
17666
+ data?: any,
17667
+ config?: AxiosRequestConfig
17668
+ ): OperationResponse<Paths.ApplyChangeset.Responses.$200>
17669
+ }
17670
+ ['/v1/entity/{slug}/{id}/changesets/{attribute}:dismiss']: {
17671
+ /**
17672
+ * dismissChangeset - dismissChangeset
17673
+ *
17674
+ * Removes a pending changeset without applying it. The attribute value remains unchanged.
17675
+ *
17676
+ */
17677
+ 'post'(
17678
+ parameters?: Parameters<Paths.DismissChangeset.PathParameters> | null,
17679
+ data?: Paths.DismissChangeset.RequestBody,
17680
+ config?: AxiosRequestConfig
17681
+ ): OperationResponse<Paths.DismissChangeset.Responses.$200>
17682
+ }
17683
+ ['/v1/entity/{slug}/{id}/changesets']: {
17684
+ /**
17685
+ * listChangesets - listChangesets
17686
+ *
17687
+ * Returns all pending changesets for an entity.
17688
+ */
17689
+ 'get'(
17690
+ parameters?: Parameters<Paths.ListChangesets.PathParameters> | null,
17691
+ data?: any,
17692
+ config?: AxiosRequestConfig
17693
+ ): OperationResponse<Paths.ListChangesets.Responses.$200>
17694
+ }
15697
17695
  ['/v1/entity/{slug}/{id}/activity']: {
15698
17696
  /**
15699
17697
  * getEntityActivityFeed - getEntityActivityFeed
@@ -16338,6 +18336,7 @@ interface PathsDictionary {
16338
18336
 
16339
18337
  type Client = OpenAPIClient<OperationMethods, PathsDictionary>
16340
18338
 
18339
+
16341
18340
  type Activity = Components.Schemas.Activity;
16342
18341
  type ActivityCallerContext = Components.Schemas.ActivityCallerContext;
16343
18342
  type ActivityId = Components.Schemas.ActivityId;
@@ -16353,6 +18352,9 @@ type BaseAttribute = Components.Schemas.BaseAttribute;
16353
18352
  type BaseEntity = Components.Schemas.BaseEntity;
16354
18353
  type BlueprintEntityId = Components.Schemas.BlueprintEntityId;
16355
18354
  type BooleanAttribute = Components.Schemas.BooleanAttribute;
18355
+ type Changeset = Components.Schemas.Changeset;
18356
+ type ChangesetCreator = Components.Schemas.ChangesetCreator;
18357
+ type ChangesetMap = Components.Schemas.ChangesetMap;
16356
18358
  type ClassificationId = Components.Schemas.ClassificationId;
16357
18359
  type ClassificationIdOrPattern = Components.Schemas.ClassificationIdOrPattern;
16358
18360
  type ClassificationSlug = Components.Schemas.ClassificationSlug;
@@ -16364,6 +18366,7 @@ type CurrencyAttribute = Components.Schemas.CurrencyAttribute;
16364
18366
  type DateAttribute = Components.Schemas.DateAttribute;
16365
18367
  type DefaultAddressFields = Components.Schemas.DefaultAddressFields;
16366
18368
  type ESClusterAssignment = Components.Schemas.ESClusterAssignment;
18369
+ type EditModeConfig = Components.Schemas.EditModeConfig;
16367
18370
  type EmailAttribute = Components.Schemas.EmailAttribute;
16368
18371
  type Entity = Components.Schemas.Entity;
16369
18372
  type EntityAcl = Components.Schemas.EntityAcl;
@@ -16403,6 +18406,7 @@ type ErrorObject = Components.Schemas.ErrorObject;
16403
18406
  type ExportJobId = Components.Schemas.ExportJobId;
16404
18407
  type FieldsParam = Components.Schemas.FieldsParam;
16405
18408
  type FileAttribute = Components.Schemas.FileAttribute;
18409
+ type FuzzyConfig = Components.Schemas.FuzzyConfig;
16406
18410
  type GenerateEntityTableAIFiltersRequest = Components.Schemas.GenerateEntityTableAIFiltersRequest;
16407
18411
  type GenerateEntityTableAIFiltersResponse = Components.Schemas.GenerateEntityTableAIFiltersResponse;
16408
18412
  type GetRelatedEntitiesCount = Components.Schemas.GetRelatedEntitiesCount;
@@ -16425,6 +18429,7 @@ type IsTemplate = Components.Schemas.IsTemplate;
16425
18429
  type Language = Components.Schemas.Language;
16426
18430
  type LinkAttribute = Components.Schemas.LinkAttribute;
16427
18431
  type ListSavedViewsResults = Components.Schemas.ListSavedViewsResults;
18432
+ type MatchStrategy = Components.Schemas.MatchStrategy;
16428
18433
  type MessageEmailAddressAttribute = Components.Schemas.MessageEmailAddressAttribute;
16429
18434
  type MultiSelectAttribute = Components.Schemas.MultiSelectAttribute;
16430
18435
  type NullableEntity = Components.Schemas.NullableEntity;
@@ -16471,4 +18476,4 @@ type TaxonomySlug = Components.Schemas.TaxonomySlug;
16471
18476
  type TextAttribute = Components.Schemas.TextAttribute;
16472
18477
  type UserRelationAttribute = Components.Schemas.UserRelationAttribute;
16473
18478
 
16474
- export { type EntitySearchResults as $, type Activity as A, type BaseActivityItem as B, type Client as C, type DateAttribute as D, type ESClusterAssignment as E, type EntityAcl as F, type EntityAction as G, type EntityCapability as H, type EntityCapabilityWithCompositeID as I, type EntityDefaultCreate as J, type EntityDefaultEdit as K, type EntityDefaultTable as L, type EntityId as M, type EntityImportParams as N, type OperationMethods as O, Paths as P, type EntityItem as Q, type EntityListParams as R, type EntityOperation as S, type EntityOwner as T, type EntitySchema as U, type EntitySchemaGroup as V, type EntitySchemaGroupWithCompositeID as W, type EntitySchemaItem as X, type EntitySearchIncludeDeletedParam as Y, type EntitySearchOptions as Z, type EntitySearchParams as _, Components as a, type SearchMappings as a$, type EntitySlug as a0, type EntityTableFilterOption as a1, type EntityTableFilterSearch as a2, type EntityValidationError as a3, type EntityValidationResult as a4, type EntityValidationResultError as a5, type EntityValidationResultSuccess as a6, type EntityValidationV2Error as a7, type EntityValidationV2Result as a8, type EntityValidationV2ResultError as a9, type LinkAttribute as aA, type ListSavedViewsResults as aB, type MessageEmailAddressAttribute as aC, type MultiSelectAttribute as aD, type NullableEntity as aE, type NumberAttribute as aF, type OrderedListAttribute as aG, type PartnerOrganisationAttribute as aH, type PartnerStatusAttribute as aI, type PaymentAttribute as aJ, type PaymentMethodRelationAttribute as aK, type PhoneAttribute as aL, type PortalAccessAttribute as aM, type PriceComponentAttribute as aN, type PurposeAttribute as aO, type RedirectEntityView as aP, type RelationAttribute as aQ, type RelationEntity as aR, type RelationItem as aS, type RepeatableAttribute as aT, type SavedView as aU, type SavedViewId as aV, type SavedViewItem as aW, type SavedViewPartial as aX, type SchemaId as aY, type SearchFilter as aZ, type SearchFilterValue as a_, type EntityValidationV2ResultSuccess as aa, type EntityViewDisabled as ab, type ErrorObject as ac, type ExportJobId as ad, type FieldsParam as ae, type FileAttribute as af, type GenerateEntityTableAIFiltersRequest as ag, type GenerateEntityTableAIFiltersResponse as ah, GetRelatedEntitiesCount as ai, type GetRelationsResp as aj, type GetRelationsRespWithPagination as ak, type GraphDefinition as al, type GraphEdge as am, type GraphNode as an, type GraphQueryRequest as ao, type GraphQueryResponse as ap, type GraphSeed as aq, type GroupHeadline as ar, type GroupHeadlineWithCompositeID as as, type HydratedEntity as at, type HydratedEntityItem as au, type InternalAttribute as av, type InternalUserAttribute as aw, type InvitationEmailAttribute as ax, type IsTemplate as ay, type Language as az, type PathsDictionary as b, type SelectAttribute as b0, type SequenceAttribute as b1, type SettingFlag as b2, type StatusAttribute as b3, type SummaryAttribute as b4, type SummaryField as b5, type TableAttribute as b6, type TagsAttribute as b7, type Taxonomy as b8, type TaxonomyBulkJob as b9, type TaxonomyBulkJobActionType as ba, type TaxonomyBulkJobStatus as bb, type TaxonomyBulkJobTriggerResponse as bc, type TaxonomyClassification as bd, type TaxonomyLocationId as be, type TaxonomySearchIncludeArchivedParam as bf, type TaxonomySlug as bg, type TextAttribute as bh, type UserRelationAttribute as bi, type ActivityCallerContext as c, type ActivityId as d, type ActivityItem as e, type ActivityType as f, type AddressAttribute as g, type AddressRelationAttribute as h, type Attribute as i, type AttributeWithCompositeID as j, type AutomationAttribute as k, type BaseAttribute as l, type BaseEntity as m, type BlueprintEntityId as n, type BooleanAttribute as o, type ClassificationId as p, type ClassificationIdOrPattern as q, type ClassificationSlug as r, type ClassificationsUpdate as s, type ComputedAttribute as t, type ConsentAttribute as u, type CountryAttribute as v, type CurrencyAttribute as w, type DefaultAddressFields as x, type EmailAttribute as y, type Entity as z };
18479
+ export { type EntitySchemaItem as $, type Activity as A, type BaseActivityItem as B, type Client as C, type DateAttribute as D, type DefaultAddressFields as E, type ESClusterAssignment as F, type EditModeConfig as G, type EmailAttribute as H, type Entity as I, type EntityAcl as J, type EntityAction as K, type EntityCapability as L, type EntityCapabilityWithCompositeID as M, type EntityDefaultCreate as N, type OperationMethods as O, Paths as P, type EntityDefaultEdit as Q, type EntityDefaultTable as R, type EntityId as S, type EntityImportParams as T, type EntityItem as U, type EntityListParams as V, type EntityOperation as W, type EntityOwner as X, type EntitySchema as Y, type EntitySchemaGroup as Z, type EntitySchemaGroupWithCompositeID as _, Components as a, type SavedViewId as a$, type EntitySearchIncludeDeletedParam as a0, type EntitySearchOptions as a1, type EntitySearchParams as a2, type EntitySearchResults as a3, type EntitySlug as a4, type EntityTableFilterOption as a5, type EntityTableFilterSearch as a6, type EntityValidationError as a7, type EntityValidationResult as a8, type EntityValidationResultError as a9, type InternalAttribute as aA, type InternalUserAttribute as aB, type InvitationEmailAttribute as aC, type IsTemplate as aD, type Language as aE, type LinkAttribute as aF, type ListSavedViewsResults as aG, type MatchStrategy as aH, type MessageEmailAddressAttribute as aI, type MultiSelectAttribute as aJ, type NullableEntity as aK, type NumberAttribute as aL, type OrderedListAttribute as aM, type PartnerOrganisationAttribute as aN, type PartnerStatusAttribute as aO, type PaymentAttribute as aP, type PaymentMethodRelationAttribute as aQ, type PhoneAttribute as aR, type PortalAccessAttribute as aS, type PriceComponentAttribute as aT, type PurposeAttribute as aU, type RedirectEntityView as aV, type RelationAttribute as aW, type RelationEntity as aX, type RelationItem as aY, type RepeatableAttribute as aZ, type SavedView as a_, type EntityValidationResultSuccess as aa, type EntityValidationV2Error as ab, type EntityValidationV2Result as ac, type EntityValidationV2ResultError as ad, type EntityValidationV2ResultSuccess as ae, type EntityViewDisabled as af, type ErrorObject as ag, type ExportJobId as ah, type FieldsParam as ai, type FileAttribute as aj, type FuzzyConfig as ak, type GenerateEntityTableAIFiltersRequest as al, type GenerateEntityTableAIFiltersResponse as am, GetRelatedEntitiesCount as an, type GetRelationsResp as ao, type GetRelationsRespWithPagination as ap, type GraphDefinition as aq, type GraphEdge as ar, type GraphNode as as, type GraphQueryRequest as at, type GraphQueryResponse as au, type GraphSeed as av, type GroupHeadline as aw, type GroupHeadlineWithCompositeID as ax, type HydratedEntity as ay, type HydratedEntityItem as az, type PathsDictionary as b, type SavedViewItem as b0, type SavedViewPartial as b1, type SchemaId as b2, type SearchFilter as b3, type SearchFilterValue as b4, type SearchMappings as b5, type SelectAttribute as b6, type SequenceAttribute as b7, type SettingFlag as b8, type StatusAttribute as b9, type SummaryAttribute as ba, type SummaryField as bb, type TableAttribute as bc, type TagsAttribute as bd, type Taxonomy as be, type TaxonomyBulkJob as bf, type TaxonomyBulkJobActionType as bg, type TaxonomyBulkJobStatus as bh, type TaxonomyBulkJobTriggerResponse as bi, type TaxonomyClassification as bj, type TaxonomyLocationId as bk, type TaxonomySearchIncludeArchivedParam as bl, type TaxonomySlug as bm, type TextAttribute as bn, type UserRelationAttribute as bo, type ActivityCallerContext as c, type ActivityId as d, type ActivityItem as e, type ActivityType as f, type AddressAttribute as g, type AddressRelationAttribute as h, type Attribute as i, type AttributeWithCompositeID as j, type AutomationAttribute as k, type BaseAttribute as l, type BaseEntity as m, type BlueprintEntityId as n, type BooleanAttribute as o, type Changeset as p, type ChangesetCreator as q, type ChangesetMap as r, type ClassificationId as s, type ClassificationIdOrPattern as t, type ClassificationSlug as u, type ClassificationsUpdate as v, type ComputedAttribute as w, type ConsentAttribute as x, type CountryAttribute as y, type CurrencyAttribute as z };