@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.js CHANGED
@@ -5,6 +5,10 @@ var publicToolNames = [
5
5
  "outlit_list_users",
6
6
  "outlit_list_workspace_users",
7
7
  "outlit_get_customer",
8
+ "outlit_assign_customer_owner",
9
+ "outlit_grant_customer_access",
10
+ "outlit_update_customer_access",
11
+ "outlit_revoke_customer_access",
8
12
  "outlit_get_timeline",
9
13
  "outlit_list_facts",
10
14
  "outlit_get_fact",
@@ -20,16 +24,19 @@ var publicToolNames = [
20
24
  "outlit_enable_destination",
21
25
  "outlit_disable_destination",
22
26
  "outlit_archive_destination",
23
- "outlit_list_integrations",
24
27
  "outlit_get_integration_capabilities",
25
28
  "outlit_begin_integration_setup",
26
29
  "outlit_get_integration_setup_status",
27
- "outlit_get_integration_sync_status",
30
+ "outlit_get_integration_status",
31
+ "outlit_setup_integration",
28
32
  "outlit_get_customer_activation",
29
33
  "outlit_preview_customer_activation",
30
34
  "outlit_update_customer_activation",
31
35
  "outlit_get_workspace_settings",
32
- "outlit_update_workspace_settings"
36
+ "outlit_update_workspace_settings",
37
+ "outlit_list_behavior_metric_sources",
38
+ "outlit_list_behavior_metric_events",
39
+ "outlit_create_behavior_metric"
33
40
  ];
34
41
  var publicToolContracts = {
35
42
  "outlit_list_customers": {
@@ -594,7 +601,7 @@ var publicToolContracts = {
594
601
  "commandVersion": 1,
595
602
  "ownerDomain": "users",
596
603
  "title": "List Workspace Users",
597
- "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.",
604
+ "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.",
598
605
  "inputSchema": {
599
606
  "$schema": "https://json-schema.org/draft/2020-12/schema",
600
607
  "type": "object",
@@ -615,7 +622,7 @@ var publicToolContracts = {
615
622
  "maxLength": 500
616
623
  },
617
624
  "hasOwnedCustomers": {
618
- "description": "When true, return only workspace users who own at least one customer",
625
+ "description": "When true, return only members who own customers; when false, return only members who own none",
619
626
  "type": "boolean"
620
627
  },
621
628
  "limit": {
@@ -1532,6 +1539,269 @@ var publicToolContracts = {
1532
1539
  "additionalProperties": false
1533
1540
  }
1534
1541
  },
1542
+ "outlit_assign_customer_owner": {
1543
+ "toolName": "outlit_assign_customer_owner",
1544
+ "commandId": "customer.owner.assign",
1545
+ "commandVersion": 1,
1546
+ "ownerDomain": "customers",
1547
+ "title": "Assign Customer Owner",
1548
+ "description": "Assign an active workspace member as this customer\u2019s primary owner. The former owner keeps Editor access.",
1549
+ "inputSchema": {
1550
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1551
+ "type": "object",
1552
+ "properties": {
1553
+ "customerId": {
1554
+ "type": "string",
1555
+ "format": "uuid",
1556
+ "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)$"
1557
+ },
1558
+ "targetUserId": {
1559
+ "type": "string",
1560
+ "minLength": 1,
1561
+ "maxLength": 500
1562
+ }
1563
+ },
1564
+ "required": [
1565
+ "customerId",
1566
+ "targetUserId"
1567
+ ]
1568
+ },
1569
+ "outputSchema": {
1570
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1571
+ "type": "object",
1572
+ "properties": {
1573
+ "customerId": {
1574
+ "type": "string"
1575
+ },
1576
+ "ownerId": {
1577
+ "type": "string"
1578
+ },
1579
+ "previousOwnerId": {
1580
+ "anyOf": [
1581
+ {
1582
+ "type": "string"
1583
+ },
1584
+ {
1585
+ "type": "null"
1586
+ }
1587
+ ]
1588
+ }
1589
+ },
1590
+ "required": [
1591
+ "customerId",
1592
+ "ownerId",
1593
+ "previousOwnerId"
1594
+ ],
1595
+ "additionalProperties": false
1596
+ }
1597
+ },
1598
+ "outlit_grant_customer_access": {
1599
+ "toolName": "outlit_grant_customer_access",
1600
+ "commandId": "customer.access.grant",
1601
+ "commandVersion": 1,
1602
+ "ownerDomain": "customers",
1603
+ "title": "Grant Customer Access",
1604
+ "description": "Share a customer with an active workspace member as a Viewer or Editor. The customer ID must be exact.",
1605
+ "inputSchema": {
1606
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1607
+ "type": "object",
1608
+ "properties": {
1609
+ "customerId": {
1610
+ "type": "string",
1611
+ "format": "uuid",
1612
+ "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)$"
1613
+ },
1614
+ "targetUserId": {
1615
+ "type": "string",
1616
+ "minLength": 1,
1617
+ "maxLength": 500
1618
+ },
1619
+ "role": {
1620
+ "type": "string",
1621
+ "enum": [
1622
+ "VIEWER",
1623
+ "EDITOR"
1624
+ ]
1625
+ }
1626
+ },
1627
+ "required": [
1628
+ "customerId",
1629
+ "targetUserId",
1630
+ "role"
1631
+ ]
1632
+ },
1633
+ "outputSchema": {
1634
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1635
+ "type": "object",
1636
+ "properties": {
1637
+ "access": {
1638
+ "type": "object",
1639
+ "properties": {
1640
+ "customerId": {
1641
+ "type": "string"
1642
+ },
1643
+ "userId": {
1644
+ "type": "string"
1645
+ },
1646
+ "role": {
1647
+ "type": "string",
1648
+ "enum": [
1649
+ "VIEWER",
1650
+ "EDITOR"
1651
+ ]
1652
+ },
1653
+ "grantedById": {
1654
+ "anyOf": [
1655
+ {
1656
+ "type": "string"
1657
+ },
1658
+ {
1659
+ "type": "null"
1660
+ }
1661
+ ]
1662
+ }
1663
+ },
1664
+ "required": [
1665
+ "customerId",
1666
+ "userId",
1667
+ "role",
1668
+ "grantedById"
1669
+ ],
1670
+ "additionalProperties": false
1671
+ }
1672
+ },
1673
+ "required": [
1674
+ "access"
1675
+ ],
1676
+ "additionalProperties": false
1677
+ }
1678
+ },
1679
+ "outlit_update_customer_access": {
1680
+ "toolName": "outlit_update_customer_access",
1681
+ "commandId": "customer.access.update",
1682
+ "commandVersion": 1,
1683
+ "ownerDomain": "customers",
1684
+ "title": "Update Customer Access",
1685
+ "description": "Change an existing customer collaborator between Viewer and Editor.",
1686
+ "inputSchema": {
1687
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1688
+ "type": "object",
1689
+ "properties": {
1690
+ "customerId": {
1691
+ "type": "string",
1692
+ "format": "uuid",
1693
+ "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)$"
1694
+ },
1695
+ "targetUserId": {
1696
+ "type": "string",
1697
+ "minLength": 1,
1698
+ "maxLength": 500
1699
+ },
1700
+ "role": {
1701
+ "type": "string",
1702
+ "enum": [
1703
+ "VIEWER",
1704
+ "EDITOR"
1705
+ ]
1706
+ }
1707
+ },
1708
+ "required": [
1709
+ "customerId",
1710
+ "targetUserId",
1711
+ "role"
1712
+ ]
1713
+ },
1714
+ "outputSchema": {
1715
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1716
+ "type": "object",
1717
+ "properties": {
1718
+ "access": {
1719
+ "type": "object",
1720
+ "properties": {
1721
+ "customerId": {
1722
+ "type": "string"
1723
+ },
1724
+ "userId": {
1725
+ "type": "string"
1726
+ },
1727
+ "role": {
1728
+ "type": "string",
1729
+ "enum": [
1730
+ "VIEWER",
1731
+ "EDITOR"
1732
+ ]
1733
+ },
1734
+ "grantedById": {
1735
+ "anyOf": [
1736
+ {
1737
+ "type": "string"
1738
+ },
1739
+ {
1740
+ "type": "null"
1741
+ }
1742
+ ]
1743
+ }
1744
+ },
1745
+ "required": [
1746
+ "customerId",
1747
+ "userId",
1748
+ "role",
1749
+ "grantedById"
1750
+ ],
1751
+ "additionalProperties": false
1752
+ }
1753
+ },
1754
+ "required": [
1755
+ "access"
1756
+ ],
1757
+ "additionalProperties": false
1758
+ }
1759
+ },
1760
+ "outlit_revoke_customer_access": {
1761
+ "toolName": "outlit_revoke_customer_access",
1762
+ "commandId": "customer.access.revoke",
1763
+ "commandVersion": 1,
1764
+ "ownerDomain": "customers",
1765
+ "title": "Revoke Customer Access",
1766
+ "description": "Remove a collaborator\u2019s explicit access to a customer.",
1767
+ "inputSchema": {
1768
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1769
+ "type": "object",
1770
+ "properties": {
1771
+ "customerId": {
1772
+ "type": "string",
1773
+ "format": "uuid",
1774
+ "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)$"
1775
+ },
1776
+ "targetUserId": {
1777
+ "type": "string",
1778
+ "minLength": 1,
1779
+ "maxLength": 500
1780
+ }
1781
+ },
1782
+ "required": [
1783
+ "customerId",
1784
+ "targetUserId"
1785
+ ]
1786
+ },
1787
+ "outputSchema": {
1788
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1789
+ "type": "object",
1790
+ "properties": {
1791
+ "customerId": {
1792
+ "type": "string"
1793
+ },
1794
+ "userId": {
1795
+ "type": "string"
1796
+ }
1797
+ },
1798
+ "required": [
1799
+ "customerId",
1800
+ "userId"
1801
+ ],
1802
+ "additionalProperties": false
1803
+ }
1804
+ },
1535
1805
  "outlit_get_timeline": {
1536
1806
  "toolName": "outlit_get_timeline",
1537
1807
  "commandId": "timeline.get",
@@ -6924,20 +7194,21 @@ var publicToolContracts = {
6924
7194
  "additionalProperties": false
6925
7195
  }
6926
7196
  },
6927
- "outlit_list_integrations": {
6928
- "toolName": "outlit_list_integrations",
6929
- "commandId": "integration.list",
6930
- "commandVersion": 1,
7197
+ "outlit_get_integration_capabilities": {
7198
+ "toolName": "outlit_get_integration_capabilities",
7199
+ "commandId": "integration.capabilities.get",
7200
+ "commandVersion": 2,
6931
7201
  "ownerDomain": "integrations",
6932
- "title": "List Integrations",
6933
- "description": "List available integrations and safe connection health for the current actor.",
7202
+ "title": "Get Integration Capabilities",
7203
+ "description": "Describe safe integration setup modes without exposing credential fields or provider configuration.",
6934
7204
  "inputSchema": {
6935
7205
  "$schema": "https://json-schema.org/draft/2020-12/schema",
6936
7206
  "type": "object",
6937
7207
  "properties": {
6938
- "connectedOnly": {
6939
- "default": false,
6940
- "type": "boolean"
7208
+ "provider": {
7209
+ "type": "string",
7210
+ "minLength": 1,
7211
+ "maxLength": 80
6941
7212
  }
6942
7213
  },
6943
7214
  "additionalProperties": false
@@ -6946,7 +7217,7 @@ var publicToolContracts = {
6946
7217
  "$schema": "https://json-schema.org/draft/2020-12/schema",
6947
7218
  "type": "object",
6948
7219
  "properties": {
6949
- "integrations": {
7220
+ "providers": {
6950
7221
  "type": "array",
6951
7222
  "items": {
6952
7223
  "type": "object",
@@ -6974,39 +7245,22 @@ var publicToolContracts = {
6974
7245
  "support"
6975
7246
  ]
6976
7247
  },
6977
- "status": {
7248
+ "authType": {
6978
7249
  "type": "string",
6979
7250
  "enum": [
6980
- "available",
6981
- "connected",
6982
- "setup_required"
6983
- ]
6984
- },
6985
- "lastDataReceivedAt": {
6986
- "anyOf": [
6987
- {
6988
- "type": "string",
6989
- "format": "date-time",
6990
- "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))$"
6991
- },
6992
- {
6993
- "type": "null"
6994
- }
7251
+ "oauth",
7252
+ "api_key",
7253
+ "basic_auth"
6995
7254
  ]
6996
7255
  },
6997
- "syncStatus": {
6998
- "anyOf": [
6999
- {
7000
- "type": "string",
7001
- "minLength": 1,
7002
- "maxLength": 80
7003
- },
7004
- {
7005
- "type": "null"
7006
- }
7256
+ "setupMode": {
7257
+ "type": "string",
7258
+ "enum": [
7259
+ "browser_handoff",
7260
+ "human_controlled"
7007
7261
  ]
7008
7262
  },
7009
- "hasSyncError": {
7263
+ "browserHandoffAvailable": {
7010
7264
  "type": "boolean"
7011
7265
  }
7012
7266
  },
@@ -7014,116 +7268,31 @@ var publicToolContracts = {
7014
7268
  "provider",
7015
7269
  "name",
7016
7270
  "category",
7017
- "status",
7018
- "lastDataReceivedAt",
7019
- "syncStatus",
7020
- "hasSyncError"
7271
+ "authType",
7272
+ "setupMode",
7273
+ "browserHandoffAvailable"
7021
7274
  ],
7022
7275
  "additionalProperties": false
7023
7276
  }
7277
+ },
7278
+ "preferredSetupVersion": {
7279
+ "type": "number",
7280
+ "const": 1
7024
7281
  }
7025
7282
  },
7026
7283
  "required": [
7027
- "integrations"
7284
+ "providers"
7028
7285
  ],
7029
7286
  "additionalProperties": false
7030
7287
  }
7031
7288
  },
7032
- "outlit_get_integration_capabilities": {
7033
- "toolName": "outlit_get_integration_capabilities",
7034
- "commandId": "integration.capabilities.get",
7289
+ "outlit_begin_integration_setup": {
7290
+ "toolName": "outlit_begin_integration_setup",
7291
+ "commandId": "integration.setup.begin",
7035
7292
  "commandVersion": 1,
7036
7293
  "ownerDomain": "integrations",
7037
- "title": "Get Integration Capabilities",
7038
- "description": "Describe safe integration setup modes without exposing credential fields or provider configuration.",
7039
- "inputSchema": {
7040
- "$schema": "https://json-schema.org/draft/2020-12/schema",
7041
- "type": "object",
7042
- "properties": {
7043
- "provider": {
7044
- "type": "string",
7045
- "minLength": 1,
7046
- "maxLength": 80
7047
- }
7048
- },
7049
- "additionalProperties": false
7050
- },
7051
- "outputSchema": {
7052
- "$schema": "https://json-schema.org/draft/2020-12/schema",
7053
- "type": "object",
7054
- "properties": {
7055
- "providers": {
7056
- "type": "array",
7057
- "items": {
7058
- "type": "object",
7059
- "properties": {
7060
- "provider": {
7061
- "type": "string",
7062
- "minLength": 1,
7063
- "maxLength": 80
7064
- },
7065
- "name": {
7066
- "type": "string",
7067
- "minLength": 1,
7068
- "maxLength": 120
7069
- },
7070
- "category": {
7071
- "type": "string",
7072
- "enum": [
7073
- "crm",
7074
- "communication",
7075
- "storage",
7076
- "calls",
7077
- "calendar",
7078
- "analytics",
7079
- "billing",
7080
- "support"
7081
- ]
7082
- },
7083
- "authType": {
7084
- "type": "string",
7085
- "enum": [
7086
- "oauth",
7087
- "api_key",
7088
- "basic_auth"
7089
- ]
7090
- },
7091
- "setupMode": {
7092
- "type": "string",
7093
- "enum": [
7094
- "browser_handoff",
7095
- "human_controlled"
7096
- ]
7097
- },
7098
- "browserHandoffAvailable": {
7099
- "type": "boolean"
7100
- }
7101
- },
7102
- "required": [
7103
- "provider",
7104
- "name",
7105
- "category",
7106
- "authType",
7107
- "setupMode",
7108
- "browserHandoffAvailable"
7109
- ],
7110
- "additionalProperties": false
7111
- }
7112
- }
7113
- },
7114
- "required": [
7115
- "providers"
7116
- ],
7117
- "additionalProperties": false
7118
- }
7119
- },
7120
- "outlit_begin_integration_setup": {
7121
- "toolName": "outlit_begin_integration_setup",
7122
- "commandId": "integration.setup.begin",
7123
- "commandVersion": 1,
7124
- "ownerDomain": "integrations",
7125
- "title": "Begin Integration Setup",
7126
- "description": "Begin a short-lived browser handoff for an integration that supports browser authentication.",
7294
+ "title": "Begin Integration Setup",
7295
+ "description": "Begin a short-lived browser handoff for an integration that supports browser authentication.",
7127
7296
  "inputSchema": {
7128
7297
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7129
7298
  "type": "object",
@@ -7239,118 +7408,923 @@ var publicToolContracts = {
7239
7408
  }
7240
7409
  ]
7241
7410
  },
7242
- "status": {
7243
- "type": "string",
7244
- "enum": [
7245
- "expired",
7246
- "pending",
7247
- "connected",
7248
- "failed"
7249
- ]
7250
- }
7251
- },
7252
- "required": [
7253
- "provider",
7254
- "status"
7255
- ],
7256
- "additionalProperties": false
7257
- }
7258
- },
7259
- "outlit_get_integration_sync_status": {
7260
- "toolName": "outlit_get_integration_sync_status",
7261
- "commandId": "integration.sync_status.get",
7262
- "commandVersion": 1,
7263
- "ownerDomain": "integrations",
7264
- "title": "Get Integration Sync Status",
7265
- "description": "Get safe model-level sync status for a connection visible to the current actor.",
7266
- "inputSchema": {
7267
- "$schema": "https://json-schema.org/draft/2020-12/schema",
7268
- "type": "object",
7269
- "properties": {
7270
- "provider": {
7271
- "type": "string",
7272
- "minLength": 1,
7273
- "maxLength": 80
7274
- }
7275
- },
7276
- "required": [
7277
- "provider"
7278
- ],
7279
- "additionalProperties": false
7280
- },
7281
- "outputSchema": {
7282
- "$schema": "https://json-schema.org/draft/2020-12/schema",
7283
- "type": "object",
7284
- "properties": {
7285
- "provider": {
7286
- "type": "string",
7287
- "minLength": 1,
7288
- "maxLength": 80
7289
- },
7290
- "name": {
7291
- "type": "string",
7292
- "minLength": 1,
7293
- "maxLength": 120
7294
- },
7295
- "category": {
7296
- "type": "string",
7297
- "enum": [
7298
- "crm",
7299
- "communication",
7300
- "storage",
7301
- "calls",
7302
- "calendar",
7303
- "analytics",
7304
- "billing",
7305
- "support"
7306
- ]
7307
- },
7308
- "status": {
7309
- "type": "string",
7310
- "enum": [
7311
- "not_connected",
7312
- "connected"
7313
- ]
7314
- },
7315
- "syncs": {
7316
- "type": "array",
7317
- "items": {
7318
- "type": "object",
7319
- "properties": {
7320
- "model": {
7321
- "type": "string",
7322
- "minLength": 1,
7323
- "maxLength": 120
7324
- },
7325
- "status": {
7326
- "type": "string",
7327
- "minLength": 1,
7328
- "maxLength": 80
7329
- },
7330
- "lastSyncedAt": {
7331
- "anyOf": [
7332
- {
7333
- "type": "string",
7334
- "format": "date-time",
7335
- "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))$"
7336
- },
7337
- {
7338
- "type": "null"
7339
- }
7340
- ]
7411
+ "status": {
7412
+ "type": "string",
7413
+ "enum": [
7414
+ "expired",
7415
+ "pending",
7416
+ "connected",
7417
+ "failed"
7418
+ ]
7419
+ }
7420
+ },
7421
+ "required": [
7422
+ "provider",
7423
+ "status"
7424
+ ],
7425
+ "additionalProperties": false
7426
+ }
7427
+ },
7428
+ "outlit_get_integration_status": {
7429
+ "toolName": "outlit_get_integration_status",
7430
+ "commandId": "integration.status.get",
7431
+ "commandVersion": 2,
7432
+ "ownerDomain": "integrations",
7433
+ "title": "Get Integration Status",
7434
+ "description": "Get the configuration-readiness status for one integration or the public integration catalog.",
7435
+ "inputSchema": {
7436
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
7437
+ "type": "object",
7438
+ "properties": {
7439
+ "provider": {
7440
+ "type": "string",
7441
+ "enum": [
7442
+ "salesforce",
7443
+ "hubspot",
7444
+ "attio",
7445
+ "slack",
7446
+ "google-calendar",
7447
+ "google-mail",
7448
+ "granola",
7449
+ "gong",
7450
+ "fireflies",
7451
+ "pylon",
7452
+ "stripe",
7453
+ "mixpanel",
7454
+ "posthog",
7455
+ "supabase",
7456
+ "clerk"
7457
+ ]
7458
+ }
7459
+ },
7460
+ "additionalProperties": false
7461
+ },
7462
+ "outputSchema": {
7463
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
7464
+ "type": "object",
7465
+ "properties": {
7466
+ "integrations": {
7467
+ "type": "array",
7468
+ "items": {
7469
+ "type": "object",
7470
+ "properties": {
7471
+ "provider": {
7472
+ "type": "string",
7473
+ "minLength": 1,
7474
+ "maxLength": 80
7475
+ },
7476
+ "name": {
7477
+ "type": "string",
7478
+ "minLength": 1,
7479
+ "maxLength": 120
7480
+ },
7481
+ "category": {
7482
+ "type": "string",
7483
+ "enum": [
7484
+ "crm",
7485
+ "communication",
7486
+ "storage",
7487
+ "calls",
7488
+ "calendar",
7489
+ "analytics",
7490
+ "billing",
7491
+ "support"
7492
+ ]
7493
+ },
7494
+ "status": {
7495
+ "type": "string",
7496
+ "enum": [
7497
+ "not_connected",
7498
+ "awaiting_auth",
7499
+ "setup_required",
7500
+ "ready",
7501
+ "requires_intervention"
7502
+ ]
7503
+ }
7504
+ },
7505
+ "required": [
7506
+ "provider",
7507
+ "name",
7508
+ "category",
7509
+ "status"
7510
+ ],
7511
+ "additionalProperties": false
7512
+ }
7513
+ }
7514
+ },
7515
+ "required": [
7516
+ "integrations"
7517
+ ],
7518
+ "additionalProperties": false
7519
+ }
7520
+ },
7521
+ "outlit_setup_integration": {
7522
+ "toolName": "outlit_setup_integration",
7523
+ "commandId": "integration.setup.run",
7524
+ "commandVersion": 1,
7525
+ "ownerDomain": "integrations",
7526
+ "title": "Set Up Integration",
7527
+ "description": "Continue integration setup through validated credentials, safe configuration, or a trusted browser handoff.",
7528
+ "inputSchema": {
7529
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
7530
+ "anyOf": [
7531
+ {
7532
+ "type": "object",
7533
+ "properties": {
7534
+ "provider": {
7535
+ "type": "string",
7536
+ "enum": [
7537
+ "salesforce",
7538
+ "hubspot",
7539
+ "attio"
7540
+ ]
7541
+ },
7542
+ "configuration": {
7543
+ "type": "object",
7544
+ "properties": {
7545
+ "kind": {
7546
+ "type": "string",
7547
+ "const": "crm_mapping"
7548
+ },
7549
+ "mappings": {
7550
+ "minItems": 1,
7551
+ "type": "array",
7552
+ "items": {
7553
+ "type": "object",
7554
+ "properties": {
7555
+ "pipelineId": {
7556
+ "type": "string",
7557
+ "minLength": 1
7558
+ },
7559
+ "pipelineName": {
7560
+ "type": "string"
7561
+ },
7562
+ "mappings": {
7563
+ "type": "array",
7564
+ "items": {
7565
+ "type": "object",
7566
+ "properties": {
7567
+ "outlitStage": {
7568
+ "type": "string",
7569
+ "enum": [
7570
+ "Created",
7571
+ "Quoting",
7572
+ "Negotiation",
7573
+ "Won",
7574
+ "Lost"
7575
+ ]
7576
+ },
7577
+ "crmStages": {
7578
+ "type": "array",
7579
+ "items": {
7580
+ "type": "object",
7581
+ "properties": {
7582
+ "id": {
7583
+ "type": "string",
7584
+ "minLength": 1
7585
+ },
7586
+ "name": {
7587
+ "type": "string"
7588
+ }
7589
+ },
7590
+ "required": [
7591
+ "id",
7592
+ "name"
7593
+ ],
7594
+ "additionalProperties": false
7595
+ }
7596
+ }
7597
+ },
7598
+ "required": [
7599
+ "outlitStage",
7600
+ "crmStages"
7601
+ ],
7602
+ "additionalProperties": false
7603
+ }
7604
+ }
7605
+ },
7606
+ "required": [
7607
+ "pipelineId",
7608
+ "pipelineName",
7609
+ "mappings"
7610
+ ],
7611
+ "additionalProperties": false
7612
+ }
7613
+ },
7614
+ "confirm": {
7615
+ "type": "boolean",
7616
+ "const": true
7617
+ }
7618
+ },
7619
+ "required": [
7620
+ "kind",
7621
+ "mappings",
7622
+ "confirm"
7623
+ ],
7624
+ "additionalProperties": false
7625
+ }
7626
+ },
7627
+ "required": [
7628
+ "provider"
7629
+ ],
7630
+ "additionalProperties": false
7631
+ },
7632
+ {
7633
+ "type": "object",
7634
+ "properties": {
7635
+ "provider": {
7636
+ "type": "string",
7637
+ "enum": [
7638
+ "slack",
7639
+ "google-calendar",
7640
+ "google-mail",
7641
+ "gong"
7642
+ ]
7643
+ }
7644
+ },
7645
+ "required": [
7646
+ "provider"
7647
+ ],
7648
+ "additionalProperties": false
7649
+ },
7650
+ {
7651
+ "type": "object",
7652
+ "properties": {
7653
+ "provider": {
7654
+ "type": "string",
7655
+ "const": "stripe"
7656
+ },
7657
+ "connectionMode": {
7658
+ "type": "string",
7659
+ "const": "oauth"
7660
+ }
7661
+ },
7662
+ "required": [
7663
+ "provider"
7664
+ ],
7665
+ "additionalProperties": false
7666
+ },
7667
+ {
7668
+ "type": "object",
7669
+ "properties": {
7670
+ "provider": {
7671
+ "type": "string",
7672
+ "const": "stripe"
7673
+ },
7674
+ "connectionMode": {
7675
+ "type": "string",
7676
+ "const": "restricted_key"
7677
+ },
7678
+ "credentials": {
7679
+ "type": "object",
7680
+ "properties": {
7681
+ "apiKey": {
7682
+ "type": "string",
7683
+ "minLength": 1,
7684
+ "pattern": "^rk_.*"
7685
+ }
7686
+ },
7687
+ "required": [
7688
+ "apiKey"
7689
+ ],
7690
+ "additionalProperties": false
7691
+ }
7692
+ },
7693
+ "required": [
7694
+ "provider",
7695
+ "connectionMode"
7696
+ ],
7697
+ "additionalProperties": false
7698
+ },
7699
+ {
7700
+ "type": "object",
7701
+ "properties": {
7702
+ "provider": {
7703
+ "type": "string",
7704
+ "const": "granola"
7705
+ },
7706
+ "credentials": {
7707
+ "type": "object",
7708
+ "properties": {
7709
+ "apiKey": {
7710
+ "type": "string",
7711
+ "minLength": 1
7712
+ },
7713
+ "authScope": {
7714
+ "default": "personal",
7715
+ "type": "string",
7716
+ "enum": [
7717
+ "personal",
7718
+ "enterprise"
7719
+ ]
7720
+ },
7721
+ "enterpriseKeyAcknowledged": {
7722
+ "default": false,
7723
+ "type": "boolean"
7724
+ }
7725
+ },
7726
+ "required": [
7727
+ "apiKey"
7728
+ ],
7729
+ "additionalProperties": false
7730
+ }
7731
+ },
7732
+ "required": [
7733
+ "provider"
7734
+ ],
7735
+ "additionalProperties": false
7736
+ },
7737
+ {
7738
+ "type": "object",
7739
+ "properties": {
7740
+ "provider": {
7741
+ "type": "string",
7742
+ "const": "fireflies"
7743
+ },
7744
+ "credentials": {
7745
+ "type": "object",
7746
+ "properties": {
7747
+ "apiKey": {
7748
+ "type": "string",
7749
+ "minLength": 1
7750
+ }
7751
+ },
7752
+ "required": [
7753
+ "apiKey"
7754
+ ],
7755
+ "additionalProperties": false
7756
+ }
7757
+ },
7758
+ "required": [
7759
+ "provider"
7760
+ ],
7761
+ "additionalProperties": false
7762
+ },
7763
+ {
7764
+ "type": "object",
7765
+ "properties": {
7766
+ "provider": {
7767
+ "type": "string",
7768
+ "const": "pylon"
7769
+ },
7770
+ "credentials": {
7771
+ "type": "object",
7772
+ "properties": {
7773
+ "apiToken": {
7774
+ "type": "string",
7775
+ "minLength": 1
7776
+ }
7777
+ },
7778
+ "required": [
7779
+ "apiToken"
7780
+ ],
7781
+ "additionalProperties": false
7782
+ }
7783
+ },
7784
+ "required": [
7785
+ "provider"
7786
+ ],
7787
+ "additionalProperties": false
7788
+ },
7789
+ {
7790
+ "type": "object",
7791
+ "properties": {
7792
+ "provider": {
7793
+ "type": "string",
7794
+ "const": "mixpanel"
7795
+ },
7796
+ "credentials": {
7797
+ "type": "object",
7798
+ "properties": {
7799
+ "username": {
7800
+ "type": "string",
7801
+ "minLength": 1
7802
+ },
7803
+ "secret": {
7804
+ "type": "string",
7805
+ "minLength": 1
7806
+ },
7807
+ "projectId": {
7808
+ "type": "string",
7809
+ "minLength": 1,
7810
+ "maxLength": 64
7811
+ },
7812
+ "region": {
7813
+ "type": "string",
7814
+ "enum": [
7815
+ "us",
7816
+ "eu",
7817
+ "in"
7818
+ ]
7819
+ }
7820
+ },
7821
+ "required": [
7822
+ "username",
7823
+ "secret",
7824
+ "projectId",
7825
+ "region"
7826
+ ],
7827
+ "additionalProperties": false
7828
+ },
7829
+ "configuration": {
7830
+ "type": "object",
7831
+ "properties": {
7832
+ "kind": {
7833
+ "type": "string",
7834
+ "const": "mixpanel_mapping"
7835
+ },
7836
+ "mapping": {
7837
+ "oneOf": [
7838
+ {
7839
+ "type": "object",
7840
+ "properties": {
7841
+ "mode": {
7842
+ "type": "string",
7843
+ "const": "group_key"
7844
+ },
7845
+ "groupKey": {
7846
+ "type": "string",
7847
+ "minLength": 1
7848
+ }
7849
+ },
7850
+ "required": [
7851
+ "mode",
7852
+ "groupKey"
7853
+ ],
7854
+ "additionalProperties": false
7855
+ },
7856
+ {
7857
+ "type": "object",
7858
+ "properties": {
7859
+ "mode": {
7860
+ "type": "string",
7861
+ "const": "event_property"
7862
+ },
7863
+ "propertyName": {
7864
+ "type": "string",
7865
+ "minLength": 1
7866
+ }
7867
+ },
7868
+ "required": [
7869
+ "mode",
7870
+ "propertyName"
7871
+ ],
7872
+ "additionalProperties": false
7873
+ },
7874
+ {
7875
+ "type": "object",
7876
+ "properties": {
7877
+ "mode": {
7878
+ "type": "string",
7879
+ "const": "email_domain"
7880
+ }
7881
+ },
7882
+ "required": [
7883
+ "mode"
7884
+ ],
7885
+ "additionalProperties": false
7886
+ }
7887
+ ]
7888
+ },
7889
+ "confirm": {
7890
+ "type": "boolean",
7891
+ "const": true
7892
+ }
7893
+ },
7894
+ "required": [
7895
+ "kind",
7896
+ "mapping",
7897
+ "confirm"
7898
+ ],
7899
+ "additionalProperties": false
7900
+ }
7901
+ },
7902
+ "required": [
7903
+ "provider"
7904
+ ],
7905
+ "additionalProperties": false
7906
+ },
7907
+ {
7908
+ "type": "object",
7909
+ "properties": {
7910
+ "provider": {
7911
+ "type": "string",
7912
+ "const": "posthog"
7913
+ },
7914
+ "credentials": {
7915
+ "type": "object",
7916
+ "properties": {
7917
+ "apiKey": {
7918
+ "type": "string",
7919
+ "minLength": 10,
7920
+ "pattern": "^phx_.*"
7921
+ },
7922
+ "region": {
7923
+ "type": "string",
7924
+ "enum": [
7925
+ "us",
7926
+ "eu"
7927
+ ]
7928
+ },
7929
+ "projectId": {
7930
+ "type": "string",
7931
+ "minLength": 1,
7932
+ "pattern": "^\\d+$"
7933
+ }
7934
+ },
7935
+ "required": [
7936
+ "apiKey",
7937
+ "region",
7938
+ "projectId"
7939
+ ],
7940
+ "additionalProperties": false
7941
+ }
7942
+ },
7943
+ "required": [
7944
+ "provider"
7945
+ ],
7946
+ "additionalProperties": false
7947
+ },
7948
+ {
7949
+ "type": "object",
7950
+ "properties": {
7951
+ "provider": {
7952
+ "type": "string",
7953
+ "enum": [
7954
+ "clerk",
7955
+ "supabase"
7956
+ ]
7957
+ }
7958
+ },
7959
+ "required": [
7960
+ "provider"
7961
+ ],
7962
+ "additionalProperties": false
7963
+ }
7964
+ ]
7965
+ },
7966
+ "outputSchema": {
7967
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
7968
+ "type": "object",
7969
+ "properties": {
7970
+ "provider": {
7971
+ "type": "string",
7972
+ "enum": [
7973
+ "salesforce",
7974
+ "hubspot",
7975
+ "attio",
7976
+ "slack",
7977
+ "google-calendar",
7978
+ "google-mail",
7979
+ "granola",
7980
+ "gong",
7981
+ "fireflies",
7982
+ "pylon",
7983
+ "stripe",
7984
+ "mixpanel",
7985
+ "posthog",
7986
+ "supabase",
7987
+ "clerk"
7988
+ ]
7989
+ },
7990
+ "name": {
7991
+ "type": "string",
7992
+ "minLength": 1,
7993
+ "maxLength": 120
7994
+ },
7995
+ "category": {
7996
+ "type": "string",
7997
+ "enum": [
7998
+ "crm",
7999
+ "communication",
8000
+ "storage",
8001
+ "calls",
8002
+ "calendar",
8003
+ "analytics",
8004
+ "billing",
8005
+ "support"
8006
+ ]
8007
+ },
8008
+ "status": {
8009
+ "type": "string",
8010
+ "enum": [
8011
+ "not_connected",
8012
+ "awaiting_auth",
8013
+ "setup_required",
8014
+ "ready",
8015
+ "requires_intervention"
8016
+ ]
8017
+ },
8018
+ "next": {
8019
+ "anyOf": [
8020
+ {
8021
+ "anyOf": [
8022
+ {
8023
+ "type": "object",
8024
+ "properties": {
8025
+ "kind": {
8026
+ "type": "string",
8027
+ "const": "browser_handoff"
8028
+ },
8029
+ "purpose": {
8030
+ "type": "string",
8031
+ "enum": [
8032
+ "authentication",
8033
+ "recovery",
8034
+ "external_setup"
8035
+ ]
8036
+ },
8037
+ "url": {
8038
+ "type": "string",
8039
+ "format": "uri"
8040
+ },
8041
+ "sessionId": {
8042
+ "anyOf": [
8043
+ {
8044
+ "type": "string",
8045
+ "format": "uuid",
8046
+ "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)$"
8047
+ },
8048
+ {
8049
+ "type": "null"
8050
+ }
8051
+ ]
8052
+ },
8053
+ "expiresAt": {
8054
+ "anyOf": [
8055
+ {
8056
+ "type": "string",
8057
+ "format": "date-time",
8058
+ "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))$"
8059
+ },
8060
+ {
8061
+ "type": "null"
8062
+ }
8063
+ ]
8064
+ }
8065
+ },
8066
+ "required": [
8067
+ "kind",
8068
+ "purpose",
8069
+ "url",
8070
+ "sessionId",
8071
+ "expiresAt"
8072
+ ],
8073
+ "additionalProperties": false
8074
+ },
8075
+ {
8076
+ "type": "object",
8077
+ "properties": {
8078
+ "kind": {
8079
+ "type": "string",
8080
+ "const": "crm_mapping"
8081
+ },
8082
+ "recommendation": {
8083
+ "minItems": 1,
8084
+ "type": "array",
8085
+ "items": {
8086
+ "type": "object",
8087
+ "properties": {
8088
+ "pipelineId": {
8089
+ "type": "string",
8090
+ "minLength": 1
8091
+ },
8092
+ "pipelineName": {
8093
+ "type": "string"
8094
+ },
8095
+ "mappings": {
8096
+ "type": "array",
8097
+ "items": {
8098
+ "type": "object",
8099
+ "properties": {
8100
+ "outlitStage": {
8101
+ "type": "string",
8102
+ "enum": [
8103
+ "Created",
8104
+ "Quoting",
8105
+ "Negotiation",
8106
+ "Won",
8107
+ "Lost"
8108
+ ]
8109
+ },
8110
+ "crmStages": {
8111
+ "type": "array",
8112
+ "items": {
8113
+ "type": "object",
8114
+ "properties": {
8115
+ "id": {
8116
+ "type": "string",
8117
+ "minLength": 1
8118
+ },
8119
+ "name": {
8120
+ "type": "string"
8121
+ }
8122
+ },
8123
+ "required": [
8124
+ "id",
8125
+ "name"
8126
+ ],
8127
+ "additionalProperties": false
8128
+ }
8129
+ }
8130
+ },
8131
+ "required": [
8132
+ "outlitStage",
8133
+ "crmStages"
8134
+ ],
8135
+ "additionalProperties": false
8136
+ }
8137
+ }
8138
+ },
8139
+ "required": [
8140
+ "pipelineId",
8141
+ "pipelineName",
8142
+ "mappings"
8143
+ ],
8144
+ "additionalProperties": false
8145
+ }
8146
+ }
8147
+ },
8148
+ "required": [
8149
+ "kind",
8150
+ "recommendation"
8151
+ ],
8152
+ "additionalProperties": false
8153
+ },
8154
+ {
8155
+ "type": "object",
8156
+ "properties": {
8157
+ "kind": {
8158
+ "type": "string",
8159
+ "const": "mixpanel_mapping"
8160
+ },
8161
+ "preview": {
8162
+ "type": "object",
8163
+ "properties": {
8164
+ "sampleSize": {
8165
+ "type": "integer",
8166
+ "minimum": 0,
8167
+ "maximum": 9007199254740991
8168
+ },
8169
+ "sampleWindowStartAt": {
8170
+ "type": "string",
8171
+ "format": "date-time",
8172
+ "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))$"
8173
+ },
8174
+ "sampleWindowEndAt": {
8175
+ "type": "string",
8176
+ "format": "date-time",
8177
+ "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))$"
8178
+ },
8179
+ "accountKeyCoveragePct": {
8180
+ "type": "number",
8181
+ "minimum": 0,
8182
+ "maximum": 100
8183
+ },
8184
+ "emailOrDomainCoveragePct": {
8185
+ "type": "number",
8186
+ "minimum": 0,
8187
+ "maximum": 100
8188
+ },
8189
+ "unmappedPct": {
8190
+ "type": "number",
8191
+ "minimum": 0,
8192
+ "maximum": 100
8193
+ },
8194
+ "matchedCustomerCount": {
8195
+ "type": "integer",
8196
+ "minimum": 0,
8197
+ "maximum": 9007199254740991
8198
+ },
8199
+ "opaqueOnlyUnmappedCount": {
8200
+ "type": "integer",
8201
+ "minimum": 0,
8202
+ "maximum": 9007199254740991
8203
+ },
8204
+ "candidateAccountKeys": {
8205
+ "type": "array",
8206
+ "items": {
8207
+ "type": "object",
8208
+ "properties": {
8209
+ "key": {
8210
+ "type": "string"
8211
+ },
8212
+ "count": {
8213
+ "type": "integer",
8214
+ "minimum": 0,
8215
+ "maximum": 9007199254740991
8216
+ },
8217
+ "coveragePct": {
8218
+ "type": "number",
8219
+ "minimum": 0,
8220
+ "maximum": 100
8221
+ }
8222
+ },
8223
+ "required": [
8224
+ "key",
8225
+ "count",
8226
+ "coveragePct"
8227
+ ],
8228
+ "additionalProperties": false
8229
+ }
8230
+ },
8231
+ "unmappedReasons": {
8232
+ "type": "array",
8233
+ "items": {
8234
+ "type": "object",
8235
+ "properties": {
8236
+ "reason": {
8237
+ "type": "string",
8238
+ "enum": [
8239
+ "missing_account_key",
8240
+ "missing_email_or_domain",
8241
+ "no_matching_customer"
8242
+ ]
8243
+ },
8244
+ "count": {
8245
+ "type": "integer",
8246
+ "minimum": 0,
8247
+ "maximum": 9007199254740991
8248
+ }
8249
+ },
8250
+ "required": [
8251
+ "reason",
8252
+ "count"
8253
+ ],
8254
+ "additionalProperties": false
8255
+ }
8256
+ },
8257
+ "warnings": {
8258
+ "type": "array",
8259
+ "items": {
8260
+ "type": "string"
8261
+ }
8262
+ }
8263
+ },
8264
+ "required": [
8265
+ "sampleSize",
8266
+ "sampleWindowStartAt",
8267
+ "sampleWindowEndAt",
8268
+ "accountKeyCoveragePct",
8269
+ "emailOrDomainCoveragePct",
8270
+ "unmappedPct",
8271
+ "matchedCustomerCount",
8272
+ "opaqueOnlyUnmappedCount",
8273
+ "candidateAccountKeys",
8274
+ "unmappedReasons",
8275
+ "warnings"
8276
+ ],
8277
+ "additionalProperties": false
8278
+ }
8279
+ },
8280
+ "required": [
8281
+ "kind",
8282
+ "preview"
8283
+ ],
8284
+ "additionalProperties": false
8285
+ }
8286
+ ]
8287
+ },
8288
+ {
8289
+ "type": "null"
8290
+ }
8291
+ ]
8292
+ },
8293
+ "error": {
8294
+ "anyOf": [
8295
+ {
8296
+ "type": "object",
8297
+ "properties": {
8298
+ "code": {
8299
+ "type": "string",
8300
+ "enum": [
8301
+ "OWNER_REQUIRED",
8302
+ "CONNECTION_CONFLICT",
8303
+ "CREDENTIAL_REQUIRED",
8304
+ "CREDENTIAL_REJECTED",
8305
+ "LEGACY_CONNECTION_REQUIRED",
8306
+ "HANDOFF_UNAVAILABLE",
8307
+ "TRANSIENT_FAILURE"
8308
+ ]
8309
+ },
8310
+ "message": {
8311
+ "type": "string"
8312
+ },
8313
+ "retryable": {
8314
+ "type": "boolean"
8315
+ }
7341
8316
  },
7342
- "hasError": {
7343
- "type": "boolean"
7344
- }
8317
+ "required": [
8318
+ "code",
8319
+ "message",
8320
+ "retryable"
8321
+ ],
8322
+ "additionalProperties": false
7345
8323
  },
7346
- "required": [
7347
- "model",
7348
- "status",
7349
- "lastSyncedAt",
7350
- "hasError"
7351
- ],
7352
- "additionalProperties": false
7353
- }
8324
+ {
8325
+ "type": "null"
8326
+ }
8327
+ ]
7354
8328
  }
7355
8329
  },
7356
8330
  "required": [
@@ -7358,7 +8332,8 @@ var publicToolContracts = {
7358
8332
  "name",
7359
8333
  "category",
7360
8334
  "status",
7361
- "syncs"
8335
+ "next",
8336
+ "error"
7362
8337
  ],
7363
8338
  "additionalProperties": false
7364
8339
  }
@@ -7697,29 +8672,355 @@ var publicToolContracts = {
7697
8672
  }
7698
8673
  },
7699
8674
  "required": [
7700
- "settings"
8675
+ "settings"
8676
+ ],
8677
+ "additionalProperties": false
8678
+ }
8679
+ },
8680
+ "outlit_update_workspace_settings": {
8681
+ "toolName": "outlit_update_workspace_settings",
8682
+ "commandId": "settings.update",
8683
+ "commandVersion": 1,
8684
+ "ownerDomain": "settings",
8685
+ "title": "Update Workspace Settings",
8686
+ "description": "Update the workspace default timezone using a valid IANA timezone.",
8687
+ "inputSchema": {
8688
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8689
+ "type": "object",
8690
+ "properties": {
8691
+ "defaultTimezone": {
8692
+ "type": "string",
8693
+ "minLength": 1
8694
+ }
8695
+ },
8696
+ "required": [
8697
+ "defaultTimezone"
8698
+ ],
8699
+ "additionalProperties": false
8700
+ },
8701
+ "outputSchema": {
8702
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8703
+ "type": "object",
8704
+ "properties": {
8705
+ "settings": {
8706
+ "type": "object",
8707
+ "properties": {
8708
+ "defaultTimezone": {
8709
+ "type": "string",
8710
+ "minLength": 1
8711
+ }
8712
+ },
8713
+ "required": [
8714
+ "defaultTimezone"
8715
+ ],
8716
+ "additionalProperties": false
8717
+ }
8718
+ },
8719
+ "required": [
8720
+ "settings"
8721
+ ],
8722
+ "additionalProperties": false
8723
+ }
8724
+ },
8725
+ "outlit_list_behavior_metric_sources": {
8726
+ "toolName": "outlit_list_behavior_metric_sources",
8727
+ "commandId": "behavior_metric_source.list",
8728
+ "commandVersion": 1,
8729
+ "ownerDomain": "behavior_metrics",
8730
+ "title": "List Behavior Metric Sources",
8731
+ "description": "List product-event sources eligible for Behavior Metric discovery.",
8732
+ "inputSchema": {
8733
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8734
+ "type": "object",
8735
+ "properties": {},
8736
+ "additionalProperties": false
8737
+ },
8738
+ "outputSchema": {
8739
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8740
+ "type": "object",
8741
+ "properties": {
8742
+ "sources": {
8743
+ "type": "array",
8744
+ "items": {
8745
+ "type": "object",
8746
+ "properties": {
8747
+ "sourceKey": {
8748
+ "type": "string",
8749
+ "pattern": "^metric_source_v1_[a-f0-9]{32}$"
8750
+ },
8751
+ "provider": {
8752
+ "type": "string",
8753
+ "enum": [
8754
+ "outlit_sdk",
8755
+ "posthog",
8756
+ "mixpanel"
8757
+ ]
8758
+ },
8759
+ "label": {
8760
+ "type": "string",
8761
+ "minLength": 1,
8762
+ "maxLength": 255
8763
+ },
8764
+ "readiness": {
8765
+ "type": "string",
8766
+ "enum": [
8767
+ "READY",
8768
+ "WARMING",
8769
+ "BLOCKED"
8770
+ ]
8771
+ }
8772
+ },
8773
+ "required": [
8774
+ "sourceKey",
8775
+ "provider",
8776
+ "label",
8777
+ "readiness"
8778
+ ],
8779
+ "additionalProperties": false
8780
+ }
8781
+ }
8782
+ },
8783
+ "required": [
8784
+ "sources"
8785
+ ],
8786
+ "additionalProperties": false
8787
+ }
8788
+ },
8789
+ "outlit_list_behavior_metric_events": {
8790
+ "toolName": "outlit_list_behavior_metric_events",
8791
+ "commandId": "behavior_metric_event.list",
8792
+ "commandVersion": 1,
8793
+ "ownerDomain": "behavior_metrics",
8794
+ "title": "List Behavior Metric Events",
8795
+ "description": "List attributed event candidates for a Behavior Metric source.",
8796
+ "inputSchema": {
8797
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8798
+ "type": "object",
8799
+ "properties": {
8800
+ "sourceKey": {
8801
+ "type": "string",
8802
+ "pattern": "^metric_source_v1_[a-f0-9]{32}$"
8803
+ },
8804
+ "weeks": {
8805
+ "default": 12,
8806
+ "type": "integer",
8807
+ "minimum": 1,
8808
+ "maximum": 53
8809
+ },
8810
+ "limit": {
8811
+ "default": 100,
8812
+ "type": "integer",
8813
+ "minimum": 1,
8814
+ "maximum": 100
8815
+ }
8816
+ },
8817
+ "required": [
8818
+ "sourceKey"
8819
+ ],
8820
+ "additionalProperties": false
8821
+ },
8822
+ "outputSchema": {
8823
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8824
+ "type": "object",
8825
+ "properties": {
8826
+ "events": {
8827
+ "type": "array",
8828
+ "items": {
8829
+ "type": "object",
8830
+ "properties": {
8831
+ "eventName": {
8832
+ "type": "string",
8833
+ "minLength": 1,
8834
+ "maxLength": 191
8835
+ },
8836
+ "eventCount": {
8837
+ "type": "integer",
8838
+ "minimum": 0,
8839
+ "maximum": 9007199254740991
8840
+ },
8841
+ "distinctCustomers": {
8842
+ "type": "integer",
8843
+ "minimum": 0,
8844
+ "maximum": 9007199254740991
8845
+ },
8846
+ "activeWeeks": {
8847
+ "type": "integer",
8848
+ "minimum": 1,
8849
+ "maximum": 53
8850
+ },
8851
+ "propertyKeys": {
8852
+ "maxItems": 10,
8853
+ "type": "array",
8854
+ "items": {
8855
+ "type": "string",
8856
+ "minLength": 1,
8857
+ "maxLength": 191
8858
+ }
8859
+ }
8860
+ },
8861
+ "required": [
8862
+ "eventName",
8863
+ "eventCount",
8864
+ "distinctCustomers",
8865
+ "activeWeeks",
8866
+ "propertyKeys"
8867
+ ],
8868
+ "additionalProperties": false
8869
+ }
8870
+ },
8871
+ "truncated": {
8872
+ "type": "boolean"
8873
+ }
8874
+ },
8875
+ "required": [
8876
+ "events",
8877
+ "truncated"
7701
8878
  ],
7702
8879
  "additionalProperties": false
7703
8880
  }
7704
8881
  },
7705
- "outlit_update_workspace_settings": {
7706
- "toolName": "outlit_update_workspace_settings",
7707
- "commandId": "settings.update",
8882
+ "outlit_create_behavior_metric": {
8883
+ "toolName": "outlit_create_behavior_metric",
8884
+ "commandId": "behavior_metric.create",
7708
8885
  "commandVersion": 1,
7709
- "ownerDomain": "settings",
7710
- "title": "Update Workspace Settings",
7711
- "description": "Update the workspace default timezone using a valid IANA timezone.",
8886
+ "ownerDomain": "behavior_metrics",
8887
+ "title": "Create Behavior Metric",
8888
+ "description": "Create or idempotently return an event-based Behavior Metric in ENABLED and SHADOW.",
7712
8889
  "inputSchema": {
7713
8890
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7714
8891
  "type": "object",
7715
8892
  "properties": {
7716
- "defaultTimezone": {
8893
+ "sourceKey": {
7717
8894
  "type": "string",
7718
- "minLength": 1
8895
+ "pattern": "^metric_source_v1_[a-f0-9]{32}$"
8896
+ },
8897
+ "eventName": {
8898
+ "type": "string",
8899
+ "minLength": 1,
8900
+ "maxLength": 191
8901
+ },
8902
+ "behaviorKey": {
8903
+ "type": "string",
8904
+ "maxLength": 64,
8905
+ "pattern": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"
8906
+ },
8907
+ "label": {
8908
+ "type": "string",
8909
+ "minLength": 1,
8910
+ "maxLength": 255
8911
+ },
8912
+ "propertyFilters": {
8913
+ "default": [],
8914
+ "maxItems": 5,
8915
+ "type": "array",
8916
+ "items": {
8917
+ "oneOf": [
8918
+ {
8919
+ "type": "object",
8920
+ "properties": {
8921
+ "property": {
8922
+ "type": "string",
8923
+ "minLength": 1,
8924
+ "maxLength": 191
8925
+ },
8926
+ "operator": {
8927
+ "type": "string",
8928
+ "const": "equals"
8929
+ },
8930
+ "value": {
8931
+ "oneOf": [
8932
+ {
8933
+ "type": "object",
8934
+ "properties": {
8935
+ "type": {
8936
+ "type": "string",
8937
+ "const": "string"
8938
+ },
8939
+ "value": {
8940
+ "type": "string",
8941
+ "maxLength": 191
8942
+ }
8943
+ },
8944
+ "required": [
8945
+ "type",
8946
+ "value"
8947
+ ],
8948
+ "additionalProperties": false
8949
+ },
8950
+ {
8951
+ "type": "object",
8952
+ "properties": {
8953
+ "type": {
8954
+ "type": "string",
8955
+ "const": "number"
8956
+ },
8957
+ "value": {
8958
+ "type": "number",
8959
+ "minimum": -9007199254740991,
8960
+ "maximum": 9007199254740991
8961
+ }
8962
+ },
8963
+ "required": [
8964
+ "type",
8965
+ "value"
8966
+ ],
8967
+ "additionalProperties": false
8968
+ },
8969
+ {
8970
+ "type": "object",
8971
+ "properties": {
8972
+ "type": {
8973
+ "type": "string",
8974
+ "const": "boolean"
8975
+ },
8976
+ "value": {
8977
+ "type": "boolean"
8978
+ }
8979
+ },
8980
+ "required": [
8981
+ "type",
8982
+ "value"
8983
+ ],
8984
+ "additionalProperties": false
8985
+ }
8986
+ ]
8987
+ }
8988
+ },
8989
+ "required": [
8990
+ "property",
8991
+ "operator",
8992
+ "value"
8993
+ ],
8994
+ "additionalProperties": false
8995
+ },
8996
+ {
8997
+ "type": "object",
8998
+ "properties": {
8999
+ "property": {
9000
+ "type": "string",
9001
+ "minLength": 1,
9002
+ "maxLength": 191
9003
+ },
9004
+ "operator": {
9005
+ "type": "string",
9006
+ "const": "exists"
9007
+ }
9008
+ },
9009
+ "required": [
9010
+ "property",
9011
+ "operator"
9012
+ ],
9013
+ "additionalProperties": false
9014
+ }
9015
+ ]
9016
+ }
7719
9017
  }
7720
9018
  },
7721
9019
  "required": [
7722
- "defaultTimezone"
9020
+ "sourceKey",
9021
+ "eventName",
9022
+ "behaviorKey",
9023
+ "label"
7723
9024
  ],
7724
9025
  "additionalProperties": false
7725
9026
  },
@@ -7727,22 +9028,237 @@ var publicToolContracts = {
7727
9028
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7728
9029
  "type": "object",
7729
9030
  "properties": {
7730
- "settings": {
9031
+ "created": {
9032
+ "type": "boolean"
9033
+ },
9034
+ "metric": {
7731
9035
  "type": "object",
7732
9036
  "properties": {
7733
- "defaultTimezone": {
9037
+ "sourceKey": {
7734
9038
  "type": "string",
7735
- "minLength": 1
9039
+ "pattern": "^metric_source_v1_[a-f0-9]{32}$"
9040
+ },
9041
+ "behaviorKey": {
9042
+ "type": "string",
9043
+ "maxLength": 64,
9044
+ "pattern": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"
9045
+ },
9046
+ "label": {
9047
+ "type": "string",
9048
+ "minLength": 1,
9049
+ "maxLength": 255
9050
+ },
9051
+ "eventSelection": {
9052
+ "oneOf": [
9053
+ {
9054
+ "type": "object",
9055
+ "properties": {
9056
+ "mode": {
9057
+ "type": "string",
9058
+ "const": "exact_event_names"
9059
+ },
9060
+ "eventNames": {
9061
+ "minItems": 1,
9062
+ "maxItems": 1,
9063
+ "type": "array",
9064
+ "items": {
9065
+ "type": "string",
9066
+ "minLength": 1,
9067
+ "maxLength": 191
9068
+ }
9069
+ }
9070
+ },
9071
+ "required": [
9072
+ "mode",
9073
+ "eventNames"
9074
+ ],
9075
+ "additionalProperties": false
9076
+ },
9077
+ {
9078
+ "type": "object",
9079
+ "properties": {
9080
+ "mode": {
9081
+ "type": "string",
9082
+ "const": "configured_event"
9083
+ },
9084
+ "eventName": {
9085
+ "type": "string",
9086
+ "minLength": 1,
9087
+ "maxLength": 191
9088
+ },
9089
+ "propertyFilters": {
9090
+ "minItems": 1,
9091
+ "maxItems": 5,
9092
+ "type": "array",
9093
+ "items": {
9094
+ "oneOf": [
9095
+ {
9096
+ "type": "object",
9097
+ "properties": {
9098
+ "property": {
9099
+ "type": "string",
9100
+ "minLength": 1,
9101
+ "maxLength": 191
9102
+ },
9103
+ "operator": {
9104
+ "type": "string",
9105
+ "const": "equals"
9106
+ },
9107
+ "value": {
9108
+ "oneOf": [
9109
+ {
9110
+ "type": "object",
9111
+ "properties": {
9112
+ "type": {
9113
+ "type": "string",
9114
+ "const": "string"
9115
+ },
9116
+ "value": {
9117
+ "type": "string",
9118
+ "maxLength": 191
9119
+ }
9120
+ },
9121
+ "required": [
9122
+ "type",
9123
+ "value"
9124
+ ],
9125
+ "additionalProperties": false
9126
+ },
9127
+ {
9128
+ "type": "object",
9129
+ "properties": {
9130
+ "type": {
9131
+ "type": "string",
9132
+ "const": "number"
9133
+ },
9134
+ "value": {
9135
+ "type": "number",
9136
+ "minimum": -9007199254740991,
9137
+ "maximum": 9007199254740991
9138
+ }
9139
+ },
9140
+ "required": [
9141
+ "type",
9142
+ "value"
9143
+ ],
9144
+ "additionalProperties": false
9145
+ },
9146
+ {
9147
+ "type": "object",
9148
+ "properties": {
9149
+ "type": {
9150
+ "type": "string",
9151
+ "const": "boolean"
9152
+ },
9153
+ "value": {
9154
+ "type": "boolean"
9155
+ }
9156
+ },
9157
+ "required": [
9158
+ "type",
9159
+ "value"
9160
+ ],
9161
+ "additionalProperties": false
9162
+ }
9163
+ ]
9164
+ }
9165
+ },
9166
+ "required": [
9167
+ "property",
9168
+ "operator",
9169
+ "value"
9170
+ ],
9171
+ "additionalProperties": false
9172
+ },
9173
+ {
9174
+ "type": "object",
9175
+ "properties": {
9176
+ "property": {
9177
+ "type": "string",
9178
+ "minLength": 1,
9179
+ "maxLength": 191
9180
+ },
9181
+ "operator": {
9182
+ "type": "string",
9183
+ "const": "exists"
9184
+ }
9185
+ },
9186
+ "required": [
9187
+ "property",
9188
+ "operator"
9189
+ ],
9190
+ "additionalProperties": false
9191
+ }
9192
+ ]
9193
+ }
9194
+ }
9195
+ },
9196
+ "required": [
9197
+ "mode",
9198
+ "eventName",
9199
+ "propertyFilters"
9200
+ ],
9201
+ "additionalProperties": false
9202
+ }
9203
+ ]
9204
+ },
9205
+ "status": {
9206
+ "type": "string",
9207
+ "const": "ENABLED"
9208
+ },
9209
+ "evaluationMode": {
9210
+ "type": "string",
9211
+ "const": "SHADOW"
9212
+ },
9213
+ "definitions": {
9214
+ "minItems": 2,
9215
+ "maxItems": 2,
9216
+ "type": "array",
9217
+ "items": {
9218
+ "type": "object",
9219
+ "properties": {
9220
+ "id": {
9221
+ "type": "string",
9222
+ "format": "uuid",
9223
+ "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)$"
9224
+ },
9225
+ "metricKey": {
9226
+ "type": "string",
9227
+ "minLength": 1,
9228
+ "maxLength": 191
9229
+ },
9230
+ "aggregation": {
9231
+ "type": "string",
9232
+ "enum": [
9233
+ "active_days",
9234
+ "event_count"
9235
+ ]
9236
+ }
9237
+ },
9238
+ "required": [
9239
+ "id",
9240
+ "metricKey",
9241
+ "aggregation"
9242
+ ],
9243
+ "additionalProperties": false
9244
+ }
7736
9245
  }
7737
9246
  },
7738
9247
  "required": [
7739
- "defaultTimezone"
9248
+ "sourceKey",
9249
+ "behaviorKey",
9250
+ "label",
9251
+ "eventSelection",
9252
+ "status",
9253
+ "evaluationMode",
9254
+ "definitions"
7740
9255
  ],
7741
9256
  "additionalProperties": false
7742
9257
  }
7743
9258
  },
7744
9259
  "required": [
7745
- "settings"
9260
+ "created",
9261
+ "metric"
7746
9262
  ],
7747
9263
  "additionalProperties": false
7748
9264
  }
@@ -7790,11 +9306,15 @@ var consumerToolPolicies = {
7790
9306
  "outlit_query",
7791
9307
  "outlit_schema"
7792
9308
  ],
7793
- "cli": [
9309
+ "pi": [
7794
9310
  "outlit_list_customers",
7795
9311
  "outlit_list_users",
7796
9312
  "outlit_list_workspace_users",
7797
9313
  "outlit_get_customer",
9314
+ "outlit_assign_customer_owner",
9315
+ "outlit_grant_customer_access",
9316
+ "outlit_update_customer_access",
9317
+ "outlit_revoke_customer_access",
7798
9318
  "outlit_get_timeline",
7799
9319
  "outlit_list_facts",
7800
9320
  "outlit_get_fact",
@@ -7810,16 +9330,54 @@ var consumerToolPolicies = {
7810
9330
  "outlit_enable_destination",
7811
9331
  "outlit_disable_destination",
7812
9332
  "outlit_archive_destination",
7813
- "outlit_list_integrations",
7814
9333
  "outlit_get_integration_capabilities",
7815
9334
  "outlit_begin_integration_setup",
7816
9335
  "outlit_get_integration_setup_status",
7817
- "outlit_get_integration_sync_status",
9336
+ "outlit_get_integration_status",
9337
+ "outlit_setup_integration",
7818
9338
  "outlit_get_customer_activation",
7819
9339
  "outlit_preview_customer_activation",
7820
9340
  "outlit_update_customer_activation",
7821
9341
  "outlit_get_workspace_settings",
7822
9342
  "outlit_update_workspace_settings"
9343
+ ],
9344
+ "cli": [
9345
+ "outlit_list_customers",
9346
+ "outlit_list_users",
9347
+ "outlit_list_workspace_users",
9348
+ "outlit_get_customer",
9349
+ "outlit_assign_customer_owner",
9350
+ "outlit_grant_customer_access",
9351
+ "outlit_update_customer_access",
9352
+ "outlit_revoke_customer_access",
9353
+ "outlit_get_timeline",
9354
+ "outlit_list_facts",
9355
+ "outlit_get_fact",
9356
+ "outlit_get_source",
9357
+ "outlit_list_sources",
9358
+ "outlit_search_customer_context",
9359
+ "outlit_query",
9360
+ "outlit_schema",
9361
+ "outlit_list_destinations",
9362
+ "outlit_get_destination",
9363
+ "outlit_create_destination",
9364
+ "outlit_update_destination",
9365
+ "outlit_enable_destination",
9366
+ "outlit_disable_destination",
9367
+ "outlit_archive_destination",
9368
+ "outlit_get_integration_capabilities",
9369
+ "outlit_begin_integration_setup",
9370
+ "outlit_get_integration_setup_status",
9371
+ "outlit_get_integration_status",
9372
+ "outlit_setup_integration",
9373
+ "outlit_get_customer_activation",
9374
+ "outlit_preview_customer_activation",
9375
+ "outlit_update_customer_activation",
9376
+ "outlit_get_workspace_settings",
9377
+ "outlit_update_workspace_settings",
9378
+ "outlit_list_behavior_metric_sources",
9379
+ "outlit_list_behavior_metric_events",
9380
+ "outlit_create_behavior_metric"
7823
9381
  ]
7824
9382
  };
7825
9383
  var toolGatewayTransport = {
@@ -7858,11 +9416,14 @@ var apiKeyGrants = [
7858
9416
  "workspace_members:read",
7859
9417
  "analytics:read",
7860
9418
  "destinations:manage",
9419
+ "behavior_metrics:manage",
9420
+ "integrations:connect_own",
7861
9421
  "integrations:manage",
7862
9422
  "activation:read",
7863
9423
  "activation:manage",
7864
9424
  "workspace_settings:read",
7865
- "workspace_settings:manage"
9425
+ "workspace_settings:manage",
9426
+ "customer_access:manage"
7866
9427
  ];
7867
9428
  var apiKeyValidationSuccessSchema = {
7868
9429
  "$schema": "https://json-schema.org/draft/2020-12/schema",
@@ -7983,11 +9544,14 @@ var apiKeyValidationSuccessSchema = {
7983
9544
  "workspace_members:read",
7984
9545
  "analytics:read",
7985
9546
  "destinations:manage",
9547
+ "behavior_metrics:manage",
9548
+ "integrations:connect_own",
7986
9549
  "integrations:manage",
7987
9550
  "activation:read",
7988
9551
  "activation:manage",
7989
9552
  "workspace_settings:read",
7990
- "workspace_settings:manage"
9553
+ "workspace_settings:manage",
9554
+ "customer_access:manage"
7991
9555
  ]
7992
9556
  }
7993
9557
  },
@@ -8038,11 +9602,14 @@ var apiKeyValidationSuccessSchema = {
8038
9602
  "workspace_members:read",
8039
9603
  "analytics:read",
8040
9604
  "destinations:manage",
9605
+ "behavior_metrics:manage",
9606
+ "integrations:connect_own",
8041
9607
  "integrations:manage",
8042
9608
  "activation:read",
8043
9609
  "activation:manage",
8044
9610
  "workspace_settings:read",
8045
- "workspace_settings:manage"
9611
+ "workspace_settings:manage",
9612
+ "customer_access:manage"
8046
9613
  ]
8047
9614
  }
8048
9615
  }
@@ -9080,7 +10647,7 @@ var schemaTables = [
9080
10647
  "users",
9081
10648
  "revenue"
9082
10649
  ];
9083
- var sdkConsumerContractHash = "1f8804d6d2d3aa562d46872bc118a43b9a5d8531b834ce10c0f01b3659f5b6b2";
10650
+ var sdkConsumerContractHash = "39fe276d5127aa59cdfc0172cc44c9281beb62b1942c44094421f2a56fbb40fa";
9084
10651
 
9085
10652
  // src/contracts.ts
9086
10653
  var publicToolNameSet = new Set(publicToolNames);
@@ -9171,7 +10738,7 @@ function createOutlitClient(options) {
9171
10738
  return {
9172
10739
  key,
9173
10740
  baseUrl,
9174
- async callTool(toolName, input = {}) {
10741
+ async callTool(toolName, input = {}, callOptions) {
9175
10742
  if (!isPublicToolName(toolName)) {
9176
10743
  throw new Error(`Unknown public tool: ${toolName}`);
9177
10744
  }
@@ -9184,7 +10751,8 @@ function createOutlitClient(options) {
9184
10751
  body: JSON.stringify({
9185
10752
  tool: toolName,
9186
10753
  input
9187
- })
10754
+ }),
10755
+ ...callOptions?.signal ? { signal: callOptions.signal } : {}
9188
10756
  });
9189
10757
  if (!response.ok) {
9190
10758
  const text = await response.text();
@@ -9237,17 +10805,23 @@ function matchesGeneratedJsonSchema(value, schema) {
9237
10805
  }
9238
10806
  case "array": {
9239
10807
  if (!Array.isArray(value)) return false;
10808
+ if (schema.minItems !== void 0 && value.length < schema.minItems) return false;
10809
+ if (schema.maxItems !== void 0 && value.length > schema.maxItems) return false;
9240
10810
  const itemSchema = schema.items;
9241
10811
  return !itemSchema || value.every((item) => matchesGeneratedJsonSchema(item, itemSchema));
9242
10812
  }
9243
- case "string":
9244
- return typeof value === "string";
10813
+ case "string": {
10814
+ if (typeof value !== "string") return false;
10815
+ if (schema.minLength !== void 0 && value.length < schema.minLength) return false;
10816
+ if (schema.maxLength !== void 0 && value.length > schema.maxLength) return false;
10817
+ return schema.pattern === void 0 || new RegExp(schema.pattern).test(value);
10818
+ }
9245
10819
  case "boolean":
9246
10820
  return typeof value === "boolean";
9247
10821
  case "number":
9248
- return typeof value === "number" && Number.isFinite(value);
10822
+ return matchesNumberBounds(value, schema, false);
9249
10823
  case "integer":
9250
- return typeof value === "number" && Number.isSafeInteger(value);
10824
+ return matchesNumberBounds(value, schema, true);
9251
10825
  case "null":
9252
10826
  return value === null;
9253
10827
  case void 0:
@@ -9256,10 +10830,18 @@ function matchesGeneratedJsonSchema(value, schema) {
9256
10830
  return false;
9257
10831
  }
9258
10832
  }
10833
+ function matchesNumberBounds(value, schema, integer) {
10834
+ if (typeof value !== "number" || !Number.isFinite(value)) return false;
10835
+ if (integer && !Number.isSafeInteger(value)) return false;
10836
+ if (schema.minimum !== void 0 && value < schema.minimum) return false;
10837
+ if (schema.maximum !== void 0 && value > schema.maximum) return false;
10838
+ return true;
10839
+ }
9259
10840
 
9260
10841
  // src/toolsets.ts
9261
10842
  var defaultToolNames = consumerToolPolicies.default;
9262
10843
  var analyticalToolNames = consumerToolPolicies.analytical;
10844
+ var piToolNames = consumerToolPolicies.pi;
9263
10845
  var cliToolNames = consumerToolPolicies.cli;
9264
10846
  var allPublicToolNames = publicToolNames;
9265
10847
  var defaultToolNameSet = new Set(defaultToolNames);
@@ -9299,6 +10881,7 @@ export {
9299
10881
  isPublicToolName,
9300
10882
  matchesGeneratedJsonSchema,
9301
10883
  normalizeCustomerSourceType,
10884
+ piToolNames,
9302
10885
  publicOpenApiTransports,
9303
10886
  publicToolContracts,
9304
10887
  publicToolNames,