@epilot/sdk 2.9.1 → 2.9.3

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 (145) hide show
  1. package/definitions/ai-agents-runtime.json +1 -1
  2. package/definitions/ai-agents.json +971 -98
  3. package/definitions/integration-toolkit-runtime.json +1 -1
  4. package/definitions/integration-toolkit.json +557 -1
  5. package/dist/ai-agents-D6C5TXLD.cjs +7 -0
  6. package/dist/ai-agents-Y6PH53PH.js +7 -0
  7. package/dist/{ai-agents-runtime-25YRUJHI.js → ai-agents-runtime-EA23HCCP.js} +1 -1
  8. package/dist/{ai-agents-runtime-TILIO3UM.cjs → ai-agents-runtime-WZ3EI3NH.cjs} +2 -2
  9. package/dist/{ai-agents.d-CC5IjXrs.d.cts → ai-agents.d-D-7bTH-9.d.cts} +506 -5
  10. package/dist/{ai-agents.d-CC5IjXrs.d.ts → ai-agents.d-D-7bTH-9.d.ts} +506 -5
  11. package/dist/apis/access-token.cjs +6 -6
  12. package/dist/apis/access-token.js +1 -1
  13. package/dist/apis/address-suggestions.cjs +6 -6
  14. package/dist/apis/address-suggestions.js +1 -1
  15. package/dist/apis/address.cjs +6 -6
  16. package/dist/apis/address.js +1 -1
  17. package/dist/apis/ai-agents.cjs +8 -8
  18. package/dist/apis/ai-agents.d.cts +2 -2
  19. package/dist/apis/ai-agents.d.ts +2 -2
  20. package/dist/apis/ai-agents.js +2 -2
  21. package/dist/apis/app.cjs +6 -6
  22. package/dist/apis/app.js +1 -1
  23. package/dist/apis/audit-logs.cjs +6 -6
  24. package/dist/apis/audit-logs.js +1 -1
  25. package/dist/apis/automation.cjs +6 -6
  26. package/dist/apis/automation.js +1 -1
  27. package/dist/apis/billing.cjs +6 -6
  28. package/dist/apis/billing.js +1 -1
  29. package/dist/apis/blueprint-manifest.cjs +6 -6
  30. package/dist/apis/blueprint-manifest.js +1 -1
  31. package/dist/apis/calendar.cjs +6 -6
  32. package/dist/apis/calendar.js +1 -1
  33. package/dist/apis/configuration-hub.cjs +6 -6
  34. package/dist/apis/configuration-hub.js +1 -1
  35. package/dist/apis/consent.cjs +6 -6
  36. package/dist/apis/consent.js +1 -1
  37. package/dist/apis/customer-portal.cjs +6 -6
  38. package/dist/apis/customer-portal.js +1 -1
  39. package/dist/apis/dashboard.cjs +6 -6
  40. package/dist/apis/dashboard.js +1 -1
  41. package/dist/apis/data-governance.cjs +6 -6
  42. package/dist/apis/data-governance.js +1 -1
  43. package/dist/apis/deduplication.cjs +6 -6
  44. package/dist/apis/deduplication.js +1 -1
  45. package/dist/apis/design.cjs +6 -6
  46. package/dist/apis/design.js +1 -1
  47. package/dist/apis/document.cjs +6 -6
  48. package/dist/apis/document.js +1 -1
  49. package/dist/apis/email-settings.cjs +6 -6
  50. package/dist/apis/email-settings.js +1 -1
  51. package/dist/apis/email-template.cjs +6 -6
  52. package/dist/apis/email-template.js +1 -1
  53. package/dist/apis/entity-mapping.cjs +6 -6
  54. package/dist/apis/entity-mapping.js +1 -1
  55. package/dist/apis/entity.cjs +6 -6
  56. package/dist/apis/entity.js +1 -1
  57. package/dist/apis/environments.cjs +6 -6
  58. package/dist/apis/environments.js +1 -1
  59. package/dist/apis/event-catalog.cjs +6 -6
  60. package/dist/apis/event-catalog.js +1 -1
  61. package/dist/apis/file.cjs +6 -6
  62. package/dist/apis/file.js +1 -1
  63. package/dist/apis/iban.cjs +6 -6
  64. package/dist/apis/iban.js +1 -1
  65. package/dist/apis/integration-toolkit.cjs +8 -8
  66. package/dist/apis/integration-toolkit.d.cts +2 -2
  67. package/dist/apis/integration-toolkit.d.ts +2 -2
  68. package/dist/apis/integration-toolkit.js +2 -2
  69. package/dist/apis/journey.cjs +6 -6
  70. package/dist/apis/journey.js +1 -1
  71. package/dist/apis/kanban.cjs +6 -6
  72. package/dist/apis/kanban.js +1 -1
  73. package/dist/apis/message.cjs +6 -6
  74. package/dist/apis/message.js +1 -1
  75. package/dist/apis/metering.cjs +6 -6
  76. package/dist/apis/metering.js +1 -1
  77. package/dist/apis/notes.cjs +6 -6
  78. package/dist/apis/notes.js +1 -1
  79. package/dist/apis/notification.cjs +6 -6
  80. package/dist/apis/notification.js +1 -1
  81. package/dist/apis/organization.cjs +6 -6
  82. package/dist/apis/organization.js +1 -1
  83. package/dist/apis/partner-directory.cjs +6 -6
  84. package/dist/apis/partner-directory.js +1 -1
  85. package/dist/apis/permissions.cjs +6 -6
  86. package/dist/apis/permissions.js +1 -1
  87. package/dist/apis/pricing-tier.cjs +6 -6
  88. package/dist/apis/pricing-tier.js +1 -1
  89. package/dist/apis/pricing.cjs +6 -6
  90. package/dist/apis/pricing.js +1 -1
  91. package/dist/apis/purpose.cjs +6 -6
  92. package/dist/apis/purpose.js +1 -1
  93. package/dist/apis/query.cjs +6 -6
  94. package/dist/apis/query.js +1 -1
  95. package/dist/apis/sandbox.cjs +6 -6
  96. package/dist/apis/sandbox.js +1 -1
  97. package/dist/apis/sharing.cjs +6 -6
  98. package/dist/apis/sharing.js +1 -1
  99. package/dist/apis/snapshot.cjs +6 -6
  100. package/dist/apis/snapshot.js +1 -1
  101. package/dist/apis/submission.cjs +6 -6
  102. package/dist/apis/submission.js +1 -1
  103. package/dist/apis/target.cjs +6 -6
  104. package/dist/apis/target.js +1 -1
  105. package/dist/apis/targeting.cjs +6 -6
  106. package/dist/apis/targeting.js +1 -1
  107. package/dist/apis/template-variables.cjs +6 -6
  108. package/dist/apis/template-variables.js +1 -1
  109. package/dist/apis/user.cjs +6 -6
  110. package/dist/apis/user.js +1 -1
  111. package/dist/apis/validation-rules.cjs +6 -6
  112. package/dist/apis/validation-rules.js +1 -1
  113. package/dist/apis/webhooks.cjs +6 -6
  114. package/dist/apis/webhooks.js +1 -1
  115. package/dist/apis/workflow-definition.cjs +6 -6
  116. package/dist/apis/workflow-definition.js +1 -1
  117. package/dist/apis/workflow.cjs +6 -6
  118. package/dist/apis/workflow.js +1 -1
  119. package/dist/chunk-3CNCQJOJ.js +14 -0
  120. package/dist/chunk-BRWY3QHG.js +14 -0
  121. package/dist/{chunk-6V3NYADA.cjs → chunk-DCHUVJL4.cjs} +4 -4
  122. package/dist/chunk-ILIHCSNO.cjs +14 -0
  123. package/dist/{chunk-QGP5WMHK.js → chunk-MBVZHZAH.js} +4 -4
  124. package/dist/chunk-YEBEA6XU.cjs +14 -0
  125. package/dist/index.cjs +12 -12
  126. package/dist/index.d.cts +2 -2
  127. package/dist/index.d.ts +2 -2
  128. package/dist/index.js +3 -3
  129. package/dist/integration-toolkit-TL3BQ6FJ.cjs +7 -0
  130. package/dist/integration-toolkit-X3Y4OFVW.js +7 -0
  131. package/dist/{integration-toolkit-runtime-FY7QVFL6.cjs → integration-toolkit-runtime-FR6RZS5O.cjs} +2 -2
  132. package/dist/{integration-toolkit-runtime-HCJ5QLCR.js → integration-toolkit-runtime-I2O6QP5G.js} +1 -1
  133. package/dist/{integration-toolkit.d-BSA9RRdq.d.cts → integration-toolkit.d-DUZ_fiuf.d.cts} +330 -1
  134. package/dist/{integration-toolkit.d-BSA9RRdq.d.ts → integration-toolkit.d-DUZ_fiuf.d.ts} +330 -1
  135. package/docs/ai-agents.md +641 -23
  136. package/docs/integration-toolkit.md +443 -83
  137. package/package.json +1 -1
  138. package/dist/ai-agents-IZWFEUSH.js +0 -7
  139. package/dist/ai-agents-PWHKNRCX.cjs +0 -7
  140. package/dist/chunk-7V7ECXTZ.js +0 -14
  141. package/dist/chunk-FARDEGPH.cjs +0 -14
  142. package/dist/chunk-I53TWOTX.cjs +0 -14
  143. package/dist/chunk-JENQHXFI.js +0 -14
  144. package/dist/integration-toolkit-334NGEOE.cjs +0 -7
  145. package/dist/integration-toolkit-5VCY6CUN.js +0 -7
@@ -50,6 +50,8 @@ const { data } = await integrationToolkitClient.acknowledgeTracking(...)
50
50
  - [`getIntegrationV2`](#getintegrationv2)
51
51
  - [`updateIntegrationV2`](#updateintegrationv2)
52
52
  - [`deleteIntegrationV2`](#deleteintegrationv2)
53
+ - [`listNotificationHistory`](#listnotificationhistory)
54
+ - [`testSendNotification`](#testsendnotification)
53
55
  - [`getSecureProxyWhitelist`](#getsecureproxywhitelist)
54
56
  - [`updateSecureProxyWhitelist`](#updatesecureproxywhitelist)
55
57
  - [`listSecureProxyWhitelistHistory`](#listsecureproxywhitelisthistory)
@@ -84,6 +86,10 @@ const { data } = await integrationToolkitClient.acknowledgeTracking(...)
84
86
  - [`managedCallExecute`](#managedcallexecute)
85
87
 
86
88
  **Schemas**
89
+ - [`NotificationHistoryItem`](#notificationhistoryitem)
90
+ - [`NotificationHistoryResponse`](#notificationhistoryresponse)
91
+ - [`TestNotificationRequest`](#testnotificationrequest)
92
+ - [`TestNotificationResponse`](#testnotificationresponse)
87
93
  - [`ErrorResponseBase`](#errorresponsebase)
88
94
  - [`ErpEvent`](#erpevent)
89
95
  - [`ErpUpdatesEventsV2Request`](#erpupdateseventsv2request)
@@ -100,6 +106,11 @@ const { data } = await integrationToolkitClient.acknowledgeTracking(...)
100
106
  - [`EnvironmentFieldConfig`](#environmentfieldconfig)
101
107
  - [`IntegrationSettings`](#integrationsettings)
102
108
  - [`AutoRefreshSettings`](#autorefreshsettings)
109
+ - [`IntegrationNotificationConfig`](#integrationnotificationconfig)
110
+ - [`NotificationRecipient`](#notificationrecipient)
111
+ - [`NotificationChannelSet`](#notificationchannelset)
112
+ - [`NotificationRule`](#notificationrule)
113
+ - [`NotificationDigestConfig`](#notificationdigestconfig)
103
114
  - [`SetIntegrationAppMappingRequest`](#setintegrationappmappingrequest)
104
115
  - [`DeleteIntegrationAppMappingRequest`](#deleteintegrationappmappingrequest)
105
116
  - [`IntegrationAppMapping`](#integrationappmapping)
@@ -500,52 +511,10 @@ const { data } = await client.listIntegrations()
500
511
  "description": "string",
501
512
  "access_token_ids": ["string"],
502
513
  "app_ids": ["string"],
503
- "environment_config": [
504
- {
505
- "key": "string",
506
- "label": "string",
507
- "type": "String",
508
- "description": "string",
509
- "required": false,
510
- "order": 0
511
- }
512
- ],
513
- "settings": {
514
- "autoRefresh": {
515
- "enabled": false,
516
- "freshnessThresholdMinutes": 1
517
- }
518
- },
514
+ "environment_config": [],
515
+ "settings": {},
519
516
  "integration_type": "erp",
520
- "connector_config": {
521
- "base_url": "string",
522
- "auth": {
523
- "type": "oauth2_client_credentials",
524
- "token_url": "string",
525
- "client_id": "string",
526
- "client_secret": "string",
527
- "scope": "string",
528
- "audience": "string",
529
- "resource": "string",
530
- "body_params": {},
531
- "headers": {},
532
- "query_params": {},
533
- "api_key_header": "string",
534
- "api_key": "string",
535
- "token": "string"
536
- },
537
- "types_versions": [
538
- {
539
- "version": "string",
540
- "package_name": "string",
541
- "generated_at": "1970-01-01T00:00:00.000Z",
542
- "generated_by": "string",
543
- "status": "active"
544
- }
545
- ],
546
- "latest_types_version": "string",
547
- "latest_types_package_name": "string"
548
- },
517
+ "connector_config": {},
549
518
  "protected": true,
550
519
  "_manifest": ["string"]
551
520
  }
@@ -585,6 +554,16 @@ const { data } = await client.createIntegration(
585
554
  autoRefresh: {
586
555
  enabled: false,
587
556
  freshnessThresholdMinutes: 1
557
+ },
558
+ notifications: {
559
+ enabled: true,
560
+ recipients: [ /* ... */ ],
561
+ defaultChannels: { /* ... */ },
562
+ monitoredUseCases: ['string'],
563
+ monitoredCodes: ['string'],
564
+ rules: [ /* ... */ ],
565
+ digest: { /* ... */ },
566
+ muteUntil: '1970-01-01T00:00:00.000Z'
588
567
  }
589
568
  },
590
569
  integration_type: 'erp',
@@ -606,13 +585,7 @@ const { data } = await client.createIntegration(
606
585
  token: 'string'
607
586
  },
608
587
  types_versions: [
609
- {
610
- version: 'string',
611
- package_name: 'string',
612
- generated_at: '1970-01-01T00:00:00.000Z',
613
- generated_by: 'string',
614
- status: 'active'
615
- }
588
+ { /* ... */ }
616
589
  ],
617
590
  latest_types_version: 'string',
618
591
  latest_types_package_name: 'string'
@@ -650,6 +623,16 @@ const { data } = await client.createIntegration(
650
623
  "autoRefresh": {
651
624
  "enabled": false,
652
625
  "freshnessThresholdMinutes": 1
626
+ },
627
+ "notifications": {
628
+ "enabled": true,
629
+ "recipients": [],
630
+ "defaultChannels": {},
631
+ "monitoredUseCases": ["string"],
632
+ "monitoredCodes": ["string"],
633
+ "rules": [],
634
+ "digest": {},
635
+ "muteUntil": "1970-01-01T00:00:00.000Z"
653
636
  }
654
637
  },
655
638
  "integration_type": "erp",
@@ -671,13 +654,7 @@ const { data } = await client.createIntegration(
671
654
  "token": "string"
672
655
  },
673
656
  "types_versions": [
674
- {
675
- "version": "string",
676
- "package_name": "string",
677
- "generated_at": "1970-01-01T00:00:00.000Z",
678
- "generated_by": "string",
679
- "status": "active"
680
- }
657
+ {}
681
658
  ],
682
659
  "latest_types_version": "string",
683
660
  "latest_types_package_name": "string"
@@ -730,6 +707,16 @@ const { data } = await client.getIntegration({
730
707
  "autoRefresh": {
731
708
  "enabled": false,
732
709
  "freshnessThresholdMinutes": 1
710
+ },
711
+ "notifications": {
712
+ "enabled": true,
713
+ "recipients": [],
714
+ "defaultChannels": {},
715
+ "monitoredUseCases": ["string"],
716
+ "monitoredCodes": ["string"],
717
+ "rules": [],
718
+ "digest": {},
719
+ "muteUntil": "1970-01-01T00:00:00.000Z"
733
720
  }
734
721
  },
735
722
  "integration_type": "erp",
@@ -751,13 +738,7 @@ const { data } = await client.getIntegration({
751
738
  "token": "string"
752
739
  },
753
740
  "types_versions": [
754
- {
755
- "version": "string",
756
- "package_name": "string",
757
- "generated_at": "1970-01-01T00:00:00.000Z",
758
- "generated_by": "string",
759
- "status": "active"
760
- }
741
+ {}
761
742
  ],
762
743
  "latest_types_version": "string",
763
744
  "latest_types_package_name": "string"
@@ -813,6 +794,16 @@ const { data } = await client.updateIntegration(
813
794
  "autoRefresh": {
814
795
  "enabled": false,
815
796
  "freshnessThresholdMinutes": 1
797
+ },
798
+ "notifications": {
799
+ "enabled": true,
800
+ "recipients": [],
801
+ "defaultChannels": {},
802
+ "monitoredUseCases": ["string"],
803
+ "monitoredCodes": ["string"],
804
+ "rules": [],
805
+ "digest": {},
806
+ "muteUntil": "1970-01-01T00:00:00.000Z"
816
807
  }
817
808
  },
818
809
  "integration_type": "erp",
@@ -834,13 +825,7 @@ const { data } = await client.updateIntegration(
834
825
  "token": "string"
835
826
  },
836
827
  "types_versions": [
837
- {
838
- "version": "string",
839
- "package_name": "string",
840
- "generated_at": "1970-01-01T00:00:00.000Z",
841
- "generated_by": "string",
842
- "status": "active"
843
- }
828
+ {}
844
829
  ],
845
830
  "latest_types_version": "string",
846
831
  "latest_types_package_name": "string"
@@ -1301,6 +1286,16 @@ const { data } = await client.createIntegrationV2(
1301
1286
  autoRefresh: {
1302
1287
  enabled: false,
1303
1288
  freshnessThresholdMinutes: 1
1289
+ },
1290
+ notifications: {
1291
+ enabled: true,
1292
+ recipients: [ /* ... */ ],
1293
+ defaultChannels: { /* ... */ },
1294
+ monitoredUseCases: ['string'],
1295
+ monitoredCodes: ['string'],
1296
+ rules: [ /* ... */ ],
1297
+ digest: { /* ... */ },
1298
+ muteUntil: '1970-01-01T00:00:00.000Z'
1304
1299
  }
1305
1300
  },
1306
1301
  integration_type: 'erp',
@@ -1371,6 +1366,16 @@ const { data } = await client.createIntegrationV2(
1371
1366
  "autoRefresh": {
1372
1367
  "enabled": false,
1373
1368
  "freshnessThresholdMinutes": 1
1369
+ },
1370
+ "notifications": {
1371
+ "enabled": true,
1372
+ "recipients": [],
1373
+ "defaultChannels": {},
1374
+ "monitoredUseCases": ["string"],
1375
+ "monitoredCodes": ["string"],
1376
+ "rules": [],
1377
+ "digest": {},
1378
+ "muteUntil": "1970-01-01T00:00:00.000Z"
1374
1379
  }
1375
1380
  },
1376
1381
  "integration_type": "erp",
@@ -1459,6 +1464,16 @@ const { data } = await client.getIntegrationV2({
1459
1464
  "autoRefresh": {
1460
1465
  "enabled": false,
1461
1466
  "freshnessThresholdMinutes": 1
1467
+ },
1468
+ "notifications": {
1469
+ "enabled": true,
1470
+ "recipients": [],
1471
+ "defaultChannels": {},
1472
+ "monitoredUseCases": ["string"],
1473
+ "monitoredCodes": ["string"],
1474
+ "rules": [],
1475
+ "digest": {},
1476
+ "muteUntil": "1970-01-01T00:00:00.000Z"
1462
1477
  }
1463
1478
  },
1464
1479
  "integration_type": "erp",
@@ -1542,6 +1557,16 @@ const { data } = await client.updateIntegrationV2(
1542
1557
  autoRefresh: {
1543
1558
  enabled: false,
1544
1559
  freshnessThresholdMinutes: 1
1560
+ },
1561
+ notifications: {
1562
+ enabled: true,
1563
+ recipients: [ /* ... */ ],
1564
+ defaultChannels: { /* ... */ },
1565
+ monitoredUseCases: ['string'],
1566
+ monitoredCodes: ['string'],
1567
+ rules: [ /* ... */ ],
1568
+ digest: { /* ... */ },
1569
+ muteUntil: '1970-01-01T00:00:00.000Z'
1545
1570
  }
1546
1571
  },
1547
1572
  integration_type: 'erp',
@@ -1612,6 +1637,16 @@ const { data } = await client.updateIntegrationV2(
1612
1637
  "autoRefresh": {
1613
1638
  "enabled": false,
1614
1639
  "freshnessThresholdMinutes": 1
1640
+ },
1641
+ "notifications": {
1642
+ "enabled": true,
1643
+ "recipients": [],
1644
+ "defaultChannels": {},
1645
+ "monitoredUseCases": ["string"],
1646
+ "monitoredCodes": ["string"],
1647
+ "rules": [],
1648
+ "digest": {},
1649
+ "muteUntil": "1970-01-01T00:00:00.000Z"
1615
1650
  }
1616
1651
  },
1617
1652
  "integration_type": "erp",
@@ -1686,6 +1721,74 @@ const { data } = await client.deleteIntegrationV2({
1686
1721
 
1687
1722
  ---
1688
1723
 
1724
+ ### `listNotificationHistory`
1725
+
1726
+ Returns the cursor-paginated, newest-first notification history for an
1727
+ integration (every real notification decision — both fired and suppressed).
1728
+ Requires the `integration:view` permission on the int
1729
+
1730
+ `GET /v2/integrations/{integrationId}/notifications/history`
1731
+
1732
+ ```ts
1733
+ const { data } = await client.listNotificationHistory({
1734
+ integrationId: 'example',
1735
+ cursor: 'example',
1736
+ limit: 1,
1737
+ type: 'example',
1738
+ })
1739
+ ```
1740
+
1741
+ <details>
1742
+ <summary>Response</summary>
1743
+
1744
+ ```json
1745
+ {
1746
+ "history": [
1747
+ {
1748
+ "id": "string",
1749
+ "type": "string",
1750
+ "state_transition": "string",
1751
+ "severity": "error",
1752
+ "title": "string",
1753
+ "occurred_at": "1970-01-01T00:00:00.000Z",
1754
+ "notified": true,
1755
+ "suppressed_reason": "muted",
1756
+ "recipients": ["string"],
1757
+ "context": {},
1758
+ "created_at": "1970-01-01T00:00:00.000Z"
1759
+ }
1760
+ ],
1761
+ "next_cursor": "string"
1762
+ }
1763
+ ```
1764
+
1765
+ </details>
1766
+
1767
+ ---
1768
+
1769
+ ### `testSendNotification`
1770
+
1771
+ Renders and sends ONE representative notification of the requested kind/type to
1772
+ the CALLING USER ONLY (never any other recipient), so an operator can preview how
1773
+ a notification looks. A test send does
1774
+
1775
+ `POST /v2/integrations/{integrationId}/notifications/test`
1776
+
1777
+ ```ts
1778
+ const { data } = await client.testSendNotification(
1779
+ {
1780
+ integrationId: 'example',
1781
+ },
1782
+ {
1783
+ kind: 'alert',
1784
+ type: 'string',
1785
+ channels: ['email']
1786
+ },
1787
+ )
1788
+ ```
1789
+
1790
+ ---
1791
+
1689
1792
  ### `getSecureProxyWhitelist`
1690
1793
 
1691
1794
  Get secure_proxy whitelist (admin portal only)
@@ -2829,6 +2932,68 @@ const { data } = await client.commitTypes(
2829
2932
 
2830
2933
  ## Schemas
2831
2934
 
2935
+ ### `NotificationHistoryItem`
2936
+
2937
+ A single notification-history row (one real notification decision).
2938
+
2939
+ ```ts
2940
+ type NotificationHistoryItem = {
2941
+ id: string
2942
+ type: string
2943
+ state_transition?: string
2944
+ severity: "error" | "warning" | "info"
2945
+ title: string
2946
+ occurred_at: string // date-time
2947
+ notified: boolean
2948
+ suppressed_reason?: "muted" | "debounced" | "recipient_opt_out"
2949
+ recipients: string[]
2950
+ context: Record<string, unknown>
2951
+ created_at: string // date-time
2952
+ }
2953
+ ```
2954
+
2955
+ ### `NotificationHistoryResponse`
2956
+
2957
+ ```ts
2958
+ type NotificationHistoryResponse = {
2959
+ history: Array<{
2960
+ id: string
2961
+ type: string
2962
+ state_transition?: string
2963
+ severity: "error" | "warning" | "info"
2964
+ title: string
2965
+ occurred_at: string // date-time
2966
+ notified: boolean
2967
+ suppressed_reason?: "muted" | "debounced" | "recipient_opt_out"
2968
+ recipients: string[]
2969
+ context: Record<string, unknown>
2970
+ created_at: string // date-time
2971
+ }>
2972
+ next_cursor?: string
2973
+ }
2974
+ ```
2975
+
2976
+ ### `TestNotificationRequest`
2977
+
2978
+ ```ts
2979
+ type TestNotificationRequest = {
2980
+ kind: "alert" | "digest"
2981
+ type?: string
2982
+ channels?: "email" | "in_app"[]
2983
+ }
2984
+ ```
2985
+
2986
+ ### `TestNotificationResponse`
2987
+
2988
+ ```ts
2989
+ type TestNotificationResponse = {
2990
+ sent: boolean
2991
+ recipient: string
2992
+ channels: string[]
2993
+ notification_id?: string
2994
+ }
2995
+ ```
2996
+
2832
2997
  ### `ErrorResponseBase`
2833
2998
 
2834
2999
  ```ts
@@ -2940,6 +3105,16 @@ type IntegrationEditableFields = {
2940
3105
  enabled?: { ... }
2941
3106
  freshnessThresholdMinutes?: { ... }
2942
3107
  }
3108
+ notifications?: {
3109
+ enabled: { ... }
3110
+ recipients: { ... }
3111
+ defaultChannels: { ... }
3112
+ monitoredUseCases?: { ... }
3113
+ monitoredCodes?: { ... }
3114
+ rules: { ... }
3115
+ digest: { ... }
3116
+ muteUntil?: { ... }
3117
+ }
2943
3118
  }
2944
3119
  integration_type?: "erp" | "connector"
2945
3120
  connector_config?: {
@@ -3055,6 +3230,16 @@ type Integration = {
3055
3230
  enabled?: { ... }
3056
3231
  freshnessThresholdMinutes?: { ... }
3057
3232
  }
3233
+ notifications?: {
3234
+ enabled: { ... }
3235
+ recipients: { ... }
3236
+ defaultChannels: { ... }
3237
+ monitoredUseCases?: { ... }
3238
+ monitoredCodes?: { ... }
3239
+ rules: { ... }
3240
+ digest: { ... }
3241
+ muteUntil?: { ... }
3242
+ }
3058
3243
  }
3059
3244
  integration_type?: "erp" | "connector"
3060
3245
  connector_config?: {
@@ -3110,6 +3295,16 @@ type CreateIntegrationRequest = {
3110
3295
  enabled?: { ... }
3111
3296
  freshnessThresholdMinutes?: { ... }
3112
3297
  }
3298
+ notifications?: {
3299
+ enabled: { ... }
3300
+ recipients: { ... }
3301
+ defaultChannels: { ... }
3302
+ monitoredUseCases?: { ... }
3303
+ monitoredCodes?: { ... }
3304
+ rules: { ... }
3305
+ digest: { ... }
3306
+ muteUntil?: { ... }
3307
+ }
3113
3308
  }
3114
3309
  integration_type?: "erp" | "connector"
3115
3310
  connector_config?: {
@@ -3165,6 +3360,16 @@ type UpdateIntegrationRequest = {
3165
3360
  enabled?: { ... }
3166
3361
  freshnessThresholdMinutes?: { ... }
3167
3362
  }
3363
+ notifications?: {
3364
+ enabled: { ... }
3365
+ recipients: { ... }
3366
+ defaultChannels: { ... }
3367
+ monitoredUseCases?: { ... }
3368
+ monitoredCodes?: { ... }
3369
+ rules: { ... }
3370
+ digest: { ... }
3371
+ muteUntil?: { ... }
3372
+ }
3168
3373
  }
3169
3374
  integration_type?: "erp" | "connector"
3170
3375
  connector_config?: {
@@ -3222,6 +3427,44 @@ type IntegrationSettings = {
3222
3427
  enabled?: boolean
3223
3428
  freshnessThresholdMinutes?: number
3224
3429
  }
3430
+ notifications?: {
3431
+ enabled: boolean
3432
+ recipients: Array<{
3433
+ user_id: { ... }
3434
+ }>
3435
+ defaultChannels: {
3436
+ email: { ... }
3437
+ in_app: { ... }
3438
+ }
3439
+ monitoredUseCases?: string[]
3440
+ monitoredCodes?: string[]
3441
+ rules: Array<{
3442
+ id: { ... }
3443
+ name?: { ... }
3444
+ type: { ... }
3445
+ enabled: { ... }
3446
+ channels?: { ... }
3447
+ codes?: { ... }
3448
+ threshold?: { ... }
3449
+ sensitivity?: { ... }
3450
+ fallbackThreshold?: { ... }
3451
+ window?: { ... }
3452
+ minSampleSize?: { ... }
3453
+ consecutive?: { ... }
3454
+ quietPeriod?: { ... }
3455
+ }>
3456
+ digest: {
3457
+ enabled: { ... }
3458
+ frequency: { ... }
3459
+ dayOfWeek?: { ... }
3460
+ timeOfDay: { ... }
3461
+ timezone: { ... }
3462
+ channels: { ... }
3463
+ includeHealthy: { ... }
3464
+ skipIfEmpty: { ... }
3465
+ }
3466
+ muteUntil?: string // date-time
3467
+ }
3225
3468
  }
3226
3469
  ```
3227
3470
 
@@ -3236,6 +3479,123 @@ type AutoRefreshSettings = {
3236
3479
  }
3237
3480
  ```
3238
3481
 
3482
+ ### `IntegrationNotificationConfig`
3483
+
3484
+ Integration monitoring notification configuration. Rides Integration.settings.notifications (camelCase) and surfaces on both v1 and v2 GET/PUT. Unknown keys are stripped server-side to stay forward-compatible with deferred (V2) rule types.
3485
+
3486
+ ```ts
3487
+ type IntegrationNotificationConfig = {
3488
+ enabled: boolean
3489
+ recipients: Array<{
3490
+ user_id: string
3491
+ }>
3492
+ defaultChannels: {
3493
+ email: boolean
3494
+ in_app: boolean
3495
+ }
3496
+ monitoredUseCases?: string[]
3497
+ monitoredCodes?: string[]
3498
+ rules: Array<{
3499
+ id: string
3500
+ name?: string
3501
+ type: "critical_error" | "error_threshold" | "warning_threshold" | "success_rate_drop" | "recovery" | "silence" | "consecutive_failures" | "first_error" | "new_error_code" | "auth_expiry" | "ack_timeout" | "validation_surge"
3502
+ enabled: boolean
3503
+ channels?: {
3504
+ email: { ... }
3505
+ in_app: { ... }
3506
+ }
3507
+ codes?: string[]
3508
+ threshold?: number | "auto"
3509
+ sensitivity?: "low" | "medium" | "high"
3510
+ fallbackThreshold?: number
3511
+ window?: string
3512
+ minSampleSize?: number
3513
+ consecutive?: number
3514
+ quietPeriod?: string
3515
+ }>
3516
+ digest: {
3517
+ enabled: boolean
3518
+ frequency: "daily" | "weekly"
3519
+ dayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6
3520
+ timeOfDay: string
3521
+ timezone: string
3522
+ channels: {
3523
+ email: { ... }
3524
+ in_app: { ... }
3525
+ }
3526
+ includeHealthy: boolean
3527
+ skipIfEmpty: boolean
3528
+ }
3529
+ muteUntil?: string // date-time
3530
+ }
3531
+ ```
3532
+
3533
+ ### `NotificationRecipient`
3534
+
3535
+ A configured recipient. Only the epilot user_id is stored.
3536
+
3537
+ ```ts
3538
+ type NotificationRecipient = {
3539
+ user_id: string
3540
+ }
3541
+ ```
3542
+
3543
+ ### `NotificationChannelSet`
3544
+
3545
+ Delivery channel toggles. New channels added in svc-notification-api inherit here.
3546
+
3547
+ ```ts
3548
+ type NotificationChannelSet = {
3549
+ email: boolean
3550
+ in_app: boolean
3551
+ }
3552
+ ```
3553
+
3554
+ ### `NotificationRule`
3555
+
3556
+ A single notification rule. Only the params relevant to a given type are set. The id is a server-minted ULID, preserved across edits.
3557
+
3558
+ ```ts
3559
+ type NotificationRule = {
3560
+ id: string
3561
+ name?: string
3562
+ type: "critical_error" | "error_threshold" | "warning_threshold" | "success_rate_drop" | "recovery" | "silence" | "consecutive_failures" | "first_error" | "new_error_code" | "auth_expiry" | "ack_timeout" | "validation_surge"
3563
+ enabled: boolean
3564
+ channels?: {
3565
+ email: boolean
3566
+ in_app: boolean
3567
+ }
3568
+ codes?: string[]
3569
+ threshold?: number | "auto"
3570
+ sensitivity?: "low" | "medium" | "high"
3571
+ fallbackThreshold?: number
3572
+ window?: string
3573
+ minSampleSize?: number
3574
+ consecutive?: number
3575
+ quietPeriod?: string
3576
+ }
3577
+ ```
3578
+
3579
+ ### `NotificationDigestConfig`
3580
+
3581
+ Digest schedule and content configuration.
3582
+
3583
+ ```ts
3584
+ type NotificationDigestConfig = {
3585
+ enabled: boolean
3586
+ frequency: "daily" | "weekly"
3587
+ dayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6
3588
+ timeOfDay: string
3589
+ timezone: string
3590
+ channels: {
3591
+ email: boolean
3592
+ in_app: boolean
3593
+ }
3594
+ includeHealthy: boolean
3595
+ skipIfEmpty: boolean
3596
+ }
3597
+ ```
3598
+
3239
3599
  ### `SetIntegrationAppMappingRequest`
3240
3600
 
3241
3601
  ```ts
@@ -3374,6 +3734,16 @@ type UpsertIntegrationWithUseCasesRequest = {
3374
3734
  enabled?: { ... }
3375
3735
  freshnessThresholdMinutes?: { ... }
3376
3736
  }
3737
+ notifications?: {
3738
+ enabled: { ... }
3739
+ recipients: { ... }
3740
+ defaultChannels: { ... }
3741
+ monitoredUseCases?: { ... }
3742
+ monitoredCodes?: { ... }
3743
+ rules: { ... }
3744
+ digest: { ... }
3745
+ muteUntil?: { ... }
3746
+ }
3377
3747
  }
3378
3748
  integration_type?: "erp" | "connector"
3379
3749
  connector_config?: {
@@ -3446,16 +3816,6 @@ type UpsertIntegrationWithUseCasesRequest = {
3446
3816
  id?: string // uuid
3447
3817
  name: string
3448
3818
  slug?: string
3449
- enabled: boolean
3450
- change_description?: string
3451
- type: "managed_call"
3452
- configuration?: {
3453
- operation: { ... }
3454
- request_mapping?: { ... }
3455
- response_mapping?: { ... }
3456
- inbound_use_case_slug?: { ... }
3457
- }
3458
- } | {
3459
3819
  // ...
3460
3820
  }
3461
3821
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/sdk",
3
- "version": "2.9.1",
3
+ "version": "2.9.3",
4
4
  "description": "JavaScript/TypeScript SDK for epilot APIs",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",