@outlit/tools 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -52,6 +52,7 @@ __export(src_exports, {
52
52
  isPublicToolName: () => isPublicToolName,
53
53
  matchesGeneratedJsonSchema: () => matchesGeneratedJsonSchema,
54
54
  normalizeCustomerSourceType: () => normalizeCustomerSourceType,
55
+ piToolNames: () => piToolNames,
55
56
  publicOpenApiTransports: () => publicOpenApiTransports,
56
57
  publicToolContracts: () => publicToolContracts,
57
58
  publicToolNames: () => publicToolNames,
@@ -78,6 +79,10 @@ var publicToolNames = [
78
79
  "outlit_list_users",
79
80
  "outlit_list_workspace_users",
80
81
  "outlit_get_customer",
82
+ "outlit_assign_customer_owner",
83
+ "outlit_grant_customer_access",
84
+ "outlit_update_customer_access",
85
+ "outlit_revoke_customer_access",
81
86
  "outlit_get_timeline",
82
87
  "outlit_list_facts",
83
88
  "outlit_get_fact",
@@ -93,16 +98,19 @@ var publicToolNames = [
93
98
  "outlit_enable_destination",
94
99
  "outlit_disable_destination",
95
100
  "outlit_archive_destination",
96
- "outlit_list_integrations",
97
101
  "outlit_get_integration_capabilities",
98
102
  "outlit_begin_integration_setup",
99
103
  "outlit_get_integration_setup_status",
100
- "outlit_get_integration_sync_status",
104
+ "outlit_get_integration_status",
105
+ "outlit_setup_integration",
101
106
  "outlit_get_customer_activation",
102
107
  "outlit_preview_customer_activation",
103
108
  "outlit_update_customer_activation",
104
109
  "outlit_get_workspace_settings",
105
- "outlit_update_workspace_settings"
110
+ "outlit_update_workspace_settings",
111
+ "outlit_list_behavior_metric_sources",
112
+ "outlit_list_behavior_metric_events",
113
+ "outlit_create_behavior_metric"
106
114
  ];
107
115
  var publicToolContracts = {
108
116
  "outlit_list_customers": {
@@ -667,7 +675,7 @@ var publicToolContracts = {
667
675
  "commandVersion": 1,
668
676
  "ownerDomain": "users",
669
677
  "title": "List Workspace Users",
670
- "description": "Browse internal workspace users such as CSMs, managers, account owners, and admins. Use this to discover who owns customers before composing dynamic reports across account books.",
678
+ "description": "List active workspace members who resolve to local Outlit users. Use this to discover exact user IDs for customer ownership and access commands or to browse account ownership.",
671
679
  "inputSchema": {
672
680
  "$schema": "https://json-schema.org/draft/2020-12/schema",
673
681
  "type": "object",
@@ -688,7 +696,7 @@ var publicToolContracts = {
688
696
  "maxLength": 500
689
697
  },
690
698
  "hasOwnedCustomers": {
691
- "description": "When true, return only workspace users who own at least one customer",
699
+ "description": "When true, return only members who own customers; when false, return only members who own none",
692
700
  "type": "boolean"
693
701
  },
694
702
  "limit": {
@@ -1605,6 +1613,269 @@ var publicToolContracts = {
1605
1613
  "additionalProperties": false
1606
1614
  }
1607
1615
  },
1616
+ "outlit_assign_customer_owner": {
1617
+ "toolName": "outlit_assign_customer_owner",
1618
+ "commandId": "customer.owner.assign",
1619
+ "commandVersion": 1,
1620
+ "ownerDomain": "customers",
1621
+ "title": "Assign Customer Owner",
1622
+ "description": "Assign an active workspace member as this customer\u2019s primary owner. The former owner keeps Editor access.",
1623
+ "inputSchema": {
1624
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1625
+ "type": "object",
1626
+ "properties": {
1627
+ "customerId": {
1628
+ "type": "string",
1629
+ "format": "uuid",
1630
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
1631
+ },
1632
+ "targetUserId": {
1633
+ "type": "string",
1634
+ "minLength": 1,
1635
+ "maxLength": 500
1636
+ }
1637
+ },
1638
+ "required": [
1639
+ "customerId",
1640
+ "targetUserId"
1641
+ ]
1642
+ },
1643
+ "outputSchema": {
1644
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1645
+ "type": "object",
1646
+ "properties": {
1647
+ "customerId": {
1648
+ "type": "string"
1649
+ },
1650
+ "ownerId": {
1651
+ "type": "string"
1652
+ },
1653
+ "previousOwnerId": {
1654
+ "anyOf": [
1655
+ {
1656
+ "type": "string"
1657
+ },
1658
+ {
1659
+ "type": "null"
1660
+ }
1661
+ ]
1662
+ }
1663
+ },
1664
+ "required": [
1665
+ "customerId",
1666
+ "ownerId",
1667
+ "previousOwnerId"
1668
+ ],
1669
+ "additionalProperties": false
1670
+ }
1671
+ },
1672
+ "outlit_grant_customer_access": {
1673
+ "toolName": "outlit_grant_customer_access",
1674
+ "commandId": "customer.access.grant",
1675
+ "commandVersion": 1,
1676
+ "ownerDomain": "customers",
1677
+ "title": "Grant Customer Access",
1678
+ "description": "Share a customer with an active workspace member as a Viewer or Editor. The customer ID must be exact.",
1679
+ "inputSchema": {
1680
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1681
+ "type": "object",
1682
+ "properties": {
1683
+ "customerId": {
1684
+ "type": "string",
1685
+ "format": "uuid",
1686
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
1687
+ },
1688
+ "targetUserId": {
1689
+ "type": "string",
1690
+ "minLength": 1,
1691
+ "maxLength": 500
1692
+ },
1693
+ "role": {
1694
+ "type": "string",
1695
+ "enum": [
1696
+ "VIEWER",
1697
+ "EDITOR"
1698
+ ]
1699
+ }
1700
+ },
1701
+ "required": [
1702
+ "customerId",
1703
+ "targetUserId",
1704
+ "role"
1705
+ ]
1706
+ },
1707
+ "outputSchema": {
1708
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1709
+ "type": "object",
1710
+ "properties": {
1711
+ "access": {
1712
+ "type": "object",
1713
+ "properties": {
1714
+ "customerId": {
1715
+ "type": "string"
1716
+ },
1717
+ "userId": {
1718
+ "type": "string"
1719
+ },
1720
+ "role": {
1721
+ "type": "string",
1722
+ "enum": [
1723
+ "VIEWER",
1724
+ "EDITOR"
1725
+ ]
1726
+ },
1727
+ "grantedById": {
1728
+ "anyOf": [
1729
+ {
1730
+ "type": "string"
1731
+ },
1732
+ {
1733
+ "type": "null"
1734
+ }
1735
+ ]
1736
+ }
1737
+ },
1738
+ "required": [
1739
+ "customerId",
1740
+ "userId",
1741
+ "role",
1742
+ "grantedById"
1743
+ ],
1744
+ "additionalProperties": false
1745
+ }
1746
+ },
1747
+ "required": [
1748
+ "access"
1749
+ ],
1750
+ "additionalProperties": false
1751
+ }
1752
+ },
1753
+ "outlit_update_customer_access": {
1754
+ "toolName": "outlit_update_customer_access",
1755
+ "commandId": "customer.access.update",
1756
+ "commandVersion": 1,
1757
+ "ownerDomain": "customers",
1758
+ "title": "Update Customer Access",
1759
+ "description": "Change an existing customer collaborator between Viewer and Editor.",
1760
+ "inputSchema": {
1761
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1762
+ "type": "object",
1763
+ "properties": {
1764
+ "customerId": {
1765
+ "type": "string",
1766
+ "format": "uuid",
1767
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
1768
+ },
1769
+ "targetUserId": {
1770
+ "type": "string",
1771
+ "minLength": 1,
1772
+ "maxLength": 500
1773
+ },
1774
+ "role": {
1775
+ "type": "string",
1776
+ "enum": [
1777
+ "VIEWER",
1778
+ "EDITOR"
1779
+ ]
1780
+ }
1781
+ },
1782
+ "required": [
1783
+ "customerId",
1784
+ "targetUserId",
1785
+ "role"
1786
+ ]
1787
+ },
1788
+ "outputSchema": {
1789
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1790
+ "type": "object",
1791
+ "properties": {
1792
+ "access": {
1793
+ "type": "object",
1794
+ "properties": {
1795
+ "customerId": {
1796
+ "type": "string"
1797
+ },
1798
+ "userId": {
1799
+ "type": "string"
1800
+ },
1801
+ "role": {
1802
+ "type": "string",
1803
+ "enum": [
1804
+ "VIEWER",
1805
+ "EDITOR"
1806
+ ]
1807
+ },
1808
+ "grantedById": {
1809
+ "anyOf": [
1810
+ {
1811
+ "type": "string"
1812
+ },
1813
+ {
1814
+ "type": "null"
1815
+ }
1816
+ ]
1817
+ }
1818
+ },
1819
+ "required": [
1820
+ "customerId",
1821
+ "userId",
1822
+ "role",
1823
+ "grantedById"
1824
+ ],
1825
+ "additionalProperties": false
1826
+ }
1827
+ },
1828
+ "required": [
1829
+ "access"
1830
+ ],
1831
+ "additionalProperties": false
1832
+ }
1833
+ },
1834
+ "outlit_revoke_customer_access": {
1835
+ "toolName": "outlit_revoke_customer_access",
1836
+ "commandId": "customer.access.revoke",
1837
+ "commandVersion": 1,
1838
+ "ownerDomain": "customers",
1839
+ "title": "Revoke Customer Access",
1840
+ "description": "Remove a collaborator\u2019s explicit access to a customer.",
1841
+ "inputSchema": {
1842
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1843
+ "type": "object",
1844
+ "properties": {
1845
+ "customerId": {
1846
+ "type": "string",
1847
+ "format": "uuid",
1848
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
1849
+ },
1850
+ "targetUserId": {
1851
+ "type": "string",
1852
+ "minLength": 1,
1853
+ "maxLength": 500
1854
+ }
1855
+ },
1856
+ "required": [
1857
+ "customerId",
1858
+ "targetUserId"
1859
+ ]
1860
+ },
1861
+ "outputSchema": {
1862
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1863
+ "type": "object",
1864
+ "properties": {
1865
+ "customerId": {
1866
+ "type": "string"
1867
+ },
1868
+ "userId": {
1869
+ "type": "string"
1870
+ }
1871
+ },
1872
+ "required": [
1873
+ "customerId",
1874
+ "userId"
1875
+ ],
1876
+ "additionalProperties": false
1877
+ }
1878
+ },
1608
1879
  "outlit_get_timeline": {
1609
1880
  "toolName": "outlit_get_timeline",
1610
1881
  "commandId": "timeline.get",
@@ -6997,20 +7268,21 @@ var publicToolContracts = {
6997
7268
  "additionalProperties": false
6998
7269
  }
6999
7270
  },
7000
- "outlit_list_integrations": {
7001
- "toolName": "outlit_list_integrations",
7002
- "commandId": "integration.list",
7003
- "commandVersion": 1,
7271
+ "outlit_get_integration_capabilities": {
7272
+ "toolName": "outlit_get_integration_capabilities",
7273
+ "commandId": "integration.capabilities.get",
7274
+ "commandVersion": 2,
7004
7275
  "ownerDomain": "integrations",
7005
- "title": "List Integrations",
7006
- "description": "List available integrations and safe connection health for the current actor.",
7276
+ "title": "Get Integration Capabilities",
7277
+ "description": "Describe safe integration setup modes without exposing credential fields or provider configuration.",
7007
7278
  "inputSchema": {
7008
7279
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7009
7280
  "type": "object",
7010
7281
  "properties": {
7011
- "connectedOnly": {
7012
- "default": false,
7013
- "type": "boolean"
7282
+ "provider": {
7283
+ "type": "string",
7284
+ "minLength": 1,
7285
+ "maxLength": 80
7014
7286
  }
7015
7287
  },
7016
7288
  "additionalProperties": false
@@ -7019,7 +7291,7 @@ var publicToolContracts = {
7019
7291
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7020
7292
  "type": "object",
7021
7293
  "properties": {
7022
- "integrations": {
7294
+ "providers": {
7023
7295
  "type": "array",
7024
7296
  "items": {
7025
7297
  "type": "object",
@@ -7047,39 +7319,22 @@ var publicToolContracts = {
7047
7319
  "support"
7048
7320
  ]
7049
7321
  },
7050
- "status": {
7322
+ "authType": {
7051
7323
  "type": "string",
7052
7324
  "enum": [
7053
- "available",
7054
- "connected",
7055
- "setup_required"
7056
- ]
7057
- },
7058
- "lastDataReceivedAt": {
7059
- "anyOf": [
7060
- {
7061
- "type": "string",
7062
- "format": "date-time",
7063
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
7064
- },
7065
- {
7066
- "type": "null"
7067
- }
7325
+ "oauth",
7326
+ "api_key",
7327
+ "basic_auth"
7068
7328
  ]
7069
7329
  },
7070
- "syncStatus": {
7071
- "anyOf": [
7072
- {
7073
- "type": "string",
7074
- "minLength": 1,
7075
- "maxLength": 80
7076
- },
7077
- {
7078
- "type": "null"
7079
- }
7330
+ "setupMode": {
7331
+ "type": "string",
7332
+ "enum": [
7333
+ "browser_handoff",
7334
+ "human_controlled"
7080
7335
  ]
7081
7336
  },
7082
- "hasSyncError": {
7337
+ "browserHandoffAvailable": {
7083
7338
  "type": "boolean"
7084
7339
  }
7085
7340
  },
@@ -7087,116 +7342,31 @@ var publicToolContracts = {
7087
7342
  "provider",
7088
7343
  "name",
7089
7344
  "category",
7090
- "status",
7091
- "lastDataReceivedAt",
7092
- "syncStatus",
7093
- "hasSyncError"
7345
+ "authType",
7346
+ "setupMode",
7347
+ "browserHandoffAvailable"
7094
7348
  ],
7095
7349
  "additionalProperties": false
7096
7350
  }
7351
+ },
7352
+ "preferredSetupVersion": {
7353
+ "type": "number",
7354
+ "const": 1
7097
7355
  }
7098
7356
  },
7099
7357
  "required": [
7100
- "integrations"
7358
+ "providers"
7101
7359
  ],
7102
7360
  "additionalProperties": false
7103
7361
  }
7104
7362
  },
7105
- "outlit_get_integration_capabilities": {
7106
- "toolName": "outlit_get_integration_capabilities",
7107
- "commandId": "integration.capabilities.get",
7363
+ "outlit_begin_integration_setup": {
7364
+ "toolName": "outlit_begin_integration_setup",
7365
+ "commandId": "integration.setup.begin",
7108
7366
  "commandVersion": 1,
7109
7367
  "ownerDomain": "integrations",
7110
- "title": "Get Integration Capabilities",
7111
- "description": "Describe safe integration setup modes without exposing credential fields or provider configuration.",
7112
- "inputSchema": {
7113
- "$schema": "https://json-schema.org/draft/2020-12/schema",
7114
- "type": "object",
7115
- "properties": {
7116
- "provider": {
7117
- "type": "string",
7118
- "minLength": 1,
7119
- "maxLength": 80
7120
- }
7121
- },
7122
- "additionalProperties": false
7123
- },
7124
- "outputSchema": {
7125
- "$schema": "https://json-schema.org/draft/2020-12/schema",
7126
- "type": "object",
7127
- "properties": {
7128
- "providers": {
7129
- "type": "array",
7130
- "items": {
7131
- "type": "object",
7132
- "properties": {
7133
- "provider": {
7134
- "type": "string",
7135
- "minLength": 1,
7136
- "maxLength": 80
7137
- },
7138
- "name": {
7139
- "type": "string",
7140
- "minLength": 1,
7141
- "maxLength": 120
7142
- },
7143
- "category": {
7144
- "type": "string",
7145
- "enum": [
7146
- "crm",
7147
- "communication",
7148
- "storage",
7149
- "calls",
7150
- "calendar",
7151
- "analytics",
7152
- "billing",
7153
- "support"
7154
- ]
7155
- },
7156
- "authType": {
7157
- "type": "string",
7158
- "enum": [
7159
- "oauth",
7160
- "api_key",
7161
- "basic_auth"
7162
- ]
7163
- },
7164
- "setupMode": {
7165
- "type": "string",
7166
- "enum": [
7167
- "browser_handoff",
7168
- "human_controlled"
7169
- ]
7170
- },
7171
- "browserHandoffAvailable": {
7172
- "type": "boolean"
7173
- }
7174
- },
7175
- "required": [
7176
- "provider",
7177
- "name",
7178
- "category",
7179
- "authType",
7180
- "setupMode",
7181
- "browserHandoffAvailable"
7182
- ],
7183
- "additionalProperties": false
7184
- }
7185
- }
7186
- },
7187
- "required": [
7188
- "providers"
7189
- ],
7190
- "additionalProperties": false
7191
- }
7192
- },
7193
- "outlit_begin_integration_setup": {
7194
- "toolName": "outlit_begin_integration_setup",
7195
- "commandId": "integration.setup.begin",
7196
- "commandVersion": 1,
7197
- "ownerDomain": "integrations",
7198
- "title": "Begin Integration Setup",
7199
- "description": "Begin a short-lived browser handoff for an integration that supports browser authentication.",
7368
+ "title": "Begin Integration Setup",
7369
+ "description": "Begin a short-lived browser handoff for an integration that supports browser authentication.",
7200
7370
  "inputSchema": {
7201
7371
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7202
7372
  "type": "object",
@@ -7312,118 +7482,923 @@ var publicToolContracts = {
7312
7482
  }
7313
7483
  ]
7314
7484
  },
7315
- "status": {
7316
- "type": "string",
7317
- "enum": [
7318
- "expired",
7319
- "pending",
7320
- "connected",
7321
- "failed"
7322
- ]
7323
- }
7324
- },
7325
- "required": [
7326
- "provider",
7327
- "status"
7328
- ],
7329
- "additionalProperties": false
7330
- }
7331
- },
7332
- "outlit_get_integration_sync_status": {
7333
- "toolName": "outlit_get_integration_sync_status",
7334
- "commandId": "integration.sync_status.get",
7335
- "commandVersion": 1,
7336
- "ownerDomain": "integrations",
7337
- "title": "Get Integration Sync Status",
7338
- "description": "Get safe model-level sync status for a connection visible to the current actor.",
7339
- "inputSchema": {
7340
- "$schema": "https://json-schema.org/draft/2020-12/schema",
7341
- "type": "object",
7342
- "properties": {
7343
- "provider": {
7344
- "type": "string",
7345
- "minLength": 1,
7346
- "maxLength": 80
7347
- }
7348
- },
7349
- "required": [
7350
- "provider"
7351
- ],
7352
- "additionalProperties": false
7353
- },
7354
- "outputSchema": {
7355
- "$schema": "https://json-schema.org/draft/2020-12/schema",
7356
- "type": "object",
7357
- "properties": {
7358
- "provider": {
7359
- "type": "string",
7360
- "minLength": 1,
7361
- "maxLength": 80
7362
- },
7363
- "name": {
7364
- "type": "string",
7365
- "minLength": 1,
7366
- "maxLength": 120
7367
- },
7368
- "category": {
7369
- "type": "string",
7370
- "enum": [
7371
- "crm",
7372
- "communication",
7373
- "storage",
7374
- "calls",
7375
- "calendar",
7376
- "analytics",
7377
- "billing",
7378
- "support"
7379
- ]
7380
- },
7381
- "status": {
7382
- "type": "string",
7383
- "enum": [
7384
- "not_connected",
7385
- "connected"
7386
- ]
7387
- },
7388
- "syncs": {
7389
- "type": "array",
7390
- "items": {
7391
- "type": "object",
7392
- "properties": {
7393
- "model": {
7394
- "type": "string",
7395
- "minLength": 1,
7396
- "maxLength": 120
7397
- },
7398
- "status": {
7399
- "type": "string",
7400
- "minLength": 1,
7401
- "maxLength": 80
7402
- },
7403
- "lastSyncedAt": {
7404
- "anyOf": [
7405
- {
7406
- "type": "string",
7407
- "format": "date-time",
7408
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
7409
- },
7410
- {
7411
- "type": "null"
7412
- }
7413
- ]
7485
+ "status": {
7486
+ "type": "string",
7487
+ "enum": [
7488
+ "expired",
7489
+ "pending",
7490
+ "connected",
7491
+ "failed"
7492
+ ]
7493
+ }
7494
+ },
7495
+ "required": [
7496
+ "provider",
7497
+ "status"
7498
+ ],
7499
+ "additionalProperties": false
7500
+ }
7501
+ },
7502
+ "outlit_get_integration_status": {
7503
+ "toolName": "outlit_get_integration_status",
7504
+ "commandId": "integration.status.get",
7505
+ "commandVersion": 2,
7506
+ "ownerDomain": "integrations",
7507
+ "title": "Get Integration Status",
7508
+ "description": "Get the configuration-readiness status for one integration or the public integration catalog.",
7509
+ "inputSchema": {
7510
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
7511
+ "type": "object",
7512
+ "properties": {
7513
+ "provider": {
7514
+ "type": "string",
7515
+ "enum": [
7516
+ "salesforce",
7517
+ "hubspot",
7518
+ "attio",
7519
+ "slack",
7520
+ "google-calendar",
7521
+ "google-mail",
7522
+ "granola",
7523
+ "gong",
7524
+ "fireflies",
7525
+ "pylon",
7526
+ "stripe",
7527
+ "mixpanel",
7528
+ "posthog",
7529
+ "supabase",
7530
+ "clerk"
7531
+ ]
7532
+ }
7533
+ },
7534
+ "additionalProperties": false
7535
+ },
7536
+ "outputSchema": {
7537
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
7538
+ "type": "object",
7539
+ "properties": {
7540
+ "integrations": {
7541
+ "type": "array",
7542
+ "items": {
7543
+ "type": "object",
7544
+ "properties": {
7545
+ "provider": {
7546
+ "type": "string",
7547
+ "minLength": 1,
7548
+ "maxLength": 80
7549
+ },
7550
+ "name": {
7551
+ "type": "string",
7552
+ "minLength": 1,
7553
+ "maxLength": 120
7554
+ },
7555
+ "category": {
7556
+ "type": "string",
7557
+ "enum": [
7558
+ "crm",
7559
+ "communication",
7560
+ "storage",
7561
+ "calls",
7562
+ "calendar",
7563
+ "analytics",
7564
+ "billing",
7565
+ "support"
7566
+ ]
7567
+ },
7568
+ "status": {
7569
+ "type": "string",
7570
+ "enum": [
7571
+ "not_connected",
7572
+ "awaiting_auth",
7573
+ "setup_required",
7574
+ "ready",
7575
+ "requires_intervention"
7576
+ ]
7577
+ }
7578
+ },
7579
+ "required": [
7580
+ "provider",
7581
+ "name",
7582
+ "category",
7583
+ "status"
7584
+ ],
7585
+ "additionalProperties": false
7586
+ }
7587
+ }
7588
+ },
7589
+ "required": [
7590
+ "integrations"
7591
+ ],
7592
+ "additionalProperties": false
7593
+ }
7594
+ },
7595
+ "outlit_setup_integration": {
7596
+ "toolName": "outlit_setup_integration",
7597
+ "commandId": "integration.setup.run",
7598
+ "commandVersion": 1,
7599
+ "ownerDomain": "integrations",
7600
+ "title": "Set Up Integration",
7601
+ "description": "Continue integration setup through validated credentials, safe configuration, or a trusted browser handoff.",
7602
+ "inputSchema": {
7603
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
7604
+ "anyOf": [
7605
+ {
7606
+ "type": "object",
7607
+ "properties": {
7608
+ "provider": {
7609
+ "type": "string",
7610
+ "enum": [
7611
+ "salesforce",
7612
+ "hubspot",
7613
+ "attio"
7614
+ ]
7615
+ },
7616
+ "configuration": {
7617
+ "type": "object",
7618
+ "properties": {
7619
+ "kind": {
7620
+ "type": "string",
7621
+ "const": "crm_mapping"
7622
+ },
7623
+ "mappings": {
7624
+ "minItems": 1,
7625
+ "type": "array",
7626
+ "items": {
7627
+ "type": "object",
7628
+ "properties": {
7629
+ "pipelineId": {
7630
+ "type": "string",
7631
+ "minLength": 1
7632
+ },
7633
+ "pipelineName": {
7634
+ "type": "string"
7635
+ },
7636
+ "mappings": {
7637
+ "type": "array",
7638
+ "items": {
7639
+ "type": "object",
7640
+ "properties": {
7641
+ "outlitStage": {
7642
+ "type": "string",
7643
+ "enum": [
7644
+ "Created",
7645
+ "Quoting",
7646
+ "Negotiation",
7647
+ "Won",
7648
+ "Lost"
7649
+ ]
7650
+ },
7651
+ "crmStages": {
7652
+ "type": "array",
7653
+ "items": {
7654
+ "type": "object",
7655
+ "properties": {
7656
+ "id": {
7657
+ "type": "string",
7658
+ "minLength": 1
7659
+ },
7660
+ "name": {
7661
+ "type": "string"
7662
+ }
7663
+ },
7664
+ "required": [
7665
+ "id",
7666
+ "name"
7667
+ ],
7668
+ "additionalProperties": false
7669
+ }
7670
+ }
7671
+ },
7672
+ "required": [
7673
+ "outlitStage",
7674
+ "crmStages"
7675
+ ],
7676
+ "additionalProperties": false
7677
+ }
7678
+ }
7679
+ },
7680
+ "required": [
7681
+ "pipelineId",
7682
+ "pipelineName",
7683
+ "mappings"
7684
+ ],
7685
+ "additionalProperties": false
7686
+ }
7687
+ },
7688
+ "confirm": {
7689
+ "type": "boolean",
7690
+ "const": true
7691
+ }
7692
+ },
7693
+ "required": [
7694
+ "kind",
7695
+ "mappings",
7696
+ "confirm"
7697
+ ],
7698
+ "additionalProperties": false
7699
+ }
7700
+ },
7701
+ "required": [
7702
+ "provider"
7703
+ ],
7704
+ "additionalProperties": false
7705
+ },
7706
+ {
7707
+ "type": "object",
7708
+ "properties": {
7709
+ "provider": {
7710
+ "type": "string",
7711
+ "enum": [
7712
+ "slack",
7713
+ "google-calendar",
7714
+ "google-mail",
7715
+ "gong"
7716
+ ]
7717
+ }
7718
+ },
7719
+ "required": [
7720
+ "provider"
7721
+ ],
7722
+ "additionalProperties": false
7723
+ },
7724
+ {
7725
+ "type": "object",
7726
+ "properties": {
7727
+ "provider": {
7728
+ "type": "string",
7729
+ "const": "stripe"
7730
+ },
7731
+ "connectionMode": {
7732
+ "type": "string",
7733
+ "const": "oauth"
7734
+ }
7735
+ },
7736
+ "required": [
7737
+ "provider"
7738
+ ],
7739
+ "additionalProperties": false
7740
+ },
7741
+ {
7742
+ "type": "object",
7743
+ "properties": {
7744
+ "provider": {
7745
+ "type": "string",
7746
+ "const": "stripe"
7747
+ },
7748
+ "connectionMode": {
7749
+ "type": "string",
7750
+ "const": "restricted_key"
7751
+ },
7752
+ "credentials": {
7753
+ "type": "object",
7754
+ "properties": {
7755
+ "apiKey": {
7756
+ "type": "string",
7757
+ "minLength": 1,
7758
+ "pattern": "^rk_.*"
7759
+ }
7760
+ },
7761
+ "required": [
7762
+ "apiKey"
7763
+ ],
7764
+ "additionalProperties": false
7765
+ }
7766
+ },
7767
+ "required": [
7768
+ "provider",
7769
+ "connectionMode"
7770
+ ],
7771
+ "additionalProperties": false
7772
+ },
7773
+ {
7774
+ "type": "object",
7775
+ "properties": {
7776
+ "provider": {
7777
+ "type": "string",
7778
+ "const": "granola"
7779
+ },
7780
+ "credentials": {
7781
+ "type": "object",
7782
+ "properties": {
7783
+ "apiKey": {
7784
+ "type": "string",
7785
+ "minLength": 1
7786
+ },
7787
+ "authScope": {
7788
+ "default": "personal",
7789
+ "type": "string",
7790
+ "enum": [
7791
+ "personal",
7792
+ "enterprise"
7793
+ ]
7794
+ },
7795
+ "enterpriseKeyAcknowledged": {
7796
+ "default": false,
7797
+ "type": "boolean"
7798
+ }
7799
+ },
7800
+ "required": [
7801
+ "apiKey"
7802
+ ],
7803
+ "additionalProperties": false
7804
+ }
7805
+ },
7806
+ "required": [
7807
+ "provider"
7808
+ ],
7809
+ "additionalProperties": false
7810
+ },
7811
+ {
7812
+ "type": "object",
7813
+ "properties": {
7814
+ "provider": {
7815
+ "type": "string",
7816
+ "const": "fireflies"
7817
+ },
7818
+ "credentials": {
7819
+ "type": "object",
7820
+ "properties": {
7821
+ "apiKey": {
7822
+ "type": "string",
7823
+ "minLength": 1
7824
+ }
7825
+ },
7826
+ "required": [
7827
+ "apiKey"
7828
+ ],
7829
+ "additionalProperties": false
7830
+ }
7831
+ },
7832
+ "required": [
7833
+ "provider"
7834
+ ],
7835
+ "additionalProperties": false
7836
+ },
7837
+ {
7838
+ "type": "object",
7839
+ "properties": {
7840
+ "provider": {
7841
+ "type": "string",
7842
+ "const": "pylon"
7843
+ },
7844
+ "credentials": {
7845
+ "type": "object",
7846
+ "properties": {
7847
+ "apiToken": {
7848
+ "type": "string",
7849
+ "minLength": 1
7850
+ }
7851
+ },
7852
+ "required": [
7853
+ "apiToken"
7854
+ ],
7855
+ "additionalProperties": false
7856
+ }
7857
+ },
7858
+ "required": [
7859
+ "provider"
7860
+ ],
7861
+ "additionalProperties": false
7862
+ },
7863
+ {
7864
+ "type": "object",
7865
+ "properties": {
7866
+ "provider": {
7867
+ "type": "string",
7868
+ "const": "mixpanel"
7869
+ },
7870
+ "credentials": {
7871
+ "type": "object",
7872
+ "properties": {
7873
+ "username": {
7874
+ "type": "string",
7875
+ "minLength": 1
7876
+ },
7877
+ "secret": {
7878
+ "type": "string",
7879
+ "minLength": 1
7880
+ },
7881
+ "projectId": {
7882
+ "type": "string",
7883
+ "minLength": 1,
7884
+ "maxLength": 64
7885
+ },
7886
+ "region": {
7887
+ "type": "string",
7888
+ "enum": [
7889
+ "us",
7890
+ "eu",
7891
+ "in"
7892
+ ]
7893
+ }
7894
+ },
7895
+ "required": [
7896
+ "username",
7897
+ "secret",
7898
+ "projectId",
7899
+ "region"
7900
+ ],
7901
+ "additionalProperties": false
7902
+ },
7903
+ "configuration": {
7904
+ "type": "object",
7905
+ "properties": {
7906
+ "kind": {
7907
+ "type": "string",
7908
+ "const": "mixpanel_mapping"
7909
+ },
7910
+ "mapping": {
7911
+ "oneOf": [
7912
+ {
7913
+ "type": "object",
7914
+ "properties": {
7915
+ "mode": {
7916
+ "type": "string",
7917
+ "const": "group_key"
7918
+ },
7919
+ "groupKey": {
7920
+ "type": "string",
7921
+ "minLength": 1
7922
+ }
7923
+ },
7924
+ "required": [
7925
+ "mode",
7926
+ "groupKey"
7927
+ ],
7928
+ "additionalProperties": false
7929
+ },
7930
+ {
7931
+ "type": "object",
7932
+ "properties": {
7933
+ "mode": {
7934
+ "type": "string",
7935
+ "const": "event_property"
7936
+ },
7937
+ "propertyName": {
7938
+ "type": "string",
7939
+ "minLength": 1
7940
+ }
7941
+ },
7942
+ "required": [
7943
+ "mode",
7944
+ "propertyName"
7945
+ ],
7946
+ "additionalProperties": false
7947
+ },
7948
+ {
7949
+ "type": "object",
7950
+ "properties": {
7951
+ "mode": {
7952
+ "type": "string",
7953
+ "const": "email_domain"
7954
+ }
7955
+ },
7956
+ "required": [
7957
+ "mode"
7958
+ ],
7959
+ "additionalProperties": false
7960
+ }
7961
+ ]
7962
+ },
7963
+ "confirm": {
7964
+ "type": "boolean",
7965
+ "const": true
7966
+ }
7967
+ },
7968
+ "required": [
7969
+ "kind",
7970
+ "mapping",
7971
+ "confirm"
7972
+ ],
7973
+ "additionalProperties": false
7974
+ }
7975
+ },
7976
+ "required": [
7977
+ "provider"
7978
+ ],
7979
+ "additionalProperties": false
7980
+ },
7981
+ {
7982
+ "type": "object",
7983
+ "properties": {
7984
+ "provider": {
7985
+ "type": "string",
7986
+ "const": "posthog"
7987
+ },
7988
+ "credentials": {
7989
+ "type": "object",
7990
+ "properties": {
7991
+ "apiKey": {
7992
+ "type": "string",
7993
+ "minLength": 10,
7994
+ "pattern": "^phx_.*"
7995
+ },
7996
+ "region": {
7997
+ "type": "string",
7998
+ "enum": [
7999
+ "us",
8000
+ "eu"
8001
+ ]
8002
+ },
8003
+ "projectId": {
8004
+ "type": "string",
8005
+ "minLength": 1,
8006
+ "pattern": "^\\d+$"
8007
+ }
8008
+ },
8009
+ "required": [
8010
+ "apiKey",
8011
+ "region",
8012
+ "projectId"
8013
+ ],
8014
+ "additionalProperties": false
8015
+ }
8016
+ },
8017
+ "required": [
8018
+ "provider"
8019
+ ],
8020
+ "additionalProperties": false
8021
+ },
8022
+ {
8023
+ "type": "object",
8024
+ "properties": {
8025
+ "provider": {
8026
+ "type": "string",
8027
+ "enum": [
8028
+ "clerk",
8029
+ "supabase"
8030
+ ]
8031
+ }
8032
+ },
8033
+ "required": [
8034
+ "provider"
8035
+ ],
8036
+ "additionalProperties": false
8037
+ }
8038
+ ]
8039
+ },
8040
+ "outputSchema": {
8041
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8042
+ "type": "object",
8043
+ "properties": {
8044
+ "provider": {
8045
+ "type": "string",
8046
+ "enum": [
8047
+ "salesforce",
8048
+ "hubspot",
8049
+ "attio",
8050
+ "slack",
8051
+ "google-calendar",
8052
+ "google-mail",
8053
+ "granola",
8054
+ "gong",
8055
+ "fireflies",
8056
+ "pylon",
8057
+ "stripe",
8058
+ "mixpanel",
8059
+ "posthog",
8060
+ "supabase",
8061
+ "clerk"
8062
+ ]
8063
+ },
8064
+ "name": {
8065
+ "type": "string",
8066
+ "minLength": 1,
8067
+ "maxLength": 120
8068
+ },
8069
+ "category": {
8070
+ "type": "string",
8071
+ "enum": [
8072
+ "crm",
8073
+ "communication",
8074
+ "storage",
8075
+ "calls",
8076
+ "calendar",
8077
+ "analytics",
8078
+ "billing",
8079
+ "support"
8080
+ ]
8081
+ },
8082
+ "status": {
8083
+ "type": "string",
8084
+ "enum": [
8085
+ "not_connected",
8086
+ "awaiting_auth",
8087
+ "setup_required",
8088
+ "ready",
8089
+ "requires_intervention"
8090
+ ]
8091
+ },
8092
+ "next": {
8093
+ "anyOf": [
8094
+ {
8095
+ "anyOf": [
8096
+ {
8097
+ "type": "object",
8098
+ "properties": {
8099
+ "kind": {
8100
+ "type": "string",
8101
+ "const": "browser_handoff"
8102
+ },
8103
+ "purpose": {
8104
+ "type": "string",
8105
+ "enum": [
8106
+ "authentication",
8107
+ "recovery",
8108
+ "external_setup"
8109
+ ]
8110
+ },
8111
+ "url": {
8112
+ "type": "string",
8113
+ "format": "uri"
8114
+ },
8115
+ "sessionId": {
8116
+ "anyOf": [
8117
+ {
8118
+ "type": "string",
8119
+ "format": "uuid",
8120
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
8121
+ },
8122
+ {
8123
+ "type": "null"
8124
+ }
8125
+ ]
8126
+ },
8127
+ "expiresAt": {
8128
+ "anyOf": [
8129
+ {
8130
+ "type": "string",
8131
+ "format": "date-time",
8132
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
8133
+ },
8134
+ {
8135
+ "type": "null"
8136
+ }
8137
+ ]
8138
+ }
8139
+ },
8140
+ "required": [
8141
+ "kind",
8142
+ "purpose",
8143
+ "url",
8144
+ "sessionId",
8145
+ "expiresAt"
8146
+ ],
8147
+ "additionalProperties": false
8148
+ },
8149
+ {
8150
+ "type": "object",
8151
+ "properties": {
8152
+ "kind": {
8153
+ "type": "string",
8154
+ "const": "crm_mapping"
8155
+ },
8156
+ "recommendation": {
8157
+ "minItems": 1,
8158
+ "type": "array",
8159
+ "items": {
8160
+ "type": "object",
8161
+ "properties": {
8162
+ "pipelineId": {
8163
+ "type": "string",
8164
+ "minLength": 1
8165
+ },
8166
+ "pipelineName": {
8167
+ "type": "string"
8168
+ },
8169
+ "mappings": {
8170
+ "type": "array",
8171
+ "items": {
8172
+ "type": "object",
8173
+ "properties": {
8174
+ "outlitStage": {
8175
+ "type": "string",
8176
+ "enum": [
8177
+ "Created",
8178
+ "Quoting",
8179
+ "Negotiation",
8180
+ "Won",
8181
+ "Lost"
8182
+ ]
8183
+ },
8184
+ "crmStages": {
8185
+ "type": "array",
8186
+ "items": {
8187
+ "type": "object",
8188
+ "properties": {
8189
+ "id": {
8190
+ "type": "string",
8191
+ "minLength": 1
8192
+ },
8193
+ "name": {
8194
+ "type": "string"
8195
+ }
8196
+ },
8197
+ "required": [
8198
+ "id",
8199
+ "name"
8200
+ ],
8201
+ "additionalProperties": false
8202
+ }
8203
+ }
8204
+ },
8205
+ "required": [
8206
+ "outlitStage",
8207
+ "crmStages"
8208
+ ],
8209
+ "additionalProperties": false
8210
+ }
8211
+ }
8212
+ },
8213
+ "required": [
8214
+ "pipelineId",
8215
+ "pipelineName",
8216
+ "mappings"
8217
+ ],
8218
+ "additionalProperties": false
8219
+ }
8220
+ }
8221
+ },
8222
+ "required": [
8223
+ "kind",
8224
+ "recommendation"
8225
+ ],
8226
+ "additionalProperties": false
8227
+ },
8228
+ {
8229
+ "type": "object",
8230
+ "properties": {
8231
+ "kind": {
8232
+ "type": "string",
8233
+ "const": "mixpanel_mapping"
8234
+ },
8235
+ "preview": {
8236
+ "type": "object",
8237
+ "properties": {
8238
+ "sampleSize": {
8239
+ "type": "integer",
8240
+ "minimum": 0,
8241
+ "maximum": 9007199254740991
8242
+ },
8243
+ "sampleWindowStartAt": {
8244
+ "type": "string",
8245
+ "format": "date-time",
8246
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
8247
+ },
8248
+ "sampleWindowEndAt": {
8249
+ "type": "string",
8250
+ "format": "date-time",
8251
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
8252
+ },
8253
+ "accountKeyCoveragePct": {
8254
+ "type": "number",
8255
+ "minimum": 0,
8256
+ "maximum": 100
8257
+ },
8258
+ "emailOrDomainCoveragePct": {
8259
+ "type": "number",
8260
+ "minimum": 0,
8261
+ "maximum": 100
8262
+ },
8263
+ "unmappedPct": {
8264
+ "type": "number",
8265
+ "minimum": 0,
8266
+ "maximum": 100
8267
+ },
8268
+ "matchedCustomerCount": {
8269
+ "type": "integer",
8270
+ "minimum": 0,
8271
+ "maximum": 9007199254740991
8272
+ },
8273
+ "opaqueOnlyUnmappedCount": {
8274
+ "type": "integer",
8275
+ "minimum": 0,
8276
+ "maximum": 9007199254740991
8277
+ },
8278
+ "candidateAccountKeys": {
8279
+ "type": "array",
8280
+ "items": {
8281
+ "type": "object",
8282
+ "properties": {
8283
+ "key": {
8284
+ "type": "string"
8285
+ },
8286
+ "count": {
8287
+ "type": "integer",
8288
+ "minimum": 0,
8289
+ "maximum": 9007199254740991
8290
+ },
8291
+ "coveragePct": {
8292
+ "type": "number",
8293
+ "minimum": 0,
8294
+ "maximum": 100
8295
+ }
8296
+ },
8297
+ "required": [
8298
+ "key",
8299
+ "count",
8300
+ "coveragePct"
8301
+ ],
8302
+ "additionalProperties": false
8303
+ }
8304
+ },
8305
+ "unmappedReasons": {
8306
+ "type": "array",
8307
+ "items": {
8308
+ "type": "object",
8309
+ "properties": {
8310
+ "reason": {
8311
+ "type": "string",
8312
+ "enum": [
8313
+ "missing_account_key",
8314
+ "missing_email_or_domain",
8315
+ "no_matching_customer"
8316
+ ]
8317
+ },
8318
+ "count": {
8319
+ "type": "integer",
8320
+ "minimum": 0,
8321
+ "maximum": 9007199254740991
8322
+ }
8323
+ },
8324
+ "required": [
8325
+ "reason",
8326
+ "count"
8327
+ ],
8328
+ "additionalProperties": false
8329
+ }
8330
+ },
8331
+ "warnings": {
8332
+ "type": "array",
8333
+ "items": {
8334
+ "type": "string"
8335
+ }
8336
+ }
8337
+ },
8338
+ "required": [
8339
+ "sampleSize",
8340
+ "sampleWindowStartAt",
8341
+ "sampleWindowEndAt",
8342
+ "accountKeyCoveragePct",
8343
+ "emailOrDomainCoveragePct",
8344
+ "unmappedPct",
8345
+ "matchedCustomerCount",
8346
+ "opaqueOnlyUnmappedCount",
8347
+ "candidateAccountKeys",
8348
+ "unmappedReasons",
8349
+ "warnings"
8350
+ ],
8351
+ "additionalProperties": false
8352
+ }
8353
+ },
8354
+ "required": [
8355
+ "kind",
8356
+ "preview"
8357
+ ],
8358
+ "additionalProperties": false
8359
+ }
8360
+ ]
8361
+ },
8362
+ {
8363
+ "type": "null"
8364
+ }
8365
+ ]
8366
+ },
8367
+ "error": {
8368
+ "anyOf": [
8369
+ {
8370
+ "type": "object",
8371
+ "properties": {
8372
+ "code": {
8373
+ "type": "string",
8374
+ "enum": [
8375
+ "OWNER_REQUIRED",
8376
+ "CONNECTION_CONFLICT",
8377
+ "CREDENTIAL_REQUIRED",
8378
+ "CREDENTIAL_REJECTED",
8379
+ "LEGACY_CONNECTION_REQUIRED",
8380
+ "HANDOFF_UNAVAILABLE",
8381
+ "TRANSIENT_FAILURE"
8382
+ ]
8383
+ },
8384
+ "message": {
8385
+ "type": "string"
8386
+ },
8387
+ "retryable": {
8388
+ "type": "boolean"
8389
+ }
7414
8390
  },
7415
- "hasError": {
7416
- "type": "boolean"
7417
- }
8391
+ "required": [
8392
+ "code",
8393
+ "message",
8394
+ "retryable"
8395
+ ],
8396
+ "additionalProperties": false
7418
8397
  },
7419
- "required": [
7420
- "model",
7421
- "status",
7422
- "lastSyncedAt",
7423
- "hasError"
7424
- ],
7425
- "additionalProperties": false
7426
- }
8398
+ {
8399
+ "type": "null"
8400
+ }
8401
+ ]
7427
8402
  }
7428
8403
  },
7429
8404
  "required": [
@@ -7431,7 +8406,8 @@ var publicToolContracts = {
7431
8406
  "name",
7432
8407
  "category",
7433
8408
  "status",
7434
- "syncs"
8409
+ "next",
8410
+ "error"
7435
8411
  ],
7436
8412
  "additionalProperties": false
7437
8413
  }
@@ -7770,29 +8746,355 @@ var publicToolContracts = {
7770
8746
  }
7771
8747
  },
7772
8748
  "required": [
7773
- "settings"
8749
+ "settings"
8750
+ ],
8751
+ "additionalProperties": false
8752
+ }
8753
+ },
8754
+ "outlit_update_workspace_settings": {
8755
+ "toolName": "outlit_update_workspace_settings",
8756
+ "commandId": "settings.update",
8757
+ "commandVersion": 1,
8758
+ "ownerDomain": "settings",
8759
+ "title": "Update Workspace Settings",
8760
+ "description": "Update the workspace default timezone using a valid IANA timezone.",
8761
+ "inputSchema": {
8762
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8763
+ "type": "object",
8764
+ "properties": {
8765
+ "defaultTimezone": {
8766
+ "type": "string",
8767
+ "minLength": 1
8768
+ }
8769
+ },
8770
+ "required": [
8771
+ "defaultTimezone"
8772
+ ],
8773
+ "additionalProperties": false
8774
+ },
8775
+ "outputSchema": {
8776
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8777
+ "type": "object",
8778
+ "properties": {
8779
+ "settings": {
8780
+ "type": "object",
8781
+ "properties": {
8782
+ "defaultTimezone": {
8783
+ "type": "string",
8784
+ "minLength": 1
8785
+ }
8786
+ },
8787
+ "required": [
8788
+ "defaultTimezone"
8789
+ ],
8790
+ "additionalProperties": false
8791
+ }
8792
+ },
8793
+ "required": [
8794
+ "settings"
8795
+ ],
8796
+ "additionalProperties": false
8797
+ }
8798
+ },
8799
+ "outlit_list_behavior_metric_sources": {
8800
+ "toolName": "outlit_list_behavior_metric_sources",
8801
+ "commandId": "behavior_metric_source.list",
8802
+ "commandVersion": 1,
8803
+ "ownerDomain": "behavior_metrics",
8804
+ "title": "List Behavior Metric Sources",
8805
+ "description": "List product-event sources eligible for Behavior Metric discovery.",
8806
+ "inputSchema": {
8807
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8808
+ "type": "object",
8809
+ "properties": {},
8810
+ "additionalProperties": false
8811
+ },
8812
+ "outputSchema": {
8813
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8814
+ "type": "object",
8815
+ "properties": {
8816
+ "sources": {
8817
+ "type": "array",
8818
+ "items": {
8819
+ "type": "object",
8820
+ "properties": {
8821
+ "sourceKey": {
8822
+ "type": "string",
8823
+ "pattern": "^metric_source_v1_[a-f0-9]{32}$"
8824
+ },
8825
+ "provider": {
8826
+ "type": "string",
8827
+ "enum": [
8828
+ "outlit_sdk",
8829
+ "posthog",
8830
+ "mixpanel"
8831
+ ]
8832
+ },
8833
+ "label": {
8834
+ "type": "string",
8835
+ "minLength": 1,
8836
+ "maxLength": 255
8837
+ },
8838
+ "readiness": {
8839
+ "type": "string",
8840
+ "enum": [
8841
+ "READY",
8842
+ "WARMING",
8843
+ "BLOCKED"
8844
+ ]
8845
+ }
8846
+ },
8847
+ "required": [
8848
+ "sourceKey",
8849
+ "provider",
8850
+ "label",
8851
+ "readiness"
8852
+ ],
8853
+ "additionalProperties": false
8854
+ }
8855
+ }
8856
+ },
8857
+ "required": [
8858
+ "sources"
8859
+ ],
8860
+ "additionalProperties": false
8861
+ }
8862
+ },
8863
+ "outlit_list_behavior_metric_events": {
8864
+ "toolName": "outlit_list_behavior_metric_events",
8865
+ "commandId": "behavior_metric_event.list",
8866
+ "commandVersion": 1,
8867
+ "ownerDomain": "behavior_metrics",
8868
+ "title": "List Behavior Metric Events",
8869
+ "description": "List attributed event candidates for a Behavior Metric source.",
8870
+ "inputSchema": {
8871
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8872
+ "type": "object",
8873
+ "properties": {
8874
+ "sourceKey": {
8875
+ "type": "string",
8876
+ "pattern": "^metric_source_v1_[a-f0-9]{32}$"
8877
+ },
8878
+ "weeks": {
8879
+ "default": 12,
8880
+ "type": "integer",
8881
+ "minimum": 1,
8882
+ "maximum": 53
8883
+ },
8884
+ "limit": {
8885
+ "default": 100,
8886
+ "type": "integer",
8887
+ "minimum": 1,
8888
+ "maximum": 100
8889
+ }
8890
+ },
8891
+ "required": [
8892
+ "sourceKey"
8893
+ ],
8894
+ "additionalProperties": false
8895
+ },
8896
+ "outputSchema": {
8897
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8898
+ "type": "object",
8899
+ "properties": {
8900
+ "events": {
8901
+ "type": "array",
8902
+ "items": {
8903
+ "type": "object",
8904
+ "properties": {
8905
+ "eventName": {
8906
+ "type": "string",
8907
+ "minLength": 1,
8908
+ "maxLength": 191
8909
+ },
8910
+ "eventCount": {
8911
+ "type": "integer",
8912
+ "minimum": 0,
8913
+ "maximum": 9007199254740991
8914
+ },
8915
+ "distinctCustomers": {
8916
+ "type": "integer",
8917
+ "minimum": 0,
8918
+ "maximum": 9007199254740991
8919
+ },
8920
+ "activeWeeks": {
8921
+ "type": "integer",
8922
+ "minimum": 1,
8923
+ "maximum": 53
8924
+ },
8925
+ "propertyKeys": {
8926
+ "maxItems": 10,
8927
+ "type": "array",
8928
+ "items": {
8929
+ "type": "string",
8930
+ "minLength": 1,
8931
+ "maxLength": 191
8932
+ }
8933
+ }
8934
+ },
8935
+ "required": [
8936
+ "eventName",
8937
+ "eventCount",
8938
+ "distinctCustomers",
8939
+ "activeWeeks",
8940
+ "propertyKeys"
8941
+ ],
8942
+ "additionalProperties": false
8943
+ }
8944
+ },
8945
+ "truncated": {
8946
+ "type": "boolean"
8947
+ }
8948
+ },
8949
+ "required": [
8950
+ "events",
8951
+ "truncated"
7774
8952
  ],
7775
8953
  "additionalProperties": false
7776
8954
  }
7777
8955
  },
7778
- "outlit_update_workspace_settings": {
7779
- "toolName": "outlit_update_workspace_settings",
7780
- "commandId": "settings.update",
8956
+ "outlit_create_behavior_metric": {
8957
+ "toolName": "outlit_create_behavior_metric",
8958
+ "commandId": "behavior_metric.create",
7781
8959
  "commandVersion": 1,
7782
- "ownerDomain": "settings",
7783
- "title": "Update Workspace Settings",
7784
- "description": "Update the workspace default timezone using a valid IANA timezone.",
8960
+ "ownerDomain": "behavior_metrics",
8961
+ "title": "Create Behavior Metric",
8962
+ "description": "Create or idempotently return an event-based Behavior Metric in ENABLED and SHADOW.",
7785
8963
  "inputSchema": {
7786
8964
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7787
8965
  "type": "object",
7788
8966
  "properties": {
7789
- "defaultTimezone": {
8967
+ "sourceKey": {
7790
8968
  "type": "string",
7791
- "minLength": 1
8969
+ "pattern": "^metric_source_v1_[a-f0-9]{32}$"
8970
+ },
8971
+ "eventName": {
8972
+ "type": "string",
8973
+ "minLength": 1,
8974
+ "maxLength": 191
8975
+ },
8976
+ "behaviorKey": {
8977
+ "type": "string",
8978
+ "maxLength": 64,
8979
+ "pattern": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"
8980
+ },
8981
+ "label": {
8982
+ "type": "string",
8983
+ "minLength": 1,
8984
+ "maxLength": 255
8985
+ },
8986
+ "propertyFilters": {
8987
+ "default": [],
8988
+ "maxItems": 5,
8989
+ "type": "array",
8990
+ "items": {
8991
+ "oneOf": [
8992
+ {
8993
+ "type": "object",
8994
+ "properties": {
8995
+ "property": {
8996
+ "type": "string",
8997
+ "minLength": 1,
8998
+ "maxLength": 191
8999
+ },
9000
+ "operator": {
9001
+ "type": "string",
9002
+ "const": "equals"
9003
+ },
9004
+ "value": {
9005
+ "oneOf": [
9006
+ {
9007
+ "type": "object",
9008
+ "properties": {
9009
+ "type": {
9010
+ "type": "string",
9011
+ "const": "string"
9012
+ },
9013
+ "value": {
9014
+ "type": "string",
9015
+ "maxLength": 191
9016
+ }
9017
+ },
9018
+ "required": [
9019
+ "type",
9020
+ "value"
9021
+ ],
9022
+ "additionalProperties": false
9023
+ },
9024
+ {
9025
+ "type": "object",
9026
+ "properties": {
9027
+ "type": {
9028
+ "type": "string",
9029
+ "const": "number"
9030
+ },
9031
+ "value": {
9032
+ "type": "number",
9033
+ "minimum": -9007199254740991,
9034
+ "maximum": 9007199254740991
9035
+ }
9036
+ },
9037
+ "required": [
9038
+ "type",
9039
+ "value"
9040
+ ],
9041
+ "additionalProperties": false
9042
+ },
9043
+ {
9044
+ "type": "object",
9045
+ "properties": {
9046
+ "type": {
9047
+ "type": "string",
9048
+ "const": "boolean"
9049
+ },
9050
+ "value": {
9051
+ "type": "boolean"
9052
+ }
9053
+ },
9054
+ "required": [
9055
+ "type",
9056
+ "value"
9057
+ ],
9058
+ "additionalProperties": false
9059
+ }
9060
+ ]
9061
+ }
9062
+ },
9063
+ "required": [
9064
+ "property",
9065
+ "operator",
9066
+ "value"
9067
+ ],
9068
+ "additionalProperties": false
9069
+ },
9070
+ {
9071
+ "type": "object",
9072
+ "properties": {
9073
+ "property": {
9074
+ "type": "string",
9075
+ "minLength": 1,
9076
+ "maxLength": 191
9077
+ },
9078
+ "operator": {
9079
+ "type": "string",
9080
+ "const": "exists"
9081
+ }
9082
+ },
9083
+ "required": [
9084
+ "property",
9085
+ "operator"
9086
+ ],
9087
+ "additionalProperties": false
9088
+ }
9089
+ ]
9090
+ }
7792
9091
  }
7793
9092
  },
7794
9093
  "required": [
7795
- "defaultTimezone"
9094
+ "sourceKey",
9095
+ "eventName",
9096
+ "behaviorKey",
9097
+ "label"
7796
9098
  ],
7797
9099
  "additionalProperties": false
7798
9100
  },
@@ -7800,22 +9102,237 @@ var publicToolContracts = {
7800
9102
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7801
9103
  "type": "object",
7802
9104
  "properties": {
7803
- "settings": {
9105
+ "created": {
9106
+ "type": "boolean"
9107
+ },
9108
+ "metric": {
7804
9109
  "type": "object",
7805
9110
  "properties": {
7806
- "defaultTimezone": {
9111
+ "sourceKey": {
7807
9112
  "type": "string",
7808
- "minLength": 1
9113
+ "pattern": "^metric_source_v1_[a-f0-9]{32}$"
9114
+ },
9115
+ "behaviorKey": {
9116
+ "type": "string",
9117
+ "maxLength": 64,
9118
+ "pattern": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"
9119
+ },
9120
+ "label": {
9121
+ "type": "string",
9122
+ "minLength": 1,
9123
+ "maxLength": 255
9124
+ },
9125
+ "eventSelection": {
9126
+ "oneOf": [
9127
+ {
9128
+ "type": "object",
9129
+ "properties": {
9130
+ "mode": {
9131
+ "type": "string",
9132
+ "const": "exact_event_names"
9133
+ },
9134
+ "eventNames": {
9135
+ "minItems": 1,
9136
+ "maxItems": 1,
9137
+ "type": "array",
9138
+ "items": {
9139
+ "type": "string",
9140
+ "minLength": 1,
9141
+ "maxLength": 191
9142
+ }
9143
+ }
9144
+ },
9145
+ "required": [
9146
+ "mode",
9147
+ "eventNames"
9148
+ ],
9149
+ "additionalProperties": false
9150
+ },
9151
+ {
9152
+ "type": "object",
9153
+ "properties": {
9154
+ "mode": {
9155
+ "type": "string",
9156
+ "const": "configured_event"
9157
+ },
9158
+ "eventName": {
9159
+ "type": "string",
9160
+ "minLength": 1,
9161
+ "maxLength": 191
9162
+ },
9163
+ "propertyFilters": {
9164
+ "minItems": 1,
9165
+ "maxItems": 5,
9166
+ "type": "array",
9167
+ "items": {
9168
+ "oneOf": [
9169
+ {
9170
+ "type": "object",
9171
+ "properties": {
9172
+ "property": {
9173
+ "type": "string",
9174
+ "minLength": 1,
9175
+ "maxLength": 191
9176
+ },
9177
+ "operator": {
9178
+ "type": "string",
9179
+ "const": "equals"
9180
+ },
9181
+ "value": {
9182
+ "oneOf": [
9183
+ {
9184
+ "type": "object",
9185
+ "properties": {
9186
+ "type": {
9187
+ "type": "string",
9188
+ "const": "string"
9189
+ },
9190
+ "value": {
9191
+ "type": "string",
9192
+ "maxLength": 191
9193
+ }
9194
+ },
9195
+ "required": [
9196
+ "type",
9197
+ "value"
9198
+ ],
9199
+ "additionalProperties": false
9200
+ },
9201
+ {
9202
+ "type": "object",
9203
+ "properties": {
9204
+ "type": {
9205
+ "type": "string",
9206
+ "const": "number"
9207
+ },
9208
+ "value": {
9209
+ "type": "number",
9210
+ "minimum": -9007199254740991,
9211
+ "maximum": 9007199254740991
9212
+ }
9213
+ },
9214
+ "required": [
9215
+ "type",
9216
+ "value"
9217
+ ],
9218
+ "additionalProperties": false
9219
+ },
9220
+ {
9221
+ "type": "object",
9222
+ "properties": {
9223
+ "type": {
9224
+ "type": "string",
9225
+ "const": "boolean"
9226
+ },
9227
+ "value": {
9228
+ "type": "boolean"
9229
+ }
9230
+ },
9231
+ "required": [
9232
+ "type",
9233
+ "value"
9234
+ ],
9235
+ "additionalProperties": false
9236
+ }
9237
+ ]
9238
+ }
9239
+ },
9240
+ "required": [
9241
+ "property",
9242
+ "operator",
9243
+ "value"
9244
+ ],
9245
+ "additionalProperties": false
9246
+ },
9247
+ {
9248
+ "type": "object",
9249
+ "properties": {
9250
+ "property": {
9251
+ "type": "string",
9252
+ "minLength": 1,
9253
+ "maxLength": 191
9254
+ },
9255
+ "operator": {
9256
+ "type": "string",
9257
+ "const": "exists"
9258
+ }
9259
+ },
9260
+ "required": [
9261
+ "property",
9262
+ "operator"
9263
+ ],
9264
+ "additionalProperties": false
9265
+ }
9266
+ ]
9267
+ }
9268
+ }
9269
+ },
9270
+ "required": [
9271
+ "mode",
9272
+ "eventName",
9273
+ "propertyFilters"
9274
+ ],
9275
+ "additionalProperties": false
9276
+ }
9277
+ ]
9278
+ },
9279
+ "status": {
9280
+ "type": "string",
9281
+ "const": "ENABLED"
9282
+ },
9283
+ "evaluationMode": {
9284
+ "type": "string",
9285
+ "const": "SHADOW"
9286
+ },
9287
+ "definitions": {
9288
+ "minItems": 2,
9289
+ "maxItems": 2,
9290
+ "type": "array",
9291
+ "items": {
9292
+ "type": "object",
9293
+ "properties": {
9294
+ "id": {
9295
+ "type": "string",
9296
+ "format": "uuid",
9297
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
9298
+ },
9299
+ "metricKey": {
9300
+ "type": "string",
9301
+ "minLength": 1,
9302
+ "maxLength": 191
9303
+ },
9304
+ "aggregation": {
9305
+ "type": "string",
9306
+ "enum": [
9307
+ "active_days",
9308
+ "event_count"
9309
+ ]
9310
+ }
9311
+ },
9312
+ "required": [
9313
+ "id",
9314
+ "metricKey",
9315
+ "aggregation"
9316
+ ],
9317
+ "additionalProperties": false
9318
+ }
7809
9319
  }
7810
9320
  },
7811
9321
  "required": [
7812
- "defaultTimezone"
9322
+ "sourceKey",
9323
+ "behaviorKey",
9324
+ "label",
9325
+ "eventSelection",
9326
+ "status",
9327
+ "evaluationMode",
9328
+ "definitions"
7813
9329
  ],
7814
9330
  "additionalProperties": false
7815
9331
  }
7816
9332
  },
7817
9333
  "required": [
7818
- "settings"
9334
+ "created",
9335
+ "metric"
7819
9336
  ],
7820
9337
  "additionalProperties": false
7821
9338
  }
@@ -7863,11 +9380,15 @@ var consumerToolPolicies = {
7863
9380
  "outlit_query",
7864
9381
  "outlit_schema"
7865
9382
  ],
7866
- "cli": [
9383
+ "pi": [
7867
9384
  "outlit_list_customers",
7868
9385
  "outlit_list_users",
7869
9386
  "outlit_list_workspace_users",
7870
9387
  "outlit_get_customer",
9388
+ "outlit_assign_customer_owner",
9389
+ "outlit_grant_customer_access",
9390
+ "outlit_update_customer_access",
9391
+ "outlit_revoke_customer_access",
7871
9392
  "outlit_get_timeline",
7872
9393
  "outlit_list_facts",
7873
9394
  "outlit_get_fact",
@@ -7883,16 +9404,54 @@ var consumerToolPolicies = {
7883
9404
  "outlit_enable_destination",
7884
9405
  "outlit_disable_destination",
7885
9406
  "outlit_archive_destination",
7886
- "outlit_list_integrations",
7887
9407
  "outlit_get_integration_capabilities",
7888
9408
  "outlit_begin_integration_setup",
7889
9409
  "outlit_get_integration_setup_status",
7890
- "outlit_get_integration_sync_status",
9410
+ "outlit_get_integration_status",
9411
+ "outlit_setup_integration",
7891
9412
  "outlit_get_customer_activation",
7892
9413
  "outlit_preview_customer_activation",
7893
9414
  "outlit_update_customer_activation",
7894
9415
  "outlit_get_workspace_settings",
7895
9416
  "outlit_update_workspace_settings"
9417
+ ],
9418
+ "cli": [
9419
+ "outlit_list_customers",
9420
+ "outlit_list_users",
9421
+ "outlit_list_workspace_users",
9422
+ "outlit_get_customer",
9423
+ "outlit_assign_customer_owner",
9424
+ "outlit_grant_customer_access",
9425
+ "outlit_update_customer_access",
9426
+ "outlit_revoke_customer_access",
9427
+ "outlit_get_timeline",
9428
+ "outlit_list_facts",
9429
+ "outlit_get_fact",
9430
+ "outlit_get_source",
9431
+ "outlit_list_sources",
9432
+ "outlit_search_customer_context",
9433
+ "outlit_query",
9434
+ "outlit_schema",
9435
+ "outlit_list_destinations",
9436
+ "outlit_get_destination",
9437
+ "outlit_create_destination",
9438
+ "outlit_update_destination",
9439
+ "outlit_enable_destination",
9440
+ "outlit_disable_destination",
9441
+ "outlit_archive_destination",
9442
+ "outlit_get_integration_capabilities",
9443
+ "outlit_begin_integration_setup",
9444
+ "outlit_get_integration_setup_status",
9445
+ "outlit_get_integration_status",
9446
+ "outlit_setup_integration",
9447
+ "outlit_get_customer_activation",
9448
+ "outlit_preview_customer_activation",
9449
+ "outlit_update_customer_activation",
9450
+ "outlit_get_workspace_settings",
9451
+ "outlit_update_workspace_settings",
9452
+ "outlit_list_behavior_metric_sources",
9453
+ "outlit_list_behavior_metric_events",
9454
+ "outlit_create_behavior_metric"
7896
9455
  ]
7897
9456
  };
7898
9457
  var toolGatewayTransport = {
@@ -7931,11 +9490,14 @@ var apiKeyGrants = [
7931
9490
  "workspace_members:read",
7932
9491
  "analytics:read",
7933
9492
  "destinations:manage",
9493
+ "behavior_metrics:manage",
9494
+ "integrations:connect_own",
7934
9495
  "integrations:manage",
7935
9496
  "activation:read",
7936
9497
  "activation:manage",
7937
9498
  "workspace_settings:read",
7938
- "workspace_settings:manage"
9499
+ "workspace_settings:manage",
9500
+ "customer_access:manage"
7939
9501
  ];
7940
9502
  var apiKeyValidationSuccessSchema = {
7941
9503
  "$schema": "https://json-schema.org/draft/2020-12/schema",
@@ -8056,11 +9618,14 @@ var apiKeyValidationSuccessSchema = {
8056
9618
  "workspace_members:read",
8057
9619
  "analytics:read",
8058
9620
  "destinations:manage",
9621
+ "behavior_metrics:manage",
9622
+ "integrations:connect_own",
8059
9623
  "integrations:manage",
8060
9624
  "activation:read",
8061
9625
  "activation:manage",
8062
9626
  "workspace_settings:read",
8063
- "workspace_settings:manage"
9627
+ "workspace_settings:manage",
9628
+ "customer_access:manage"
8064
9629
  ]
8065
9630
  }
8066
9631
  },
@@ -8111,11 +9676,14 @@ var apiKeyValidationSuccessSchema = {
8111
9676
  "workspace_members:read",
8112
9677
  "analytics:read",
8113
9678
  "destinations:manage",
9679
+ "behavior_metrics:manage",
9680
+ "integrations:connect_own",
8114
9681
  "integrations:manage",
8115
9682
  "activation:read",
8116
9683
  "activation:manage",
8117
9684
  "workspace_settings:read",
8118
- "workspace_settings:manage"
9685
+ "workspace_settings:manage",
9686
+ "customer_access:manage"
8119
9687
  ]
8120
9688
  }
8121
9689
  }
@@ -9153,7 +10721,7 @@ var schemaTables = [
9153
10721
  "users",
9154
10722
  "revenue"
9155
10723
  ];
9156
- var sdkConsumerContractHash = "1f8804d6d2d3aa562d46872bc118a43b9a5d8531b834ce10c0f01b3659f5b6b2";
10724
+ var sdkConsumerContractHash = "39fe276d5127aa59cdfc0172cc44c9281beb62b1942c44094421f2a56fbb40fa";
9157
10725
 
9158
10726
  // src/contracts.ts
9159
10727
  var publicToolNameSet = new Set(publicToolNames);
@@ -9244,7 +10812,7 @@ function createOutlitClient(options) {
9244
10812
  return {
9245
10813
  key,
9246
10814
  baseUrl,
9247
- async callTool(toolName, input = {}) {
10815
+ async callTool(toolName, input = {}, callOptions) {
9248
10816
  if (!isPublicToolName(toolName)) {
9249
10817
  throw new Error(`Unknown public tool: ${toolName}`);
9250
10818
  }
@@ -9257,7 +10825,8 @@ function createOutlitClient(options) {
9257
10825
  body: JSON.stringify({
9258
10826
  tool: toolName,
9259
10827
  input
9260
- })
10828
+ }),
10829
+ ...callOptions?.signal ? { signal: callOptions.signal } : {}
9261
10830
  });
9262
10831
  if (!response.ok) {
9263
10832
  const text = await response.text();
@@ -9310,17 +10879,23 @@ function matchesGeneratedJsonSchema(value, schema) {
9310
10879
  }
9311
10880
  case "array": {
9312
10881
  if (!Array.isArray(value)) return false;
10882
+ if (schema.minItems !== void 0 && value.length < schema.minItems) return false;
10883
+ if (schema.maxItems !== void 0 && value.length > schema.maxItems) return false;
9313
10884
  const itemSchema = schema.items;
9314
10885
  return !itemSchema || value.every((item) => matchesGeneratedJsonSchema(item, itemSchema));
9315
10886
  }
9316
- case "string":
9317
- return typeof value === "string";
10887
+ case "string": {
10888
+ if (typeof value !== "string") return false;
10889
+ if (schema.minLength !== void 0 && value.length < schema.minLength) return false;
10890
+ if (schema.maxLength !== void 0 && value.length > schema.maxLength) return false;
10891
+ return schema.pattern === void 0 || new RegExp(schema.pattern).test(value);
10892
+ }
9318
10893
  case "boolean":
9319
10894
  return typeof value === "boolean";
9320
10895
  case "number":
9321
- return typeof value === "number" && Number.isFinite(value);
10896
+ return matchesNumberBounds(value, schema, false);
9322
10897
  case "integer":
9323
- return typeof value === "number" && Number.isSafeInteger(value);
10898
+ return matchesNumberBounds(value, schema, true);
9324
10899
  case "null":
9325
10900
  return value === null;
9326
10901
  case void 0:
@@ -9329,10 +10904,18 @@ function matchesGeneratedJsonSchema(value, schema) {
9329
10904
  return false;
9330
10905
  }
9331
10906
  }
10907
+ function matchesNumberBounds(value, schema, integer) {
10908
+ if (typeof value !== "number" || !Number.isFinite(value)) return false;
10909
+ if (integer && !Number.isSafeInteger(value)) return false;
10910
+ if (schema.minimum !== void 0 && value < schema.minimum) return false;
10911
+ if (schema.maximum !== void 0 && value > schema.maximum) return false;
10912
+ return true;
10913
+ }
9332
10914
 
9333
10915
  // src/toolsets.ts
9334
10916
  var defaultToolNames = consumerToolPolicies.default;
9335
10917
  var analyticalToolNames = consumerToolPolicies.analytical;
10918
+ var piToolNames = consumerToolPolicies.pi;
9336
10919
  var cliToolNames = consumerToolPolicies.cli;
9337
10920
  var allPublicToolNames = publicToolNames;
9338
10921
  var defaultToolNameSet = new Set(defaultToolNames);
@@ -9373,6 +10956,7 @@ var sqlToolNames = analyticalToolNames.filter(
9373
10956
  isPublicToolName,
9374
10957
  matchesGeneratedJsonSchema,
9375
10958
  normalizeCustomerSourceType,
10959
+ piToolNames,
9376
10960
  publicOpenApiTransports,
9377
10961
  publicToolContracts,
9378
10962
  publicToolNames,