@mindstudio-ai/agent 0.1.75 → 0.1.77

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.d.ts CHANGED
@@ -4945,8 +4945,12 @@ interface SendEmailStepInput {
4945
4945
  subject: string;
4946
4946
  /** Email body content (plain text, markdown, HTML, or a CDN URL to an HTML file) */
4947
4947
  body: string;
4948
- /** Direct recipient email address(es). Any address is allowed. */
4948
+ /** Direct recipient email address(es). On the shared Remy sender these must be verified app users or members of the app's org; unrestricted when the app sends from a domain it owns. */
4949
4949
  to?: string | string[];
4950
+ /** Additional visible (Cc) recipient(s); same recipient rules as `to`. */
4951
+ cc?: string | string[];
4952
+ /** Additional hidden (Bcc) recipient(s); same recipient rules as `to`. */
4953
+ bcc?: string | string[];
4950
4954
  /** OAuth connection ID(s) for the recipient(s), comma-separated for multiple */
4951
4955
  connectionId?: string;
4952
4956
  /** When true, auto-convert the body text into a styled HTML email using AI */
@@ -4985,10 +4989,24 @@ interface SendEmailStepInput {
4985
4989
  /** Additional model-specific configuration */
4986
4990
  config?: Record<string, unknown>;
4987
4991
  };
4988
- /** URLs of files to attach to the email */
4989
- attachments?: string[];
4992
+ /** Files to attach: each entry is a URL string, or an object `{ url, filename?, contentType? }` to control the displayed filename and MIME type. */
4993
+ attachments?: (string | {
4994
+ url: string;
4995
+ filename?: string;
4996
+ contentType?: string;
4997
+ })[];
4990
4998
  /** Custom sender handle — only for apps with a custom domain or subdomain. Bare handle (`support`), full `support@your-domain.com`, or `Name <support@your-domain.com>`. Must resolve to a domain the app owns. */
4991
4999
  from?: string;
5000
+ /** How to interpret `body`: `auto` (default — detect HTML, else render markdown), `html` (send as-is), `markdown` (render to HTML), or `text` (send as plain text only, no HTML part). Every send includes a text/plain alternative. */
5001
+ bodyType?: "auto" | "html" | "markdown" | "text";
5002
+ /** Explicit text/plain alternative body. Auto-derived from `body` if omitted. */
5003
+ text?: string;
5004
+ /** Reply-To address for the email. */
5005
+ replyTo?: string;
5006
+ /** Message-ID this email replies to, for inbox threading (In-Reply-To header). */
5007
+ inReplyTo?: string;
5008
+ /** Prior Message-IDs in the thread, for inbox threading (References header). */
5009
+ references?: string[];
4992
5010
  }
4993
5011
  interface SendEmailStepOutput {
4994
5012
  /** Email addresses the message was sent to */
@@ -8100,12 +8118,19 @@ interface StepMethods {
8100
8118
  * Send an email to one or more recipient addresses.
8101
8119
  *
8102
8120
  * @remarks
8103
- * - Use the "to" field to send to one or more specific recipient email addresses directly. Any recipient address is allowed.
8121
+ * - Use the "to" field to send to one or more specific recipient email addresses directly. Allowed recipients depend on the sender: when the app sends from a domain it owns (a verified custom domain or its <slug>.madewithremy.com subdomain) any recipient is allowed; when it falls back to the shared Remy address, recipients must be verified app users or members of the app's organization. (v1 apps cannot use a direct "to" — they must resolve recipients via a connection.)
8104
8122
  * - Alternatively, recipient email addresses can be resolved from OAuth connections configured by the app creator via connectionId. The user running the workflow does not specify the recipient directly.
8123
+ * - Use "cc" and "bcc" to add visible / hidden recipients (a string or an array). They are subject to the same recipient rules as "to".
8105
8124
  * - The sender defaults automatically: v2 apps send from the app's own identity — its verified custom domain if set, else its platform subdomain (noreply@<slug>.madewithremy.com), else the default Remy address.
8106
8125
  * - Optionally set "from" to a custom handle, but ONLY if the app has a custom domain or subdomain: a bare handle ("support" → support@<app-domain>), a full "support@your-domain.com", or "Name <support@your-domain.com>". The domain must be one the app owns, or the step fails.
8107
8126
  * - If the body is a URL to a hosted HTML file on the CDN, the HTML is fetched and used as the email body.
8108
- * - When generateHtml is enabled, the body text is converted to a styled HTML email using an AI model.
8127
+ * - The body is interpreted automatically: if it already looks like HTML it is sent as HTML, otherwise it is rendered from Markdown. Every email is sent as multipart with a plain-text alternative auto-derived from the body (better deliverability).
8128
+ * - Set bodyType to override interpretation: "html" (send as-is), "markdown" (render to HTML), or "text" (plain text only, no HTML part). Default is "auto".
8129
+ * - Optionally set "text" to supply your own plain-text alternative instead of the auto-derived one.
8130
+ * - Use "attachments" to attach files by URL. Each entry is a URL string, or an object { url, filename?, contentType? } to control the attachment's displayed filename and MIME type.
8131
+ * - When generateHtml is enabled, the body text is converted to a styled HTML email using an AI model (implies an HTML body).
8132
+ * - Set replyTo to control the Reply-To address for replies.
8133
+ * - For threaded replies in a shared inbox, set inReplyTo (the Message-ID being replied to) and references (prior Message-IDs in the thread).
8109
8134
  * - connectionId can be a comma-separated list to send to multiple recipients.
8110
8135
  * - The special connectionId "trigger_email" uses the email address that triggered the workflow.
8111
8136
  *
package/dist/index.js CHANGED
@@ -2888,15 +2888,22 @@ var stepMetadata = {
2888
2888
  "sendEmail": {
2889
2889
  stepType: "sendEmail",
2890
2890
  description: "Send an email to one or more recipient addresses.",
2891
- usageNotes: `- Use the "to" field to send to one or more specific recipient email addresses directly. Any recipient address is allowed.
2891
+ usageNotes: `- Use the "to" field to send to one or more specific recipient email addresses directly. Allowed recipients depend on the sender: when the app sends from a domain it owns (a verified custom domain or its <slug>.madewithremy.com subdomain) any recipient is allowed; when it falls back to the shared Remy address, recipients must be verified app users or members of the app's organization. (v1 apps cannot use a direct "to" \u2014 they must resolve recipients via a connection.)
2892
2892
  - Alternatively, recipient email addresses can be resolved from OAuth connections configured by the app creator via connectionId. The user running the workflow does not specify the recipient directly.
2893
+ - Use "cc" and "bcc" to add visible / hidden recipients (a string or an array). They are subject to the same recipient rules as "to".
2893
2894
  - The sender defaults automatically: v2 apps send from the app's own identity \u2014 its verified custom domain if set, else its platform subdomain (noreply@<slug>.madewithremy.com), else the default Remy address.
2894
2895
  - Optionally set "from" to a custom handle, but ONLY if the app has a custom domain or subdomain: a bare handle ("support" \u2192 support@<app-domain>), a full "support@your-domain.com", or "Name <support@your-domain.com>". The domain must be one the app owns, or the step fails.
2895
2896
  - If the body is a URL to a hosted HTML file on the CDN, the HTML is fetched and used as the email body.
2896
- - When generateHtml is enabled, the body text is converted to a styled HTML email using an AI model.
2897
+ - The body is interpreted automatically: if it already looks like HTML it is sent as HTML, otherwise it is rendered from Markdown. Every email is sent as multipart with a plain-text alternative auto-derived from the body (better deliverability).
2898
+ - Set bodyType to override interpretation: "html" (send as-is), "markdown" (render to HTML), or "text" (plain text only, no HTML part). Default is "auto".
2899
+ - Optionally set "text" to supply your own plain-text alternative instead of the auto-derived one.
2900
+ - Use "attachments" to attach files by URL. Each entry is a URL string, or an object { url, filename?, contentType? } to control the attachment's displayed filename and MIME type.
2901
+ - When generateHtml is enabled, the body text is converted to a styled HTML email using an AI model (implies an HTML body).
2902
+ - Set replyTo to control the Reply-To address for replies.
2903
+ - For threaded replies in a shared inbox, set inReplyTo (the Message-ID being replied to) and references (prior Message-IDs in the thread).
2897
2904
  - connectionId can be a comma-separated list to send to multiple recipients.
2898
2905
  - The special connectionId "trigger_email" uses the email address that triggered the workflow.`,
2899
- 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)" }, "to": { "anyOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }] }, "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", "properties": {}, "required": [], "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" }, "from": { "type": "string", "description": "Custom sender handle \u2014 only for apps with a custom domain or subdomain. Bare handle (`support`), full `support@your-domain.com`, or `Name <support@your-domain.com>`. Must resolve to a domain the app owns." } }, "required": ["subject", "body"] },
2906
+ 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)" }, "to": { "anyOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }] }, "cc": { "anyOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }] }, "bcc": { "anyOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }] }, "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", "properties": {}, "required": [], "description": "Additional model-specific configuration" } }, "required": ["model", "temperature", "maxResponseTokens"], "description": "Model settings override for HTML generation" }, "attachments": { "type": "array", "items": { "anyOf": [{ "type": "string" }, { "type": "object", "properties": { "url": { "type": "string" }, "filename": { "type": "string" }, "contentType": { "type": "string" } }, "required": ["url"] }] }, "description": "Files to attach: each entry is a URL string, or an object `{ url, filename?, contentType? }` to control the displayed filename and MIME type." }, "from": { "type": "string", "description": "Custom sender handle \u2014 only for apps with a custom domain or subdomain. Bare handle (`support`), full `support@your-domain.com`, or `Name <support@your-domain.com>`. Must resolve to a domain the app owns." }, "bodyType": { "enum": ["auto", "html", "markdown", "text"], "type": "string", "description": "How to interpret `body`: `auto` (default \u2014 detect HTML, else render markdown), `html` (send as-is), `markdown` (render to HTML), or `text` (send as plain text only, no HTML part). Every send includes a text/plain alternative." }, "text": { "type": "string", "description": "Explicit text/plain alternative body. Auto-derived from `body` if omitted." }, "replyTo": { "type": "string", "description": "Reply-To address for the email." }, "inReplyTo": { "type": "string", "description": "Message-ID this email replies to, for inbox threading (In-Reply-To header)." }, "references": { "type": "array", "items": { "type": "string" }, "description": "Prior Message-IDs in the thread, for inbox threading (References header)." } }, "required": ["subject", "body"] },
2900
2907
  outputSchema: { "type": "object", "properties": { "recipients": { "type": "array", "items": { "type": "string" }, "description": "Email addresses the message was sent to" } }, "required": ["recipients"] }
2901
2908
  },
2902
2909
  "sendGmailDraft": {