feat: slack integration with composio

Allow users to ask copilot to use Slack on their behalf via Composio integration.
Adds composio client, OAuth flow, slack skill with tool catalog, and UI for
connecting Slack in onboarding and connectors popover.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
tusharmagar 2026-02-02 21:34:47 +05:30 committed by Ramnique Singh
parent bbe82c124d
commit aa2a830f23
18 changed files with 2309 additions and 81 deletions

71
apps/x/pnpm-lock.yaml generated
View file

@ -290,6 +290,9 @@ importers:
'@ai-sdk/provider':
specifier: ^2.0.0
version: 2.0.1
'@composio/core':
specifier: ^0.1.48
version: 0.1.55(zod@4.2.1)
'@google-cloud/local-auth':
specifier: ^3.0.1
version: 3.0.1(encoding@0.1.13)
@ -674,6 +677,19 @@ packages:
'@chevrotain/utils@11.0.3':
resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==}
'@composio/client@0.1.0-alpha.37':
resolution: {integrity: sha512-2YzXiRXlxqOgEz7nEh1aKdJ9vwQRb69+RX6UH+LTDmuTwW+pOjI2qbhIBxTbP2z9e2SyHVG0/AtMxc9tR5jU0w==}
'@composio/core@0.1.55':
resolution: {integrity: sha512-GLSWTS/gZeycQ7W2wSZQ21DKV+LC6WTAilhSj+JG9Apslx3re9luF1Lyblm4UMSf4DzYWKOrtipwQOaeg7bmTg==}
peerDependencies:
zod: '>=3.25.76 <5'
'@composio/json-schema-to-zod@0.1.16':
resolution: {integrity: sha512-vu6RUQTWDW/0wLDWsQHtWJ97JsnMjA1olTQwVD88BAtKZTdDLuzjnGRxSllxp5JG/GntnovUphraZWcWfe80eQ==}
peerDependencies:
zod: '>=3.25.76 <5'
'@electron-forge/cli@7.11.1':
resolution: {integrity: sha512-pk8AoLsr7t7LBAt0cFD06XFA6uxtPdvtLx06xeal7O9o7GHGCbj29WGwFoJ8Br/ENM0Ho868S3PrAn1PtBXt5g==}
engines: {node: '>= 16.4.0'}
@ -5375,6 +5391,18 @@ packages:
resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==}
engines: {node: '>=8'}
openai@5.23.2:
resolution: {integrity: sha512-MQBzmTulj+MM5O8SKEk/gL8a7s5mktS9zUtAkU257WjvobGc9nKcBuVwjyEEcb9SI8a8Y2G/mzn3vm9n1Jlleg==}
hasBin: true
peerDependencies:
ws: ^8.18.0
zod: ^3.23.8
peerDependenciesMeta:
ws:
optional: true
zod:
optional: true
openid-client@6.8.1:
resolution: {integrity: sha512-VoYT6enBo6Vj2j3Q5Ec0AezS+9YGzQo1f5Xc42lreMGlfP4ljiXPKVDvCADh+XHCV/bqPu/wWSiCVXbJKvrODw==}
@ -5692,6 +5720,9 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
pusher-js@8.4.0:
resolution: {integrity: sha512-wp3HqIIUc1GRyu1XrP6m2dgyE9MoCsXVsWNlohj0rjSkLf+a0jLvEyVubdg58oMk7bhjBWnFClgp8jfAa6Ak4Q==}
qs@6.14.1:
resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==}
engines: {node: '>=0.6'}
@ -6310,6 +6341,9 @@ packages:
tw-animate-css@1.4.0:
resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==}
tweetnacl@1.0.3:
resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==}
type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
@ -6469,6 +6503,10 @@ packages:
resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
hasBin: true
uuid@13.0.0:
resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==}
hasBin: true
uuid@9.0.1:
resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
hasBin: true
@ -7374,6 +7412,27 @@ snapshots:
'@chevrotain/utils@11.0.3': {}
'@composio/client@0.1.0-alpha.37': {}
'@composio/core@0.1.55(zod@4.2.1)':
dependencies:
'@composio/client': 0.1.0-alpha.37
'@composio/json-schema-to-zod': 0.1.16(zod@4.2.1)
'@types/json-schema': 7.0.15
chalk: 4.1.2
openai: 5.23.2(zod@4.2.1)
pusher-js: 8.4.0
semver: 7.7.3
uuid: 13.0.0
zod: 4.2.1
zod-to-json-schema: 3.25.1(zod@4.2.1)
transitivePeerDependencies:
- ws
'@composio/json-schema-to-zod@0.1.16(zod@4.2.1)':
dependencies:
zod: 4.2.1
'@electron-forge/cli@7.11.1(encoding@0.1.13)(esbuild@0.24.2)':
dependencies:
'@electron-forge/core': 7.11.1(encoding@0.1.13)(esbuild@0.24.2)
@ -13026,6 +13085,10 @@ snapshots:
is-docker: 2.2.1
is-wsl: 2.2.0
openai@5.23.2(zod@4.2.1):
optionalDependencies:
zod: 4.2.1
openid-client@6.8.1:
dependencies:
jose: 6.1.3
@ -13386,6 +13449,10 @@ snapshots:
punycode@2.3.1: {}
pusher-js@8.4.0:
dependencies:
tweetnacl: 1.0.3
qs@6.14.1:
dependencies:
side-channel: 1.1.0
@ -14110,6 +14177,8 @@ snapshots:
tw-animate-css@1.4.0: {}
tweetnacl@1.0.3: {}
type-check@0.4.0:
dependencies:
prelude-ls: 1.2.1
@ -14269,6 +14338,8 @@ snapshots:
uuid@11.1.0: {}
uuid@13.0.0: {}
uuid@9.0.1: {}
validate-npm-package-license@3.0.4: