@mindstudio-ai/agent 0.0.20 → 0.1.1

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
@@ -191,6 +191,9 @@ function applyStepMethods(AgentClass) {
191
191
  proto.createDataSource = function(step, options) {
192
192
  return this.executeStep("createDataSource", step, options);
193
193
  };
194
+ proto.createGmailDraft = function(step, options) {
195
+ return this.executeStep("createGmailDraft", step, options);
196
+ };
194
197
  proto.createGoogleCalendarEvent = function(step, options) {
195
198
  return this.executeStep("createGoogleCalendarEvent", step, options);
196
199
  };
@@ -293,12 +296,18 @@ function applyStepMethods(AgentClass) {
293
296
  proto.generateVideo = function(step, options) {
294
297
  return this.executeStep("generateVideo", step, options);
295
298
  };
299
+ proto.getGmailAttachments = function(step, options) {
300
+ return this.executeStep("getGmailAttachments", step, options);
301
+ };
296
302
  proto.getGmailDraft = function(step, options) {
297
303
  return this.executeStep("getGmailDraft", step, options);
298
304
  };
299
305
  proto.getGmailEmail = function(step, options) {
300
306
  return this.executeStep("getGmailEmail", step, options);
301
307
  };
308
+ proto.getGmailUnreadCount = function(step, options) {
309
+ return this.executeStep("getGmailUnreadCount", step, options);
310
+ };
302
311
  proto.getGoogleCalendarEvent = function(step, options) {
303
312
  return this.executeStep("getGoogleCalendarEvent", step, options);
304
313
  };
@@ -356,12 +365,18 @@ function applyStepMethods(AgentClass) {
356
365
  proto.listGmailDrafts = function(step, options) {
357
366
  return this.executeStep("listGmailDrafts", step, options);
358
367
  };
368
+ proto.listGmailLabels = function(step, options) {
369
+ return this.executeStep("listGmailLabels", step, options);
370
+ };
359
371
  proto.listGoogleCalendarEvents = function(step, options) {
360
372
  return this.executeStep("listGoogleCalendarEvents", step, options);
361
373
  };
362
374
  proto.listGoogleDriveFiles = function(step, options) {
363
375
  return this.executeStep("listGoogleDriveFiles", step, options);
364
376
  };
377
+ proto.listRecentGmailEmails = function(step, options) {
378
+ return this.executeStep("listRecentGmailEmails", step, options);
379
+ };
365
380
  proto.logic = function(step, options) {
366
381
  return this.executeStep("logic", step, options);
367
382
  };
@@ -422,6 +437,9 @@ function applyStepMethods(AgentClass) {
422
437
  proto.resizeVideo = function(step, options) {
423
438
  return this.executeStep("resizeVideo", step, options);
424
439
  };
440
+ proto.runFromConnectorRegistry = function(step, options) {
441
+ return this.executeStep("runFromConnectorRegistry", step, options);
442
+ };
425
443
  proto.runPackagedWorkflow = function(step, options) {
426
444
  return this.executeStep("runPackagedWorkflow", step, options);
427
445
  };
@@ -464,6 +482,9 @@ function applyStepMethods(AgentClass) {
464
482
  proto.scrapeXProfile = function(step, options) {
465
483
  return this.executeStep("scrapeXProfile", step, options);
466
484
  };
485
+ proto.searchGmailEmails = function(step, options) {
486
+ return this.executeStep("searchGmailEmails", step, options);
487
+ };
467
488
  proto.searchGoogle = function(step, options) {
468
489
  return this.executeStep("searchGoogle", step, options);
469
490
  };
@@ -497,9 +518,18 @@ function applyStepMethods(AgentClass) {
497
518
  proto.sendEmail = function(step, options) {
498
519
  return this.executeStep("sendEmail", step, options);
499
520
  };
521
+ proto.sendGmailDraft = function(step, options) {
522
+ return this.executeStep("sendGmailDraft", step, options);
523
+ };
524
+ proto.sendGmailMessage = function(step, options) {
525
+ return this.executeStep("sendGmailMessage", step, options);
526
+ };
500
527
  proto.sendSMS = function(step, options) {
501
528
  return this.executeStep("sendSMS", step, options);
502
529
  };
530
+ proto.setGmailReadStatus = function(step, options) {
531
+ return this.executeStep("setGmailReadStatus", step, options);
532
+ };
503
533
  proto.setRunTitle = function(step, options) {
504
534
  return this.executeStep("setRunTitle", step, options);
505
535
  };
@@ -539,6 +569,9 @@ function applyStepMethods(AgentClass) {
539
569
  proto.trimMedia = function(step, options) {
540
570
  return this.executeStep("trimMedia", step, options);
541
571
  };
572
+ proto.updateGmailLabels = function(step, options) {
573
+ return this.executeStep("updateGmailLabels", step, options);
574
+ };
542
575
  proto.updateGoogleCalendarEvent = function(step, options) {
543
576
  return this.executeStep("updateGoogleCalendarEvent", step, options);
544
577
  };
@@ -586,12 +619,27 @@ function applyHelperMethods(AgentClass) {
586
619
  proto.listModelsByType = function(modelType) {
587
620
  return this._request("GET", `/helpers/models/${modelType}`).then((r) => r.data);
588
621
  };
622
+ proto.listModelsSummary = function() {
623
+ return this._request("GET", "/helpers/models-summary").then((r) => r.data);
624
+ };
625
+ proto.listModelsSummaryByType = function(modelType) {
626
+ return this._request("GET", `/helpers/models-summary/${modelType}`).then((r) => r.data);
627
+ };
589
628
  proto.listConnectors = function() {
590
629
  return this._request("GET", "/helpers/connectors").then((r) => r.data);
591
630
  };
592
631
  proto.getConnector = function(serviceId) {
593
632
  return this._request("GET", `/helpers/connectors/${serviceId}`).then((r) => r.data);
594
633
  };
634
+ proto.getConnectorAction = function(serviceId, actionId) {
635
+ return this._request("GET", `/helpers/connectors/${serviceId}/${actionId}`).then((r) => r.data);
636
+ };
637
+ proto.listConnections = function() {
638
+ return this._request("GET", "/helpers/connections").then((r) => r.data);
639
+ };
640
+ proto.estimateStepCost = function(stepType, step, options) {
641
+ return this._request("POST", "/helpers/step-cost-estimate", { step: { type: stepType, ...step }, ...options }).then((r) => r.data);
642
+ };
595
643
  }
596
644
 
597
645
  // src/client.ts
@@ -785,6 +833,7 @@ var monacoSnippets = {
785
833
  "codaGetTableRows": { fields: [["docId", "string"], ["tableId", "string"]], outputKeys: ["rows"] },
786
834
  "convertPdfToImages": { fields: [["pdfUrl", "string"]], outputKeys: ["imageUrls"] },
787
835
  "createDataSource": { fields: [["name", "string"]], outputKeys: [] },
836
+ "createGmailDraft": { fields: [["to", "string"], ["subject", "string"], ["message", "string"], ["messageType", ["plain", "html", "markdown"]]], outputKeys: ["draftId"] },
788
837
  "createGoogleCalendarEvent": { fields: [["summary", "string"], ["startDateTime", "string"], ["endDateTime", "string"]], outputKeys: ["eventId", "htmlLink"] },
789
838
  "createGoogleDoc": { fields: [["title", "string"], ["text", "string"], ["textType", ["plain", "html", "markdown"]]], outputKeys: ["documentUrl"] },
790
839
  "createGoogleSheet": { fields: [["title", "string"], ["text", "string"]], outputKeys: ["spreadsheetUrl"] },
@@ -821,8 +870,10 @@ var monacoSnippets = {
821
870
  "generateStaticVideoFromImage": { fields: [["imageUrl", "string"], ["duration", "string"]], outputKeys: ["videoUrl"] },
822
871
  "generateText": { fields: [["message", "string"]], outputKeys: ["content"] },
823
872
  "generateVideo": { fields: [["prompt", "string"]], outputKeys: ["videoUrl"] },
873
+ "getGmailAttachments": { fields: [["messageId", "string"]], outputKeys: [] },
824
874
  "getGmailDraft": { fields: [["draftId", "string"]], outputKeys: ["draftId", "messageId", "subject", "to", "from", "body"] },
825
875
  "getGmailEmail": { fields: [["messageId", "string"]], outputKeys: ["messageId", "subject", "from", "to", "date", "body", "labels"] },
876
+ "getGmailUnreadCount": { fields: [], outputKeys: [] },
826
877
  "getGoogleCalendarEvent": { fields: [["eventId", "string"], ["exportType", ["json", "text"]]], outputKeys: ["event"] },
827
878
  "getGoogleDriveFile": { fields: [["fileId", "string"]], outputKeys: ["url", "name", "mimeType", "size"] },
828
879
  "getGoogleSheetInfo": { fields: [["documentId", "string"]], outputKeys: ["title", "sheets"] },
@@ -842,8 +893,10 @@ var monacoSnippets = {
842
893
  "insertVideoClips": { fields: [["baseVideoUrl", "string"], ["overlayVideos", "array"]], outputKeys: ["videoUrl"] },
843
894
  "listDataSources": { fields: [], outputKeys: [] },
844
895
  "listGmailDrafts": { fields: [["exportType", ["json", "text"]]], outputKeys: ["drafts"] },
896
+ "listGmailLabels": { fields: [], outputKeys: [] },
845
897
  "listGoogleCalendarEvents": { fields: [["limit", "number"], ["exportType", ["json", "text"]]], outputKeys: ["events"] },
846
898
  "listGoogleDriveFiles": { fields: [["exportType", ["json", "text"]]], outputKeys: ["files"] },
899
+ "listRecentGmailEmails": { fields: [["exportType", ["json", "text"]], ["limit", "string"]], outputKeys: [] },
847
900
  "logic": { fields: [["context", "string"], ["cases", "array"]], outputKeys: ["selectedCase"] },
848
901
  "makeDotComRunScenario": { fields: [["webhookUrl", "string"], ["input", "object"]], outputKeys: ["data"] },
849
902
  "mergeAudio": { fields: [["mp3Urls", "array"]], outputKeys: ["audioUrl"] },
@@ -864,6 +917,7 @@ var monacoSnippets = {
864
917
  "removeBackgroundFromImage": { fields: [["imageUrl", "string"]], outputKeys: ["imageUrl"] },
865
918
  "replyToGmailEmail": { fields: [["messageId", "string"], ["message", "string"], ["messageType", ["plain", "html", "markdown"]]], outputKeys: ["messageId"] },
866
919
  "resizeVideo": { fields: [["videoUrl", "string"], ["mode", ["fit", "exact"]]], outputKeys: ["videoUrl"] },
920
+ "runFromConnectorRegistry": { fields: [["actionId", "string"], ["displayName", "string"], ["icon", "string"], ["configurationValues", "object"]], outputKeys: ["data"] },
867
921
  "runPackagedWorkflow": { fields: [["appId", "string"], ["workflowId", "string"], ["inputVariables", "object"], ["outputVariables", "object"], ["name", "string"]], outputKeys: ["data"] },
868
922
  "scrapeFacebookPage": { fields: [["pageUrl", "string"]], outputKeys: ["data"] },
869
923
  "scrapeFacebookPosts": { fields: [["pageUrl", "string"]], outputKeys: ["data"] },
@@ -878,6 +932,7 @@ var monacoSnippets = {
878
932
  "scrapeUrl": { fields: [["url", "string"]], outputKeys: ["content"] },
879
933
  "scrapeXPost": { fields: [["url", "string"]], outputKeys: ["post"] },
880
934
  "scrapeXProfile": { fields: [["url", "string"]], outputKeys: ["profile"] },
935
+ "searchGmailEmails": { fields: [["query", "string"], ["exportType", ["json", "text"]], ["limit", "string"]], outputKeys: ["emails"] },
881
936
  "searchGoogle": { fields: [["query", "string"], ["exportType", ["text", "json"]]], outputKeys: ["results"] },
882
937
  "searchGoogleCalendarEvents": { fields: [["exportType", ["json", "text"]]], outputKeys: ["events"] },
883
938
  "searchGoogleDrive": { fields: [["query", "string"], ["exportType", ["json", "text"]]], outputKeys: ["files"] },
@@ -889,7 +944,10 @@ var monacoSnippets = {
889
944
  "searchYoutube": { fields: [["query", "string"], ["limitPages", "string"], ["filter", "string"], ["filterType", "string"]], outputKeys: ["results"] },
890
945
  "searchYoutubeTrends": { fields: [["bp", ["now", "music", "gaming", "films"]], ["hl", "string"], ["gl", "string"]], outputKeys: ["trends"] },
891
946
  "sendEmail": { fields: [["subject", "string"], ["body", "string"]], outputKeys: ["recipients"] },
947
+ "sendGmailDraft": { fields: [["draftId", "string"]], outputKeys: [] },
948
+ "sendGmailMessage": { fields: [["to", "string"], ["subject", "string"], ["message", "string"], ["messageType", ["plain", "html", "markdown"]]], outputKeys: ["messageId"] },
892
949
  "sendSMS": { fields: [["body", "string"]], outputKeys: [] },
950
+ "setGmailReadStatus": { fields: [["messageIds", "string"], ["markAsRead", "boolean"]], outputKeys: [] },
893
951
  "setRunTitle": { fields: [["title", "string"]], outputKeys: [] },
894
952
  "setVariable": { fields: [["value", "string"]], outputKeys: [] },
895
953
  "telegramEditMessage": { fields: [["botToken", "string"], ["chatId", "string"], ["messageId", "string"], ["text", "string"]], outputKeys: [] },
@@ -903,6 +961,7 @@ var monacoSnippets = {
903
961
  "textToSpeech": { fields: [["text", "string"]], outputKeys: ["audioUrl"] },
904
962
  "transcribeAudio": { fields: [["audioUrl", "string"], ["prompt", "string"]], outputKeys: ["text"] },
905
963
  "trimMedia": { fields: [["inputUrl", "string"]], outputKeys: ["mediaUrl"] },
964
+ "updateGmailLabels": { fields: [["query", "string"], ["messageIds", "string"], ["addLabelIds", "string"], ["removeLabelIds", "string"]], outputKeys: ["updatedMessageIds"] },
906
965
  "updateGoogleCalendarEvent": { fields: [["eventId", "string"]], outputKeys: ["eventId", "htmlLink"] },
907
966
  "updateGoogleDoc": { fields: [["documentId", "string"], ["text", "string"], ["textType", ["plain", "html", "markdown"]], ["operationType", ["addToTop", "addToBottom", "overwrite"]]], outputKeys: ["documentUrl"] },
908
967
  "updateGoogleSheet": { fields: [["text", "string"], ["spreadsheetId", "string"], ["range", "string"], ["operationType", ["addToBottom", "overwrite", "range"]]], outputKeys: ["spreadsheetUrl"] },
@@ -1042,6 +1101,15 @@ var stepMetadata = {
1042
1101
  inputSchema: { "type": "object", "properties": { "name": { "type": "string", "description": "Name for the new data source (supports variable interpolation)" } }, "required": ["name"] },
1043
1102
  outputSchema: { "description": "This step does not produce output data." }
1044
1103
  },
1104
+ "createGmailDraft": {
1105
+ stepType: "createGmailDraft",
1106
+ description: "Create a draft email in the connected Gmail account.",
1107
+ usageNotes: `- Requires a Google OAuth connection with Gmail compose scope.
1108
+ - The draft appears in the user's Gmail Drafts folder but is not sent.
1109
+ - messageType controls the body format: "plain" for plain text, "html" for raw HTML, "markdown" for auto-converted markdown.`,
1110
+ inputSchema: { "type": "object", "properties": { "to": { "type": "string", "description": "Recipient email address(es), comma-separated for multiple" }, "subject": { "type": "string", "description": "Email subject line" }, "message": { "type": "string", "description": "Email body content" }, "connectionId": { "type": "string", "description": "Google OAuth connection ID" }, "messageType": { "enum": ["plain", "html", "markdown"], "type": "string", "description": 'Body format: "plain", "html", or "markdown"' } }, "required": ["to", "subject", "message", "messageType"] },
1111
+ outputSchema: { "type": "object", "properties": { "draftId": { "type": "string", "description": "Gmail draft ID" } }, "required": ["draftId"] }
1112
+ },
1045
1113
  "createGoogleCalendarEvent": {
1046
1114
  stepType: "createGoogleCalendarEvent",
1047
1115
  description: "Create a new event on a Google Calendar.",
@@ -1297,6 +1365,13 @@ var stepMetadata = {
1297
1365
  inputSchema: { "type": "object", "properties": { "prompt": { "type": "string", "description": "Text prompt describing the video to generate" }, "skipAssetCreation": { "type": "boolean", "description": "If true, the video will not appear in the user's asset history" }, "videoModelOverride": { "type": "object", "properties": { "model": { "type": "string", "description": "Video generation model identifier" }, "config": { "type": "object", "description": "Additional model-specific configuration" } }, "required": ["model"], "description": "Optional model configuration override. Uses the workflow's default video model if not specified" }, "generateVariants": { "type": "boolean", "description": "Whether to generate multiple video variants in parallel" }, "numVariants": { "type": "number", "description": "Number of variants to generate (max 10)" }, "addWatermark": { "type": "boolean", "description": "Whether to add a MindStudio watermark to the generated video" } }, "required": ["prompt"] },
1298
1366
  outputSchema: { "type": "object", "properties": { "videoUrl": { "anyOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }] } }, "required": ["videoUrl"] }
1299
1367
  },
1368
+ "getGmailAttachments": {
1369
+ stepType: "getGmailAttachments",
1370
+ description: "Download attachments from a Gmail email and re-host them on CDN.",
1371
+ usageNotes: "- Requires a Google OAuth connection with Gmail readonly scope.\n- Attachments are uploaded to CDN and returned as URLs.\n- Attachments larger than 25MB are skipped.\n- Use the message ID from Search Gmail Emails, List Recent Gmail Emails, or Get Gmail Email steps.",
1372
+ inputSchema: { "type": "object", "properties": { "messageId": { "type": "string", "description": "Gmail message ID" }, "connectionId": { "type": "string", "description": "Google OAuth connection ID" } }, "required": ["messageId"] },
1373
+ outputSchema: { "description": "This step does not produce output data." }
1374
+ },
1300
1375
  "getGmailDraft": {
1301
1376
  stepType: "getGmailDraft",
1302
1377
  description: "Retrieve a specific draft from Gmail by draft ID.",
@@ -1311,6 +1386,13 @@ var stepMetadata = {
1311
1386
  inputSchema: { "type": "object", "properties": { "messageId": { "type": "string", "description": "Gmail message ID to retrieve" }, "connectionId": { "type": "string", "description": "Google OAuth connection ID" } }, "required": ["messageId"] },
1312
1387
  outputSchema: { "type": "object", "properties": { "messageId": { "type": "string", "description": "Gmail message ID" }, "subject": { "type": "string", "description": "Email subject" }, "from": { "type": "string", "description": "Sender email" }, "to": { "type": "string", "description": "Recipient email" }, "date": { "type": "string", "description": "Email date" }, "body": { "type": "string", "description": "Email body content" }, "labels": { "type": "string", "description": "Comma-separated label IDs" } }, "required": ["messageId", "subject", "from", "to", "date", "body", "labels"] }
1313
1388
  },
1389
+ "getGmailUnreadCount": {
1390
+ stepType: "getGmailUnreadCount",
1391
+ description: "Get the number of unread emails in the connected Gmail inbox.",
1392
+ usageNotes: "- Requires a Google OAuth connection with Gmail readonly scope.\n- Returns the unread message count for the inbox label.\n- This is a lightweight call that does not fetch any email content.",
1393
+ inputSchema: { "type": "object", "properties": { "connectionId": { "type": "string", "description": "Google OAuth connection ID" } } },
1394
+ outputSchema: { "description": "This step does not produce output data." }
1395
+ },
1314
1396
  "getGoogleCalendarEvent": {
1315
1397
  stepType: "getGoogleCalendarEvent",
1316
1398
  description: "Retrieve a specific event from a Google Calendar by event ID.",
@@ -1444,6 +1526,13 @@ var stepMetadata = {
1444
1526
  inputSchema: { "type": "object", "properties": { "connectionId": { "type": "string", "description": "Google OAuth connection ID" }, "limit": { "type": "string", "description": "Max drafts to return (default: 10, max: 50)" }, "exportType": { "enum": ["json", "text"], "type": "string", "description": 'Format for the variable output: "json" or "text"' } }, "required": ["exportType"] },
1445
1527
  outputSchema: { "type": "object", "properties": { "drafts": { "type": "array", "items": { "type": "object", "properties": { "draftId": { "type": "string", "description": "Gmail draft ID" }, "messageId": { "type": "string", "description": "Gmail message ID" }, "subject": { "type": "string", "description": "Email subject" }, "to": { "type": "string", "description": "Recipient email" }, "snippet": { "type": "string", "description": "Short preview text" } }, "required": ["draftId", "messageId", "subject", "to", "snippet"] }, "description": "List of draft summaries" } }, "required": ["drafts"] }
1446
1528
  },
1529
+ "listGmailLabels": {
1530
+ stepType: "listGmailLabels",
1531
+ description: "List all labels in the connected Gmail account. Use these label IDs or names with the Update Gmail Labels step.",
1532
+ usageNotes: '- Requires a Google OAuth connection with Gmail readonly scope.\n- Returns both system labels (INBOX, SENT, TRASH, etc.) and user-created labels.\n- Label type is "system" for built-in labels or "user" for custom labels.',
1533
+ inputSchema: { "type": "object", "properties": { "connectionId": { "type": "string", "description": "Google OAuth connection ID" } } },
1534
+ outputSchema: { "description": "This step does not produce output data." }
1535
+ },
1447
1536
  "listGoogleCalendarEvents": {
1448
1537
  stepType: "listGoogleCalendarEvents",
1449
1538
  description: "List upcoming events from a Google Calendar, ordered by start time.",
@@ -1458,6 +1547,13 @@ var stepMetadata = {
1458
1547
  inputSchema: { "type": "object", "properties": { "folderId": { "type": "string", "description": "Google Drive folder ID (defaults to root)" }, "limit": { "type": "number", "description": "Max files to return (default: 20)" }, "connectionId": { "type": "string", "description": "Google OAuth connection ID" }, "exportType": { "enum": ["json", "text"], "type": "string", "description": 'Format for the variable output: "json" or "text"' } }, "required": ["exportType"] },
1459
1548
  outputSchema: { "type": "object", "properties": { "files": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "mimeType": { "type": "string" }, "size": { "type": "string" }, "webViewLink": { "type": "string" }, "createdTime": { "type": "string" }, "modifiedTime": { "type": "string" } }, "required": ["id", "name", "mimeType", "size", "webViewLink", "createdTime", "modifiedTime"] }, "description": "List of files in the folder" } }, "required": ["files"] }
1460
1549
  },
1550
+ "listRecentGmailEmails": {
1551
+ stepType: "listRecentGmailEmails",
1552
+ description: "List recent emails from the connected Gmail inbox.",
1553
+ usageNotes: '- Requires a Google OAuth connection with Gmail readonly scope.\n- Returns up to 100 emails (default 5), ordered by most recent first.\n- Functionally equivalent to Search Gmail Emails with an "in:inbox" query.',
1554
+ inputSchema: { "type": "object", "properties": { "connectionId": { "type": "string", "description": "Google OAuth connection ID" }, "exportType": { "enum": ["json", "text"], "type": "string", "description": 'Format for the variable output: "json" or "text"' }, "limit": { "type": "string", "description": "Maximum number of emails to return (1-100, default: 5)" } }, "required": ["exportType", "limit"] },
1555
+ outputSchema: { "description": "This step does not produce output data." }
1556
+ },
1461
1557
  "logic": {
1462
1558
  stepType: "logic",
1463
1559
  description: "Route execution to different branches based on AI evaluation, comparison operators, or workflow jumps.",
@@ -1602,6 +1698,13 @@ var stepMetadata = {
1602
1698
  inputSchema: { "type": "object", "properties": { "videoUrl": { "type": "string", "description": "URL of the source video to resize" }, "mode": { "enum": ["fit", "exact"], "type": "string", "description": "Resize mode: 'fit' scales within max dimensions, 'exact' forces exact dimensions" }, "maxWidth": { "type": "number", "description": "Maximum width in pixels (used with 'fit' mode)" }, "maxHeight": { "type": "number", "description": "Maximum height in pixels (used with 'fit' mode)" }, "width": { "type": "number", "description": "Exact width in pixels (used with 'exact' mode)" }, "height": { "type": "number", "description": "Exact height in pixels (used with 'exact' mode)" }, "strategy": { "enum": ["pad", "crop"], "type": "string", "description": "Strategy for handling aspect ratio mismatch in 'exact' mode" }, "skipAssetCreation": { "type": "boolean", "description": "When true, the result will not appear in the user's asset history. Useful for intermediate compositing steps." } }, "required": ["videoUrl", "mode"] },
1603
1699
  outputSchema: { "type": "object", "properties": { "videoUrl": { "type": "string", "description": "URL of the resized video" } }, "required": ["videoUrl"] }
1604
1700
  },
1701
+ "runFromConnectorRegistry": {
1702
+ stepType: "runFromConnectorRegistry",
1703
+ description: "Run a raw API connector to a third-party service",
1704
+ usageNotes: '- Use the /developer/v2/helpers/connectors endpoint to list available services and actions.\n- Use /developer/v2/helpers/connectors/{serviceId}/{actionId} to get the full input configuration for an action.\n- Use /developer/v2/helpers/connections to list your available OAuth connections.\n- The actionId format is "serviceId/actionId" (e.g., "slack/send-message").\n- Pass a __connectionId to authenticate the request with a specific OAuth connection, otherwise the default will be used (if configured).',
1705
+ inputSchema: { "type": "object", "properties": { "actionId": { "type": "string", "description": "The connector action identifier in the format serviceId/actionId" }, "displayName": { "type": "string", "description": "Human-readable name of the connector action" }, "icon": { "type": "string", "description": "Icon URL for the connector" }, "configurationValues": { "type": "object", "description": "Key-value configuration parameters for the connector action" }, "__connectionId": { "type": "string", "description": "OAuth connection ID used to authenticate the connector request" } }, "required": ["actionId", "displayName", "icon", "configurationValues"], "description": "Configuration for the connector registry step" },
1706
+ outputSchema: { "type": "object", "properties": { "data": { "type": "object", "description": "Key-value map of output variables set by the connector" } }, "required": ["data"] }
1707
+ },
1605
1708
  "runPackagedWorkflow": {
1606
1709
  stepType: "runPackagedWorkflow",
1607
1710
  description: 'Run a packaged workflow ("custom block")',
@@ -1702,6 +1805,13 @@ var stepMetadata = {
1702
1805
  inputSchema: { "type": "object", "properties": { "url": { "type": "string", "description": "Full URL or username for the X profile (e.g. https://x.com/elonmusk)" } }, "required": ["url"] },
1703
1806
  outputSchema: { "type": "object", "properties": { "profile": { "type": "object", "properties": { "text": { "type": "string", "description": "Markdown/plain-text content of the scraped page" }, "html": { "type": "string", "description": "Raw HTML content of the scraped page" }, "json": { "type": "object", "description": "Structured data extracted from the page" }, "screenshotUrl": { "type": "string", "description": "Screenshot URL of the page (if requested)" }, "metadata": { "type": "object", "properties": { "title": { "type": "string", "description": "Page title" }, "description": { "type": "string", "description": "Page meta description" }, "url": { "type": "string", "description": "Canonical URL" }, "image": { "type": "string", "description": "Open Graph image URL" } }, "required": ["title", "description", "url", "image"], "description": "Page metadata (Open Graph / meta tags)" } }, "required": ["text", "html"], "description": "Scraped profile data including text, HTML, and optional structured JSON" } }, "required": ["profile"] }
1704
1807
  },
1808
+ "searchGmailEmails": {
1809
+ stepType: "searchGmailEmails",
1810
+ description: "Search for emails in the connected Gmail account using a Gmail search query. To list recent inbox emails, pass an empty query string.",
1811
+ usageNotes: '- Requires a Google OAuth connection with Gmail readonly scope.\n- Uses Gmail search syntax (e.g. "from:user@example.com", "subject:invoice", "is:unread").\n- To list recent inbox emails, use an empty query string or "in:inbox".\n- Returns up to 100 emails (default 5). The variable receives text or JSON depending on exportType.\n- The direct execution output always returns structured email objects.',
1812
+ inputSchema: { "type": "object", "properties": { "query": { "type": "string", "description": 'Gmail search query (e.g. "from:user@example.com", "subject:invoice", "is:unread")' }, "connectionId": { "type": "string", "description": "Google OAuth connection ID" }, "exportType": { "enum": ["json", "text"], "type": "string", "description": 'Format for the variable output: "json" or "text"' }, "limit": { "type": "string", "description": "Maximum number of emails to return (1-10, default: 5)" } }, "required": ["query", "exportType", "limit"] },
1813
+ outputSchema: { "type": "object", "properties": { "emails": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Gmail message ID" }, "subject": { "type": "string", "description": "Email subject line" }, "from": { "type": "string", "description": "Sender email address" }, "to": { "type": "string", "description": "Recipient email address" }, "date": { "type": "string", "description": "Email date" }, "plainBody": { "type": "string", "description": "Plain text body content" }, "htmlBody": { "type": "string", "description": "HTML body content (if available)" }, "labels": { "type": "string", "description": "Comma-separated label IDs applied to the email" } }, "required": ["id", "subject", "from", "to", "date", "plainBody", "htmlBody", "labels"] }, "description": "List of matching email messages" } }, "required": ["emails"] }
1814
+ },
1705
1815
  "searchGoogle": {
1706
1816
  stepType: "searchGoogle",
1707
1817
  description: "Search the web using Google and return structured results.",
@@ -1779,6 +1889,20 @@ var stepMetadata = {
1779
1889
  inputSchema: { "type": "object", "properties": { "subject": { "type": "string", "description": "Email subject line" }, "body": { "type": "string", "description": "Email body content (plain text, markdown, HTML, or a CDN URL to an HTML file)" }, "connectionId": { "type": "string", "description": "OAuth connection ID(s) for the recipient(s), comma-separated for multiple" }, "generateHtml": { "type": "boolean", "description": "When true, auto-convert the body text into a styled HTML email using AI" }, "generateHtmlInstructions": { "type": "string", "description": "Natural language instructions for the HTML generation style" }, "generateHtmlModelOverride": { "type": "object", "properties": { "model": { "type": "string", "description": 'Model identifier (e.g. "gpt-4", "claude-3-opus")' }, "temperature": { "type": "number", "description": "Sampling temperature for the model (0-2)" }, "maxResponseTokens": { "type": "number", "description": "Maximum number of tokens in the model's response" }, "ignorePreamble": { "type": "boolean", "description": "Whether to skip the system preamble/instructions" }, "userMessagePreprocessor": { "type": "object", "properties": { "dataSource": { "type": "string", "description": "Data source identifier for the preprocessor" }, "messageTemplate": { "type": "string", "description": "Template string applied to user messages before sending to the model" }, "maxResults": { "type": "number", "description": "Maximum number of results to include from the data source" }, "enabled": { "type": "boolean", "description": "Whether the preprocessor is active" }, "shouldInherit": { "type": "boolean", "description": "Whether child steps should inherit this preprocessor configuration" } }, "description": "Preprocessor applied to user messages before sending to the model" }, "preamble": { "type": "string", "description": "System preamble/instructions for the model" }, "multiModelEnabled": { "type": "boolean", "description": "Whether multi-model candidate generation is enabled" }, "editResponseEnabled": { "type": "boolean", "description": "Whether the user can edit the model's response" }, "config": { "type": "object", "description": "Additional model-specific configuration" } }, "required": ["model", "temperature", "maxResponseTokens"], "description": "Model settings override for HTML generation" }, "attachments": { "type": "array", "items": { "type": "string" }, "description": "URLs of files to attach to the email" } }, "required": ["subject", "body"] },
1780
1890
  outputSchema: { "type": "object", "properties": { "recipients": { "type": "array", "items": { "type": "string" }, "description": "Email addresses the message was sent to" } }, "required": ["recipients"] }
1781
1891
  },
1892
+ "sendGmailDraft": {
1893
+ stepType: "sendGmailDraft",
1894
+ description: "Send an existing draft from the connected Gmail account.",
1895
+ usageNotes: "- Requires a Google OAuth connection with Gmail compose scope.\n- The draft is sent and removed from the Drafts folder.\n- Use the draft ID returned by the Create Gmail Draft or List Gmail Drafts steps.",
1896
+ inputSchema: { "type": "object", "properties": { "draftId": { "type": "string", "description": "Gmail draft ID to send" }, "connectionId": { "type": "string", "description": "Google OAuth connection ID" } }, "required": ["draftId"] },
1897
+ outputSchema: { "description": "This step does not produce output data." }
1898
+ },
1899
+ "sendGmailMessage": {
1900
+ stepType: "sendGmailMessage",
1901
+ description: "Send an email from the connected Gmail account.",
1902
+ usageNotes: '- Requires a Google OAuth connection with Gmail compose scope.\n- messageType controls the body format: "plain" for plain text, "html" for raw HTML, "markdown" for auto-converted markdown.',
1903
+ inputSchema: { "type": "object", "properties": { "to": { "type": "string", "description": "Recipient email address(es), comma-separated for multiple" }, "subject": { "type": "string", "description": "Email subject line" }, "message": { "type": "string", "description": "Email body content" }, "connectionId": { "type": "string", "description": "Google OAuth connection ID" }, "messageType": { "enum": ["plain", "html", "markdown"], "type": "string", "description": 'Body format: "plain", "html", or "markdown"' } }, "required": ["to", "subject", "message", "messageType"] },
1904
+ outputSchema: { "type": "object", "properties": { "messageId": { "type": "string", "description": "Gmail message ID of the sent email" } }, "required": ["messageId"] }
1905
+ },
1782
1906
  "sendSMS": {
1783
1907
  stepType: "sendSMS",
1784
1908
  description: "Send an SMS or MMS message to a phone number configured via OAuth connection.",
@@ -1786,6 +1910,13 @@ var stepMetadata = {
1786
1910
  inputSchema: { "type": "object", "properties": { "body": { "type": "string", "description": "SMS message body text" }, "connectionId": { "type": "string", "description": "OAuth connection ID for the recipient phone number" }, "mediaUrls": { "type": "array", "items": { "type": "string" }, "description": "Optional array of media URLs to send as MMS (up to 10, 5MB each)" } }, "required": ["body"] },
1787
1911
  outputSchema: { "description": "This step does not produce output data." }
1788
1912
  },
1913
+ "setGmailReadStatus": {
1914
+ stepType: "setGmailReadStatus",
1915
+ description: "Mark one or more Gmail emails as read or unread.",
1916
+ usageNotes: "- Requires a Google OAuth connection with Gmail modify scope.\n- Accepts one or more message IDs as a comma-separated string or array.\n- Set markAsRead to true to mark as read, false to mark as unread.",
1917
+ inputSchema: { "type": "object", "properties": { "messageIds": { "type": "string", "description": "Gmail message ID(s), comma-separated" }, "markAsRead": { "type": "boolean", "description": "true = mark as read, false = mark as unread" }, "connectionId": { "type": "string", "description": "Google OAuth connection ID" } }, "required": ["messageIds", "markAsRead"] },
1918
+ outputSchema: { "description": "This step does not produce output data." }
1919
+ },
1789
1920
  "setRunTitle": {
1790
1921
  stepType: "setRunTitle",
1791
1922
  description: "Set the title of the agent run for the user's history",
@@ -1877,6 +2008,13 @@ var stepMetadata = {
1877
2008
  inputSchema: { "type": "object", "properties": { "inputUrl": { "type": "string", "description": "URL of the source audio or video file to trim" }, "start": { "type": ["number", "string"] }, "duration": { "type": ["string", "number"] }, "skipAssetCreation": { "type": "boolean", "description": "When true, the result will not appear in the user's asset history. Useful for intermediate compositing steps." } }, "required": ["inputUrl"] },
1878
2009
  outputSchema: { "type": "object", "properties": { "mediaUrl": { "type": "string", "description": "URL of the trimmed media file" } }, "required": ["mediaUrl"] }
1879
2010
  },
2011
+ "updateGmailLabels": {
2012
+ stepType: "updateGmailLabels",
2013
+ description: "Add or remove labels on Gmail messages, identified by message IDs or a search query.",
2014
+ usageNotes: "- Requires a Google OAuth connection with Gmail modify scope.\n- Provide either a query (Gmail search syntax) or explicit messageIds to target messages.\n- Label IDs can be label names or Gmail label IDs \u2014 names are resolved automatically.",
2015
+ inputSchema: { "type": "object", "properties": { "query": { "type": "string", "description": "Gmail search query to find messages (alternative to messageIds)" }, "connectionId": { "type": "string", "description": "Google OAuth connection ID" }, "messageIds": { "type": "string", "description": "Comma-separated message IDs to target (alternative to query)" }, "addLabelIds": { "type": "string", "description": "Comma-separated label names or IDs to add" }, "removeLabelIds": { "type": "string", "description": "Comma-separated label names or IDs to remove" } }, "required": ["query", "messageIds", "addLabelIds", "removeLabelIds"] },
2016
+ outputSchema: { "type": "object", "properties": { "updatedMessageIds": { "type": "array", "items": { "type": "string" }, "description": "Gmail message IDs that were updated" } }, "required": ["updatedMessageIds"] }
2017
+ },
1880
2018
  "updateGoogleCalendarEvent": {
1881
2019
  stepType: "updateGoogleCalendarEvent",
1882
2020
  description: "Update an existing event on a Google Calendar. Only specified fields are changed.",