@squidcloud/cli 1.0.460 → 1.0.461

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.
@@ -0,0 +1,154 @@
1
+ # Integration Type Catalog
2
+
3
+ Complete catalog of all Squid integration types. Source of truth: `INTEGRATION_TYPES` from `@squidcloud/client`.
4
+
5
+ ```typescript
6
+ import { IntegrationType, INTEGRATION_TYPES } from '@squidcloud/client';
7
+ ```
8
+
9
+ ## Databases (14 types)
10
+
11
+ | Type | Description | Config Required |
12
+ |------|-------------|-----------------|
13
+ | `postgres` | PostgreSQL | host, port, database, user, password |
14
+ | `mysql` | MySQL / MariaDB | host, port, database, user, password |
15
+ | `mongo` | MongoDB | connectionString, password |
16
+ | `mssql` | Microsoft SQL Server | host, port, database, user, password |
17
+ | `snowflake` | Snowflake | account, database, schema, warehouse, user, password or privateKey |
18
+ | `bigquery` | Google BigQuery | GCP credentials, dataset |
19
+ | `dynamodb` | Amazon DynamoDB | region, accessKeyId, secretAccessKey |
20
+ | `elasticsearch` | Elasticsearch | host, port, user, password |
21
+ | `clickhouse` | ClickHouse | host, port, database, user, password |
22
+ | `oracledb` | Oracle Database | host, port, database, user, password |
23
+ | `cockroach` | CockroachDB | host, port, database, user, password |
24
+ | `sap_hana` | SAP HANA | host, port, user, password |
25
+ | `databricks` | Databricks | host, catalog, schemas, warehousePath |
26
+ | `legend` | Legend metadata | GitLab PAT |
27
+ | `built_in_db` | Built-in database (included free) | None |
28
+
29
+ Additional database types (available as integration, no dedicated connector):
30
+ - `mariadb` - MariaDB (separate from MySQL)
31
+ - `alloydb` - Google AlloyDB
32
+ - `cloudsql` - Google Cloud SQL
33
+ - `cassandra` - Apache Cassandra
34
+ - `db2` - IBM DB2
35
+ - `documentdb` - AWS DocumentDB
36
+ - `firestore` - Google Firestore
37
+ - `spanner` - Google Cloud Spanner
38
+ - `xata` - Xata database
39
+ - `azure_cosmosdb` - Azure Cosmos DB
40
+ - `azure_postgresql` - Azure PostgreSQL
41
+ - `azure_sql` - Azure SQL
42
+ - `redis` - Redis
43
+
44
+ ## Authentication (8 types)
45
+
46
+ | Type | Description | Config Required |
47
+ |------|-------------|-----------------|
48
+ | `auth0` | Auth0 | Auto-discovered via JWKS |
49
+ | `cognito` | Amazon Cognito | region, userPoolId, appClientId |
50
+ | `okta` | Okta | domain, clientId |
51
+ | `keycloak` | Keycloak | realm, JWKS URL |
52
+ | `firebase_auth` | Firebase Authentication | projectId |
53
+ | `jwt_rsa` | Custom JWT (RSA) | JWKS URI, optional audience/issuer |
54
+ | `jwt_hmac` | Custom JWT (HMAC) | Optional verification URI |
55
+ | `descope` | Descope | projectId |
56
+
57
+ ## SaaS Connectors (18 types with AI functions)
58
+
59
+ | Type | Description | Key AI Functions |
60
+ |------|-------------|------------------|
61
+ | `slack` | Slack messaging | searchInSlack |
62
+ | `jira` | Atlassian Jira | search, create, update issues |
63
+ | `jira_jsm` | Jira Service Management | search, create, transition requests |
64
+ | `zendesk` | Zendesk support | search tickets, get details |
65
+ | `freshdesk` | Freshdesk support | search, create, reply to tickets |
66
+ | `salesforce` | Salesforce CRM | CRUD for opportunities, cases, accounts, incidents |
67
+ | `hubspot` | HubSpot CRM | search/get contacts and companies |
68
+ | `github` | GitHub repos | search PRs/code, create/merge PRs, reviews |
69
+ | `confluence` | Atlassian Confluence | searchInConfluence |
70
+ | `google_calendar` | Google Calendar | listCalendarEvents |
71
+ | `google_drive` | Google Drive | search, list documents |
72
+ | `google_docs` | Google Docs | Access via Google Drive connector |
73
+ | `linear` | Linear issues | search, create, update issues |
74
+ | `servicenow_csm` | ServiceNow CSM | search cases, create, reply |
75
+ | `teams` | Microsoft Teams | searchInTeams |
76
+ | `sharepoint` | Microsoft SharePoint | search, list documents |
77
+ | `onedrive` | Microsoft OneDrive | Access via SharePoint connector |
78
+ | `mail` | Email (SMTP) | sendMailWithAi |
79
+ | `monday` | Monday.com | Board and item management |
80
+ | `active_directory` | Active Directory | User/group management |
81
+
82
+ ## Storage (6 types)
83
+
84
+ | Type | Description | Config Required |
85
+ |------|-------------|-----------------|
86
+ | `s3` | Amazon S3 | bucket, region, accessKeyId, secretKey |
87
+ | `gcs` | Google Cloud Storage | bucket, GCP credentials |
88
+ | `azure_blob` | Azure Blob Storage | container, connectionString |
89
+ | `built_in_s3` | Built-in S3 (AWS deployments) | None |
90
+ | `built_in_gcs` | Built-in GCS (GCP deployments) | None |
91
+ | `built_in_azure_blob` | Built-in Azure Blob (Azure deployments) | None |
92
+
93
+ ## Message Queues (3 types)
94
+
95
+ | Type | Description | Config Required |
96
+ |------|-------------|-----------------|
97
+ | `kafka` | Apache Kafka | bootstrapServers, SASL credentials |
98
+ | `confluent` | Confluent Cloud | Kafka-compatible configuration |
99
+ | `built_in_queue` | Built-in queue (included free) | None |
100
+
101
+ ## API Integrations (2 types)
102
+
103
+ | Type | Description | Config Required |
104
+ |------|-------------|-----------------|
105
+ | `api` | REST API (OpenAPI) | OpenAPI spec URL |
106
+ | `graphql` | GraphQL endpoint | Base URL |
107
+
108
+ ## AI Providers (3 types)
109
+
110
+ | Type | Description | Config Required |
111
+ |------|-------------|-----------------|
112
+ | `openai_compatible` | OpenAI-compatible chat models | Base URL, API key, model list |
113
+ | `openai_compatible_embedding` | OpenAI-compatible embeddings | Base URL, API key, model list |
114
+ | `bedrock` | AWS Bedrock | Region, API key, model list |
115
+
116
+ Note: Standard AI providers (OpenAI, Anthropic, Gemini, Grok) are configured in Console AI Settings, not as integration types.
117
+
118
+ ## Agent Protocols (2 types)
119
+
120
+ | Type | Description | Config Required |
121
+ |------|-------------|-----------------|
122
+ | `mcp` | MCP Server connection | Server URL, optional auth header |
123
+ | `a2a` | Agent-to-Agent protocol | Agent URL, optional auth header |
124
+
125
+ ## Observability (3 types)
126
+
127
+ | Type | Description | Config Required |
128
+ |------|-------------|-----------------|
129
+ | `datadog` | Datadog monitoring | API key, app key, region |
130
+ | `newrelic` | New Relic APM | API key, region |
131
+ | `sentry` | Sentry error tracking | Configuration via Console |
132
+
133
+ ## Search & Vector (2 types)
134
+
135
+ | Type | Description | Config Required |
136
+ |------|-------------|-----------------|
137
+ | `algolia` | Algolia search | API key, app ID |
138
+ | `pinecone` | Pinecone vector DB | API key, environment |
139
+
140
+ ## Special Types
141
+
142
+ | Type | Description |
143
+ |------|-------------|
144
+ | `ai_agents` | Internal - AI agent management |
145
+ | `ai_chatbot` | Internal - AI chatbot configuration |
146
+ | `connected_knowledgebases` | Internal - Knowledge base connections |
147
+
148
+ ## Built-in Integrations (Free, No Setup)
149
+
150
+ Every Squid app automatically includes:
151
+ - `built_in_db` - NoSQL database
152
+ - `built_in_queue` - Message queue
153
+ - `built_in_s3` / `built_in_gcs` / `built_in_azure_blob` - Cloud-specific storage
154
+ - **Essentials Connector** - AI search, URL extraction, short URLs, PDF creation, data extraction, matchmaking
@@ -0,0 +1,529 @@
1
+ # Integration Setup via IAC API
2
+
3
+ Integrations can be managed programmatically using the IAC REST API or the ManagementClient SDK.
4
+
5
+ ## IAC REST API
6
+
7
+ Base URL: `https://console.getsquid.ai/iac/applications/{appId}/integrations`
8
+
9
+ All requests require the `x-app-api-key` header.
10
+
11
+ ### Endpoints
12
+
13
+ | Method | Path | Description |
14
+ |--------|------|-------------|
15
+ | GET | `/` | List all integrations |
16
+ | GET | `/{integrationId}` | Get integration config |
17
+ | PUT | `/{integrationId}` | Create or update integration |
18
+ | DELETE | `/{integrationId}` | Delete integration |
19
+ | POST | `/{integrationId}/discover-schema` | Discover database schema |
20
+ | POST | `/{integrationId}/discover-graphql-schema` | Discover GraphQL schema |
21
+ | POST | `/{integrationId}/discover-openapi-schema` | Discover OpenAPI schema |
22
+ | POST | `/test-connection` | Test database connection |
23
+ | POST | `/{integrationId}/schema/generate-ai-descriptions` | Generate AI descriptions for schema |
24
+ | GET | `/{integrationId}/schema` | Get integration schema |
25
+ | PUT | `/{integrationId}/schema` | Set integration schema |
26
+
27
+ ### ManagementClient SDK
28
+
29
+ ```typescript
30
+ import { ManagementClient } from '@squidcloud/client';
31
+
32
+ const mgmt = new ManagementClient({
33
+ apiKey: 'management-api-key',
34
+ orgId: 'your-org-id'
35
+ });
36
+
37
+ // Upsert integration
38
+ await mgmt.upsertIntegration(appId, 'my-postgres', {
39
+ id: 'my-postgres',
40
+ type: 'postgres',
41
+ configuration: {
42
+ connectionOptions: {
43
+ host: 'db.example.com',
44
+ port: 5432,
45
+ database: 'mydb',
46
+ user: 'admin',
47
+ secrets: { password: 'SECRET_NAME' },
48
+ ssl: true
49
+ }
50
+ }
51
+ });
52
+
53
+ // Discover schema after connecting
54
+ await mgmt.discoverDataConnectionSchema(appId, 'my-postgres');
55
+
56
+ // Test connection
57
+ await mgmt.testDataConnection(appId, {
58
+ id: 'test-pg',
59
+ type: 'postgres',
60
+ configuration: { connectionOptions: { /* ... */ } }
61
+ });
62
+ ```
63
+
64
+ ## Configuration Examples by Integration Type
65
+
66
+ ### Authentication
67
+
68
+ #### Auth0
69
+ ```json
70
+ {
71
+ "id": "my-auth0",
72
+ "type": "auth0"
73
+ }
74
+ ```
75
+ Auth0 configuration is auto-discovered via JWKS. Set the Auth0 domain in Console.
76
+
77
+ #### Cognito
78
+ ```json
79
+ {
80
+ "id": "my-cognito",
81
+ "type": "cognito",
82
+ "configuration": {
83
+ "region": "us-east-1",
84
+ "userPoolId": "us-east-1_xxxxxx",
85
+ "appClientId": "your-app-client-id"
86
+ }
87
+ }
88
+ ```
89
+
90
+ #### Okta
91
+ ```json
92
+ {
93
+ "id": "my-okta",
94
+ "type": "okta",
95
+ "configuration": {
96
+ "domain": "your-domain.okta.com",
97
+ "clientId": "your-client-id"
98
+ }
99
+ }
100
+ ```
101
+
102
+ #### JWT RSA
103
+ ```json
104
+ {
105
+ "id": "my-jwt",
106
+ "type": "jwt_rsa",
107
+ "configuration": {
108
+ "jwksUri": "https://your-auth-server/.well-known/jwks.json",
109
+ "audience": "your-api-audience",
110
+ "issuer": "https://your-auth-server/"
111
+ }
112
+ }
113
+ ```
114
+
115
+ #### Firebase Auth
116
+ ```json
117
+ {
118
+ "id": "my-firebase",
119
+ "type": "firebase_auth",
120
+ "configuration": {
121
+ "projectId": "your-firebase-project-id"
122
+ }
123
+ }
124
+ ```
125
+
126
+ ### Databases
127
+
128
+ #### PostgreSQL
129
+ ```json
130
+ {
131
+ "id": "my-postgres",
132
+ "type": "postgres",
133
+ "configuration": {
134
+ "connectionOptions": {
135
+ "host": "db.example.com",
136
+ "port": 5432,
137
+ "database": "mydb",
138
+ "user": "admin",
139
+ "secrets": { "password": "PG_PASSWORD_SECRET" },
140
+ "ssl": true
141
+ }
142
+ }
143
+ }
144
+ ```
145
+
146
+ #### MongoDB
147
+ ```json
148
+ {
149
+ "id": "my-mongo",
150
+ "type": "mongo",
151
+ "configuration": {
152
+ "connectionOptions": {
153
+ "connectionString": "mongodb+srv://...",
154
+ "secrets": { "password": "MONGO_PASSWORD_SECRET" }
155
+ }
156
+ }
157
+ }
158
+ ```
159
+
160
+ #### MySQL
161
+ ```json
162
+ {
163
+ "id": "my-mysql",
164
+ "type": "mysql",
165
+ "configuration": {
166
+ "connectionOptions": {
167
+ "host": "db.example.com",
168
+ "port": 3306,
169
+ "database": "mydb",
170
+ "user": "admin",
171
+ "secrets": { "password": "MYSQL_PASSWORD_SECRET" }
172
+ }
173
+ }
174
+ }
175
+ ```
176
+
177
+ #### Snowflake
178
+ ```json
179
+ {
180
+ "id": "my-snowflake",
181
+ "type": "snowflake",
182
+ "configuration": {
183
+ "connectionOptions": {
184
+ "account": "your-account",
185
+ "database": "MY_DB",
186
+ "schema": "PUBLIC",
187
+ "warehouse": "COMPUTE_WH",
188
+ "user": "admin",
189
+ "secrets": { "password": "SNOWFLAKE_PASSWORD_SECRET" }
190
+ }
191
+ }
192
+ }
193
+ ```
194
+
195
+ #### DynamoDB
196
+ ```json
197
+ {
198
+ "id": "my-dynamodb",
199
+ "type": "dynamodb",
200
+ "configuration": {
201
+ "connectionOptions": {
202
+ "region": "us-east-1",
203
+ "secrets": {
204
+ "accessKeyId": "AWS_ACCESS_KEY_SECRET",
205
+ "secretAccessKey": "AWS_SECRET_KEY_SECRET"
206
+ }
207
+ }
208
+ }
209
+ }
210
+ ```
211
+
212
+ ### SaaS Connectors
213
+
214
+ #### Slack
215
+ ```json
216
+ {
217
+ "id": "my-slack",
218
+ "type": "slack",
219
+ "configuration": {
220
+ "appId": "A12345678",
221
+ "secrets": {
222
+ "botUserAuthToken": "SLACK_BOT_TOKEN_SECRET",
223
+ "signingSecret": "SLACK_SIGNING_SECRET",
224
+ "clientSecret": "SLACK_CLIENT_SECRET",
225
+ "verificationToken": "SLACK_VERIFICATION_TOKEN_SECRET"
226
+ }
227
+ }
228
+ }
229
+ ```
230
+
231
+ #### Jira
232
+ ```json
233
+ {
234
+ "id": "my-jira",
235
+ "type": "jira",
236
+ "configuration": {
237
+ "domain": "your-company.atlassian.net",
238
+ "email": "admin@company.com",
239
+ "secrets": { "apiKey": "JIRA_API_KEY_SECRET" },
240
+ "indexIssues": true,
241
+ "selectedProjectKeys": ["PROJ1", "PROJ2"],
242
+ "issueHistoryDays": 90
243
+ }
244
+ }
245
+ ```
246
+
247
+ #### Zendesk
248
+ ```json
249
+ {
250
+ "id": "my-zendesk",
251
+ "type": "zendesk",
252
+ "configuration": {
253
+ "subdomain": "your-company",
254
+ "email": "admin@company.com",
255
+ "secrets": { "apiToken": "ZENDESK_TOKEN_SECRET" }
256
+ }
257
+ }
258
+ ```
259
+
260
+ #### GitHub
261
+ ```json
262
+ {
263
+ "id": "my-github",
264
+ "type": "github",
265
+ "configuration": {
266
+ "appId": "123456",
267
+ "installationId": "789012",
268
+ "secrets": {
269
+ "privateKey": "GITHUB_PRIVATE_KEY_SECRET",
270
+ "webhookSecret": "GITHUB_WEBHOOK_SECRET"
271
+ }
272
+ }
273
+ }
274
+ ```
275
+
276
+ #### Salesforce
277
+ ```json
278
+ {
279
+ "id": "my-salesforce",
280
+ "type": "salesforce",
281
+ "configuration": {
282
+ "instanceDomain": "your-company.my.salesforce.com",
283
+ "secrets": {
284
+ "consumerKey": "SF_CONSUMER_KEY_SECRET",
285
+ "consumerSecret": "SF_CONSUMER_SECRET_SECRET"
286
+ }
287
+ }
288
+ }
289
+ ```
290
+
291
+ #### HubSpot
292
+ ```json
293
+ {
294
+ "id": "my-hubspot",
295
+ "type": "hubspot",
296
+ "configuration": {
297
+ "secrets": { "accessToken": "HUBSPOT_TOKEN_SECRET" }
298
+ }
299
+ }
300
+ ```
301
+
302
+ #### Mail (SMTP)
303
+ ```json
304
+ {
305
+ "id": "my-mail",
306
+ "type": "mail",
307
+ "configuration": {
308
+ "host": "smtp.gmail.com",
309
+ "port": 587,
310
+ "user": "noreply@company.com",
311
+ "encryption": "tls",
312
+ "secrets": { "password": "SMTP_PASSWORD_SECRET" }
313
+ }
314
+ }
315
+ ```
316
+
317
+ #### Linear
318
+ ```json
319
+ {
320
+ "id": "my-linear",
321
+ "type": "linear",
322
+ "configuration": {
323
+ "secrets": { "apiKey": "LINEAR_API_KEY_SECRET" },
324
+ "indexIssues": true,
325
+ "selectedTeamIds": ["team-id-1"],
326
+ "issueHistoryDays": 90
327
+ }
328
+ }
329
+ ```
330
+
331
+ #### Freshdesk
332
+ ```json
333
+ {
334
+ "id": "my-freshdesk",
335
+ "type": "freshdesk",
336
+ "configuration": {
337
+ "subdomain": "your-company",
338
+ "secrets": { "apiKey": "FRESHDESK_API_KEY_SECRET" },
339
+ "indexTickets": true,
340
+ "ticketHistoryDays": 90
341
+ }
342
+ }
343
+ ```
344
+
345
+ ### Storage
346
+
347
+ #### Amazon S3
348
+ ```json
349
+ {
350
+ "id": "my-s3",
351
+ "type": "s3",
352
+ "configuration": {
353
+ "bucket": "my-bucket",
354
+ "region": "us-east-1",
355
+ "secrets": {
356
+ "accessKeyId": "S3_ACCESS_KEY_SECRET",
357
+ "secretKey": "S3_SECRET_KEY_SECRET"
358
+ }
359
+ }
360
+ }
361
+ ```
362
+
363
+ #### Google Cloud Storage
364
+ ```json
365
+ {
366
+ "id": "my-gcs",
367
+ "type": "gcs",
368
+ "configuration": {
369
+ "bucket": "my-bucket",
370
+ "secrets": { "credentials": "GCS_CREDENTIALS_JSON_SECRET" }
371
+ }
372
+ }
373
+ ```
374
+
375
+ #### Azure Blob Storage
376
+ ```json
377
+ {
378
+ "id": "my-azure-blob",
379
+ "type": "azure_blob",
380
+ "configuration": {
381
+ "container": "my-container",
382
+ "secrets": { "connectionString": "AZURE_BLOB_CONNECTION_STRING_SECRET" }
383
+ }
384
+ }
385
+ ```
386
+
387
+ ### Message Queues
388
+
389
+ #### Kafka
390
+ ```json
391
+ {
392
+ "id": "my-kafka",
393
+ "type": "kafka",
394
+ "configuration": {
395
+ "connectionOptions": {
396
+ "bootstrapServers": "kafka1:9092,kafka2:9092",
397
+ "secrets": {
398
+ "saslUsername": "KAFKA_USER_SECRET",
399
+ "saslPassword": "KAFKA_PASSWORD_SECRET"
400
+ }
401
+ }
402
+ }
403
+ }
404
+ ```
405
+
406
+ ### API Integrations
407
+
408
+ #### REST API (OpenAPI)
409
+ ```json
410
+ {
411
+ "id": "my-api",
412
+ "type": "api",
413
+ "configuration": {
414
+ "discoveryOptions": {
415
+ "openApiSpecUrl": "https://api.example.com/openapi.json"
416
+ },
417
+ "exposeAsMcpServer": false
418
+ }
419
+ }
420
+ ```
421
+
422
+ #### GraphQL
423
+ ```json
424
+ {
425
+ "id": "my-graphql",
426
+ "type": "graphql",
427
+ "configuration": {
428
+ "connectionOptions": {
429
+ "baseUrl": "https://api.example.com/graphql"
430
+ }
431
+ }
432
+ }
433
+ ```
434
+
435
+ ### AI Providers
436
+
437
+ #### OpenAI-Compatible
438
+ ```json
439
+ {
440
+ "id": "my-llm",
441
+ "type": "openai_compatible",
442
+ "configuration": {
443
+ "baseUrl": "https://api.your-llm.com/v1",
444
+ "secrets": { "apiKey": "LLM_API_KEY_SECRET" },
445
+ "models": ["model-name-1", "model-name-2"]
446
+ }
447
+ }
448
+ ```
449
+
450
+ #### AWS Bedrock
451
+ ```json
452
+ {
453
+ "id": "my-bedrock",
454
+ "type": "bedrock",
455
+ "configuration": {
456
+ "region": "us-east-1",
457
+ "secrets": { "apiKey": "BEDROCK_API_KEY_SECRET" },
458
+ "models": ["anthropic.claude-3-sonnet"]
459
+ }
460
+ }
461
+ ```
462
+
463
+ ### Agent Protocols
464
+
465
+ #### MCP Server
466
+ ```json
467
+ {
468
+ "id": "my-mcp",
469
+ "type": "mcp",
470
+ "configuration": {
471
+ "url": "https://mcp-server.example.com",
472
+ "authorizationHeader": "Bearer TOKEN"
473
+ }
474
+ }
475
+ ```
476
+
477
+ #### A2A (Agent-to-Agent)
478
+ ```json
479
+ {
480
+ "id": "my-a2a",
481
+ "type": "a2a",
482
+ "configuration": {
483
+ "url": "https://a2a-agent.example.com",
484
+ "authorizationHeader": "Bearer TOKEN"
485
+ }
486
+ }
487
+ ```
488
+
489
+ ### Observability
490
+
491
+ #### Datadog
492
+ ```json
493
+ {
494
+ "id": "my-datadog",
495
+ "type": "datadog",
496
+ "configuration": {
497
+ "region": "us1",
498
+ "secrets": {
499
+ "apiKey": "DD_API_KEY_SECRET",
500
+ "appKey": "DD_APP_KEY_SECRET"
501
+ }
502
+ }
503
+ }
504
+ ```
505
+
506
+ #### New Relic
507
+ ```json
508
+ {
509
+ "id": "my-newrelic",
510
+ "type": "newrelic",
511
+ "configuration": {
512
+ "region": "worldwide",
513
+ "secrets": { "apiKey": "NR_API_KEY_SECRET" }
514
+ }
515
+ }
516
+ ```
517
+
518
+ ## Secrets Management
519
+
520
+ Integration secrets are stored securely in Squid. The values in the `secrets` fields are **secret names** (references), not the actual secret values. Set secret values in Squid Console > Your App > Secrets, or via the Secrets IAC API:
521
+
522
+ ```
523
+ PUT /iac/applications/{appId}/secrets/{secretName}
524
+ ```
525
+
526
+ ```typescript
527
+ // Via ManagementClient
528
+ await mgmt.setSecret(appId, 'PG_PASSWORD_SECRET', 'actual-password-value');
529
+ ```
@@ -17,6 +17,8 @@ This skill provides comprehensive, code-verified knowledge about developing Reac
17
17
 
18
18
  **Key Point:** `@squidcloud/react` provides partial hooks for common operations. For any functionality not covered by a dedicated hook, use `useSquid()` to access the full Squid client SDK.
19
19
 
20
+ **IMPORTANT:** Never invoke LLMs directly (e.g., importing `openai` or `@anthropic-ai/sdk`). Use Squid AI hooks (`useAiAgent`, `useAiChat`) or `squid.ai().agent()`. For external service integrations (email, Slack, Jira, etc.), use Squid's built-in integrations - see `squid-integrations` skill.
21
+
20
22
  ## Installation
21
23
 
22
24
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@squidcloud/cli",
3
- "version": "1.0.460",
3
+ "version": "1.0.461",
4
4
  "description": "The Squid CLI",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -28,7 +28,7 @@
28
28
  "node": ">=18.0.0"
29
29
  },
30
30
  "dependencies": {
31
- "@squidcloud/local-backend": "^1.0.460",
31
+ "@squidcloud/local-backend": "^1.0.461",
32
32
  "adm-zip": "^0.5.16",
33
33
  "copy-webpack-plugin": "^12.0.2",
34
34
  "decompress": "^4.2.1",