@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,541 @@
1
+ # Connector AI Functions Reference
2
+
3
+ Each Squid SaaS connector provides built-in AI functions that AI agents can call automatically when connected to the integration. These functions are available out-of-the-box - no custom code needed.
4
+
5
+ ## How to Use Connector AI Functions
6
+
7
+ 1. **Add the integration** in Squid Console (e.g., add a Slack integration with bot token)
8
+ 2. **Connect it to an AI Agent** either in Console AI Studio or via code:
9
+
10
+ ```typescript
11
+ // Via agent upsert
12
+ await squid.ai().agent('my-agent').upsert({
13
+ description: 'Support agent',
14
+ options: {
15
+ model: 'gpt-5-mini',
16
+ instructions: 'You are a support agent that can search tickets and send messages.'
17
+ }
18
+ });
19
+
20
+ // Via ask/chat options
21
+ const response = await squid.ai().agent('my-agent').ask('Find open tickets about login issues', {
22
+ connectedIntegrations: [
23
+ {
24
+ integrationId: 'zendesk-prod',
25
+ integrationType: 'zendesk',
26
+ description: 'Zendesk support system with customer tickets'
27
+ }
28
+ ]
29
+ });
30
+
31
+ // Restrict to specific functions
32
+ const response = await squid.ai().agent('my-agent').ask('Search for login issues', {
33
+ connectedIntegrations: [
34
+ {
35
+ integrationId: 'zendesk-prod',
36
+ integrationType: 'zendesk',
37
+ functionsToUse: ['searchInZendeskAiFunction', 'getZendeskTicketDetailsAiFunction']
38
+ }
39
+ ]
40
+ });
41
+ ```
42
+
43
+ 3. The agent automatically discovers and calls the connector's AI functions based on the user's prompt.
44
+
45
+ ---
46
+
47
+ ## Mail Connector
48
+
49
+ Integration type: `mail`. Requires SMTP configuration (host, port, user, encryption).
50
+
51
+ ### sendMailWithAi
52
+ Send emails via SMTP.
53
+ - **to** (string, required): Recipient email address
54
+ - **from** (string, optional): Sender email address
55
+ - **subject** (string, required): Email subject line
56
+ - **body** (string, required): Email body content
57
+ - **html** (boolean, required): Whether body is HTML
58
+
59
+ **Example prompt:** "Send an email to john@example.com about the meeting tomorrow"
60
+
61
+ ---
62
+
63
+ ## Slack Connector
64
+
65
+ Integration type: `slack`. Requires app ID, bot token, signing secret.
66
+
67
+ ### searchInSlack
68
+ Semantic search across indexed Slack messages.
69
+ - **prompt** (string, required): Search query
70
+ - **limit** (number, optional): Max results
71
+
72
+ **Example prompt:** "Search Slack for messages about the production outage last week"
73
+
74
+ ---
75
+
76
+ ## Jira Connector
77
+
78
+ Integration type: `jira`. Requires API key, domain, email. Supports issue indexing for semantic search.
79
+
80
+ ### AI Functions
81
+ The Jira connector provides issue management functions with knowledge base integration for semantic search across indexed issues:
82
+ - Search issues by text and filters
83
+ - Get issue details
84
+ - Create new issues
85
+ - Update existing issues
86
+ - Add comments
87
+ - Transition issue status
88
+
89
+ **Example prompt:** "Find all open bugs in the BACKEND project assigned to me"
90
+
91
+ ---
92
+
93
+ ## Jira Service Management (JSM) Connector
94
+
95
+ Integration type: `jira_jsm`. Extends Jira for service desk workflows.
96
+
97
+ ### searchJsmRequests
98
+ Search service desk requests by text.
99
+ - **query** (string, required): Search text
100
+ - **serviceDeskId** (string, optional): Filter by service desk
101
+
102
+ ### getJsmRequestDetails
103
+ Get detailed request information.
104
+ - **requestId** (string, required): The request ID/key
105
+
106
+ ### searchJsmKnowledgeBase
107
+ Semantic search across JSM knowledge base using embeddings.
108
+ - **prompt** (string, required): Search query
109
+
110
+ ### createJsmRequest
111
+ Create new service desk requests.
112
+ - **serviceDeskId** (string, required): Target service desk
113
+ - **requestTypeId** (string, required): Type of request
114
+ - **summary** (string, required): Request summary
115
+ - **description** (string, optional): Request description
116
+
117
+ ### updateJsmRequest
118
+ Update existing requests.
119
+ - **requestId** (string, required): The request ID/key
120
+ - **fields** (string, optional): Fields to update (JSON)
121
+
122
+ ### addJsmComment
123
+ Add comments to requests.
124
+ - **requestId** (string, required): The request ID/key
125
+ - **comment** (string, required): Comment text
126
+ - **isPublic** (boolean, optional): Whether comment is public
127
+
128
+ ### transitionJsmRequest
129
+ Transition request status.
130
+ - **requestId** (string, required): The request ID/key
131
+ - **transitionId** (string, required): Target transition
132
+
133
+ ### listJsmServiceDesks
134
+ List available service desks. No parameters.
135
+
136
+ ### listJsmRequestTypes
137
+ List request types for a service desk.
138
+ - **serviceDeskId** (string, required): Service desk ID
139
+
140
+ **Example prompt:** "Create a new IT support request for laptop replacement in the IT Help Desk"
141
+
142
+ ---
143
+
144
+ ## Zendesk Connector
145
+
146
+ Integration type: `zendesk`. Requires subdomain, email, API token.
147
+
148
+ ### searchInZendeskAiFunction
149
+ Semantic search across Zendesk tickets and knowledge base.
150
+ - **prompt** (string, required): Search query
151
+
152
+ ### listZendeskTicketsAiFunction
153
+ List tickets with sorting and filtering.
154
+ - **sortBy** (string, optional): Sort field
155
+ - **sortOrder** (string, optional): asc or desc
156
+
157
+ ### getZendeskTicketDetailsAiFunction
158
+ Get detailed ticket information including comments and metadata.
159
+ - **ticketId** (string, required): Zendesk ticket ID
160
+
161
+ **Example prompt:** "Show me the details of ticket #12345 and find similar tickets about password reset"
162
+
163
+ ---
164
+
165
+ ## Freshdesk Connector
166
+
167
+ Integration type: `freshdesk`. Requires subdomain, API key. Supports ticket indexing.
168
+
169
+ ### searchFreshdeskTickets
170
+ Text-based ticket search.
171
+ - **query** (string, required): Search text
172
+
173
+ ### findSimilarFreshdeskTickets
174
+ Semantic similarity search using embeddings.
175
+ - **prompt** (string, required): Description to find similar tickets for
176
+
177
+ ### getFreshdeskTicketDetails
178
+ Get ticket details with related tickets.
179
+ - **ticketId** (string, required): Freshdesk ticket ID
180
+
181
+ ### searchFreshdeskKnowledgeBase
182
+ Semantic search across Freshdesk knowledge base articles.
183
+ - **prompt** (string, required): Search query
184
+
185
+ ### createFreshdeskTicket
186
+ Create new support tickets.
187
+ - **subject** (string, required): Ticket subject
188
+ - **description** (string, required): Ticket description
189
+ - **email** (string, required): Requester email
190
+ - **priority** (number, optional): 1=Low, 2=Medium, 3=High, 4=Urgent
191
+ - **status** (number, optional): 2=Open, 3=Pending, 4=Resolved, 5=Closed
192
+
193
+ ### updateFreshdeskTicket
194
+ Update ticket properties.
195
+ - **ticketId** (string, required): Ticket ID
196
+ - **fields** (string, required): JSON of fields to update
197
+
198
+ ### replyToFreshdeskTicket
199
+ Add a reply to a ticket (visible to requester).
200
+ - **ticketId** (string, required): Ticket ID
201
+ - **body** (string, required): Reply content
202
+
203
+ ### addFreshdeskNote
204
+ Add an internal note to a ticket (not visible to requester).
205
+ - **ticketId** (string, required): Ticket ID
206
+ - **body** (string, required): Note content
207
+
208
+ ### listFreshdeskTickets
209
+ List tickets with pagination.
210
+ - **page** (number, optional): Page number
211
+ - **perPage** (number, optional): Results per page
212
+
213
+ **Example prompt:** "Create a high-priority ticket for the billing system being down and find similar past tickets"
214
+
215
+ ---
216
+
217
+ ## GitHub Connector
218
+
219
+ Integration type: `github`. Requires app ID, installation ID, private key, webhook secret.
220
+
221
+ ### searchPullRequests
222
+ Search PRs with multiple filters.
223
+ - **query** (string, required): Search text
224
+ - **state** (string, optional): open, closed, all
225
+ - **author** (string, optional): PR author
226
+ - **label** (string, optional): PR label
227
+
228
+ ### getPRDetails
229
+ Get PR details including files changed and reviews.
230
+ - **prNumber** (number, required): Pull request number
231
+
232
+ ### searchCode
233
+ Search code across repository.
234
+ - **query** (string, required): Code search query
235
+ - **path** (string, optional): File path filter
236
+
237
+ ### getFileContent
238
+ Get specific file contents.
239
+ - **path** (string, required): File path
240
+ - **ref** (string, optional): Branch or commit ref
241
+
242
+ ### createPullRequest
243
+ Create a new pull request.
244
+ - **title** (string, required): PR title
245
+ - **body** (string, required): PR description
246
+ - **head** (string, required): Source branch
247
+ - **base** (string, required): Target branch
248
+
249
+ ### addPRComment
250
+ Add a comment to a PR.
251
+ - **prNumber** (number, required): PR number
252
+ - **body** (string, required): Comment text
253
+
254
+ ### submitPRReview
255
+ Submit a PR review.
256
+ - **prNumber** (number, required): PR number
257
+ - **body** (string, required): Review body
258
+ - **event** (string, required): APPROVE, REQUEST_CHANGES, or COMMENT
259
+
260
+ ### closePullRequest
261
+ Close a pull request.
262
+ - **prNumber** (number, required): PR number
263
+
264
+ ### mergePullRequest
265
+ Merge a pull request.
266
+ - **prNumber** (number, required): PR number
267
+ - **mergeMethod** (string, optional): merge, squash, or rebase
268
+
269
+ ### listOpenPRs
270
+ List open pull requests. No required parameters.
271
+
272
+ **Example prompt:** "Show me all open PRs by john-doe and review PR #42"
273
+
274
+ ---
275
+
276
+ ## Salesforce Connector
277
+
278
+ Integration type: `salesforce`. Requires instance domain, OAuth consumer key/secret.
279
+
280
+ ### Opportunity Management
281
+ - **getOpportunity** (opportunityId) - Get opportunity details
282
+ - **createOpportunity** (name, stageName, closeDate, amount, ...) - Create opportunity
283
+ - **updateOpportunity** (opportunityId, fields) - Update opportunity
284
+ - **deleteOpportunity** (opportunityId) - Delete opportunity
285
+ - **describeOpportunity** - Get opportunity field metadata
286
+
287
+ ### Case Management
288
+ - **getCase** (caseId) - Get case details
289
+ - **createCase** (subject, description, priority, ...) - Create case
290
+ - **updateCase** (caseId, fields) - Update case
291
+ - **deleteCase** (caseId) - Delete case
292
+ - **describeCase** - Get case field metadata
293
+
294
+ ### Account Management
295
+ - **getAccount** (accountId) - Get account details
296
+ - **createAccount** (name, industry, ...) - Create account
297
+ - **updateAccount** (accountId, fields) - Update account
298
+ - **deleteAccount** (accountId) - Delete account
299
+ - **describeAccount** - Get account field metadata
300
+
301
+ ### Incident Management
302
+ - **getIncident** (incidentId) - Get incident details
303
+ - **createIncident** (subject, description, ...) - Create incident
304
+ - **updateIncident** (incidentId, fields) - Update incident
305
+ - **deleteIncident** (incidentId) - Delete incident
306
+ - **describeIncident** - Get incident field metadata
307
+
308
+ ### searchSalesforceKnowledgeBase
309
+ Semantic search across Salesforce knowledge articles.
310
+ - **prompt** (string, required): Search query
311
+
312
+ **Example prompt:** "Create a new opportunity for Acme Corp worth $50k closing next month"
313
+
314
+ ---
315
+
316
+ ## HubSpot Connector
317
+
318
+ Integration type: `hubspot`. Requires access token.
319
+
320
+ ### getHubSpotContactDetailsAiFunction
321
+ Get contact information by ID.
322
+ - **contactId** (string, required): HubSpot contact ID
323
+
324
+ ### getHubSpotCompanyDetailsAiFunction
325
+ Get company information by ID.
326
+ - **companyId** (string, required): HubSpot company ID
327
+
328
+ ### searchHubSpotContactsAiFunction
329
+ Search contacts by query.
330
+ - **query** (string, required): Search query
331
+
332
+ ### searchHubSpotCompaniesAiFunction
333
+ Search companies by query.
334
+ - **query** (string, required): Search query
335
+
336
+ **Example prompt:** "Find all contacts at Acme Corp and show me their details"
337
+
338
+ ---
339
+
340
+ ## Confluence Connector
341
+
342
+ Integration type: `confluence`. Requires API key, domain, space filters.
343
+
344
+ ### searchInConfluence
345
+ Semantic search across indexed Confluence pages.
346
+ - **prompt** (string, required): Search query
347
+
348
+ **Example prompt:** "Find documentation about the deployment process"
349
+
350
+ ---
351
+
352
+ ## Google Calendar Connector
353
+
354
+ Integration type: `google_calendar`. Requires OAuth configuration.
355
+
356
+ ### listCalendarEvents
357
+ List calendar events in a date range.
358
+ - **startDate** (string, required): Start date
359
+ - **endDate** (string, required): End date
360
+ - **maxResults** (number, optional): Maximum events to return
361
+ - **calendarId** (string, optional): Specific calendar ID
362
+
363
+ **Example prompt:** "Show me my meetings for next week"
364
+
365
+ ---
366
+
367
+ ## Google Drive Connector
368
+
369
+ Integration type: `google_drive`. Requires OAuth configuration.
370
+
371
+ ### listIndexedDocuments
372
+ List indexed documents with type filtering.
373
+ - **type** (string, optional): Filter by document type
374
+
375
+ ### searchInGoogleDrive
376
+ Semantic search across indexed Google Drive documents.
377
+ - **prompt** (string, required): Search query
378
+
379
+ **Example prompt:** "Find the Q4 financial report in Google Drive"
380
+
381
+ ---
382
+
383
+ ## Linear Connector
384
+
385
+ Integration type: `linear`. Requires API key. Supports issue indexing.
386
+
387
+ ### searchLinearIssues
388
+ Search issues with team and status filtering.
389
+ - **query** (string, required): Search text
390
+ - **teamId** (string, optional): Filter by team
391
+ - **status** (string, optional): Filter by status
392
+
393
+ ### findSimilarIssues
394
+ Semantic similarity search for issues.
395
+ - **prompt** (string, required): Description to find similar issues for
396
+
397
+ ### getLinearIssueDetails
398
+ Get detailed issue information.
399
+ - **issueId** (string, required): Linear issue ID
400
+
401
+ ### searchLinearKnowledgeBase
402
+ Semantic search with embeddings across indexed issues.
403
+ - **prompt** (string, required): Search query
404
+
405
+ ### createLinearIssue
406
+ Create new issues.
407
+ - **title** (string, required): Issue title
408
+ - **description** (string, optional): Issue description
409
+ - **teamId** (string, required): Team ID
410
+ - **priority** (number, optional): Priority level
411
+ - **assigneeId** (string, optional): Assignee ID
412
+
413
+ ### updateLinearIssue
414
+ Update issue properties.
415
+ - **issueId** (string, required): Issue ID
416
+ - **fields** (string, required): JSON of fields to update
417
+
418
+ ### addLinearComment
419
+ Add comments to issues.
420
+ - **issueId** (string, required): Issue ID
421
+ - **body** (string, required): Comment text
422
+
423
+ ### listLinearTeams
424
+ List available teams. No parameters.
425
+
426
+ **Example prompt:** "Create a high-priority bug in the Frontend team: login button not working on mobile"
427
+
428
+ ---
429
+
430
+ ## ServiceNow CSM Connector
431
+
432
+ Integration type: `servicenow_csm`. Requires instance domain, API token.
433
+
434
+ ### searchInServiceNowKnowledgeBaseAiFunction
435
+ Semantic search across ServiceNow knowledge base.
436
+ - **prompt** (string, required): Search query
437
+
438
+ ### searchServiceNowCasesAiFunction
439
+ Text-based case search.
440
+ - **query** (string, required): Search query
441
+
442
+ ### getServiceNowCaseDetailsAiFunction
443
+ Get detailed case information.
444
+ - **caseId** (string, required): Case ID
445
+
446
+ ### createServiceNowCaseAiFunction
447
+ Create new cases.
448
+ - **short_description** (string, required): Case summary
449
+ - **description** (string, optional): Detailed description
450
+
451
+ ### replyToServiceNowCaseAiFunction
452
+ Reply to existing cases.
453
+ - **caseId** (string, required): Case ID
454
+ - **body** (string, required): Reply content
455
+
456
+ **Example prompt:** "Create a new case for network connectivity issues in the office"
457
+
458
+ ---
459
+
460
+ ## Microsoft Teams Connector
461
+
462
+ Integration type: `teams`. Requires Microsoft tenant, client secret.
463
+
464
+ ### searchInTeams
465
+ Semantic search across indexed Teams messages.
466
+ - **prompt** (string, required): Search query
467
+ - **teamNames** (string, optional): Filter by team names
468
+ - **channelNames** (string, optional): Filter by channel names
469
+
470
+ **Example prompt:** "Search Teams for discussions about the product launch"
471
+
472
+ ---
473
+
474
+ ## SharePoint Connector
475
+
476
+ Integration type: `sharepoint`. Requires Microsoft tenant, client secret.
477
+
478
+ ### listIndexedDocuments
479
+ List indexed SharePoint documents.
480
+ - **type** (string, optional): Filter by document type
481
+
482
+ ### searchInSharePoint
483
+ Semantic search across indexed SharePoint documents.
484
+ - **prompt** (string, required): Search query
485
+
486
+ **Example prompt:** "Find the employee handbook in SharePoint"
487
+
488
+ ---
489
+
490
+ ## OneDrive Integration
491
+
492
+ Integration type: `onedrive`. Requires Microsoft OAuth configuration.
493
+
494
+ Access OneDrive files through the SharePoint connector or via storage APIs.
495
+
496
+ ---
497
+
498
+ ## Google Docs Integration
499
+
500
+ Integration type: `google_docs`. Requires OAuth configuration.
501
+
502
+ Access Google Docs content through the Google Drive connector's indexing and search capabilities.
503
+
504
+ ---
505
+
506
+ ## Common Patterns
507
+
508
+ ### Multi-Connector Agent
509
+ ```typescript
510
+ const response = await squid.ai().agent('ops-agent').ask('Summarize open issues and recent messages', {
511
+ connectedIntegrations: [
512
+ { integrationId: 'jira-prod', integrationType: 'jira', description: 'Issue tracker' },
513
+ { integrationId: 'slack-eng', integrationType: 'slack', description: 'Engineering Slack' },
514
+ { integrationId: 'confluence-docs', integrationType: 'confluence', description: 'Documentation' }
515
+ ]
516
+ });
517
+ ```
518
+
519
+ ### Agent with Knowledge Base + Connector
520
+ ```typescript
521
+ const response = await squid.ai().agent('support-agent').ask(customerQuestion, {
522
+ connectedIntegrations: [
523
+ { integrationId: 'zendesk-prod', integrationType: 'zendesk' }
524
+ ],
525
+ connectedKnowledgeBases: [
526
+ { knowledgeBaseId: 'product-docs', description: 'Product documentation and FAQs' }
527
+ ]
528
+ });
529
+ ```
530
+
531
+ ### Restricting Functions
532
+ ```typescript
533
+ // Only allow search, not create/update/delete
534
+ const response = await squid.ai().agent('readonly-agent').ask('Find related tickets', {
535
+ connectedIntegrations: [{
536
+ integrationId: 'jira-prod',
537
+ integrationType: 'jira',
538
+ functionsToUse: ['searchJiraIssues', 'getJiraIssueDetails']
539
+ }]
540
+ });
541
+ ```