@mindstudio-ai/agent 0.1.7 → 0.1.10

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/llms.txt CHANGED
@@ -243,7 +243,7 @@ Input shows the first argument object. Output shows the fields available on the
243
243
  #### addSubtitlesToVideo
244
244
  Automatically add subtitles to a video
245
245
  - Can control style of text and animation
246
- - Input: `{ videoUrl: string, language: string, fontName: string, fontSize: number, fontWeight: "normal" | "bold" | "black", fontColor: "white" | "black" | "red" | "green" | "blue" | "yellow" | "orange" | "purple" | "pink" | "brown" | "gray" | "cyan" | "magenta", highlightColor: "white" | "black" | "red" | "green" | "blue" | "yellow" | "orange" | "purple" | "pink" | "brown" | "gray" | "cyan" | "magenta", strokeWidth: number, strokeColor: "black" | "white" | "red" | "green" | "blue" | "yellow" | "orange" | "purple" | "pink" | "brown" | "gray" | "cyan" | "magenta", backgroundColor: "black" | "white" | "red" | "green" | "blue" | "yellow" | "orange" | "purple" | "pink" | "brown" | "gray" | "cyan" | "magenta" | "none", backgroundOpacity: number, position: "top" | "center" | "bottom", yOffset: number, wordsPerSubtitle: number, enableAnimation: boolean, skipAssetCreation?: boolean }`
246
+ - Input: `{ videoUrl: string, language: string, fontName: string, fontSize: number, fontWeight: "normal" | "bold" | "black", fontColor: "white" | "black" | "red" | "green" | "blue" | "yellow" | "orange" | "purple" | "pink" | "brown" | "gray" | "cyan" | "magenta", highlightColor: "white" | "black" | "red" | "green" | "blue" | "yellow" | "orange" | "purple" | "pink" | "brown" | "gray" | "cyan" | "magenta", strokeWidth: number, strokeColor: "black" | "white" | "red" | "green" | "blue" | "yellow" | "orange" | "purple" | "pink" | "brown" | "gray" | "cyan" | "magenta", backgroundColor: "black" | "white" | "red" | "green" | "blue" | "yellow" | "orange" | "purple" | "pink" | "brown" | "gray" | "cyan" | "magenta" | "none", backgroundOpacity: number, position: "top" | "center" | "bottom", yOffset: number, wordsPerSubtitle: number, enableAnimation: boolean, intermediateAsset?: boolean }`
247
247
  - Output: `{ videoUrl: string }`
248
248
 
249
249
  #### analyzeImage
@@ -265,6 +265,16 @@ Capture a thumbnail from a video at a specified timestamp
265
265
  - Input: `{ videoUrl: string, at: number | string }`
266
266
  - Output: `{ thumbnailUrl: string }`
267
267
 
268
+ #### checkAppRole
269
+ Check whether the current user has a specific app role and branch accordingly.
270
+ - Checks if the current user has been assigned a specific role in this app.
271
+ - If the user has the role, transitions to the "has role" path.
272
+ - If the user does not have the role, transitions to the "no role" path, or errors if no path is configured.
273
+ - Role names are defined by the app creator and assigned to users via the app roles system.
274
+ - The roleName field supports {{variables}} for dynamic role checks.
275
+ - Input: `{ roleName: string, hasRoleStepId?: string, hasRoleWorkflowId?: string, noRoleStepId?: string, noRoleWorkflowId?: string }`
276
+ - Output: `{ hasRole: boolean, userRoles: string[] }`
277
+
268
278
  #### convertPdfToImages
269
279
  Convert each page of a PDF document into a PNG image.
270
280
  - Each page is converted to a separate PNG and re-hosted on the CDN.
@@ -411,7 +421,7 @@ Generate an HTML asset and export it as a webpage, PDF, or image
411
421
  - If PDF or composited image generation are part of the workflow, assistant adds the block and leaves the "source" empty. In a separate step, assistant generates a detailed request for the developer who will write the HTML.
412
422
  - Can also auto-generate HTML from a prompt (like a generate text block to generate HTML). In these cases, create a prompt with variables in the dynamicPrompt variable describing, in detail, the document to generate
413
423
  - Can either display output directly to user (foreground mode) or save the URL of the asset to a variable (background mode)
414
- - Input: `{ source: string, sourceType: "html" | "markdown" | "spa" | "raw" | "dynamic" | "customInterface", outputFormat: "pdf" | "png" | "html" | "mp4" | "openGraph", pageSize: "full" | "letter" | "A4" | "custom", testData: object, options?: { pageWidthPx?: number, pageHeightPx?: number, pageOrientation?: "portrait" | "landscape", rehostMedia?: boolean, videoDurationSeconds?: number }, spaSource?: { source?: string, lastCompiledSource?: string, files?: object, paths: string[], root: string, zipUrl: string }, rawSource?: string, dynamicPrompt?: string, dynamicSourceModelOverride?: { model: string, temperature: number, maxResponseTokens: number, ignorePreamble?: boolean, userMessagePreprocessor?: { dataSource?: string, messageTemplate?: string, maxResults?: number, enabled?: boolean, shouldInherit?: boolean }, preamble?: string, multiModelEnabled?: boolean, editResponseEnabled?: boolean, config?: object }, transitionControl?: "default" | "native", shareControl?: "default" | "hidden", shareImageUrl?: string, skipAssetCreation?: boolean }`
424
+ - Input: `{ source: string, sourceType: "html" | "markdown" | "spa" | "raw" | "dynamic" | "customInterface", outputFormat: "pdf" | "png" | "html" | "mp4" | "openGraph", pageSize: "full" | "letter" | "A4" | "custom", testData: object, options?: { pageWidthPx?: number, pageHeightPx?: number, pageOrientation?: "portrait" | "landscape", rehostMedia?: boolean, videoDurationSeconds?: number }, spaSource?: { source?: string, lastCompiledSource?: string, files?: object, paths: string[], root: string, zipUrl: string }, rawSource?: string, dynamicPrompt?: string, dynamicSourceModelOverride?: { model: string, temperature: number, maxResponseTokens: number, ignorePreamble?: boolean, userMessagePreprocessor?: { dataSource?: string, messageTemplate?: string, maxResults?: number, enabled?: boolean, shouldInherit?: boolean }, preamble?: string, multiModelEnabled?: boolean, editResponseEnabled?: boolean, config?: object }, transitionControl?: "default" | "native", shareControl?: "default" | "hidden", shareImageUrl?: string, intermediateAsset?: boolean }`
415
425
  - Output: `{ url: string }`
416
426
 
417
427
  #### generateChart
@@ -428,20 +438,20 @@ Generate an image from a text prompt using an AI model.
428
438
  - In foreground mode, the image is displayed to the user. In background mode, the URL is saved to a variable.
429
439
  - When generateVariants is true with numVariants > 1, multiple images are generated in parallel.
430
440
  - In direct execution, foreground mode behaves as background, and userSelect variant behavior behaves as saveAll.
431
- - Input: `{ prompt: string, skipAssetCreation?: boolean, imageModelOverride?: { model: string, config?: object }, generateVariants?: boolean, numVariants?: number, addWatermark?: boolean }`
441
+ - Input: `{ prompt: string, intermediateAsset?: boolean, imageModelOverride?: { model: string, config?: object }, generateVariants?: boolean, numVariants?: number, addWatermark?: boolean }`
432
442
  - Output: `{ imageUrl: string | string[] }`
433
443
 
434
444
  #### generateLipsync
435
445
  Generate a lip sync video from provided audio and image.
436
446
  - In foreground mode, the video is displayed to the user. In background mode, the URL is saved to a variable.
437
- - Input: `{ skipAssetCreation?: boolean, addWatermark?: boolean, lipsyncModelOverride?: { model: string, config?: object } }`
447
+ - Input: `{ intermediateAsset?: boolean, addWatermark?: boolean, lipsyncModelOverride?: { model: string, config?: object } }`
438
448
  - Output: `unknown`
439
449
 
440
450
  #### generateMusic
441
451
  Generate an audio file from provided instructions (text) using a music model.
442
452
  - The text field contains the instructions (prompt) for the music generation.
443
453
  - In foreground mode, the audio is displayed to the user. In background mode, the URL is saved to a variable.
444
- - Input: `{ text: string, skipAssetCreation?: boolean, musicModelOverride?: { model: string, config?: object } }`
454
+ - Input: `{ text: string, intermediateAsset?: boolean, musicModelOverride?: { model: string, config?: object } }`
445
455
  - Output: `unknown`
446
456
 
447
457
  #### generateStaticVideoFromImage
@@ -466,7 +476,7 @@ Generate a video from a text prompt using an AI model.
466
476
  - In foreground mode, the video is displayed to the user. In background mode, the URL is saved to a variable.
467
477
  - When generateVariants is true with numVariants > 1, multiple videos are generated in parallel.
468
478
  - In direct execution, foreground mode behaves as background, and userSelect variant behavior behaves as saveAll.
469
- - Input: `{ prompt: string, skipAssetCreation?: boolean, videoModelOverride?: { model: string, config?: object }, generateVariants?: boolean, numVariants?: number, addWatermark?: boolean }`
479
+ - Input: `{ prompt: string, intermediateAsset?: boolean, videoModelOverride?: { model: string, config?: object }, generateVariants?: boolean, numVariants?: number, addWatermark?: boolean }`
470
480
  - Output: `{ videoUrl: string | string[] }`
471
481
 
472
482
  #### getGmailAttachments
@@ -508,12 +518,12 @@ Replace a face in an image with a face from another image using AI.
508
518
  #### imageRemoveWatermark
509
519
  Remove watermarks from an image using AI.
510
520
  - Output is re-hosted on the CDN as a PNG.
511
- - Input: `{ imageUrl: string, engine: string, skipAssetCreation?: boolean }`
521
+ - Input: `{ imageUrl: string, engine: string, intermediateAsset?: boolean }`
512
522
  - Output: `{ imageUrl: string }`
513
523
 
514
524
  #### insertVideoClips
515
525
  Insert b-roll clips into a base video at a timecode, optionally with an xfade transition.
516
- - Input: `{ baseVideoUrl: string, overlayVideos: { videoUrl: string, startTimeSec: number }[], transition?: string, transitionDuration?: number, useOverlayAudio?: boolean, skipAssetCreation?: boolean }`
526
+ - Input: `{ baseVideoUrl: string, overlayVideos: { videoUrl: string, startTimeSec: number }[], transition?: string, transitionDuration?: number, useOverlayAudio?: boolean, intermediateAsset?: boolean }`
517
527
  - Output: `{ videoUrl: string }`
518
528
 
519
529
  #### listDataSources
@@ -559,22 +569,22 @@ Trigger a Make.com (formerly Integromat) scenario via webhook and return the res
559
569
 
560
570
  #### mergeAudio
561
571
  Merge one or more clips into a single audio file.
562
- - Input: `{ mp3Urls: string[], fileMetadata?: object, albumArtUrl?: string, skipAssetCreation?: boolean }`
572
+ - Input: `{ mp3Urls: string[], fileMetadata?: object, albumArtUrl?: string, intermediateAsset?: boolean }`
563
573
  - Output: `{ audioUrl: string }`
564
574
 
565
575
  #### mergeVideos
566
576
  Merge one or more clips into a single video.
567
- - Input: `{ videoUrls: string[], transition?: string, transitionDuration?: number, skipAssetCreation?: boolean }`
577
+ - Input: `{ videoUrls: string[], transition?: string, transitionDuration?: number, intermediateAsset?: boolean }`
568
578
  - Output: `{ videoUrl: string }`
569
579
 
570
580
  #### mixAudioIntoVideo
571
581
  Mix an audio track into a video
572
- - Input: `{ videoUrl: string, audioUrl: string, options: { keepVideoAudio?: boolean, audioGainDb?: number, videoGainDb?: number, loopAudio?: boolean }, skipAssetCreation?: boolean }`
582
+ - Input: `{ videoUrl: string, audioUrl: string, options: { keepVideoAudio?: boolean, audioGainDb?: number, videoGainDb?: number, loopAudio?: boolean }, intermediateAsset?: boolean }`
573
583
  - Output: `{ videoUrl: string }`
574
584
 
575
585
  #### muteVideo
576
586
  Mute a video file
577
- - Input: `{ videoUrl: string, skipAssetCreation?: boolean }`
587
+ - Input: `{ videoUrl: string, intermediateAsset?: boolean }`
578
588
  - Output: `{ videoUrl: string }`
579
589
 
580
590
  #### n8nRunNode
@@ -601,6 +611,23 @@ Send data to a Zapier Zap via webhook and return the response.
601
611
  - Input: `{ webhookUrl: string, input: object }`
602
612
  - Output: `{ data: unknown }`
603
613
 
614
+ #### queryAppDatabase
615
+ Execute a SQL query against the app managed database.
616
+ - Executes raw SQL against a SQLite database managed by the app.
617
+ - For SELECT queries, returns rows as JSON.
618
+ - For INSERT/UPDATE/DELETE, returns the number of affected rows.
619
+ - Use {{variables}} directly in your SQL. By default they are automatically extracted
620
+ and passed as safe parameterized values (preventing SQL injection).
621
+ Example: INSERT INTO contacts (name, comment) VALUES ({{name}}, {{comment}})
622
+ - Full MindStudio handlebars syntax is supported, including helpers like {{json myVar}},
623
+ {{get myVar "$.path"}}, {{global.orgName}}, etc.
624
+ - Set parameterize to false for raw/dynamic SQL where variables are interpolated directly
625
+ into the query string. Use this when another step generates full or partial SQL, e.g.
626
+ a bulk INSERT with a precomputed VALUES list. The user is responsible for sanitization
627
+ when parameterize is false.
628
+ - Input: `{ databaseId: string, sql: string, parameterize?: boolean }`
629
+ - Output: `{ rows: unknown[], changes: number }`
630
+
604
631
  #### queryDataSource
605
632
  Search a vector data source (RAG) and return relevant document chunks.
606
633
  - Queries a vectorized data source and returns the most relevant chunks.
@@ -632,7 +659,7 @@ Remove the background from an image using AI, producing a transparent PNG.
632
659
 
633
660
  #### resizeVideo
634
661
  Resize a video file
635
- - Input: `{ videoUrl: string, mode: "fit" | "exact", maxWidth?: number, maxHeight?: number, width?: number, height?: number, strategy?: "pad" | "crop", skipAssetCreation?: boolean }`
662
+ - Input: `{ videoUrl: string, mode: "fit" | "exact", maxWidth?: number, maxHeight?: number, width?: number, height?: number, strategy?: "pad" | "crop", intermediateAsset?: boolean }`
636
663
  - Output: `{ videoUrl: string }`
637
664
 
638
665
  #### runFromConnectorRegistry
@@ -846,7 +873,7 @@ Show the "typing..." indicator in a Telegram chat via a bot.
846
873
  Generate an audio file from provided text using a speech model.
847
874
  - The text field contains the exact words to be spoken (not instructions).
848
875
  - In foreground mode, the audio is displayed to the user. In background mode, the URL is saved to a variable.
849
- - Input: `{ text: string, skipAssetCreation?: boolean, speechModelOverride?: { model: string, config?: object } }`
876
+ - Input: `{ text: string, intermediateAsset?: boolean, speechModelOverride?: { model: string, config?: object } }`
850
877
  - Output: `{ audioUrl: string }`
851
878
 
852
879
  #### transcribeAudio
@@ -857,7 +884,7 @@ Convert an audio file to text using a transcription model.
857
884
 
858
885
  #### trimMedia
859
886
  Trim an audio or video clip
860
- - Input: `{ inputUrl: string, start?: number | string, duration?: string | number, skipAssetCreation?: boolean }`
887
+ - Input: `{ inputUrl: string, start?: number | string, duration?: string | number, intermediateAsset?: boolean }`
861
888
  - Output: `{ mediaUrl: string }`
862
889
 
863
890
  #### updateGmailLabels
@@ -886,33 +913,33 @@ Increase the resolution of an image using AI upscaling.
886
913
 
887
914
  #### upscaleVideo
888
915
  Upscale a video file
889
- - Input: `{ videoUrl: string, targetResolution: "720p" | "1080p" | "2K" | "4K", engine: "standard" | "pro" | "ultimate" | "flashvsr" | "seedance" | "seedvr2" | "runwayml/upscale-v1", skipAssetCreation?: boolean }`
916
+ - Input: `{ videoUrl: string, targetResolution: "720p" | "1080p" | "2K" | "4K", engine: "standard" | "pro" | "ultimate" | "flashvsr" | "seedance" | "seedvr2" | "runwayml/upscale-v1", intermediateAsset?: boolean }`
890
917
  - Output: `{ videoUrl: string }`
891
918
 
892
919
  #### videoFaceSwap
893
920
  Swap faces in a video file
894
- - Input: `{ videoUrl: string, faceImageUrl: string, targetIndex: number, engine: string, skipAssetCreation?: boolean }`
921
+ - Input: `{ videoUrl: string, faceImageUrl: string, targetIndex: number, engine: string, intermediateAsset?: boolean }`
895
922
  - Output: `{ videoUrl: string }`
896
923
 
897
924
  #### videoRemoveBackground
898
925
  Remove or replace background from a video
899
- - Input: `{ videoUrl: string, newBackground: "transparent" | "image", newBackgroundImageUrl?: string, engine: string, skipAssetCreation?: boolean }`
926
+ - Input: `{ videoUrl: string, newBackground: "transparent" | "image", newBackgroundImageUrl?: string, engine: string, intermediateAsset?: boolean }`
900
927
  - Output: `{ videoUrl: string }`
901
928
 
902
929
  #### videoRemoveWatermark
903
930
  Remove a watermark from a video
904
- - Input: `{ videoUrl: string, engine: string, skipAssetCreation?: boolean }`
931
+ - Input: `{ videoUrl: string, engine: string, intermediateAsset?: boolean }`
905
932
  - Output: `{ videoUrl: string }`
906
933
 
907
934
  #### watermarkImage
908
935
  Overlay a watermark image onto another image.
909
936
  - The watermark is placed at the specified corner with configurable padding and width.
910
- - Input: `{ imageUrl: string, watermarkImageUrl: string, corner: "top-left" | "top-right" | "bottom-left" | "bottom-right", paddingPx: number, widthPx: number, skipAssetCreation?: boolean }`
937
+ - Input: `{ imageUrl: string, watermarkImageUrl: string, corner: "top-left" | "top-right" | "bottom-left" | "bottom-right", paddingPx: number, widthPx: number, intermediateAsset?: boolean }`
911
938
  - Output: `{ imageUrl: string }`
912
939
 
913
940
  #### watermarkVideo
914
941
  Add an image watermark to a video
915
- - Input: `{ videoUrl: string, imageUrl: string, corner: "top-left" | "top-right" | "bottom-left" | "bottom-right", paddingPx: number, widthPx: number, skipAssetCreation?: boolean }`
942
+ - Input: `{ videoUrl: string, imageUrl: string, corner: "top-left" | "top-right" | "bottom-left" | "bottom-right", paddingPx: number, widthPx: number, intermediateAsset?: boolean }`
916
943
  - Output: `{ videoUrl: string }`
917
944
 
918
945
  ### ActiveCampaign
@@ -1313,9 +1340,12 @@ Get all the reels for an Instagram profile
1313
1340
  #### postToLinkedIn
1314
1341
  Create a post on LinkedIn from the connected account.
1315
1342
  - Requires a LinkedIn OAuth connection (connectionId).
1316
- - Supports text posts, image posts, and video posts.
1343
+ - Supports text posts, image posts, video posts, document posts, and article posts.
1344
+ - Attach one media type per post: image, video, document, or article.
1345
+ - Documents support PDF, PPT, PPTX, DOC, DOCX (max 100MB, 300 pages). Displays as a slideshow carousel.
1346
+ - Articles create a link preview with optional custom title, description, and thumbnail.
1317
1347
  - Visibility controls who can see the post.
1318
- - Input: `{ message: string, visibility: "PUBLIC" | "CONNECTIONS", videoUrl?: string, descriptionText?: string, titleText?: string, imageUrl?: string, connectionId?: string }`
1348
+ - Input: `{ message: string, visibility: "PUBLIC" | "CONNECTIONS", imageUrl?: string, videoUrl?: string, documentUrl?: string, articleUrl?: string, titleText?: string, descriptionText?: string, connectionId?: string }`
1319
1349
  - Output: `unknown`
1320
1350
 
1321
1351
  ### Meta Threads
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindstudio-ai/agent",
3
- "version": "0.1.7",
3
+ "version": "0.1.10",
4
4
  "description": "TypeScript SDK for MindStudio direct step execution",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",