@genspark/cli 1.0.27 → 1.0.29

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.
@@ -2,7 +2,7 @@
2
2
  name: gsk-microsoft-teams
3
3
  version: 1.0.0
4
4
  description: 'Microsoft Teams operations. Actions: send, list_channels, list_chats,
5
- list_teams, search, search_users, create_chat.'
5
+ read_chat, list_teams, search, search_users, create_chat.'
6
6
  metadata:
7
7
  category: general
8
8
  requires:
@@ -15,7 +15,7 @@ metadata:
15
15
 
16
16
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
17
17
 
18
- Microsoft Teams operations. Actions: send, list_channels, list_chats, list_teams, search, search_users, create_chat.
18
+ Microsoft Teams operations. Actions: send, list_channels, list_chats, read_chat, list_teams, search, search_users, create_chat.
19
19
 
20
20
  ## Usage
21
21
 
@@ -29,9 +29,9 @@ gsk teams [options]
29
29
 
30
30
  | Flag | Required | Description |
31
31
  |------|----------|-------------|
32
- | `<action>` (positional) | Yes | Action to perform. 'send': Send a message in Teams; 'list_channels': List channels in a team; 'list_chats': List recent chats; 'list_teams': List teams the user belongs to; 'search': Search messages; 'search_users': Search for users; 'create_chat': Create a new chat (string, one of: send, list_channels, list_chats, list_teams, search, search_users, create_chat) |
33
- | `--content` | No | [send] The message content to send. Supports HTML formatting including clickable links. Use <a href='URL'>text</a> for links, <b>text</b> for bold, <i>text</i> for italic, <br> for line breaks, and other standard HTML tags. (string) |
34
- | `--chat_id` | No | [send] Optional chat ID to send the message to. If not specified or set to 'self', sends to yourself as a DM. Use chat IDs from microsoft_teams_search_messages results. (string) |
32
+ | `<action>` (positional) | Yes | Action to perform. 'send': Send a message in Teams; 'list_channels': List channels in a team; 'list_chats': List recent chats; 'read_chat': Read a chat's recent messages by chat_id; 'list_teams': List teams the user belongs to; 'search': Search messages; 'search_users': Search for users; 'create_chat': Create a new chat (string, one of: send, list_channels, list_chats, read_chat, list_teams, search, search_users, create_chat) |
33
+ | `--content` | No | [send] The message content to send. Accepts either Markdown or HTML. Markdown (e.g. '## Heading', '**bold**', '- item', tables) is automatically rendered to formatted HTML. You may also pass raw HTML directly: <a href='URL'>text</a> for links, <b>text</b> for bold, <i>text</i> for italic, <br> for line breaks, and other standard HTML tags. (string) |
34
+ | `--chat_id` | No | [send] Optional chat ID to send the message to. If not specified or set to 'self', sends to yourself as a DM. Use chat IDs from microsoft_teams_search_messages results. \| [read_chat] The Teams chat ID (e.g. '19:...@thread.v2'). Required. (string) |
35
35
  | `--channel_type` | No | [send] Type of channel: 'teams_chat' for 1:1 or group chats, 'teams_channel' for team channels. Default: 'teams_chat' (string, one of: teams_chat, teams_channel) |
36
36
  | `--team_id` | No | [send] Required if channel_type is 'teams_channel'. The team ID where the channel belongs. \| [list_channels] The ID of the team to list channels for. (string) |
37
37
  | `--channel_id` | No | [send] Required if channel_type is 'teams_channel'. The channel ID within the team. (string) |
@@ -39,12 +39,18 @@ gsk teams [options]
39
39
  | `--notify` | No | [send] Whether to force notification by @mentioning yourself in the message. When true, adds a self-mention to ensure notification is triggered. Useful when sending reminders to yourself. Default: true (boolean) |
40
40
  | `--mention_user_ids` | No | [send] List of user IDs (GUIDs) to @mention in the message. Use search_users to find user IDs first. The message content should include {mention_N} placeholders where N is the index (0-based), e.g., '{mention_0} thank you' will @mention the first user in the list. (array) |
41
41
  | `--mention_user_names` | No | [send] Display names for mentioned users, in same order as mention_user_ids. If not provided, will use user IDs as display names. (array) |
42
- | `--topic` | No | [list_chats] Search for chats by topic/name (case-insensitive partial match). Use this to find a specific group chat by its name. Example: 'WorkflowTest' to find a chat with that topic. \| [create_chat] Topic/name for the group chat. Required for group chats (2+ members), ignored for 1:1 chats. (string) |
42
+ | `--topic` | No | [list_chats] Search for chats by topic/name (case-insensitive partial match). Use this to find a specific group chat by its name. Example: 'WorkflowTest' to find a chat with that topic. Filter is applied per-page; if no match on the current page, use ``next_cursor`` to keep searching. \| [create_chat] Topic/name for the group chat. Required for group chats (2+ members), ignored for 1:1 chats. (string) |
43
43
  | `--chat_type` | No | [list_chats] Filter by chat type. 'oneOnOne' for 1:1 chats, 'group' for group chats, 'meeting' for meeting chats, 'all' for all types. Default: 'all' (string, one of: oneOnOne, group, meeting, all) |
44
- | `--count` | No | [list_chats] Maximum number of chats to return. Default: 50 \| [list_teams] Maximum number of teams to return. Default: 50 \| [search] The maximum number of messages to return. Default is 100. \| [search_users] Maximum number of users to return. Default: 10 (integer) |
44
+ | `--count` | No | [list_chats] Maximum number of chats to return on this call (page size, clamped to [1, 50]). Default: 50. To fetch beyond a single page, use the ``cursor`` argument with the previous response's ``next_cursor``. \| [search] The maximum number of messages to return on this call (page size, clamped to [1, 25]). Default: 25. To fetch beyond a single page, use the ``cursor`` argument with the previous response's ``next_cursor``. \| [search_users] Maximum number of users to return. Default: 10 (integer) |
45
+ | `--cursor` | No | [list_chats] Pagination cursor returned in a previous response's ``next_cursor`` field. Pass it back verbatim to fetch the next page; omit on the first call. \| [read_chat] Pagination cursor from a previous response's ``next_cursor``; omit on the first call. \| [list_teams] Pagination cursor returned in a previous response's ``next_cursor`` field. Pass it back verbatim to fetch the next page; omit on the first call. \| [search] Pagination cursor returned in a previous response's ``next_cursor`` field. Pass it back verbatim to fetch the next page; omit on the first call. Stop paging as soon as the returned hits satisfy your need. (string) |
46
+ | `--limit` | No | [read_chat] Maximum messages to return on this call (clamped to [1, 50]). Default: 30. To fetch beyond a page, pass the previous response's ``next_cursor`` as ``cursor``. (integer) |
47
+ | `--since` | No | [read_chat] Optional ISO-8601 floor (e.g. '2026-05-01T00:00:00Z'); only messages created at or after this instant are returned. \| [search] Optional ISO-8601 floor (e.g. '2026-05-01' or '2026-05-01T00:00:00Z'); only messages created at or after this instant are returned. (string) |
45
48
  | `--query` | No | [search] The search query using KQL (Keyword Query Language). **Query Behavior**: • Spaces = AND: 'project meeting' finds messages with BOTH terms • OR operator: 'project OR meeting' finds messages with EITHER term • KQL modifiers: 'from:john', 'hasAttachment:true', 'sent>2024-01-01', 'IsRead:false' • Examples: 'urgent project', 'bug OR issue', 'from:alice budget', 'hasAttachment:true report' \| [search_users] Search query - can be a name, email, or partial match. Example: 'John', 'john@company.com', 'Smith' (string) |
46
49
  | `--unread_only` | No | [search] Set to true to search for unread messages only. Default is false. (boolean) |
47
50
  | `--question` | No | [search] A specific question to answer based on the search results. (string) |
51
+ | `--raw` | No | [search] Return structured JSON (``{success, count, messages, next_cursor}`` with the same message fields as ``microsoft_teams_read_chat``) instead of an LLM-summarized prose digest. ``success: false`` with ``error`` on failure, so callers can tell an empty result from an error. Default false. (boolean) |
52
+ | `--until` | No | [search] Optional ISO-8601 ceiling; only messages created at or before this instant are returned. Combine with ``since`` for a window. (string) |
53
+ | `--order` | No | [search] Result ordering. 'recency' (default) sorts the returned hits newest-first by timestamp; 'relevance' preserves Graph's relevance ranking. (Graph can't recency-rank chatMessage server-side, so this sorts the relevance-selected page client-side — pair with ``since``/``until`` to target a window.) (string, one of: recency, relevance) |
48
54
  | `--include_chat_id` | No | [search_users] If true, also return the chat_id for existing 1:1 chats with each user. This allows direct messaging without create_chat. Default: true (boolean) |
49
55
  | `--member_emails` | No | [create_chat] List of email addresses of users to add to the chat. One email for 1:1 chat, multiple for group chat. (array) |
50
56
 
@@ -27,7 +27,7 @@ gsk notion [options]
27
27
  | Flag | Required | Description |
28
28
  |------|----------|-------------|
29
29
  | `<action>` (positional) | Yes | Action to perform. 'search': Search pages and databases; 'read': Read content from a page; 'create': Create a new page (string, one of: search, read, create) |
30
- | `--query` | No | [search] Query to search for in Notion pages. (string) |
30
+ | `--query` | No | [search] Query to search for in Notion pages. Leave empty or omit to list all available documents. (string) |
31
31
  | `--page_id` | No | [read] The ID of the Notion page to read and summarize. (string) |
32
32
  | `--title` | No | [create] The title of the new page. (string) |
33
33
  | `--content` | No | [create] The content of the page in markdown format. Supports headings, lists, code blocks, links, etc. (string) |
@@ -34,6 +34,7 @@ gsk onedrive [options]
34
34
  | `--query` | No | [search] The search query string. **Query Behavior**: • Spaces = AND: 'project report' finds files with BOTH terms • OR operator: 'project OR report' finds files with EITHER term • Empty string: '*' lists all files • Wildcards: 'report*' finds files starting with 'report' • Examples: 'budget.xlsx', 'meeting OR conference', '*.pdf', 'project 2024' (string) |
35
35
  | `--file_id` | No | [read] The ID of the file OR the OneDrive/SharePoint URL to read from OneDrive or SharePoint. Can be either a file ID (like '01W56PINYRO3...') or a full OneDrive/SharePoint URL (like 'https://domain-my.sharepoint.com/personal/user/Documents/file.pdf' or SharePoint driveItem IDs). For Teams attachments, use the 'file_id' value from Teams search results onedrive_file_params. (string) |
36
36
  | `--question` | No | [read] The question to answer about the file content. (string) |
37
+ | `--raw_content` | No | [read] Return the complete converted document text (markdown) without question-answering. For programmatic consumers that need full fidelity; ignores 'question'. (boolean) |
37
38
 
38
39
  ## Local File Support
39
40
 
@@ -32,6 +32,7 @@ gsk outlook_calendar [options]
32
32
  | `--time_min` | No | [list] Optional. Start time for the calendar view (ISO 8601 timestamp). Defaults to 30 days ago. (string) |
33
33
  | `--time_max` | No | [list] Optional. End time for the calendar view (ISO 8601 timestamp). Defaults to 60 days from now. (string) |
34
34
  | `--from_account` | No | [list] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [create] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [respond] Optional: Email address of the Outlook account to use. Defaults to the user's primary Outlook account. \| [modify] Optional: Email address of the Outlook account to use. \| [delete] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. (string) |
35
+ | `--limit` | No | [list] Optional. Maximum number of events to return. Defaults to 20. (integer) |
35
36
  | `--summary` | No | [create] The title of the event \| [modify] New event title (maps to Outlook's 'subject' field). (string) |
36
37
  | `--location` | No | [create] The location of the event \| [modify] New event location. (string) |
37
38
  | `--description` | No | [create] Description or details of the event. Supports restricted HTML formatting (safe subset rendered via Vue v-html): <a>, <b>, <strong>, <i>, <em>, <u>, <br>, <p>, <ul>, <ol>, <li>, <span>, <img>. Use for links, bold, italics, lists, line breaks, images. \| [modify] New event body (HTML allowed — Outlook renders the same restricted subset as create). (string) |
@@ -49,6 +50,8 @@ gsk outlook_calendar [options]
49
50
  | `--show_as` | No | [create] Show as status (free, tentative, busy, oof, workingElsewhere, unknown) \| [modify] Show-as status: free / tentative / busy / oof / workingElsewhere / unknown. (string) |
50
51
  | `--skip_confirmation` | No | [create] If true, create the event directly in Outlook Calendar instead of returning a local draft. Required when the caller has no UI to review/confirm a draft (e.g. sandbox agents shelling out via gsk). (boolean, default: `False`) |
51
52
  | `--auto_skip_confirmation` | No | [create] Set to true ONLY if the workflow step has [AUTO_SKIP_CONFIRMATION] marker. This indicates the node is configured to always skip confirmation. (boolean, default: `False`) |
53
+ | `--is_all_day` | No | [create] Whether to create an all-day busy/block event. (boolean, default: `False`) |
54
+ | `--all_day` | No | [create] Alias for is_all_day. (boolean, default: `False`) |
52
55
  | `--response` | No | [respond] RSVP value. 'accept' / 'decline' / 'tentative' (Yes / No / Maybe). When proposed_new_time is provided, this is forced to 'tentative' because Graph rejects counter-proposals on accept / decline. (string, one of: accept, decline, tentative) |
53
56
  | `--comment` | No | [respond] Optional free-text comment shown to the organizer alongside the response. (string) |
54
57
  | `--proposed_new_time` | No | [respond] Optional counter-proposal slot in '<START_ISO>..<END_ISO>' form (e.g. '2026-05-21T14:00:00-07:00..2026-05-21T14:30:00-07:00'). Forces response='tentative' — Graph rejects proposedNewTime on accept / decline. (string) |
@@ -38,10 +38,12 @@ gsk outlook [options]
38
38
  | `--from_offset` | No | [search] The starting offset for pagination (used to get the next page of results). (integer, default: `0`) |
39
39
  | `--auto_paginate` | No | [search] If true, automatically fetches multiple pages until reaching max_total_results (default: 500). Returns ALL emails matching the query. \| [group_search] If true, automatically fetches multiple pages from each group until reaching max_total_results (default: 500). Returns ALL emails matching the query. (boolean) |
40
40
  | `--max_total_results` | No | [search] Maximum total results to fetch when auto_paginate is true. Default: 500, Maximum: 500. \| [group_search] Maximum total results to fetch across all groups when auto_paginate is true. Default: 500, Maximum: 500. (integer) |
41
- | `--folder` | No | [search] The mail folder to search in. Options:\n- 'inbox': Inbox folder (default)\n- 'junkemail' or 'spam': Junk/Spam folder\n- 'deleteditems' or 'trash': Deleted Items folder\n- 'drafts': Drafts folder\n- 'sentitems' or 'sent': Sent Items folder\n- 'archive': Archive folder\n- 'all': Search across all folders (uses Search API) (string) |
41
+ | `--folder` | No | [search] The mail folder to search in. Options:\n- 'inbox': Inbox folder (default)\n- 'junkemail' or 'spam': Junk/Spam folder\n- 'deleteditems' or 'trash': Deleted Items folder\n- 'drafts': Drafts folder\n- 'sentitems' or 'sent': Sent Items folder\n- 'archive': Archive folder\n- 'all': Search across all folders (uses Search API)\n- Any custom folder display name (e.g. 'Receipts' or a nested 'Parent/Child' path) is also accepted and resolved to the folder automatically (string) |
42
42
  | `--search_mode` | No | [search] Search mode to use:\n- 'auto' (default): Automatically choose best method\n- 'kql': Use Microsoft Search API with full KQL syntax (enterprise only, supports 'isread:false from:john subject:meeting')\n- 'filter': Use $filter for property filtering (supports 'isRead eq false', works with folder parameter) (string, one of: auto, kql, filter) |
43
43
  | `--from_account` | No | [search] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [read] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [send] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [draft] Sender email account to use. \| [reply] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [reply_draft] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [forward] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [delete] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [archive] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [move] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [mark_as_read] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [add_category] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [remove_category] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [get_attachment] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [group_list] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [group_search] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [group_read] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [group_reply] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. (string) |
44
- | `--id` | No | [read] The ID of the email to retrieve and read (string) |
44
+ | `--id` | No | [read] The ID of a single Outlook message to retrieve. Mutually exclusive with 'thread_id'. (string) |
45
+ | `--thread_id` | No | [read] The Outlook conversationId of the thread to retrieve. Returns every message in the conversation. Mutually exclusive with 'id'. The 'outlook_email_search' tool exposes this value as 'threadId' on each result. \| [group_read] The ID of the email thread to retrieve. This is often the same as the conversationId. \| [group_reply] The ID of the email thread to reply to. Available from trigger data as 'thread_id' or 'emails[0].thread_id'. (string) |
46
+ | `--max_messages` | No | [read] Optional cap on how many messages to return when reading by 'thread_id'. Returns the most-recent N messages (chronological order preserved within the slice). Use this for long conversations to keep the LLM context bounded. Ignored when reading by single 'id'. (integer) |
45
47
  | `--title` | No | [read] The title of the email to retrieve and read \| [group_read] The title of the email thread to retrieve. (string) |
46
48
  | `--question` | No | [read] Question to answer guiding how to process the email content \| [group_read] Question to answer guiding how to process the email content (string) |
47
49
  | `--download_attachments` | No | [read] Whether need to download attachments from the email to analysis (boolean) |
@@ -57,9 +59,10 @@ gsk outlook [options]
57
59
  | `--auto_skip_confirmation` | No | [send] Set to true ONLY if the workflow step has [AUTO_SKIP_CONFIRMATION] marker. This indicates the node is configured to always skip confirmation. \| [reply] Set to true ONLY if the workflow step has [AUTO_SKIP_CONFIRMATION] marker. This indicates the node is configured to always skip confirmation. \| [forward] Set to true ONLY if the workflow step has [AUTO_SKIP_CONFIRMATION] marker. This indicates the node is configured to always skip confirmation. \| [delete] Set to true ONLY if the workflow step has [AUTO_SKIP_CONFIRMATION] marker. This indicates the node is configured to always skip confirmation. \| [move] Set to true ONLY if the workflow step has [AUTO_SKIP_CONFIRMATION] marker. This indicates the node is configured to always skip confirmation. (boolean, default: `False`) |
58
60
  | `--attachments` | No | [send] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). \| [draft] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). \| [reply] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). \| [reply_draft] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). \| [forward] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). \| [group_reply] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). (array) |
59
61
  | `--body_type` | No | [draft] Body format: 'html' (default) or 'text'. (string) |
62
+ | `--from_address` | No | [draft] Optional 'From:' identity to send AS — Gmail verified alias, Outlook proxyAddress / mail-enabled group, or a granted SendAs / on-behalf address. Must be an address the from-account is authorized to send as (see 'send_as' on /api/ai-inbox/mailbox/accounts). For Gmail this becomes the draft's MIME 'From:' header; for Outlook the saved draft stays as the from-account and the alias is applied by the eventual send call. (string) |
60
63
  | `--message_id` | No | [reply] The Outlook message ID to reply to. \| [forward] The Outlook message ID to forward. \| [delete] The Outlook message ID to delete \| [archive] The Outlook message ID to archive \| [move] The Outlook message ID to move \| [mark_as_read] (Deprecated, use message_ids) A single Outlook message ID to mark \| [add_category] The Outlook message ID to add category to \| [remove_category] The Outlook message ID to remove category from \| [get_attachment] The Outlook message ID containing the attachment (string) |
61
64
  | `--reply_all` | No | [reply] Optional: If true (default), reply to all original recipients (TO and CC). If false, reply only to the original sender. (boolean, default: `True`) |
62
- | `--include_original` | No | [reply] Optional: Whether to include the original email content as a quote in the reply. Defaults to true. \| [reply_draft] Optional: Whether to include the original email content as a quote in the draft. Defaults to true. (boolean, default: `True`) |
65
+ | `--include_original` | No | [reply] Optional: Whether to include the original email content as a quote in the reply. Defaults to true. \| [reply_draft] Optional: Whether to include the original email content as a quote in the draft. Defaults to true. \| [forward] Whether to append the original message as a Gmail-style '---------- Forwarded message ----------' quoted block under the forwarder's note so the recipient sees the original verbatim. Default: true. Set to false only when the caller already embedded their own forwarded block in `body` (e.g. the `.genmail` editor send path). (boolean, default: `True`) |
63
66
  | `--original_email_id` | No | [reply_draft] The ID of the original email to reply to. Required to create a proper reply draft with quoted content. (string) |
64
67
  | `--reply_type` | No | [reply_draft] Type of reply: 'reply' sends only to the original sender, 'reply_all' sends to all recipients of the original email. Default: 'reply_all'. Used to determine default recipients if 'to'/'cc' are not provided. (string, one of: reply, reply_all) |
65
68
  | `--include_attachments` | No | [forward] Whether to include original email attachments in the forward. Default: true (boolean, default: `True`) |
@@ -75,7 +78,8 @@ gsk outlook [options]
75
78
  | `--group_id` | No | [group_search] The ID of a specific group to search within. If provided, group_name_filter is ignored. \| [group_read] The ID of the group. \| [group_reply] The ID of the M365 group. Available from trigger data as 'group_id' or 'emails[0].group_id'. (string) |
76
79
  | `--group_name_filter` | No | [group_search] A search term to find groups by name (e.g., 'Marketing'). Used if group_id is not provided. (string) |
77
80
  | `--query` | No | [group_search] The search query for email subjects. Use an empty string to get recent emails. (string) |
78
- | `--thread_id` | No | [group_read] The ID of the email thread to retrieve. This is often the same as the conversationId. \| [group_reply] The ID of the email thread to reply to. Available from trigger data as 'thread_id' or 'emails[0].thread_id'. (string) |
81
+ | `--since` | No | [group_search] Optional: only return group emails last delivered on or after this ISO date/datetime (e.g. '2026-06-01' or '2026-06-01T00:00:00Z'). Combined (AND) with the query. (string) |
82
+ | `--until` | No | [group_search] Optional: only return group emails last delivered on or before this ISO date/datetime (e.g. '2026-06-15'). Combined (AND) with the query. (string) |
79
83
  | `--conversation_id` | No | [group_reply] The ID of the conversation. Available from trigger data as 'conversation_id' or 'emails[0].conversation_id'. (string) |
80
84
  | `--content` | No | [group_reply] The reply content. Can be plain text or HTML. This will be posted as a new message in the group conversation. (string) |
81
85
 
@@ -41,7 +41,8 @@ gsk sharepoint [options]
41
41
  | `--list_id` | No | [read_content] List ID from SharePoint search results siteInfo. Required for listItem content type. (string) |
42
42
  | `--list_item_id` | No | [read_content] List item ID from SharePoint search results siteInfo. Required for listItem content type. (string) |
43
43
  | `--file_id` | No | [read_file] The ID of the file OR the SharePoint URL to read from Microsoft OneDrive/SharePoint/Teams. Can be either a file ID (like '01W56PINYRO3...') or a full SharePoint URL (like 'https://domain.sharepoint.com/...'). (string) |
44
- | `--file_path` | No | [upload] Local file path to upload. Mutually exclusive with ``content``. (string) |
44
+ | `--raw_content` | No | [read_file] Return the complete converted document text (markdown) without question-answering. For programmatic consumers that need full fidelity; ignores 'question'. (boolean) |
45
+ | `--file_path` | No | [upload] Path or URL to the file to upload. Accepts any of: (1) a local server filesystem path (e.g. ``/tmp/report.xlsx`` — Claw VM use); (2) a Genspark file-wrapper URL (e.g. ``https://www.genspark.ai/api/files/s/<code>``) — canonical sandbox-to-server bridge, produced by calling ``UploadFileWrapper`` on a sandbox file first; or (3) an AI Drive path (e.g. ``/mnt/aidrive/path/to/file.xlsx``, ``/aidrive/...`` or ``aidrive://...``). Mutually exclusive with ``content``. (string) |
45
46
  | `--content` | No | [upload] Text content to upload as the file body (encoded as UTF-8). Useful for creating .txt/.md/.json/.csv files without a local copy. Mutually exclusive with ``file_path``. (string) |
46
47
  | `--file_name` | No | [upload] File name to create on SharePoint, including the extension (e.g. 'report.pdf'). Required when ``content`` is used; if omitted with ``file_path``, the basename of the local file is used. (string) |
47
48
  | `--mime_type` | No | [upload] MIME type of the file. Auto-detected from the file extension if omitted. (string) |
@@ -26,7 +26,7 @@ gsk sharepoint upload [options]
26
26
 
27
27
  | Flag | Required | Description |
28
28
  |------|----------|-------------|
29
- | `<file_path>` (positional) | No | Local file path to upload. Mutually exclusive with ``content``. (string) |
29
+ | `<file_path>` (positional) | No | Path or URL to the file to upload. Accepts any of: (1) a local server filesystem path (e.g. ``/tmp/report.xlsx`` — Claw VM use); (2) a Genspark file-wrapper URL (e.g. ``https://www.genspark.ai/api/files/s/<code>``) — canonical sandbox-to-server bridge, produced by calling ``UploadFileWrapper`` on a sandbox file first; or (3) an AI Drive path (e.g. ``/mnt/aidrive/path/to/file.xlsx``, ``/aidrive/...`` or ``aidrive://...``). Mutually exclusive with ``content``. (string) |
30
30
  | `--content` | No | Text content to upload as the file body (encoded as UTF-8). Useful for creating .txt/.md/.json/.csv files without a local copy. Mutually exclusive with ``file_path``. (string) |
31
31
  | `-n`, `--file_name` | No | File name to create on SharePoint, including the extension (e.g. 'report.pdf'). Required when ``content`` is used; if omitted with ``file_path``, the basename of the local file is used. (string) |
32
32
  | `-u`, `--sharepoint_url` | No | Target folder URL on SharePoint. Example: 'https://company.sharepoint.com/sites/Team/Shared Documents/Reports'. The tool resolves this to a drive + folder. (string) |
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: gsk-task-continue
3
+ version: 1.0.0
4
+ description: Continue an existing task project you previously created with create_task
5
+ by sending a follow-up instruction — use this to edit, revise, or extend an existing
6
+ deliverable (e.g. 'add a slide on pricing', 'shorten the intro') instead of create_task,
7
+ which mints and bills a brand-new task. Works for any create_task task type (slides,
8
+ docs, sheets, deep_research, website, ...). The project must belong to you. Runs
9
+ the agent to completion and returns the task_url plus the updated result artifacts.
10
+ metadata:
11
+ category: general
12
+ requires:
13
+ bins:
14
+ - gsk
15
+ cliHelp: gsk task_continue --help
16
+ ---
17
+
18
+ # gsk-task-continue
19
+
20
+ **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
21
+
22
+ Continue an existing task project you previously created with create_task by sending a follow-up instruction — use this to edit, revise, or extend an existing deliverable (e.g. 'add a slide on pricing', 'shorten the intro') instead of create_task, which mints and bills a brand-new task. Works for any create_task task type (slides, docs, sheets, deep_research, website, ...). The project must belong to you. Runs the agent to completion and returns the task_url plus the updated result artifacts.
23
+
24
+ ## Usage
25
+
26
+ ```bash
27
+ gsk task_continue [options]
28
+ ```
29
+
30
+ ## Flags
31
+
32
+ | Flag | Required | Description |
33
+ |------|----------|-------------|
34
+ | `<project_id>` (positional) | Yes | The project_id returned by create_task (data.project_id in its response). (string) |
35
+ | `-m`, `--message` | Yes | The follow-up instruction to send to the task agent — state concretely what to change, add, or redo. The agent already has the project's own history, but embed any NEW material or file URLs the change needs. (string) |
36
+
37
+ ## See Also
38
+
39
+ - [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags
@@ -29,22 +29,25 @@ gsk video [options]
29
29
 
30
30
  | Flag | Required | Description |
31
31
  |------|----------|-------------|
32
- | `<query>` (positional) | Yes | Detailed description of the video to generate. duration is recommended to be 5 ~ 10 seconds. For image-to-image transitions (user provides start and end frames) e.g., 'A timelapse of a flower blooming in a garden'. (string) |
32
+ | `<query>` (positional) | No | Detailed, self-contained description of the video to generate, written in English. This text is sent to the video model verbatim as the generation prompt, so put all the visual detail here — but NEVER output settings: text like '16:9' or '4 seconds' in the prompt may be rendered literally into the scene. Pass aspect ratio via the `aspect_ratio` parameter and length via `duration`. duration is recommended to be 5 ~ 10 seconds. For image-to-image transitions (user provides start and end frames) e.g., 'A timelapse of a flower blooming in a garden'. Omit when passing the prompt by `query_file` instead. (string) |
33
+ | `--query_file` | No | Optional. Repo-relative path to a UTF-8 text file containing the prompt, used verbatim in place of `query` (lets you pass a long prompt by path instead of inlining it). Requires `repo_id`. When set, `query` may be omitted. (string) |
33
34
  | `--file_name` | No | The name of the video to generate. (string, null) |
34
- | `-m`, `--model` | Yes | The model to use for video generation. kling/v3: Latest Kling V3 with audio. Pro/Standard quality modes. Supported ratios: 16:9, 9:16, 1:1. Duration: 3-15s. gemini/veo3.1: Gemini Veo 3.1 - Latest version with enhanced quality and features. Supports text-to-video and image-to-video generation with improved quality. Duration: 8s. Supported ratios: 16:9, 9:16. Supports fast_mode (faster generation) and hd_mode (1080p quality). gemini/veo3.1/reference-to-video: Gemini Veo 3.1 Reference-to-Video mode. Generate video using multiple reference images to guide the generation. Requires 1+ reference images. Duration: 8s. Supported ratios: 16:9, 9:16. Supports fast_mode and hd_mode options. gemini/veo3.1/first-last-frame-to-video: Veo 3.1 First-Last Frame mode. Generate video by specifying first and last frames for precise transitions. Requires exactly 2 images. Duration: 8s. Supported ratios: 16:9, 9:16. Supports fast_mode and hd_mode options.minimax/hailuo-2.3/standard: MiniMax Hailuo-2.3 Standard model for high-quality video generation. Supports both text-to-video and image-to-video generation with improved quality. Supports first & last frame control for precise video transitions. Fast generation (about 4min one video), cost-effective option. Supported ratios: 16:9, 9:16. Duration: 6s, 10s wan/v2.7: Wan v2.7 with enhanced motion smoothness and scene fidelity. Supports text-to-video, image-to-video, reference-to-video, and edit-video. Ratios: 16:9, 9:16, 1:1. Duration: 5s. Resolution: 480p, 720p vidu/q3: Vidu Q3 model with enhanced quality and audio generation. Supports both text-to-video and image-to-video generation. Supported ratios: 16:9, 9:16, 4:3, 3:4, 1:1. Duration: 1-16s. Resolution: 720p, 1080prunway/gen4_turbo: A model for generate video with high quality, fast.Supported ratios: 5:3, 3:5. Only support i2v. Duration: 5s, 10sofficial/pixverse/v5: A model for generate video with high quality, fast.fast(30s one video) but expensive. Supported ratios: 16:9, 9:16, 4:3, 1:1, 3:4. Duration: 5s, 8sAdditional features: 1. Generating smooth video transitions between two specified keyframes (start and end frames). pixverse/v6: PixVerse V6 latest model with lifelike motion, richer skin detail, real emotions. Full cinematic control including choreography and camera. Supports text-to-video, image-to-video, transition, and video extend generation. VFX, time-lapse, transformation scenes, product demos, 360° views, multi-shot storytelling. Extend: pass video_url to extend an existing video. Supported ratios: 16:9, 9:16, 4:3, 1:1, 3:4. Duration: 5s, 8s. fal-ai/bytedance/seedance-2.0: Bytedance Seedance 2.0 model for highest quality video generation with native audio and lip-sync. Supports text-to-video and image-to-video with first/last frame control. Supported ratios: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16. Duration: 4-15s. Resolution: 480p, 720p. Also supports reference-to-video with up to 9 images, 3 videos, or 3 audio refs via settings.sora-2: OpenAI Sora 2 video generation model for fast, creative videos. Supports text-to-video, image-to-video (reference frame), and video remixing. Designed for speed and experimentation. Supported ratios: 16:9, 9:16. Duration: 4s, 8s, 12ssora-2-pro: OpenAI Sora 2 Pro for production-quality videos. Higher fidelity than sora-2, best for cinematic footage and marketing assets. Supports 720p and 1080p resolutions. Supported ratios: 16:9, 9:16. Duration: 4s, 8sfal-ai/bytedance-upscaler/upscale/video: ByteDance Video Upscaler for enhancing video quality. Upscales videos to higher resolutions (2k) Requires video_url parameter. Does NOT generate new videos. Use when user wants to improve quality of existing videos.xai/grok-imagine-video: xAI Grok Imagine Video model for high-quality video generation. Supports both text-to-video and image-to-video generation. 720p HD output. Flexible duration 1-15 seconds. Supported ratios: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, 9:21. Duration: 1-15s. xai/grok-imagine-video/video-extension: xAI Grok Imagine Video Extension for extending existing videos. Requires video_url parameter with source video URL (MP4, 2-15s). 720p HD output. Duration: 2-10s. Ratios: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, 9:21.alibaba/happy-horse: Alibaba Happy Horse text-to-video model. High-quality video generation from text. Supported ratios: 16:9, 9:16, 1:1, 4:3, 3:4. Duration: 3-15s. Resolution: 720p, 1080p.alibaba/happy-horse/reference-to-video: Alibaba Happy Horse reference-to-video. Generate video from 1-9 reference images; address subjects in the prompt as character1..character9 (order matches image_urls). Requires image_urls. Supported ratios: 16:9, 9:16, 1:1, 4:3, 3:4. Duration: 3-15s. Resolution: 720p, 1080p.alibaba/happy-horse/video-edit: Alibaba Happy Horse video-edit. Edit a source video using a text prompt; optional 1-5 reference images addressed as @Image1..@Image5. Requires video_url (MP4/MOV, 3-60s). Output preserves source aspect ratio, capped at 15s. Resolution: 720p, 1080p. (string, one of: kling/v3, gemini/veo3.1, gemini/veo3.1/reference-to-video, gemini/veo3.1/first-last-frame-to-video, minimax/hailuo-2.3/standard, wan/v2.7, vidu/q3, runway/gen4_turbo, official/pixverse/v5, pixverse/v6, fal-ai/bytedance/seedance-2.0, sora-2, sora-2-pro, fal-ai/bytedance-upscaler/upscale/video, xai/grok-imagine-video, xai/grok-imagine-video/video-extension, alibaba/happy-horse, alibaba/happy-horse/reference-to-video, alibaba/happy-horse/video-edit) |
35
- | `-i`, `--image_urls` | No | The URLs of the images to use as reference key frames for the video generation. For single image models, provide 1 image. For multi-image models (like kling/v1.6/pro/elements), provide 1-4 images in sequence order. For start-end models (like vidu, pixverse), provide exactly 2 images (start and end frames). (default is [], if the task is based on one or more reference images, it is required) (array) |
36
- | `-r`, `--aspect_ratio` | No | The aspect ratio of the video to generate. For image-to-video (i2v) generation, this should match the aspect ratio of your input image(s). (string, one of: 16:9, 9:16, 4:3, 1:1, 9:21) |
35
+ | `-m`, `--model` | Yes | The model to use for video generation. kling/v3: Latest Kling V3 with audio. Pro/Standard quality modes. Supported ratios: 16:9, 9:16, 1:1. Duration: 3-15s. gemini/veo3.1: Gemini Veo 3.1 - Latest version with enhanced quality and features. Supports text-to-video and image-to-video generation with improved quality. Duration: 8s. Supported ratios: 16:9, 9:16. Supports fast_mode (faster generation) and hd_mode (1080p quality). gemini/veo3.1/reference-to-video: Gemini Veo 3.1 Reference-to-Video mode. Generate video using multiple reference images to guide the generation. Requires 1+ reference images. Duration: 8s. Supported ratios: 16:9, 9:16. Supports fast_mode and hd_mode options. gemini/veo3.1/first-last-frame-to-video: Veo 3.1 First-Last Frame mode. Generate video by specifying first and last frames for precise transitions. Requires exactly 2 images. Duration: 8s. Supported ratios: 16:9, 9:16. Supports fast_mode and hd_mode options.minimax/hailuo-2.3/standard: MiniMax Hailuo-2.3 Standard model for high-quality video generation. Supports both text-to-video and image-to-video generation with improved quality. Supports first & last frame control for precise video transitions. Fast generation (about 4min one video), cost-effective option. Supported ratios: 16:9, 9:16. Duration: 6s, 10s wan/v2.7: Wan v2.7 with enhanced motion smoothness and scene fidelity. Supports text-to-video, image-to-video, reference-to-video, and edit-video. Ratios: 16:9, 9:16, 1:1. Duration: 5s. Resolution: 480p, 720p vidu/q3: Vidu Q3 model with enhanced quality and audio generation. Supports both text-to-video and image-to-video generation. Supported ratios: 16:9, 9:16, 4:3, 3:4, 1:1. Duration: 1-16s. Resolution: 720p, 1080prunway/gen4_turbo: A model for generate video with high quality, fast.Supported ratios: 5:3, 3:5. Only support i2v. Duration: 5s, 10spixverse/v6: PixVerse V6 latest model with lifelike motion, richer skin detail, real emotions. Full cinematic control including choreography and camera. Supports text-to-video, image-to-video, transition, and video extend generation. VFX, time-lapse, transformation scenes, product demos, 360° views, multi-shot storytelling. Extend: pass video_url to extend an existing video. Supported ratios: 16:9, 9:16, 4:3, 1:1, 3:4. Duration: 5s, 8s. fal-ai/bytedance/seedance-2.0: Bytedance Seedance 2.0 model for highest quality video generation with native audio and lip-sync. Supports text-to-video and image-to-video with first/last frame control. Supported ratios: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16. Duration: 4-15s. Resolution: 480p, 720p. Also supports reference-to-video with up to 9 images, 3 videos, or 3 audio refs via settings.fal-ai/bytedance-upscaler/upscale/video: ByteDance Video Upscaler for enhancing video quality. Upscales videos to higher resolutions (2k) Requires video_url parameter. Does NOT generate new videos. Use when user wants to improve quality of existing videos.xai/grok-imagine-video: xAI Grok Imagine Video model for high-quality video generation. Supports both text-to-video and image-to-video generation. 720p HD output. Flexible duration 1-15 seconds. Supported ratios: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, 9:21. Duration: 1-15s. xai/grok-imagine-video/video-extension: xAI Grok Imagine Video Extension for extending existing videos. Requires video_url parameter with source video URL (MP4, 2-15s). 720p HD output. Duration: 2-10s. Ratios: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, 9:21.alibaba/happy-horse: Alibaba Happy Horse text-to-video model. High-quality video generation from text. Supported ratios: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21, 5:4, 4:5. Duration: 3-15s. Resolution: 720p, 1080p.alibaba/happy-horse/reference-to-video: Alibaba Happy Horse reference-to-video. Generate video from 1-9 reference images; address subjects in the prompt as character1..character9 (order matches image_urls). Requires image_urls. Supported ratios: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21, 5:4, 4:5. Duration: 3-15s. Resolution: 720p, 1080p.alibaba/happy-horse/video-edit: Alibaba Happy Horse video-edit. Edit a source video using a text prompt; optional 1-5 reference images addressed as @Image1..@Image5. Requires video_url (MP4/MOV, 3-60s). Output preserves source aspect ratio, capped at 15s. Resolution: 720p, 1080p.gemini/omni-flash: Google's multimodal video model with native audio. Supports text-to-video, image-to-video (1 image as first frame), reference-to-video (set reference_mode with image_urls to use images as subject/style references — even a single image; 2+ images are references by default), and video editing (pass video_url to edit an existing clip — restyle, restage, add objects). Bind image roles in the prompt with <FIRST_FRAME> / <IMAGE_REF_0>. Ratios: 16:9, 9:16. Duration: 3-10s. Resolution: 720p. (string, one of: kling/v3, gemini/veo3.1, gemini/veo3.1/reference-to-video, gemini/veo3.1/first-last-frame-to-video, minimax/hailuo-2.3/standard, wan/v2.7, vidu/q3, runway/gen4_turbo, pixverse/v6, fal-ai/bytedance/seedance-2.0, fal-ai/bytedance-upscaler/upscale/video, xai/grok-imagine-video, xai/grok-imagine-video/video-extension, alibaba/happy-horse, alibaba/happy-horse/reference-to-video, alibaba/happy-horse/video-edit, gemini/omni-flash) |
36
+ | `-i`, `--image_urls` | No | The URLs of the images to use as reference key frames for the video generation. For single image models, provide 1 image. For multi-image models (like kling/v1.6/pro/elements), provide 1-4 images in sequence order. For start-end models (like vidu, pixverse), provide exactly 2 images (start and end frames). (default is [], if the task is based on one or more reference images, it is required) IMPORTANT: without reference_mode, the first image becomes the video's literal opening frame — identity markers visible in it (flags, jerseys, text, logos, faces) persist in the output and the text prompt CANNOT override them. When generating a batch of subject-specific clips (per-country / per-person / per-product), each clip needs an image matching its own subject — never reuse another subject's image. (array) |
37
+ | `-r`, `--aspect_ratio` | No | The aspect ratio of the video to generate. For image-to-video (i2v) generation, this should match the aspect ratio of your input image(s). Ratios unsupported by the chosen model fall back to its default. (string, one of: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21, 5:4, 4:5, 5:3, 3:5) |
37
38
  | `-d`, `--duration` | No | The duration of the video to generate in seconds. (number, default: `5`) |
38
39
  | `-a`, `--audio_url` | No | Audio URL for audio integration in video generation. - Optional for Wan v2.5 model (custom audio: music or speech, WAV/MP3, 3-10s, up to 15MB) - Required for OmniHuman model (audio-driven animation) Leave empty if no audio is needed. (string, default: ``) |
39
40
  | `--video_url` | No | Source video URL for video extension. Required for Grok Imagine Video Extension (extend existing video). Supports both web URLs and AI Drive paths (starting with '/' or 'aidrive://') (string, default: ``) |
40
- | `--video_urls` | No | Input video URLs for video processing tasks. For Wan v2.7 reference-to-video: provide 1-3 reference videos (use @Video1, @Video2, @Video3 in prompt to reference them). (array, default: `[]`) |
41
+ | `--video_urls` | No | Reference video URLs for reference-to-video models. For Wan v2.7 and Seedance 2.0 reference-to-video: provide 1-3 reference videos and refer to them in the prompt as @Video1, @Video2, @Video3. Seedance 2.0 also needs reference_mode plus at least one image_url; combined video duration 2-15s. (array, default: `[]`) |
42
+ | `--audio_urls` | No | Reference audio URLs for Seedance 2.0 reference-to-video. Provide up to 3 audio clips (MP3/WAV) and refer to them in the prompt as @Audio1, @Audio2, @Audio3 (e.g. to drive lip-sync or match a voice). Combined duration must not exceed 15s. Requires reference_mode plus at least one image_url (image_urls is what activates the seedance-2.0/ref route). Distinct from audio_url, the single-clip Wan v2.5 / OmniHuman field. (array, default: `[]`) |
43
+ | `--repo_id` | No | Optional. Second Brain repo id (provided in the agent's system prompt). Required only when image_urls / audio_url / video_url / video_urls contain relative paths from a Second Brain project (e.g. 'assets/clip.mp4'). Absolute http(s) URLs and data: URLs do not need this parameter. (string) |
41
44
  | `--fast_mode` | No | Enable fast mode for quicker generation at lower cost. Applicable to Veo 3.1 and Seedance 2.0 models. Default: false. (boolean, default: `False`) |
42
45
  | `--hd_mode` | No | Enable HD (1080p) mode for higher quality output. Only applicable to Veo 3.1 models. Higher cost (2x). Default: false. (boolean, default: `False`) |
43
46
  | `--reference_mode` | No | Enable reference-to-video mode: provided images guide character/style rather than being used as the first frame. Requires image_urls. For Seedance 2.0: routes to seedance-2.0/ref (combinable with fast_mode, supports up to 9 reference images plus optional reference video/audio). For Veo 3.1 base model: upgrades to veo3.1/reference-to-video. Ignored on other models. Default: false. (boolean, default: `False`) |
44
47
 
45
48
  ## Local File Support
46
49
 
47
- Parameters that accept URLs (`--image_urls`, `--audio_url`, `--video_url`, `--video_urls`) also accept local file paths. The CLI automatically uploads local files before sending to the API.
50
+ Parameters that accept URLs (`--image_urls`, `--audio_url`, `--video_url`, `--video_urls`, `--audio_urls`) also accept local file paths. The CLI automatically uploads local files before sending to the API.
48
51
 
49
52
  ## Output File
50
53