From 8ce20c4896297fff9052d170e1096904470c6531 Mon Sep 17 00:00:00 2001 From: sam-lippert Date: Wed, 28 May 2025 10:18:51 -0500 Subject: [PATCH] feat(integrations): implement cli with apis client --- README.md | 17 ++++++++++++++++- sdks/integrations.do/src/cli.ts | 16 +++++++++++----- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 17aedbb16..72782ef28 100644 --- a/README.md +++ b/README.md @@ -72,10 +72,25 @@ const amy = Agent({ integrations: ['chat', 'slack', 'email', 'zendesk', 'shopify'], triggers: ['onTicketCreated', 'onMessageReceived'], searches: ['FAQs', 'Tickets', 'Orders', 'Products', 'Customers'], - actions: ['sendMessage', 'updateOrder', 'refundOrder', 'resolveTicket', 'escalateTicket'], +actions: ['sendMessage', 'updateOrder', 'refundOrder', 'resolveTicket', 'escalateTicket'], }) ``` +### [Integrations.do](https://integrations.do) Connect External APIs + +```ts +import { integrations } from 'integrations.do' + +// View available integrations +const services = await integrations.list() + +// Connect to GitHub using an API token +const connection = await integrations.connect('github', { type: 'apiKey', apiKey: process.env.GITHUB_TOKEN }) + +// Later disconnect when no longer needed +await integrations.deleteConnection(connection.id) +``` + ### [Humans.do](https://humans.do) Tasks in a Workflow ```ts diff --git a/sdks/integrations.do/src/cli.ts b/sdks/integrations.do/src/cli.ts index a42b93d6a..3f16a0676 100644 --- a/sdks/integrations.do/src/cli.ts +++ b/sdks/integrations.do/src/cli.ts @@ -1,15 +1,21 @@ +import { API } from 'apis.do' + export class CLI { + private api: API + + constructor(options: { apiKey?: string; baseUrl?: string } = {}) { + this.api = new API({ apiKey: options.apiKey, baseUrl: options.baseUrl }) + } + async listIntegrations() { - return [] + return this.api.get('/integrations') } async connect(integration: string, options: { token?: string } = {}) { - console.log(`Connecting to ${integration}...`) - return { success: true, integration } + return this.api.post(`/integrations/${integration}/connect`, options) } async disconnect(integration: string) { - console.log(`Disconnecting from ${integration}...`) - return { success: true, integration } + return this.api.post(`/integrations/${integration}/disconnect`, {}) } }