@v0-sdk/ai-tools 3.0.9-canary.6524571 → 3.0.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/generated/tools.ts"],"sourcesContent":["// This file is generated by packages/ai-tools/src/scripts/generate.ts.\n// Do not edit this file directly.\n\nimport { tool, type ToolSet } from 'ai'\nimport { createV0Client } from 'v0'\nimport type { createV0Client as createV0ClientType } from 'v0'\nimport { z } from 'zod'\n\nexport type V0ToolsConfig = Parameters<typeof createV0ClientType>[0] & {\n apiKey?: string\n}\n\ntype V0GeneratedTool = NonNullable<ToolSet[string]>\n\nexport type V0ToolName =\n | 'chatsCreate'\n | 'chatsCreateAsync'\n | 'chatsCreateFromFiles'\n | 'chatsCreateFromRepo'\n | 'chatsCreateFromVercelProject'\n | 'chatsCreateFromZip'\n | 'chatsCreateStream'\n | 'chatsCreateVercelProject'\n | 'chatsDelete'\n | 'chatsDeploy'\n | 'chatsDownloadFiles'\n | 'chatsDuplicate'\n | 'chatsGet'\n | 'chatsGetConnectStatus'\n | 'chatsGetFiles'\n | 'chatsGetPreview'\n | 'chatsList'\n | 'chatsRestoreMessage'\n | 'chatsResume'\n | 'chatsUpdate'\n | 'chatsUpdateFiles'\n | 'mcpServersCreate'\n | 'mcpServersDelete'\n | 'mcpServersGet'\n | 'mcpServersList'\n | 'mcpServersUpdate'\n | 'messagesGet'\n | 'messagesList'\n | 'messagesResolve'\n | 'messagesResolveAsync'\n | 'messagesResolveStream'\n | 'messagesSend'\n | 'messagesSendAsync'\n | 'messagesSendStream'\n | 'messagesStop'\n | 'settingsAppendPreviewHosts'\n | 'settingsDeletePreviewHosts'\n | 'settingsGetPreviewHosts'\n | 'settingsSetPreviewHosts'\n | 'usageGetActivity'\n | 'usageGetSummary'\n | 'usageListEvents'\n | 'webhooksCreate'\n | 'webhooksDelete'\n | 'webhooksGet'\n | 'webhooksList'\n | 'webhooksUpdate'\n\nexport type V0ToolsFlat = Record<V0ToolName, V0GeneratedTool>\n\nexport type V0ToolsByCategory = {\n chats: Pick<\n V0ToolsFlat,\n | 'chatsCreate'\n | 'chatsCreateAsync'\n | 'chatsCreateFromFiles'\n | 'chatsCreateFromRepo'\n | 'chatsCreateFromVercelProject'\n | 'chatsCreateFromZip'\n | 'chatsCreateStream'\n | 'chatsCreateVercelProject'\n | 'chatsDelete'\n | 'chatsDeploy'\n | 'chatsDownloadFiles'\n | 'chatsDuplicate'\n | 'chatsGet'\n | 'chatsGetConnectStatus'\n | 'chatsGetFiles'\n | 'chatsGetPreview'\n | 'chatsList'\n | 'chatsRestoreMessage'\n | 'chatsResume'\n | 'chatsUpdate'\n | 'chatsUpdateFiles'\n >\n mcpServers: Pick<\n V0ToolsFlat,\n | 'mcpServersCreate'\n | 'mcpServersDelete'\n | 'mcpServersGet'\n | 'mcpServersList'\n | 'mcpServersUpdate'\n >\n messages: Pick<\n V0ToolsFlat,\n | 'messagesGet'\n | 'messagesList'\n | 'messagesResolve'\n | 'messagesResolveAsync'\n | 'messagesResolveStream'\n | 'messagesSend'\n | 'messagesSendAsync'\n | 'messagesSendStream'\n | 'messagesStop'\n >\n settings: Pick<\n V0ToolsFlat,\n | 'settingsAppendPreviewHosts'\n | 'settingsDeletePreviewHosts'\n | 'settingsGetPreviewHosts'\n | 'settingsSetPreviewHosts'\n >\n usage: Pick<V0ToolsFlat, 'usageGetActivity' | 'usageGetSummary' | 'usageListEvents'>\n webhooks: Pick<\n V0ToolsFlat,\n 'webhooksCreate' | 'webhooksDelete' | 'webhooksGet' | 'webhooksList' | 'webhooksUpdate'\n >\n}\n\nexport type V0ToolCategory = keyof V0ToolsByCategory\n\nconst chatsCreateInputSchema = z.object({\n message: z.string().describe('The prompt or instruction to send to the model.'),\n systemPrompt: z\n .string()\n .describe(\n 'System-level context for the chat, such as frameworks or development environment details.',\n )\n .optional(),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.'),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.'),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n attachments: z\n .array(\n z.union([\n z.object({\n url: z.string().describe('URL or data URI containing the attachment.'),\n }),\n z.object({\n name: z.string().describe('Display name for the inline text attachment.').optional(),\n content: z.string().describe('UTF-8 text content of the attachment.'),\n }),\n ]),\n )\n .describe(\n 'Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.',\n )\n .optional(),\n mcpServerIds: z\n .array(z.string())\n .describe('MCP server IDs to enable. When omitted, uses default enabled servers.')\n .optional(),\n skills: z\n .array(\n z.union([\n z.object({\n type: z.enum(['remote']).describe('Discriminator: a skills.sh skill.'),\n id: z.string().describe('Skill ID from skills.sh.'),\n }),\n z.object({\n type: z.enum(['memory']).describe('Discriminator: a user- or team-scoped memory skill.'),\n scope: z\n .enum(['user', 'team'])\n .describe('Whether the skill lives in user or team memory.'),\n skillName: z.string().describe('Name of the memory skill to attach.'),\n }),\n z.object({\n type: z.enum(['project']).describe('Discriminator: a skill defined in the project repo.'),\n skillName: z.string().describe('Name of the project skill to attach.'),\n }),\n ]),\n )\n .describe(\n 'Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.',\n )\n .optional(),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n credentialAccess: z\n .object({\n sharedNpm: z\n .boolean()\n .describe(\n \"Let the chat's sandbox install private packages with the team's shared npm credentials (`NPM_RC` / `NPM_TOKEN`). Defaults to `false`.\",\n )\n .optional(),\n vercel: z\n .boolean()\n .describe(\n \"Let the chat's sandbox use the requesting user's Vercel credentials instead of a project-only token. Defaults to `false`.\",\n )\n .optional(),\n github: z\n .boolean()\n .describe(\n \"Let the chat's sandbox use the requesting user's GitHub credentials. Defaults to `false`.\",\n )\n .optional(),\n })\n .describe(\"Credentials the chat's sandbox may use. Not supported for Vercel OIDC principals.\")\n .optional(),\n})\n\nconst chatsCreateAsyncInputSchema = z.object({\n message: z.string().describe('The prompt or instruction to send to the model.'),\n systemPrompt: z\n .string()\n .describe(\n 'System-level context for the chat, such as frameworks or development environment details.',\n )\n .optional(),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.'),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.'),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n attachments: z\n .array(\n z.union([\n z.object({\n url: z.string().describe('URL or data URI containing the attachment.'),\n }),\n z.object({\n name: z.string().describe('Display name for the inline text attachment.').optional(),\n content: z.string().describe('UTF-8 text content of the attachment.'),\n }),\n ]),\n )\n .describe(\n 'Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.',\n )\n .optional(),\n mcpServerIds: z\n .array(z.string())\n .describe('MCP server IDs to enable. When omitted, uses default enabled servers.')\n .optional(),\n skills: z\n .array(\n z.union([\n z.object({\n type: z.enum(['remote']).describe('Discriminator: a skills.sh skill.'),\n id: z.string().describe('Skill ID from skills.sh.'),\n }),\n z.object({\n type: z.enum(['memory']).describe('Discriminator: a user- or team-scoped memory skill.'),\n scope: z\n .enum(['user', 'team'])\n .describe('Whether the skill lives in user or team memory.'),\n skillName: z.string().describe('Name of the memory skill to attach.'),\n }),\n z.object({\n type: z.enum(['project']).describe('Discriminator: a skill defined in the project repo.'),\n skillName: z.string().describe('Name of the project skill to attach.'),\n }),\n ]),\n )\n .describe(\n 'Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.',\n )\n .optional(),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n credentialAccess: z\n .object({\n sharedNpm: z\n .boolean()\n .describe(\n \"Let the chat's sandbox install private packages with the team's shared npm credentials (`NPM_RC` / `NPM_TOKEN`). Defaults to `false`.\",\n )\n .optional(),\n vercel: z\n .boolean()\n .describe(\n \"Let the chat's sandbox use the requesting user's Vercel credentials instead of a project-only token. Defaults to `false`.\",\n )\n .optional(),\n github: z\n .boolean()\n .describe(\n \"Let the chat's sandbox use the requesting user's GitHub credentials. Defaults to `false`.\",\n )\n .optional(),\n })\n .describe(\"Credentials the chat's sandbox may use. Not supported for Vercel OIDC principals.\")\n .optional(),\n})\n\nconst chatsCreateFromFilesInputSchema = z.object({\n files: z\n .array(\n z.object({\n name: z.string().describe('Path of the file in the project.'),\n content: z.string().describe('File content encoded according to `encoding`.'),\n encoding: z\n .enum(['utf8', 'base64'])\n .describe('How `content` is encoded. Defaults to `utf8` when omitted.')\n .optional(),\n }),\n )\n .describe('Source files used to seed the new chat.'),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n})\n\nconst chatsCreateFromRepoInputSchema = z.object({\n repo: z\n .object({\n url: z\n .string()\n .describe('GitHub repository URL, for example https://github.com/vercel/next.js.'),\n branch: z\n .string()\n .describe('Branch to import. If omitted, v0 uses the repository default branch.')\n .optional(),\n })\n .describe(\n 'Repository source for initialization. Supports public GitHub repositories and private repositories connected through Vercel.',\n ),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n})\n\nconst chatsCreateFromVercelProjectInputSchema = z.object({\n vercelProjectId: z.string().describe('Vercel project ID in the active user or team scope.'),\n baseBranch: z\n .string()\n .describe(\n 'Base branch for a GitHub-linked project. Defaults to the repository default branch. Ignored for projects without a GitHub link.',\n )\n .optional(),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n})\n\nconst chatsCreateFromZipInputSchema = z.object({\n url: z.string().url().describe('Zip archive used to seed the new chat.'),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n})\n\nconst chatsCreateStreamInputSchema = z.object({\n message: z.string().describe('The prompt or instruction to send to the model.'),\n systemPrompt: z\n .string()\n .describe(\n 'System-level context for the chat, such as frameworks or development environment details.',\n )\n .optional(),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.'),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.'),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n attachments: z\n .array(\n z.union([\n z.object({\n url: z.string().describe('URL or data URI containing the attachment.'),\n }),\n z.object({\n name: z.string().describe('Display name for the inline text attachment.').optional(),\n content: z.string().describe('UTF-8 text content of the attachment.'),\n }),\n ]),\n )\n .describe(\n 'Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.',\n )\n .optional(),\n mcpServerIds: z\n .array(z.string())\n .describe('MCP server IDs to enable. When omitted, uses default enabled servers.')\n .optional(),\n skills: z\n .array(\n z.union([\n z.object({\n type: z.enum(['remote']).describe('Discriminator: a skills.sh skill.'),\n id: z.string().describe('Skill ID from skills.sh.'),\n }),\n z.object({\n type: z.enum(['memory']).describe('Discriminator: a user- or team-scoped memory skill.'),\n scope: z\n .enum(['user', 'team'])\n .describe('Whether the skill lives in user or team memory.'),\n skillName: z.string().describe('Name of the memory skill to attach.'),\n }),\n z.object({\n type: z.enum(['project']).describe('Discriminator: a skill defined in the project repo.'),\n skillName: z.string().describe('Name of the project skill to attach.'),\n }),\n ]),\n )\n .describe(\n 'Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.',\n )\n .optional(),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n credentialAccess: z\n .object({\n sharedNpm: z\n .boolean()\n .describe(\n \"Let the chat's sandbox install private packages with the team's shared npm credentials (`NPM_RC` / `NPM_TOKEN`). Defaults to `false`.\",\n )\n .optional(),\n vercel: z\n .boolean()\n .describe(\n \"Let the chat's sandbox use the requesting user's Vercel credentials instead of a project-only token. Defaults to `false`.\",\n )\n .optional(),\n github: z\n .boolean()\n .describe(\n \"Let the chat's sandbox use the requesting user's GitHub credentials. Defaults to `false`.\",\n )\n .optional(),\n })\n .describe(\"Credentials the chat's sandbox may use. Not supported for Vercel OIDC principals.\")\n .optional(),\n})\n\nconst chatsCreateVercelProjectInputSchema = z.object({\n chatId: z.string(),\n name: z\n .string()\n .describe(\"Name for the Vercel project. When omitted, the chat's title is used.\")\n .optional(),\n})\n\nconst chatsDeleteInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsDeployInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsDownloadFilesInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsDuplicateInputSchema = z.object({\n chatId: z.string(),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the duplicated chat.'),\n title: z\n .string()\n .describe(\n 'Custom title for the duplicated chat. If omitted, the original title is reused with an incremented suffix (e.g. \"My Chat (2)\").',\n )\n .optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n})\n\nconst chatsGetInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsGetConnectStatusInputSchema = z.object({\n chatId: z.string(),\n requestId: z.string(),\n})\n\nconst chatsGetFilesInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsGetPreviewInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsListInputSchema = z.object({\n limit: z\n .number()\n .int()\n .describe('Maximum number of chats to return (1-100, default 20).')\n .optional(),\n cursor: z.string().describe('Pagination cursor returned from a previous response.').optional(),\n authorId: z\n .string()\n .describe(\n 'Restrict results to chats created by this user. Must be a member of the calling scope.',\n )\n .optional(),\n vercelProjectId: z\n .string()\n .describe('Restrict results to chats associated with this Vercel project.')\n .optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe(\n 'Filter by metadata, e.g. metadata[environment]=production. Returns chats matching all supplied key-value pairs.',\n )\n .optional(),\n})\n\nconst chatsRestoreMessageInputSchema = z.object({\n chatId: z.string(),\n messageId: z\n .string()\n .describe('The unique identifier of the assistant message whose files to restore.'),\n})\n\nconst chatsResumeInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsUpdateInputSchema = z.object({\n chatId: z.string(),\n title: z.string().describe('A new title to assign to the chat.').optional(),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Updated visibility setting for the chat.')\n .optional(),\n metadata: z\n .union([z.record(z.string(), z.union([z.string(), z.null()])), z.null()])\n .describe(\n 'User-defined key-value metadata. Merged with existing entries. Pass `null` for a value to delete that key, or pass `null` for the whole field to delete all entries. Maximum 50 active entries.',\n )\n .optional(),\n})\n\nconst chatsUpdateFilesInputSchema = z.object({\n chatId: z.string(),\n files: z\n .array(\n z.object({\n path: z.string().describe('Project-relative file path, e.g. \"app/page.tsx\".'),\n content: z\n .union([z.string(), z.null()])\n .describe('New file content. Pass `null` to delete the file at this path.'),\n encoding: z\n .enum(['utf8', 'base64'])\n .describe('How non-null `content` is encoded. Defaults to `utf8` when omitted.')\n .optional(),\n }),\n )\n .describe('The files to create, update, or delete. Each path must be unique.'),\n})\n\nconst mcpServersCreateInputSchema = z.object({\n name: z.string().describe('Display name for the MCP server.'),\n url: z.string().url().describe('URL endpoint of the MCP server.'),\n description: z.string().describe('Optional description of the MCP server.').optional(),\n enabled: z.boolean().describe('Whether the server should be enabled.'),\n auth: z\n .union([\n z.object({\n type: z.enum(['none']),\n }),\n z.object({\n type: z.enum(['bearer']),\n token: z.string().describe('Bearer token for authentication.'),\n }),\n z.object({\n type: z.enum(['custom-headers']),\n headers: z\n .record(z.string(), z.string())\n .describe('Custom headers to include in requests.'),\n }),\n z.object({\n type: z.enum(['oauth']),\n config: z\n .object({\n authorizationUrl: z.string().url(),\n tokenUrl: z.string().url(),\n registrationUrl: z.string().url().optional(),\n clientId: z.string(),\n clientSecret: z.string().optional(),\n scopes: z.array(z.string()),\n usePKCE: z.boolean(),\n issuer: z.string().optional(),\n resource: z.string().optional(),\n clientIdMetadataDocumentSupported: z.boolean().optional(),\n })\n .describe('OAuth configuration discovered or manually set.')\n .optional(),\n connected: z.boolean().describe('Whether OAuth is currently connected.'),\n expiresAt: z.string().describe('ISO timestamp when the token expires.').optional(),\n }),\n ])\n .describe('Authentication configuration.'),\n scope: z.enum(['user', 'team']).describe('Scope of the MCP server configuration.'),\n})\n\nconst mcpServersDeleteInputSchema = z.object({\n mcpServerId: z.string(),\n})\n\nconst mcpServersGetInputSchema = z.object({\n mcpServerId: z.string(),\n})\n\nconst mcpServersListInputSchema = z.object({})\n\nconst mcpServersUpdateInputSchema = z.object({\n mcpServerId: z.string(),\n name: z.string().describe('New display name.').optional(),\n url: z.string().url().describe('New URL endpoint.').optional(),\n description: z.string().describe('New description.').optional(),\n enabled: z.boolean().describe('Enable or disable.').optional(),\n auth: z\n .union([\n z.object({\n type: z.enum(['none']),\n }),\n z.object({\n type: z.enum(['bearer']),\n token: z.string().describe('Bearer token for authentication.'),\n }),\n z.object({\n type: z.enum(['custom-headers']),\n headers: z\n .record(z.string(), z.string())\n .describe('Custom headers to include in requests.'),\n }),\n z.object({\n type: z.enum(['oauth']),\n config: z\n .object({\n authorizationUrl: z.string().url(),\n tokenUrl: z.string().url(),\n registrationUrl: z.string().url().optional(),\n clientId: z.string(),\n clientSecret: z.string().optional(),\n scopes: z.array(z.string()),\n usePKCE: z.boolean(),\n issuer: z.string().optional(),\n resource: z.string().optional(),\n clientIdMetadataDocumentSupported: z.boolean().optional(),\n })\n .describe('OAuth configuration discovered or manually set.')\n .optional(),\n connected: z.boolean().describe('Whether OAuth is currently connected.'),\n expiresAt: z.string().describe('ISO timestamp when the token expires.').optional(),\n }),\n ])\n .describe('New authentication configuration.')\n .optional(),\n scope: z.enum(['user', 'team']).describe('New scope.').optional(),\n})\n\nconst messagesGetInputSchema = z.object({\n chatId: z.string(),\n messageId: z.string(),\n})\n\nconst messagesListInputSchema = z.object({\n chatId: z.string(),\n limit: z.number().int(),\n cursor: z.string().optional(),\n})\n\nconst messagesResolveInputSchema = z.object({\n chatId: z.string(),\n task: z\n .union([\n z.object({\n type: z.enum(['confirmed-steps']),\n connectedIntegrationNames: z\n .array(z.string())\n .describe(\n 'Names of integrations that were successfully connected (e.g. \"Neon\"). Pass an empty array to skip.',\n )\n .optional(),\n connectedNpmRegistryIds: z\n .array(z.string())\n .describe(\n 'Deprecated. npm registry connections are no longer supported; this field is accepted for compatibility and ignored.',\n )\n .optional(),\n connectedMcpPresetNames: z\n .array(\n z.enum([\n 'Linear',\n 'Notion',\n 'Context7',\n 'Sentry',\n 'Zapier',\n 'Glean',\n 'Hex',\n 'Sanity',\n 'Granola',\n 'PostHog',\n 'Contentful',\n 'Mobbin',\n 'Slack',\n 'Nitrosend',\n 'Datadog',\n ]),\n )\n .describe(\n 'Names of MCP presets that were connected (e.g. \"Linear\", \"Sentry\"). Pass an empty array to skip.',\n )\n .optional(),\n appliedScripts: z\n .array(z.string())\n .describe('Names of scripts that were applied.')\n .optional(),\n addedEnvVars: z\n .array(z.string())\n .describe('Names of environment variables that were added.')\n .optional(),\n }),\n z.object({\n type: z.enum(['plan-exit-response']),\n status: z\n .enum(['approved', 'rejected', 'request-changes'])\n .describe('Whether the plan is approved, rejected, or needs changes.'),\n content: z.string().describe('Feedback or instructions for the agent.'),\n }),\n z.object({\n type: z.enum(['answered-questions']),\n answers: z\n .array(\n z.object({\n questionId: z.string().describe('The ID of the question being answered.'),\n questionText: z.string().describe('The text of the question being answered.'),\n selectedLabels: z\n .array(z.string())\n .describe(\n 'The labels of the selected options. For single-select questions, pass one item.',\n ),\n customText: z\n .string()\n .describe(\n 'Free-form text input, used when the user selects \"Other\" or wants to add context.',\n )\n .optional(),\n }),\n )\n .describe('Answers to the questions the agent asked.'),\n }),\n z.object({\n type: z.enum(['confirmed-permissions']),\n permissions: z\n .array(\n z.object({\n type: z.enum(['ALLOW_DYNAMIC_TOOL_STRICT']),\n toolName: z.string().describe('The name of the tool being permitted.'),\n input: z\n .unknown()\n .describe(\n 'The tool call input arguments. Pass the exact input from the stopped task.',\n ),\n toolDisplayName: z\n .union([z.string(), z.null()])\n .describe(\n \"The tool's original human-readable name from the stopped task. Display-only; pass back unchanged. Capped at 100 characters, matching the cap applied when the name is ingested from the server.\",\n )\n .optional(),\n taskNameActive: z\n .union([z.string(), z.null()])\n .describe('Label shown while the tool is running (e.g. \"Running migration\").')\n .optional(),\n taskNameComplete: z\n .union([z.string(), z.null()])\n .describe('Label shown after the tool completes (e.g. \"Migration complete\").')\n .optional(),\n userMessage: z\n .string()\n .describe('Optional message from the user about this permission.')\n .optional(),\n }),\n )\n .describe(\n 'The permissions to grant. Pass the suggestedPermissions from the stopped task.',\n ),\n userMessage: z\n .string()\n .describe('Optional message from the user about the permission grant.')\n .optional(),\n }),\n z.object({\n type: z.enum(['vercel-connect-setup']),\n }),\n z.object({\n type: z.enum(['vercel-connect-authorization']),\n }),\n ])\n .describe(\n 'The task resolution data. Use this when the chat is waiting for user input on the matching task type.',\n ),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.')\n .optional(),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.')\n .optional(),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n})\n\nconst messagesResolveAsyncInputSchema = z.object({\n chatId: z.string(),\n task: z\n .union([\n z.object({\n type: z.enum(['confirmed-steps']),\n connectedIntegrationNames: z\n .array(z.string())\n .describe(\n 'Names of integrations that were successfully connected (e.g. \"Neon\"). Pass an empty array to skip.',\n )\n .optional(),\n connectedNpmRegistryIds: z\n .array(z.string())\n .describe(\n 'Deprecated. npm registry connections are no longer supported; this field is accepted for compatibility and ignored.',\n )\n .optional(),\n connectedMcpPresetNames: z\n .array(\n z.enum([\n 'Linear',\n 'Notion',\n 'Context7',\n 'Sentry',\n 'Zapier',\n 'Glean',\n 'Hex',\n 'Sanity',\n 'Granola',\n 'PostHog',\n 'Contentful',\n 'Mobbin',\n 'Slack',\n 'Nitrosend',\n 'Datadog',\n ]),\n )\n .describe(\n 'Names of MCP presets that were connected (e.g. \"Linear\", \"Sentry\"). Pass an empty array to skip.',\n )\n .optional(),\n appliedScripts: z\n .array(z.string())\n .describe('Names of scripts that were applied.')\n .optional(),\n addedEnvVars: z\n .array(z.string())\n .describe('Names of environment variables that were added.')\n .optional(),\n }),\n z.object({\n type: z.enum(['plan-exit-response']),\n status: z\n .enum(['approved', 'rejected', 'request-changes'])\n .describe('Whether the plan is approved, rejected, or needs changes.'),\n content: z.string().describe('Feedback or instructions for the agent.'),\n }),\n z.object({\n type: z.enum(['answered-questions']),\n answers: z\n .array(\n z.object({\n questionId: z.string().describe('The ID of the question being answered.'),\n questionText: z.string().describe('The text of the question being answered.'),\n selectedLabels: z\n .array(z.string())\n .describe(\n 'The labels of the selected options. For single-select questions, pass one item.',\n ),\n customText: z\n .string()\n .describe(\n 'Free-form text input, used when the user selects \"Other\" or wants to add context.',\n )\n .optional(),\n }),\n )\n .describe('Answers to the questions the agent asked.'),\n }),\n z.object({\n type: z.enum(['confirmed-permissions']),\n permissions: z\n .array(\n z.object({\n type: z.enum(['ALLOW_DYNAMIC_TOOL_STRICT']),\n toolName: z.string().describe('The name of the tool being permitted.'),\n input: z\n .unknown()\n .describe(\n 'The tool call input arguments. Pass the exact input from the stopped task.',\n ),\n toolDisplayName: z\n .union([z.string(), z.null()])\n .describe(\n \"The tool's original human-readable name from the stopped task. Display-only; pass back unchanged. Capped at 100 characters, matching the cap applied when the name is ingested from the server.\",\n )\n .optional(),\n taskNameActive: z\n .union([z.string(), z.null()])\n .describe('Label shown while the tool is running (e.g. \"Running migration\").')\n .optional(),\n taskNameComplete: z\n .union([z.string(), z.null()])\n .describe('Label shown after the tool completes (e.g. \"Migration complete\").')\n .optional(),\n userMessage: z\n .string()\n .describe('Optional message from the user about this permission.')\n .optional(),\n }),\n )\n .describe(\n 'The permissions to grant. Pass the suggestedPermissions from the stopped task.',\n ),\n userMessage: z\n .string()\n .describe('Optional message from the user about the permission grant.')\n .optional(),\n }),\n z.object({\n type: z.enum(['vercel-connect-setup']),\n }),\n z.object({\n type: z.enum(['vercel-connect-authorization']),\n }),\n ])\n .describe(\n 'The task resolution data. Use this when the chat is waiting for user input on the matching task type.',\n ),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.')\n .optional(),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.')\n .optional(),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n})\n\nconst messagesResolveStreamInputSchema = z.object({\n chatId: z.string(),\n task: z\n .union([\n z.object({\n type: z.enum(['confirmed-steps']),\n connectedIntegrationNames: z\n .array(z.string())\n .describe(\n 'Names of integrations that were successfully connected (e.g. \"Neon\"). Pass an empty array to skip.',\n )\n .optional(),\n connectedNpmRegistryIds: z\n .array(z.string())\n .describe(\n 'Deprecated. npm registry connections are no longer supported; this field is accepted for compatibility and ignored.',\n )\n .optional(),\n connectedMcpPresetNames: z\n .array(\n z.enum([\n 'Linear',\n 'Notion',\n 'Context7',\n 'Sentry',\n 'Zapier',\n 'Glean',\n 'Hex',\n 'Sanity',\n 'Granola',\n 'PostHog',\n 'Contentful',\n 'Mobbin',\n 'Slack',\n 'Nitrosend',\n 'Datadog',\n ]),\n )\n .describe(\n 'Names of MCP presets that were connected (e.g. \"Linear\", \"Sentry\"). Pass an empty array to skip.',\n )\n .optional(),\n appliedScripts: z\n .array(z.string())\n .describe('Names of scripts that were applied.')\n .optional(),\n addedEnvVars: z\n .array(z.string())\n .describe('Names of environment variables that were added.')\n .optional(),\n }),\n z.object({\n type: z.enum(['plan-exit-response']),\n status: z\n .enum(['approved', 'rejected', 'request-changes'])\n .describe('Whether the plan is approved, rejected, or needs changes.'),\n content: z.string().describe('Feedback or instructions for the agent.'),\n }),\n z.object({\n type: z.enum(['answered-questions']),\n answers: z\n .array(\n z.object({\n questionId: z.string().describe('The ID of the question being answered.'),\n questionText: z.string().describe('The text of the question being answered.'),\n selectedLabels: z\n .array(z.string())\n .describe(\n 'The labels of the selected options. For single-select questions, pass one item.',\n ),\n customText: z\n .string()\n .describe(\n 'Free-form text input, used when the user selects \"Other\" or wants to add context.',\n )\n .optional(),\n }),\n )\n .describe('Answers to the questions the agent asked.'),\n }),\n z.object({\n type: z.enum(['confirmed-permissions']),\n permissions: z\n .array(\n z.object({\n type: z.enum(['ALLOW_DYNAMIC_TOOL_STRICT']),\n toolName: z.string().describe('The name of the tool being permitted.'),\n input: z\n .unknown()\n .describe(\n 'The tool call input arguments. Pass the exact input from the stopped task.',\n ),\n toolDisplayName: z\n .union([z.string(), z.null()])\n .describe(\n \"The tool's original human-readable name from the stopped task. Display-only; pass back unchanged. Capped at 100 characters, matching the cap applied when the name is ingested from the server.\",\n )\n .optional(),\n taskNameActive: z\n .union([z.string(), z.null()])\n .describe('Label shown while the tool is running (e.g. \"Running migration\").')\n .optional(),\n taskNameComplete: z\n .union([z.string(), z.null()])\n .describe('Label shown after the tool completes (e.g. \"Migration complete\").')\n .optional(),\n userMessage: z\n .string()\n .describe('Optional message from the user about this permission.')\n .optional(),\n }),\n )\n .describe(\n 'The permissions to grant. Pass the suggestedPermissions from the stopped task.',\n ),\n userMessage: z\n .string()\n .describe('Optional message from the user about the permission grant.')\n .optional(),\n }),\n z.object({\n type: z.enum(['vercel-connect-setup']),\n }),\n z.object({\n type: z.enum(['vercel-connect-authorization']),\n }),\n ])\n .describe(\n 'The task resolution data. Use this when the chat is waiting for user input on the matching task type.',\n ),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.')\n .optional(),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.')\n .optional(),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n})\n\nconst messagesSendInputSchema = z.object({\n chatId: z.string(),\n message: z.string().describe('The prompt or instruction to send to the model.'),\n systemPrompt: z\n .string()\n .describe(\n 'System-level context for the chat, such as frameworks or development environment details.',\n )\n .optional(),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.'),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.'),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n mcpServerIds: z\n .array(z.string())\n .describe('MCP server IDs to enable. When omitted, uses default enabled servers.')\n .optional(),\n attachments: z\n .array(\n z.union([\n z.object({\n url: z.string().describe('URL or data URI containing the attachment.'),\n }),\n z.object({\n name: z.string().describe('Display name for the inline text attachment.').optional(),\n content: z.string().describe('UTF-8 text content of the attachment.'),\n }),\n ]),\n )\n .describe(\n 'Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.',\n )\n .optional(),\n skills: z\n .array(\n z.union([\n z.object({\n type: z.enum(['remote']).describe('Discriminator: a skills.sh skill.'),\n id: z.string().describe('Skill ID from skills.sh.'),\n }),\n z.object({\n type: z.enum(['memory']).describe('Discriminator: a user- or team-scoped memory skill.'),\n scope: z\n .enum(['user', 'team'])\n .describe('Whether the skill lives in user or team memory.'),\n skillName: z.string().describe('Name of the memory skill to attach.'),\n }),\n z.object({\n type: z.enum(['project']).describe('Discriminator: a skill defined in the project repo.'),\n skillName: z.string().describe('Name of the project skill to attach.'),\n }),\n ]),\n )\n .describe(\n 'Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.',\n )\n .optional(),\n})\n\nconst messagesSendAsyncInputSchema = z.object({\n chatId: z.string(),\n message: z.string().describe('The prompt or instruction to send to the model.'),\n systemPrompt: z\n .string()\n .describe(\n 'System-level context for the chat, such as frameworks or development environment details.',\n )\n .optional(),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.'),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.'),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n mcpServerIds: z\n .array(z.string())\n .describe('MCP server IDs to enable. When omitted, uses default enabled servers.')\n .optional(),\n attachments: z\n .array(\n z.union([\n z.object({\n url: z.string().describe('URL or data URI containing the attachment.'),\n }),\n z.object({\n name: z.string().describe('Display name for the inline text attachment.').optional(),\n content: z.string().describe('UTF-8 text content of the attachment.'),\n }),\n ]),\n )\n .describe(\n 'Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.',\n )\n .optional(),\n skills: z\n .array(\n z.union([\n z.object({\n type: z.enum(['remote']).describe('Discriminator: a skills.sh skill.'),\n id: z.string().describe('Skill ID from skills.sh.'),\n }),\n z.object({\n type: z.enum(['memory']).describe('Discriminator: a user- or team-scoped memory skill.'),\n scope: z\n .enum(['user', 'team'])\n .describe('Whether the skill lives in user or team memory.'),\n skillName: z.string().describe('Name of the memory skill to attach.'),\n }),\n z.object({\n type: z.enum(['project']).describe('Discriminator: a skill defined in the project repo.'),\n skillName: z.string().describe('Name of the project skill to attach.'),\n }),\n ]),\n )\n .describe(\n 'Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.',\n )\n .optional(),\n})\n\nconst messagesSendStreamInputSchema = z.object({\n chatId: z.string(),\n message: z.string().describe('The prompt or instruction to send to the model.'),\n systemPrompt: z\n .string()\n .describe(\n 'System-level context for the chat, such as frameworks or development environment details.',\n )\n .optional(),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.'),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.'),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n mcpServerIds: z\n .array(z.string())\n .describe('MCP server IDs to enable. When omitted, uses default enabled servers.')\n .optional(),\n attachments: z\n .array(\n z.union([\n z.object({\n url: z.string().describe('URL or data URI containing the attachment.'),\n }),\n z.object({\n name: z.string().describe('Display name for the inline text attachment.').optional(),\n content: z.string().describe('UTF-8 text content of the attachment.'),\n }),\n ]),\n )\n .describe(\n 'Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.',\n )\n .optional(),\n skills: z\n .array(\n z.union([\n z.object({\n type: z.enum(['remote']).describe('Discriminator: a skills.sh skill.'),\n id: z.string().describe('Skill ID from skills.sh.'),\n }),\n z.object({\n type: z.enum(['memory']).describe('Discriminator: a user- or team-scoped memory skill.'),\n scope: z\n .enum(['user', 'team'])\n .describe('Whether the skill lives in user or team memory.'),\n skillName: z.string().describe('Name of the memory skill to attach.'),\n }),\n z.object({\n type: z.enum(['project']).describe('Discriminator: a skill defined in the project repo.'),\n skillName: z.string().describe('Name of the project skill to attach.'),\n }),\n ]),\n )\n .describe(\n 'Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.',\n )\n .optional(),\n})\n\nconst messagesStopInputSchema = z.object({\n chatId: z.string(),\n messageId: z.string(),\n})\n\nconst settingsAppendPreviewHostsInputSchema = z.object({\n hosts: z\n .array(z.string())\n .describe(\n 'Distinct hostname patterns to append. Provide hostnames only, without scheme, port, path, userinfo, query, or fragment. *.example.com matches one subdomain label; **.example.com matches one or more. Neither includes the apex. Patterns are canonicalized before comparison.',\n ),\n})\n\nconst settingsDeletePreviewHostsInputSchema = z.object({\n hosts: z\n .array(z.string())\n .describe(\n 'Distinct hostname patterns to delete. Provide hostnames only, without scheme, port, path, userinfo, query, or fragment. *.example.com matches one subdomain label; **.example.com matches one or more. Neither includes the apex. Patterns are canonicalized before comparison.',\n ),\n})\n\nconst settingsGetPreviewHostsInputSchema = z.object({})\n\nconst settingsSetPreviewHostsInputSchema = z.object({\n hosts: z\n .array(z.string())\n .describe(\n 'The complete list of exact or wildcard hostname patterns trusted to embed previews. Provide hostnames only, without a scheme, port, path, userinfo, query string, or fragment. Use *.example.com for exactly one subdomain label and **.example.com for one or more. Wildcards do not include example.com itself; add the apex as a separate entry when needed.',\n ),\n})\n\nconst usageGetActivityInputSchema = z.object({\n start: z.string().datetime().optional(),\n end: z.string().datetime().optional(),\n userId: z.string().optional(),\n})\n\nconst usageGetSummaryInputSchema = z.object({\n start: z.string().datetime().optional(),\n end: z.string().datetime().optional(),\n userId: z.string().optional(),\n})\n\nconst usageListEventsInputSchema = z.object({\n start: z.string().datetime().optional(),\n end: z.string().datetime().optional(),\n userId: z.string().optional(),\n chatId: z.string().optional(),\n messageId: z.string().optional(),\n limit: z.number().int().optional(),\n cursor: z.string().optional(),\n})\n\nconst webhooksCreateInputSchema = z.object({\n name: z.string().describe('A human-readable name for the webhook.'),\n events: z\n .array(\n z.enum([\n 'chat.created',\n 'chat.updated',\n 'chat.deleted',\n 'message.created',\n 'message.updated',\n 'message.deleted',\n 'message.finished',\n ]),\n )\n .describe('List of event types the webhook should subscribe to.'),\n url: z.string().url().describe('The target URL to receive the webhook payloads.'),\n chatId: z.union([z.string(), z.null()]).describe('The ID of a chat to scope the webhook to.'),\n})\n\nconst webhooksDeleteInputSchema = z.object({\n hookId: z.string(),\n})\n\nconst webhooksGetInputSchema = z.object({\n hookId: z.string(),\n})\n\nconst webhooksListInputSchema = z.object({})\n\nconst webhooksUpdateInputSchema = z.object({\n hookId: z.string(),\n name: z.string().describe('A new display name for the webhook.').optional(),\n events: z\n .array(\n z.enum([\n 'chat.created',\n 'chat.updated',\n 'chat.deleted',\n 'message.created',\n 'message.updated',\n 'message.deleted',\n 'message.finished',\n ]),\n )\n .describe('Updated list of event types to subscribe to.')\n .optional(),\n url: z.string().url().describe('A new target URL to receive webhook payloads.').optional(),\n})\n\nexport function v0Tools(config: V0ToolsConfig = {}): V0ToolsFlat {\n const client = createV0Client(resolveV0ToolsConfig(config))\n\n return {\n chatsCreate: tool({\n description:\n 'Create Chat: Creates a new chat from a prompt. The request blocks until the model response is complete and returns the chat.',\n inputSchema: chatsCreateInputSchema,\n execute: async (input) => {\n const parameters = {\n message: input.message,\n systemPrompt: input.systemPrompt,\n modelConfiguration: input.modelConfiguration,\n attachments: input.attachments,\n mcpServerIds: input.mcpServerIds,\n skills: input.skills,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n credentialAccess: input.credentialAccess,\n }\n return toToolResult(await client.chats.create(parameters))\n },\n }),\n chatsCreateAsync: tool({\n description:\n 'Create Chat (Async): Creates a new chat with a user message and processes it in the background. Returns immediately with the chat ID and message ID. Poll for the assistant message by ID until `finishReason` is non-null.',\n inputSchema: chatsCreateAsyncInputSchema,\n execute: async (input) => {\n const parameters = {\n message: input.message,\n systemPrompt: input.systemPrompt,\n modelConfiguration: input.modelConfiguration,\n attachments: input.attachments,\n mcpServerIds: input.mcpServerIds,\n skills: input.skills,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n credentialAccess: input.credentialAccess,\n }\n return toToolResult(await client.chats.createAsync(parameters))\n },\n }),\n chatsCreateFromFiles: tool({\n description:\n 'Create Chat From Files: Creates a new chat from inline UTF-8 or base64-encoded source files.',\n inputSchema: chatsCreateFromFilesInputSchema,\n execute: async (input) => {\n const parameters = {\n files: input.files,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.createFromFiles(parameters))\n },\n }),\n chatsCreateFromRepo: tool({\n description: 'Create Chat From Repository: Creates a new chat from a GitHub repository.',\n inputSchema: chatsCreateFromRepoInputSchema,\n execute: async (input) => {\n const parameters = {\n repo: input.repo,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.createFromRepo(parameters))\n },\n }),\n chatsCreateFromVercelProject: tool({\n description:\n 'Create Chat From Vercel Project: Creates a new chat from an existing Vercel project.',\n inputSchema: chatsCreateFromVercelProjectInputSchema,\n execute: async (input) => {\n const parameters = {\n vercelProjectId: input.vercelProjectId,\n baseBranch: input.baseBranch,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.createFromVercelProject(parameters))\n },\n }),\n chatsCreateFromZip: tool({\n description: 'Create Chat From ZIP: Creates a new chat from a zip archive.',\n inputSchema: chatsCreateFromZipInputSchema,\n execute: async (input) => {\n const parameters = {\n url: input.url,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.createFromZip(parameters))\n },\n }),\n chatsCreateStream: tool({\n description:\n 'Create Chat (Streaming): Creates a new chat with a user message and returns a Server-Sent Events stream. Events include initial chat state, title deltas, content chunk deltas, and final chat state. The response is `text/event-stream`; each event is `data: <JSON>\\\\n\\\\n` where the JSON conforms to ChatStreamEvent. If the stream disconnects before the final event, reconnect with `POST /chats/{chatId}/resume` instead of sending the message again.',\n inputSchema: chatsCreateStreamInputSchema,\n execute: async function* (input) {\n const parameters = {\n message: input.message,\n systemPrompt: input.systemPrompt,\n modelConfiguration: input.modelConfiguration,\n attachments: input.attachments,\n mcpServerIds: input.mcpServerIds,\n skills: input.skills,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n credentialAccess: input.credentialAccess,\n }\n const result = await client.chats.createStream(parameters)\n yield* result.stream\n },\n }),\n chatsCreateVercelProject: tool({\n description: 'Create Vercel Project: Creates a Vercel project and attaches it to the chat.',\n inputSchema: chatsCreateVercelProjectInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n name: input.name,\n }\n return toToolResult(await client.chats.createVercelProject(parameters))\n },\n }),\n chatsDelete: tool({\n description:\n 'Delete Chat: Deletes a chat and all its associated messages. The requester must have edit access to the chat.',\n inputSchema: chatsDeleteInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n }\n return toToolResult(await client.chats.delete(parameters))\n },\n }),\n chatsDeploy: tool({\n description:\n 'Deploy Chat: Triggers a Vercel deployment for a chat. Creates a Vercel project if one does not exist.',\n inputSchema: chatsDeployInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n }\n return toToolResult(await client.chats.deploy(parameters))\n },\n }),\n chatsDownloadFiles: tool({\n description: 'Download Chat Files: Downloads the source files for a chat as a ZIP archive.',\n inputSchema: chatsDownloadFilesInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n }\n return toToolResult(await client.chats.downloadFiles(parameters))\n },\n }),\n chatsDuplicate: tool({\n description: 'Duplicate Chat: Creates a new chat by duplicating an existing chat.',\n inputSchema: chatsDuplicateInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.duplicate(parameters))\n },\n }),\n chatsGet: tool({\n description: 'Get Chat: Retrieves a chat by ID.',\n inputSchema: chatsGetInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n }\n return toToolResult(await client.chats.get(parameters))\n },\n }),\n chatsGetConnectStatus: tool({\n description:\n 'Get Connect Setup Status: Polls the status of a Vercel Connect connector setup started by a `configure_vercel_connect` agent action. Open the `setupUrl` from the agent action data in a browser, then poll this endpoint every few seconds while `pending`. When it returns `ready`, resolve the chat with a `vercel-connect-setup` task to resume generation.',\n inputSchema: chatsGetConnectStatusInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n requestId: input.requestId,\n }\n return toToolResult(await client.chats.getConnectStatus(parameters))\n },\n }),\n chatsGetFiles: tool({\n description: 'Get Chat Files: Returns the source files for a chat.',\n inputSchema: chatsGetFilesInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n }\n return toToolResult(await client.chats.getFiles(parameters))\n },\n }),\n chatsGetPreview: tool({\n description:\n \"Get Preview URL: Returns the preview URL for a chat. If the preview isn't ready, the response is null. Poll this endpoint until the response is non-null.\",\n inputSchema: chatsGetPreviewInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n }\n return toToolResult(await client.chats.getPreview(parameters))\n },\n }),\n chatsList: tool({\n description:\n 'List Chats: Lists chats accessible to the authenticated user. Use metadata[key]=value style query parameters to filter by metadata.',\n inputSchema: chatsListInputSchema,\n execute: async (input) => {\n const parameters = {\n limit: input.limit,\n cursor: input.cursor,\n authorId: input.authorId,\n vercelProjectId: input.vercelProjectId,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.list(parameters))\n },\n }),\n chatsRestoreMessage: tool({\n description:\n 'Restore Message: Restores the files associated with an assistant message. The associated files must not already be the latest files in the chat.',\n inputSchema: chatsRestoreMessageInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n messageId: input.messageId,\n }\n return toToolResult(await client.chats.restoreMessage(parameters))\n },\n }),\n chatsResume: tool({\n description:\n 'Resume Chat Stream: Resumes consumption of the active assistant generation as Server-Sent Events. If the latest message has already finished, returns a closing chat-state event. The response is `text/event-stream`; each event is `data: <JSON>\\\\n\\\\n` where the JSON conforms to ChatStreamEvent.',\n inputSchema: chatsResumeInputSchema,\n execute: async function* (input) {\n const parameters = {\n chatId: input.chatId,\n }\n const result = await client.chats.resume(parameters)\n yield* result.stream\n },\n }),\n chatsUpdate: tool({\n description: \"Update Chat: Updates a chat's title, privacy, or metadata.\",\n inputSchema: chatsUpdateInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n title: input.title,\n privacy: input.privacy,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.update(parameters))\n },\n }),\n chatsUpdateFiles: tool({\n description:\n 'Update Chat Files: Creates, updates, or deletes UTF-8 or base64-encoded files for a chat. Pass null to delete.',\n inputSchema: chatsUpdateFilesInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n files: input.files,\n }\n return toToolResult(await client.chats.updateFiles(parameters))\n },\n }),\n mcpServersCreate: tool({\n description:\n 'Create MCP Server: Creates a new MCP server configuration. Limited to 100 servers per user.',\n inputSchema: mcpServersCreateInputSchema,\n execute: async (input) => {\n const parameters = {\n name: input.name,\n url: input.url,\n description: input.description,\n enabled: input.enabled,\n auth: input.auth,\n scope: input.scope,\n }\n return toToolResult(await client.mcpServers.create(parameters))\n },\n }),\n mcpServersDelete: tool({\n description:\n 'Delete MCP Server: Deletes an MCP server and cleans up associated OAuth tokens. This action is irreversible.',\n inputSchema: mcpServersDeleteInputSchema,\n execute: async (input) => {\n const parameters = {\n mcpServerId: input.mcpServerId,\n }\n return toToolResult(await client.mcpServers.delete(parameters))\n },\n }),\n mcpServersGet: tool({\n description: 'Get MCP Server: Retrieves a specific MCP server by ID.',\n inputSchema: mcpServersGetInputSchema,\n execute: async (input) => {\n const parameters = {\n mcpServerId: input.mcpServerId,\n }\n return toToolResult(await client.mcpServers.get(parameters))\n },\n }),\n mcpServersList: tool({\n description: 'List MCP Servers: Retrieves all MCP servers configured for the current user.',\n inputSchema: mcpServersListInputSchema,\n execute: async () => {\n return toToolResult(await client.mcpServers.list())\n },\n }),\n mcpServersUpdate: tool({\n description: 'Update MCP Server: Updates an existing MCP server configuration.',\n inputSchema: mcpServersUpdateInputSchema,\n execute: async (input) => {\n const parameters = {\n mcpServerId: input.mcpServerId,\n name: input.name,\n url: input.url,\n description: input.description,\n enabled: input.enabled,\n auth: input.auth,\n scope: input.scope,\n }\n return toToolResult(await client.mcpServers.update(parameters))\n },\n }),\n messagesGet: tool({\n description: 'Get Message: Fetches a single message in a chat.',\n inputSchema: messagesGetInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n messageId: input.messageId,\n }\n return toToolResult(await client.messages.get(parameters))\n },\n }),\n messagesList: tool({\n description: 'List Messages: Lists all messages in a chat.',\n inputSchema: messagesListInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n limit: input.limit,\n cursor: input.cursor,\n }\n return toToolResult(await client.messages.list(parameters))\n },\n }),\n messagesResolve: tool({\n description:\n 'Resolve Task: Resolves a pending task in a chat. Blocks until the model response is complete and returns the resulting message.',\n inputSchema: messagesResolveInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n task: input.task,\n modelConfiguration: input.modelConfiguration,\n }\n return toToolResult(await client.messages.resolve(parameters))\n },\n }),\n messagesResolveAsync: tool({\n description:\n 'Resolve Task (Async): Resolves a pending task and processes it in the background. Returns immediately with the assistant message ID. Poll GET /chats/:chatId/messages/:messageId and check `finishReason` to detect completion.',\n inputSchema: messagesResolveAsyncInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n task: input.task,\n modelConfiguration: input.modelConfiguration,\n }\n return toToolResult(await client.messages.resolveAsync(parameters))\n },\n }),\n messagesResolveStream: tool({\n description:\n 'Resolve Task (Streaming): Resolves a pending task in a chat and returns a Server-Sent Events stream. Events include the initial assistant-message snapshot, content chunk deltas, final usage, and a closing message snapshot. The response is `text/event-stream`; each event is `data: <JSON>\\\\n\\\\n` where the JSON conforms to MessageStreamEvent. If the stream disconnects before the final event, reconnect with `POST /chats/{chatId}/resume` instead of resolving the task again.',\n inputSchema: messagesResolveStreamInputSchema,\n execute: async function* (input) {\n const parameters = {\n chatId: input.chatId,\n task: input.task,\n modelConfiguration: input.modelConfiguration,\n }\n const result = await client.messages.resolveStream(parameters)\n yield* result.stream\n },\n }),\n messagesSend: tool({\n description:\n 'Send Message: Sends a new message to an existing chat. Blocks until the model response is complete and returns the message response.',\n inputSchema: messagesSendInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n message: input.message,\n systemPrompt: input.systemPrompt,\n modelConfiguration: input.modelConfiguration,\n mcpServerIds: input.mcpServerIds,\n attachments: input.attachments,\n skills: input.skills,\n }\n return toToolResult(await client.messages.send(parameters))\n },\n }),\n messagesSendAsync: tool({\n description:\n 'Send Message (Async): Sends a new message to an existing chat and processes it in the background. Returns immediately with the assistant message ID. Poll GET /chats/:chatId/messages/:messageId and check `finishReason` to detect completion.',\n inputSchema: messagesSendAsyncInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n message: input.message,\n systemPrompt: input.systemPrompt,\n modelConfiguration: input.modelConfiguration,\n mcpServerIds: input.mcpServerIds,\n attachments: input.attachments,\n skills: input.skills,\n }\n return toToolResult(await client.messages.sendAsync(parameters))\n },\n }),\n messagesSendStream: tool({\n description:\n 'Send Message (Streaming): Sends a new message to an existing chat and returns a Server-Sent Events stream. Events include the initial assistant-message snapshot, content chunk deltas, final usage, and a closing message snapshot. The response is `text/event-stream`; each event is `data: <JSON>\\\\n\\\\n` where the JSON conforms to MessageStreamEvent. If the stream disconnects before the final event, reconnect with `POST /chats/{chatId}/resume` instead of sending the message again.',\n inputSchema: messagesSendStreamInputSchema,\n execute: async function* (input) {\n const parameters = {\n chatId: input.chatId,\n message: input.message,\n systemPrompt: input.systemPrompt,\n modelConfiguration: input.modelConfiguration,\n mcpServerIds: input.mcpServerIds,\n attachments: input.attachments,\n skills: input.skills,\n }\n const result = await client.messages.sendStream(parameters)\n yield* result.stream\n },\n }),\n messagesStop: tool({\n description:\n 'Stop Message: Stops an in-flight assistant message generation. The agent aborts at the next safe point and the message is marked finished.',\n inputSchema: messagesStopInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n messageId: input.messageId,\n }\n return toToolResult(await client.messages.stop(parameters))\n },\n }),\n settingsAppendPreviewHosts: tool({\n description:\n 'Append Trusted Preview Hosts: Appends host patterns without replacing existing hosts. Returns 422 if any normalized pattern already exists or the resulting list exceeds 100 hosts. The entire request succeeds or fails together.',\n inputSchema: settingsAppendPreviewHostsInputSchema,\n execute: async (input) => {\n const parameters = {\n hosts: input.hosts,\n }\n return toToolResult(await client.settings.appendPreviewHosts(parameters))\n },\n }),\n settingsDeletePreviewHosts: tool({\n description:\n 'Delete Trusted Preview Hosts: Deletes exact normalized host patterns. Returns 404 if any pattern is not configured. Wildcard coverage does not count as an exact match. The entire request succeeds or fails together.',\n inputSchema: settingsDeletePreviewHostsInputSchema,\n execute: async (input) => {\n const parameters = {\n hosts: input.hosts,\n }\n return toToolResult(await client.settings.deletePreviewHosts(parameters))\n },\n }),\n settingsGetPreviewHosts: tool({\n description:\n 'Get Trusted Preview Hosts: Returns the hostname patterns trusted to embed previews for the current team.',\n inputSchema: settingsGetPreviewHostsInputSchema,\n execute: async () => {\n return toToolResult(await client.settings.getPreviewHosts())\n },\n }),\n settingsSetPreviewHosts: tool({\n description:\n 'Set Trusted Preview Hosts: Sets the host patterns trusted to embed previews for a team.',\n inputSchema: settingsSetPreviewHostsInputSchema,\n execute: async (input) => {\n const parameters = {\n hosts: input.hosts,\n }\n return toToolResult(await client.settings.setPreviewHosts(parameters))\n },\n }),\n usageGetActivity: tool({\n description:\n 'Get Usage Activity: Returns chat and project activity for the active billing scope. Team owners and billing members receive team-wide activity by default; other team members receive their own activity.',\n inputSchema: usageGetActivityInputSchema,\n execute: async (input) => {\n const parameters = {\n start: input.start === undefined ? undefined : new Date(input.start),\n end: input.end === undefined ? undefined : new Date(input.end),\n userId: input.userId,\n }\n return toToolResult(await client.usage.getActivity(parameters))\n },\n }),\n usageGetSummary: tool({\n description:\n 'Get Usage Summary: Returns credit usage for the active billing scope. Team owners and billing members receive team-wide usage by default; other team members receive their own usage.',\n inputSchema: usageGetSummaryInputSchema,\n execute: async (input) => {\n const parameters = {\n start: input.start === undefined ? undefined : new Date(input.start),\n end: input.end === undefined ? undefined : new Date(input.end),\n userId: input.userId,\n }\n return toToolResult(await client.usage.getSummary(parameters))\n },\n }),\n usageListEvents: tool({\n description:\n 'List Usage Events: Lists individual credit usage events. Each event includes the credits charged and, when available, associated token counts.',\n inputSchema: usageListEventsInputSchema,\n execute: async (input) => {\n const parameters = {\n start: input.start === undefined ? undefined : new Date(input.start),\n end: input.end === undefined ? undefined : new Date(input.end),\n userId: input.userId,\n chatId: input.chatId,\n messageId: input.messageId,\n limit: input.limit,\n cursor: input.cursor,\n }\n return toToolResult(await client.usage.listEvents(parameters))\n },\n }),\n webhooksCreate: tool({\n description:\n 'Create Webhook: Creates a new webhook that listens for specific events. Supports optional association with a chat.',\n inputSchema: webhooksCreateInputSchema,\n execute: async (input) => {\n const parameters = {\n name: input.name,\n events: input.events,\n url: input.url,\n chatId: input.chatId,\n }\n return toToolResult(await client.webhooks.create(parameters))\n },\n }),\n webhooksDelete: tool({\n description: 'Delete Webhook: Deletes a webhook. This action is irreversible.',\n inputSchema: webhooksDeleteInputSchema,\n execute: async (input) => {\n const parameters = {\n hookId: input.hookId,\n }\n return toToolResult(await client.webhooks.delete(parameters))\n },\n }),\n webhooksGet: tool({\n description: 'Get Webhook: Retrieves the details of a specific webhook using its ID.',\n inputSchema: webhooksGetInputSchema,\n execute: async (input) => {\n const parameters = {\n hookId: input.hookId,\n }\n return toToolResult(await client.webhooks.get(parameters))\n },\n }),\n webhooksList: tool({\n description: 'List Webhooks: Retrieves a list of all webhooks in your workspace.',\n inputSchema: webhooksListInputSchema,\n execute: async () => {\n return toToolResult(await client.webhooks.list())\n },\n }),\n webhooksUpdate: tool({\n description:\n 'Update Webhook: Updates the configuration of an existing webhook, including its name, event subscriptions, or target URL.',\n inputSchema: webhooksUpdateInputSchema,\n execute: async (input) => {\n const parameters = {\n hookId: input.hookId,\n name: input.name,\n events: input.events,\n url: input.url,\n }\n return toToolResult(await client.webhooks.update(parameters))\n },\n }),\n } satisfies V0ToolsFlat\n}\n\nexport function v0ToolsByCategory(config: V0ToolsConfig = {}): V0ToolsByCategory {\n const tools = v0Tools(config)\n\n return {\n chats: {\n chatsCreate: pickTool(tools, 'chatsCreate'),\n chatsCreateAsync: pickTool(tools, 'chatsCreateAsync'),\n chatsCreateFromFiles: pickTool(tools, 'chatsCreateFromFiles'),\n chatsCreateFromRepo: pickTool(tools, 'chatsCreateFromRepo'),\n chatsCreateFromVercelProject: pickTool(tools, 'chatsCreateFromVercelProject'),\n chatsCreateFromZip: pickTool(tools, 'chatsCreateFromZip'),\n chatsCreateStream: pickTool(tools, 'chatsCreateStream'),\n chatsCreateVercelProject: pickTool(tools, 'chatsCreateVercelProject'),\n chatsDelete: pickTool(tools, 'chatsDelete'),\n chatsDeploy: pickTool(tools, 'chatsDeploy'),\n chatsDownloadFiles: pickTool(tools, 'chatsDownloadFiles'),\n chatsDuplicate: pickTool(tools, 'chatsDuplicate'),\n chatsGet: pickTool(tools, 'chatsGet'),\n chatsGetConnectStatus: pickTool(tools, 'chatsGetConnectStatus'),\n chatsGetFiles: pickTool(tools, 'chatsGetFiles'),\n chatsGetPreview: pickTool(tools, 'chatsGetPreview'),\n chatsList: pickTool(tools, 'chatsList'),\n chatsRestoreMessage: pickTool(tools, 'chatsRestoreMessage'),\n chatsResume: pickTool(tools, 'chatsResume'),\n chatsUpdate: pickTool(tools, 'chatsUpdate'),\n chatsUpdateFiles: pickTool(tools, 'chatsUpdateFiles'),\n },\n mcpServers: {\n mcpServersCreate: pickTool(tools, 'mcpServersCreate'),\n mcpServersDelete: pickTool(tools, 'mcpServersDelete'),\n mcpServersGet: pickTool(tools, 'mcpServersGet'),\n mcpServersList: pickTool(tools, 'mcpServersList'),\n mcpServersUpdate: pickTool(tools, 'mcpServersUpdate'),\n },\n messages: {\n messagesGet: pickTool(tools, 'messagesGet'),\n messagesList: pickTool(tools, 'messagesList'),\n messagesResolve: pickTool(tools, 'messagesResolve'),\n messagesResolveAsync: pickTool(tools, 'messagesResolveAsync'),\n messagesResolveStream: pickTool(tools, 'messagesResolveStream'),\n messagesSend: pickTool(tools, 'messagesSend'),\n messagesSendAsync: pickTool(tools, 'messagesSendAsync'),\n messagesSendStream: pickTool(tools, 'messagesSendStream'),\n messagesStop: pickTool(tools, 'messagesStop'),\n },\n settings: {\n settingsAppendPreviewHosts: pickTool(tools, 'settingsAppendPreviewHosts'),\n settingsDeletePreviewHosts: pickTool(tools, 'settingsDeletePreviewHosts'),\n settingsGetPreviewHosts: pickTool(tools, 'settingsGetPreviewHosts'),\n settingsSetPreviewHosts: pickTool(tools, 'settingsSetPreviewHosts'),\n },\n usage: {\n usageGetActivity: pickTool(tools, 'usageGetActivity'),\n usageGetSummary: pickTool(tools, 'usageGetSummary'),\n usageListEvents: pickTool(tools, 'usageListEvents'),\n },\n webhooks: {\n webhooksCreate: pickTool(tools, 'webhooksCreate'),\n webhooksDelete: pickTool(tools, 'webhooksDelete'),\n webhooksGet: pickTool(tools, 'webhooksGet'),\n webhooksList: pickTool(tools, 'webhooksList'),\n webhooksUpdate: pickTool(tools, 'webhooksUpdate'),\n },\n }\n}\n\nfunction resolveV0ToolsConfig(config: V0ToolsConfig): Parameters<typeof createV0ClientType>[0] {\n const { apiKey, ...clientConfig } = config\n const envApiKey = typeof process !== 'undefined' ? process.env['V0_API_KEY'] : undefined\n const auth = clientConfig.auth ?? apiKey ?? envApiKey\n\n return auth === undefined ? clientConfig : { ...clientConfig, auth }\n}\n\nfunction pickTool(tools: V0ToolsFlat, key: V0ToolName): V0GeneratedTool {\n const selected = tools[key]\n if (!selected) {\n throw new Error(`Missing generated v0 tool: ${key}`)\n }\n\n return selected\n}\n\nfunction toToolResult(result: unknown): unknown {\n if (result && typeof result === 'object' && ('data' in result || 'error' in result)) {\n const response = result as { data?: unknown; error?: unknown }\n\n if (response.error !== undefined) {\n return { error: response.error }\n }\n\n return response.data ?? null\n }\n\n return result\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/generated/tools.ts"],"sourcesContent":["// This file is generated by packages/ai-tools/src/scripts/generate.ts.\n// Do not edit this file directly.\n\nimport { tool, type ToolSet } from 'ai'\nimport { createV0Client } from 'v0'\nimport type { createV0Client as createV0ClientType } from 'v0'\nimport { z } from 'zod'\n\nexport type V0ToolsConfig = Parameters<typeof createV0ClientType>[0] & {\n apiKey?: string\n}\n\ntype V0GeneratedTool = NonNullable<ToolSet[string]>\n\nexport type V0ToolName =\n | 'chatsCreate'\n | 'chatsCreateAsync'\n | 'chatsCreateFromFiles'\n | 'chatsCreateFromRepo'\n | 'chatsCreateFromVercelProject'\n | 'chatsCreateFromZip'\n | 'chatsCreateStream'\n | 'chatsCreateVercelProject'\n | 'chatsDelete'\n | 'chatsDeploy'\n | 'chatsDownloadFiles'\n | 'chatsDuplicate'\n | 'chatsGet'\n | 'chatsGetConnectStatus'\n | 'chatsGetFiles'\n | 'chatsGetPreview'\n | 'chatsList'\n | 'chatsRestoreMessage'\n | 'chatsResume'\n | 'chatsUpdate'\n | 'chatsUpdateFiles'\n | 'mcpServersCreate'\n | 'mcpServersDelete'\n | 'mcpServersGet'\n | 'mcpServersList'\n | 'mcpServersUpdate'\n | 'messagesGet'\n | 'messagesList'\n | 'messagesResolve'\n | 'messagesResolveAsync'\n | 'messagesResolveStream'\n | 'messagesSend'\n | 'messagesSendAsync'\n | 'messagesSendStream'\n | 'messagesStop'\n | 'settingsAppendPreviewHosts'\n | 'settingsDeletePreviewHosts'\n | 'settingsGetPreviewHosts'\n | 'settingsSetPreviewHosts'\n | 'usageGetActivity'\n | 'usageGetSummary'\n | 'usageListEvents'\n | 'webhooksCreate'\n | 'webhooksDelete'\n | 'webhooksGet'\n | 'webhooksList'\n | 'webhooksUpdate'\n\nexport type V0ToolsFlat = Record<V0ToolName, V0GeneratedTool>\n\nexport type V0ToolsByCategory = {\n chats: Pick<\n V0ToolsFlat,\n | 'chatsCreate'\n | 'chatsCreateAsync'\n | 'chatsCreateFromFiles'\n | 'chatsCreateFromRepo'\n | 'chatsCreateFromVercelProject'\n | 'chatsCreateFromZip'\n | 'chatsCreateStream'\n | 'chatsCreateVercelProject'\n | 'chatsDelete'\n | 'chatsDeploy'\n | 'chatsDownloadFiles'\n | 'chatsDuplicate'\n | 'chatsGet'\n | 'chatsGetConnectStatus'\n | 'chatsGetFiles'\n | 'chatsGetPreview'\n | 'chatsList'\n | 'chatsRestoreMessage'\n | 'chatsResume'\n | 'chatsUpdate'\n | 'chatsUpdateFiles'\n >\n mcpServers: Pick<\n V0ToolsFlat,\n | 'mcpServersCreate'\n | 'mcpServersDelete'\n | 'mcpServersGet'\n | 'mcpServersList'\n | 'mcpServersUpdate'\n >\n messages: Pick<\n V0ToolsFlat,\n | 'messagesGet'\n | 'messagesList'\n | 'messagesResolve'\n | 'messagesResolveAsync'\n | 'messagesResolveStream'\n | 'messagesSend'\n | 'messagesSendAsync'\n | 'messagesSendStream'\n | 'messagesStop'\n >\n settings: Pick<\n V0ToolsFlat,\n | 'settingsAppendPreviewHosts'\n | 'settingsDeletePreviewHosts'\n | 'settingsGetPreviewHosts'\n | 'settingsSetPreviewHosts'\n >\n usage: Pick<V0ToolsFlat, 'usageGetActivity' | 'usageGetSummary' | 'usageListEvents'>\n webhooks: Pick<\n V0ToolsFlat,\n 'webhooksCreate' | 'webhooksDelete' | 'webhooksGet' | 'webhooksList' | 'webhooksUpdate'\n >\n}\n\nexport type V0ToolCategory = keyof V0ToolsByCategory\n\nconst chatsCreateInputSchema = z.object({\n message: z.string().describe('The prompt or instruction to send to the model.'),\n systemPrompt: z\n .string()\n .describe(\n 'System-level context for the chat, such as frameworks or development environment details.',\n )\n .optional(),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.'),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.'),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n attachments: z\n .array(\n z.union([\n z.object({\n url: z.string().describe('URL or data URI containing the attachment.'),\n }),\n z.object({\n name: z.string().describe('Display name for the inline text attachment.').optional(),\n content: z.string().describe('UTF-8 text content of the attachment.'),\n }),\n ]),\n )\n .describe(\n 'Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.',\n )\n .optional(),\n mcpServerIds: z\n .array(z.string())\n .describe('MCP server IDs to enable. When omitted, uses default enabled servers.')\n .optional(),\n skills: z\n .array(\n z.union([\n z.object({\n type: z.enum(['remote']).describe('Discriminator: a skills.sh skill.'),\n id: z.string().describe('Skill ID from skills.sh.'),\n }),\n z.object({\n type: z.enum(['memory']).describe('Discriminator: a user- or team-scoped memory skill.'),\n scope: z\n .enum(['user', 'team'])\n .describe('Whether the skill lives in user or team memory.'),\n skillName: z.string().describe('Name of the memory skill to attach.'),\n }),\n z.object({\n type: z.enum(['project']).describe('Discriminator: a skill defined in the project repo.'),\n skillName: z.string().describe('Name of the project skill to attach.'),\n }),\n ]),\n )\n .describe(\n 'Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.',\n )\n .optional(),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n credentialAccess: z\n .object({\n sharedNpm: z\n .boolean()\n .describe(\n \"Let the chat's sandbox install private packages with the team's shared npm credentials (`NPM_RC` / `NPM_TOKEN`). Defaults to `false`.\",\n )\n .optional(),\n vercel: z\n .boolean()\n .describe(\n \"Let the chat's sandbox use the requesting user's Vercel credentials instead of a project-only token. Defaults to `false`.\",\n )\n .optional(),\n github: z\n .boolean()\n .describe(\n \"Let the chat's sandbox use the requesting user's GitHub credentials. Defaults to `false`.\",\n )\n .optional(),\n })\n .describe(\"Credentials the chat's sandbox may use. Not supported for Vercel OIDC principals.\")\n .optional(),\n})\n\nconst chatsCreateAsyncInputSchema = z.object({\n message: z.string().describe('The prompt or instruction to send to the model.'),\n systemPrompt: z\n .string()\n .describe(\n 'System-level context for the chat, such as frameworks or development environment details.',\n )\n .optional(),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.'),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.'),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n attachments: z\n .array(\n z.union([\n z.object({\n url: z.string().describe('URL or data URI containing the attachment.'),\n }),\n z.object({\n name: z.string().describe('Display name for the inline text attachment.').optional(),\n content: z.string().describe('UTF-8 text content of the attachment.'),\n }),\n ]),\n )\n .describe(\n 'Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.',\n )\n .optional(),\n mcpServerIds: z\n .array(z.string())\n .describe('MCP server IDs to enable. When omitted, uses default enabled servers.')\n .optional(),\n skills: z\n .array(\n z.union([\n z.object({\n type: z.enum(['remote']).describe('Discriminator: a skills.sh skill.'),\n id: z.string().describe('Skill ID from skills.sh.'),\n }),\n z.object({\n type: z.enum(['memory']).describe('Discriminator: a user- or team-scoped memory skill.'),\n scope: z\n .enum(['user', 'team'])\n .describe('Whether the skill lives in user or team memory.'),\n skillName: z.string().describe('Name of the memory skill to attach.'),\n }),\n z.object({\n type: z.enum(['project']).describe('Discriminator: a skill defined in the project repo.'),\n skillName: z.string().describe('Name of the project skill to attach.'),\n }),\n ]),\n )\n .describe(\n 'Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.',\n )\n .optional(),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n credentialAccess: z\n .object({\n sharedNpm: z\n .boolean()\n .describe(\n \"Let the chat's sandbox install private packages with the team's shared npm credentials (`NPM_RC` / `NPM_TOKEN`). Defaults to `false`.\",\n )\n .optional(),\n vercel: z\n .boolean()\n .describe(\n \"Let the chat's sandbox use the requesting user's Vercel credentials instead of a project-only token. Defaults to `false`.\",\n )\n .optional(),\n github: z\n .boolean()\n .describe(\n \"Let the chat's sandbox use the requesting user's GitHub credentials. Defaults to `false`.\",\n )\n .optional(),\n })\n .describe(\"Credentials the chat's sandbox may use. Not supported for Vercel OIDC principals.\")\n .optional(),\n})\n\nconst chatsCreateFromFilesInputSchema = z.object({\n files: z\n .array(\n z.object({\n name: z.string().describe('Path of the file in the project.'),\n content: z.string().describe('File content encoded according to `encoding`.'),\n encoding: z\n .enum(['utf8', 'base64'])\n .describe('How `content` is encoded. Defaults to `utf8` when omitted.')\n .optional(),\n }),\n )\n .describe('Source files used to seed the new chat.'),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n})\n\nconst chatsCreateFromRepoInputSchema = z.object({\n repo: z\n .object({\n url: z\n .string()\n .describe('GitHub repository URL, for example https://github.com/vercel/next.js.'),\n branch: z\n .string()\n .describe('Branch to import. If omitted, v0 uses the repository default branch.')\n .optional(),\n })\n .describe(\n 'Repository source for initialization. Supports public GitHub repositories and private repositories connected through Vercel.',\n ),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n})\n\nconst chatsCreateFromVercelProjectInputSchema = z.object({\n vercelProjectId: z.string().describe('Vercel project ID in the active user or team scope.'),\n baseBranch: z\n .string()\n .describe(\n 'Base branch for a GitHub-linked project. Defaults to the repository default branch. Ignored for projects without a GitHub link.',\n )\n .optional(),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n})\n\nconst chatsCreateFromZipInputSchema = z.object({\n url: z.string().url().describe('Zip archive used to seed the new chat.'),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n})\n\nconst chatsCreateStreamInputSchema = z.object({\n message: z.string().describe('The prompt or instruction to send to the model.'),\n systemPrompt: z\n .string()\n .describe(\n 'System-level context for the chat, such as frameworks or development environment details.',\n )\n .optional(),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.'),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.'),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n attachments: z\n .array(\n z.union([\n z.object({\n url: z.string().describe('URL or data URI containing the attachment.'),\n }),\n z.object({\n name: z.string().describe('Display name for the inline text attachment.').optional(),\n content: z.string().describe('UTF-8 text content of the attachment.'),\n }),\n ]),\n )\n .describe(\n 'Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.',\n )\n .optional(),\n mcpServerIds: z\n .array(z.string())\n .describe('MCP server IDs to enable. When omitted, uses default enabled servers.')\n .optional(),\n skills: z\n .array(\n z.union([\n z.object({\n type: z.enum(['remote']).describe('Discriminator: a skills.sh skill.'),\n id: z.string().describe('Skill ID from skills.sh.'),\n }),\n z.object({\n type: z.enum(['memory']).describe('Discriminator: a user- or team-scoped memory skill.'),\n scope: z\n .enum(['user', 'team'])\n .describe('Whether the skill lives in user or team memory.'),\n skillName: z.string().describe('Name of the memory skill to attach.'),\n }),\n z.object({\n type: z.enum(['project']).describe('Discriminator: a skill defined in the project repo.'),\n skillName: z.string().describe('Name of the project skill to attach.'),\n }),\n ]),\n )\n .describe(\n 'Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.',\n )\n .optional(),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the new chat.')\n .optional(),\n title: z.string().describe('Title for the new chat.').optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n credentialAccess: z\n .object({\n sharedNpm: z\n .boolean()\n .describe(\n \"Let the chat's sandbox install private packages with the team's shared npm credentials (`NPM_RC` / `NPM_TOKEN`). Defaults to `false`.\",\n )\n .optional(),\n vercel: z\n .boolean()\n .describe(\n \"Let the chat's sandbox use the requesting user's Vercel credentials instead of a project-only token. Defaults to `false`.\",\n )\n .optional(),\n github: z\n .boolean()\n .describe(\n \"Let the chat's sandbox use the requesting user's GitHub credentials. Defaults to `false`.\",\n )\n .optional(),\n })\n .describe(\"Credentials the chat's sandbox may use. Not supported for Vercel OIDC principals.\")\n .optional(),\n})\n\nconst chatsCreateVercelProjectInputSchema = z.object({\n chatId: z.string(),\n name: z\n .string()\n .describe(\"Name for the Vercel project. When omitted, the chat's title is used.\")\n .optional(),\n})\n\nconst chatsDeleteInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsDeployInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsDownloadFilesInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsDuplicateInputSchema = z.object({\n chatId: z.string(),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Visibility setting for the duplicated chat.'),\n title: z\n .string()\n .describe(\n 'Custom title for the duplicated chat. If omitted, the original title is reused with an incremented suffix (e.g. \"My Chat (2)\").',\n )\n .optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe('Arbitrary key-value data to attach to the chat.')\n .optional(),\n})\n\nconst chatsGetInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsGetConnectStatusInputSchema = z.object({\n chatId: z.string(),\n requestId: z.string(),\n})\n\nconst chatsGetFilesInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsGetPreviewInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsListInputSchema = z.object({\n limit: z\n .number()\n .int()\n .describe('Maximum number of chats to return (1-100, default 20).')\n .optional(),\n cursor: z.string().describe('Pagination cursor returned from a previous response.').optional(),\n authorId: z\n .string()\n .describe(\n 'Restrict results to chats created by this user. Must be a member of the calling scope.',\n )\n .optional(),\n vercelProjectId: z\n .string()\n .describe('Restrict results to chats associated with this Vercel project.')\n .optional(),\n metadata: z\n .record(z.string(), z.string())\n .describe(\n 'Filter by metadata, e.g. metadata[environment]=production. Returns chats matching all supplied key-value pairs.',\n )\n .optional(),\n})\n\nconst chatsRestoreMessageInputSchema = z.object({\n chatId: z.string(),\n messageId: z\n .string()\n .describe('The unique identifier of the assistant message whose files to restore.'),\n})\n\nconst chatsResumeInputSchema = z.object({\n chatId: z.string(),\n})\n\nconst chatsUpdateInputSchema = z.object({\n chatId: z.string(),\n title: z.string().describe('A new title to assign to the chat.').optional(),\n privacy: z\n .enum(['public', 'private', 'team', 'team-edit', 'unlisted'])\n .describe('Updated visibility setting for the chat.')\n .optional(),\n metadata: z\n .union([z.record(z.string(), z.union([z.string(), z.null()])), z.null()])\n .describe(\n 'User-defined key-value metadata. Merged with existing entries. Pass `null` for a value to delete that key, or pass `null` for the whole field to delete all entries. Maximum 50 active entries.',\n )\n .optional(),\n})\n\nconst chatsUpdateFilesInputSchema = z.object({\n chatId: z.string(),\n files: z\n .array(\n z.object({\n path: z.string().describe('Project-relative file path, e.g. \"app/page.tsx\".'),\n content: z\n .union([z.string(), z.null()])\n .describe('New file content. Pass `null` to delete the file at this path.'),\n encoding: z\n .enum(['utf8', 'base64'])\n .describe('How non-null `content` is encoded. Defaults to `utf8` when omitted.')\n .optional(),\n }),\n )\n .describe('The files to create, update, or delete. Each path must be unique.'),\n})\n\nconst mcpServersCreateInputSchema = z.object({\n name: z.string().describe('Display name for the MCP server.'),\n url: z.string().url().describe('URL endpoint of the MCP server.'),\n description: z.string().describe('Optional description of the MCP server.').optional(),\n enabled: z.boolean().describe('Whether the server should be enabled.'),\n auth: z\n .union([\n z.object({\n type: z.enum(['none']),\n }),\n z.object({\n type: z.enum(['bearer']),\n token: z.string().describe('Bearer token for authentication.'),\n }),\n z.object({\n type: z.enum(['custom-headers']),\n headers: z\n .record(z.string(), z.string())\n .describe('Custom headers to include in requests.'),\n }),\n z.object({\n type: z.enum(['oauth']),\n config: z\n .object({\n authorizationUrl: z.string().url(),\n tokenUrl: z.string().url(),\n registrationUrl: z.string().url().optional(),\n clientId: z.string(),\n clientSecret: z.string().optional(),\n scopes: z.array(z.string()),\n usePKCE: z.boolean(),\n issuer: z.string().optional(),\n resource: z.string().optional(),\n clientIdMetadataDocumentSupported: z.boolean().optional(),\n })\n .describe('OAuth configuration discovered or manually set.')\n .optional(),\n connected: z.boolean().describe('Whether OAuth is currently connected.'),\n expiresAt: z.string().describe('ISO timestamp when the token expires.').optional(),\n }),\n ])\n .describe('Authentication configuration.'),\n scope: z.enum(['user', 'team']).describe('Scope of the MCP server configuration.'),\n})\n\nconst mcpServersDeleteInputSchema = z.object({\n mcpServerId: z.string(),\n})\n\nconst mcpServersGetInputSchema = z.object({\n mcpServerId: z.string(),\n})\n\nconst mcpServersListInputSchema = z.object({})\n\nconst mcpServersUpdateInputSchema = z.object({\n mcpServerId: z.string(),\n name: z.string().describe('New display name.').optional(),\n url: z.string().url().describe('New URL endpoint.').optional(),\n description: z.string().describe('New description.').optional(),\n enabled: z.boolean().describe('Enable or disable.').optional(),\n auth: z\n .union([\n z.object({\n type: z.enum(['none']),\n }),\n z.object({\n type: z.enum(['bearer']),\n token: z.string().describe('Bearer token for authentication.'),\n }),\n z.object({\n type: z.enum(['custom-headers']),\n headers: z\n .record(z.string(), z.string())\n .describe('Custom headers to include in requests.'),\n }),\n z.object({\n type: z.enum(['oauth']),\n config: z\n .object({\n authorizationUrl: z.string().url(),\n tokenUrl: z.string().url(),\n registrationUrl: z.string().url().optional(),\n clientId: z.string(),\n clientSecret: z.string().optional(),\n scopes: z.array(z.string()),\n usePKCE: z.boolean(),\n issuer: z.string().optional(),\n resource: z.string().optional(),\n clientIdMetadataDocumentSupported: z.boolean().optional(),\n })\n .describe('OAuth configuration discovered or manually set.')\n .optional(),\n connected: z.boolean().describe('Whether OAuth is currently connected.'),\n expiresAt: z.string().describe('ISO timestamp when the token expires.').optional(),\n }),\n ])\n .describe('New authentication configuration.')\n .optional(),\n scope: z.enum(['user', 'team']).describe('New scope.').optional(),\n})\n\nconst messagesGetInputSchema = z.object({\n chatId: z.string(),\n messageId: z.string(),\n})\n\nconst messagesListInputSchema = z.object({\n chatId: z.string(),\n limit: z.number().int(),\n cursor: z.string().optional(),\n})\n\nconst messagesResolveInputSchema = z.object({\n chatId: z.string(),\n task: z\n .union([\n z.object({\n type: z.enum(['confirmed-steps']),\n connectedIntegrationNames: z\n .array(z.string())\n .describe(\n 'Names of integrations that were successfully connected (e.g. \"Neon\"). Pass an empty array to skip.',\n )\n .optional(),\n connectedNpmRegistryIds: z\n .array(z.string())\n .describe(\n 'Deprecated. npm registry connections are no longer supported; this field is accepted for compatibility and ignored.',\n )\n .optional(),\n connectedMcpPresetNames: z\n .array(\n z.enum([\n 'Linear',\n 'Notion',\n 'Context7',\n 'Sentry',\n 'Zapier',\n 'Glean',\n 'Hex',\n 'Sanity',\n 'Granola',\n 'PostHog',\n 'Contentful',\n 'Mobbin',\n 'Slack',\n 'Nitrosend',\n 'Datadog',\n ]),\n )\n .describe(\n 'Names of MCP presets that were connected (e.g. \"Linear\", \"Sentry\"). Pass an empty array to skip.',\n )\n .optional(),\n appliedScripts: z\n .array(z.string())\n .describe('Names of scripts that were applied.')\n .optional(),\n addedEnvVars: z\n .array(z.string())\n .describe('Names of environment variables that were added.')\n .optional(),\n }),\n z.object({\n type: z.enum(['plan-exit-response']),\n status: z\n .enum(['approved', 'rejected', 'request-changes'])\n .describe('Whether the plan is approved, rejected, or needs changes.'),\n content: z.string().describe('Feedback or instructions for the agent.'),\n }),\n z.object({\n type: z.enum(['answered-questions']),\n answers: z\n .array(\n z.object({\n questionId: z.string().describe('The ID of the question being answered.'),\n questionText: z.string().describe('The text of the question being answered.'),\n selectedLabels: z\n .array(z.string())\n .describe(\n 'The labels of the selected options. For single-select questions, pass one item.',\n ),\n customText: z\n .string()\n .describe(\n 'Free-form text input, used when the user selects \"Other\" or wants to add context.',\n )\n .optional(),\n }),\n )\n .describe('Answers to the questions the agent asked.'),\n }),\n z.object({\n type: z.enum(['confirmed-permissions']),\n permissions: z\n .array(\n z.object({\n type: z.enum(['ALLOW_DYNAMIC_TOOL_STRICT']),\n toolName: z.string().describe('The name of the tool being permitted.'),\n input: z\n .unknown()\n .describe(\n 'The tool call input arguments. Pass the exact input from the stopped task.',\n ),\n toolDisplayName: z\n .union([z.string(), z.null()])\n .describe(\n \"The tool's original human-readable name from the stopped task. Display-only; pass back unchanged. Capped at 100 characters, matching the cap applied when the name is ingested from the server.\",\n )\n .optional(),\n taskNameActive: z\n .union([z.string(), z.null()])\n .describe('Label shown while the tool is running (e.g. \"Running migration\").')\n .optional(),\n taskNameComplete: z\n .union([z.string(), z.null()])\n .describe('Label shown after the tool completes (e.g. \"Migration complete\").')\n .optional(),\n userMessage: z\n .string()\n .describe('Optional message from the user about this permission.')\n .optional(),\n }),\n )\n .describe(\n 'The permissions to grant. Pass the suggestedPermissions from the stopped task.',\n ),\n userMessage: z\n .string()\n .describe('Optional message from the user about the permission grant.')\n .optional(),\n }),\n z.object({\n type: z.enum(['vercel-connect-setup']),\n }),\n z.object({\n type: z.enum(['vercel-connect-authorization']),\n }),\n ])\n .describe(\n 'The task resolution data. Use this when the chat is waiting for user input on the matching task type.',\n ),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.')\n .optional(),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.')\n .optional(),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n})\n\nconst messagesResolveAsyncInputSchema = z.object({\n chatId: z.string(),\n task: z\n .union([\n z.object({\n type: z.enum(['confirmed-steps']),\n connectedIntegrationNames: z\n .array(z.string())\n .describe(\n 'Names of integrations that were successfully connected (e.g. \"Neon\"). Pass an empty array to skip.',\n )\n .optional(),\n connectedNpmRegistryIds: z\n .array(z.string())\n .describe(\n 'Deprecated. npm registry connections are no longer supported; this field is accepted for compatibility and ignored.',\n )\n .optional(),\n connectedMcpPresetNames: z\n .array(\n z.enum([\n 'Linear',\n 'Notion',\n 'Context7',\n 'Sentry',\n 'Zapier',\n 'Glean',\n 'Hex',\n 'Sanity',\n 'Granola',\n 'PostHog',\n 'Contentful',\n 'Mobbin',\n 'Slack',\n 'Nitrosend',\n 'Datadog',\n ]),\n )\n .describe(\n 'Names of MCP presets that were connected (e.g. \"Linear\", \"Sentry\"). Pass an empty array to skip.',\n )\n .optional(),\n appliedScripts: z\n .array(z.string())\n .describe('Names of scripts that were applied.')\n .optional(),\n addedEnvVars: z\n .array(z.string())\n .describe('Names of environment variables that were added.')\n .optional(),\n }),\n z.object({\n type: z.enum(['plan-exit-response']),\n status: z\n .enum(['approved', 'rejected', 'request-changes'])\n .describe('Whether the plan is approved, rejected, or needs changes.'),\n content: z.string().describe('Feedback or instructions for the agent.'),\n }),\n z.object({\n type: z.enum(['answered-questions']),\n answers: z\n .array(\n z.object({\n questionId: z.string().describe('The ID of the question being answered.'),\n questionText: z.string().describe('The text of the question being answered.'),\n selectedLabels: z\n .array(z.string())\n .describe(\n 'The labels of the selected options. For single-select questions, pass one item.',\n ),\n customText: z\n .string()\n .describe(\n 'Free-form text input, used when the user selects \"Other\" or wants to add context.',\n )\n .optional(),\n }),\n )\n .describe('Answers to the questions the agent asked.'),\n }),\n z.object({\n type: z.enum(['confirmed-permissions']),\n permissions: z\n .array(\n z.object({\n type: z.enum(['ALLOW_DYNAMIC_TOOL_STRICT']),\n toolName: z.string().describe('The name of the tool being permitted.'),\n input: z\n .unknown()\n .describe(\n 'The tool call input arguments. Pass the exact input from the stopped task.',\n ),\n toolDisplayName: z\n .union([z.string(), z.null()])\n .describe(\n \"The tool's original human-readable name from the stopped task. Display-only; pass back unchanged. Capped at 100 characters, matching the cap applied when the name is ingested from the server.\",\n )\n .optional(),\n taskNameActive: z\n .union([z.string(), z.null()])\n .describe('Label shown while the tool is running (e.g. \"Running migration\").')\n .optional(),\n taskNameComplete: z\n .union([z.string(), z.null()])\n .describe('Label shown after the tool completes (e.g. \"Migration complete\").')\n .optional(),\n userMessage: z\n .string()\n .describe('Optional message from the user about this permission.')\n .optional(),\n }),\n )\n .describe(\n 'The permissions to grant. Pass the suggestedPermissions from the stopped task.',\n ),\n userMessage: z\n .string()\n .describe('Optional message from the user about the permission grant.')\n .optional(),\n }),\n z.object({\n type: z.enum(['vercel-connect-setup']),\n }),\n z.object({\n type: z.enum(['vercel-connect-authorization']),\n }),\n ])\n .describe(\n 'The task resolution data. Use this when the chat is waiting for user input on the matching task type.',\n ),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.')\n .optional(),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.')\n .optional(),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n})\n\nconst messagesResolveStreamInputSchema = z.object({\n chatId: z.string(),\n task: z\n .union([\n z.object({\n type: z.enum(['confirmed-steps']),\n connectedIntegrationNames: z\n .array(z.string())\n .describe(\n 'Names of integrations that were successfully connected (e.g. \"Neon\"). Pass an empty array to skip.',\n )\n .optional(),\n connectedNpmRegistryIds: z\n .array(z.string())\n .describe(\n 'Deprecated. npm registry connections are no longer supported; this field is accepted for compatibility and ignored.',\n )\n .optional(),\n connectedMcpPresetNames: z\n .array(\n z.enum([\n 'Linear',\n 'Notion',\n 'Context7',\n 'Sentry',\n 'Zapier',\n 'Glean',\n 'Hex',\n 'Sanity',\n 'Granola',\n 'PostHog',\n 'Contentful',\n 'Mobbin',\n 'Slack',\n 'Nitrosend',\n 'Datadog',\n ]),\n )\n .describe(\n 'Names of MCP presets that were connected (e.g. \"Linear\", \"Sentry\"). Pass an empty array to skip.',\n )\n .optional(),\n appliedScripts: z\n .array(z.string())\n .describe('Names of scripts that were applied.')\n .optional(),\n addedEnvVars: z\n .array(z.string())\n .describe('Names of environment variables that were added.')\n .optional(),\n }),\n z.object({\n type: z.enum(['plan-exit-response']),\n status: z\n .enum(['approved', 'rejected', 'request-changes'])\n .describe('Whether the plan is approved, rejected, or needs changes.'),\n content: z.string().describe('Feedback or instructions for the agent.'),\n }),\n z.object({\n type: z.enum(['answered-questions']),\n answers: z\n .array(\n z.object({\n questionId: z.string().describe('The ID of the question being answered.'),\n questionText: z.string().describe('The text of the question being answered.'),\n selectedLabels: z\n .array(z.string())\n .describe(\n 'The labels of the selected options. For single-select questions, pass one item.',\n ),\n customText: z\n .string()\n .describe(\n 'Free-form text input, used when the user selects \"Other\" or wants to add context.',\n )\n .optional(),\n }),\n )\n .describe('Answers to the questions the agent asked.'),\n }),\n z.object({\n type: z.enum(['confirmed-permissions']),\n permissions: z\n .array(\n z.object({\n type: z.enum(['ALLOW_DYNAMIC_TOOL_STRICT']),\n toolName: z.string().describe('The name of the tool being permitted.'),\n input: z\n .unknown()\n .describe(\n 'The tool call input arguments. Pass the exact input from the stopped task.',\n ),\n toolDisplayName: z\n .union([z.string(), z.null()])\n .describe(\n \"The tool's original human-readable name from the stopped task. Display-only; pass back unchanged. Capped at 100 characters, matching the cap applied when the name is ingested from the server.\",\n )\n .optional(),\n taskNameActive: z\n .union([z.string(), z.null()])\n .describe('Label shown while the tool is running (e.g. \"Running migration\").')\n .optional(),\n taskNameComplete: z\n .union([z.string(), z.null()])\n .describe('Label shown after the tool completes (e.g. \"Migration complete\").')\n .optional(),\n userMessage: z\n .string()\n .describe('Optional message from the user about this permission.')\n .optional(),\n }),\n )\n .describe(\n 'The permissions to grant. Pass the suggestedPermissions from the stopped task.',\n ),\n userMessage: z\n .string()\n .describe('Optional message from the user about the permission grant.')\n .optional(),\n }),\n z.object({\n type: z.enum(['vercel-connect-setup']),\n }),\n z.object({\n type: z.enum(['vercel-connect-authorization']),\n }),\n ])\n .describe(\n 'The task resolution data. Use this when the chat is waiting for user input on the matching task type.',\n ),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.')\n .optional(),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.')\n .optional(),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n})\n\nconst messagesSendInputSchema = z.object({\n chatId: z.string(),\n message: z\n .string()\n .describe(\n 'The prompt or instruction to send to the model. May be omitted when designMode contains edits.',\n )\n .optional(),\n designMode: z\n .object({\n edits: z\n .array(\n z.union([\n z.object({\n type: z.enum(['style']),\n element: z.object({\n selectorPath: z.string().describe('CSS selector identifying the rendered element.'),\n tagName: z.string().describe('HTML tag name, such as h1 or button.'),\n id: z.string().describe('Element ID, if present.').optional(),\n classNames: z.array(z.string()).describe('Element CSS classes.').optional(),\n textContent: z\n .string()\n .describe('Current text of the element, to help locate its source.')\n .optional(),\n reactComponentName: z\n .string()\n .describe('React component name, if known.')\n .optional(),\n }),\n changes: z\n .record(\n z.string(),\n z.object({\n from: z\n .string()\n .describe(\n 'Previous value. Context for the model, not a checked precondition.',\n ),\n to: z.string().describe('Requested value.'),\n }),\n )\n .describe(\n 'CSS property names in camelCase mapped to old and new values. Use textContent for text replacement.',\n ),\n }),\n z.object({\n type: z.enum(['deleteElement']),\n element: z.object({\n selectorPath: z.string().describe('CSS selector identifying the rendered element.'),\n tagName: z.string().describe('HTML tag name, such as h1 or button.'),\n id: z.string().describe('Element ID, if present.').optional(),\n classNames: z.array(z.string()).describe('Element CSS classes.').optional(),\n textContent: z\n .string()\n .describe('Current text of the element, to help locate its source.')\n .optional(),\n reactComponentName: z\n .string()\n .describe('React component name, if known.')\n .optional(),\n }),\n }),\n z.object({\n type: z.enum(['move']),\n element: z.object({\n selectorPath: z.string().describe('CSS selector identifying the rendered element.'),\n tagName: z.string().describe('HTML tag name, such as h1 or button.'),\n id: z.string().describe('Element ID, if present.').optional(),\n classNames: z.array(z.string()).describe('Element CSS classes.').optional(),\n textContent: z\n .string()\n .describe('Current text of the element, to help locate its source.')\n .optional(),\n reactComponentName: z\n .string()\n .describe('React component name, if known.')\n .optional(),\n }),\n toParentSelector: z\n .string()\n .describe('Destination parent selector. Required when position is inside.')\n .optional(),\n targetSelector: z\n .string()\n .describe(\n 'Destination sibling selector. Required when position is before or after.',\n )\n .optional(),\n position: z\n .enum(['before', 'after', 'inside'])\n .describe('Placement relative to the destination.'),\n }),\n z.object({\n type: z.enum(['fontInjection']),\n fontName: z.string().describe('Font to add to the project, such as Inter.'),\n }),\n ]),\n )\n .describe('Element edits to apply to the source code. Maximum 100.')\n .optional(),\n element: z\n .string()\n .describe('CSS selector limiting the scope of the message instructions.')\n .optional(),\n screenshot: z\n .object({\n url: z\n .string()\n .describe(\n 'HTTPS image URL or base64 image data URI. Counts toward the attachment limits. Not supported for Vercel OIDC principals.',\n ),\n anchorElement: z\n .string()\n .describe('CSS selector anchoring the screenshot to a rendered element.')\n .optional(),\n })\n .describe('Screenshot providing visual context for the requested edits.')\n .optional(),\n })\n .describe(\n 'Apply element-scoped design edits using Design Mode. Source changes are model-generated, not deterministic DOM patches. The Design Mode model is selected automatically, regardless of modelConfiguration.modelId.',\n )\n .optional(),\n systemPrompt: z\n .string()\n .describe(\n 'System-level context for the chat, such as frameworks or development environment details.',\n )\n .optional(),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.'),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.'),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n mcpServerIds: z\n .array(z.string())\n .describe('MCP server IDs to enable. When omitted, uses default enabled servers.')\n .optional(),\n attachments: z\n .array(\n z.union([\n z.object({\n url: z.string().describe('URL or data URI containing the attachment.'),\n }),\n z.object({\n name: z.string().describe('Display name for the inline text attachment.').optional(),\n content: z.string().describe('UTF-8 text content of the attachment.'),\n }),\n ]),\n )\n .describe(\n 'Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.',\n )\n .optional(),\n skills: z\n .array(\n z.union([\n z.object({\n type: z.enum(['remote']).describe('Discriminator: a skills.sh skill.'),\n id: z.string().describe('Skill ID from skills.sh.'),\n }),\n z.object({\n type: z.enum(['memory']).describe('Discriminator: a user- or team-scoped memory skill.'),\n scope: z\n .enum(['user', 'team'])\n .describe('Whether the skill lives in user or team memory.'),\n skillName: z.string().describe('Name of the memory skill to attach.'),\n }),\n z.object({\n type: z.enum(['project']).describe('Discriminator: a skill defined in the project repo.'),\n skillName: z.string().describe('Name of the project skill to attach.'),\n }),\n ]),\n )\n .describe(\n 'Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.',\n )\n .optional(),\n})\n\nconst messagesSendAsyncInputSchema = z.object({\n chatId: z.string(),\n message: z\n .string()\n .describe(\n 'The prompt or instruction to send to the model. May be omitted when designMode contains edits.',\n )\n .optional(),\n designMode: z\n .object({\n edits: z\n .array(\n z.union([\n z.object({\n type: z.enum(['style']),\n element: z.object({\n selectorPath: z.string().describe('CSS selector identifying the rendered element.'),\n tagName: z.string().describe('HTML tag name, such as h1 or button.'),\n id: z.string().describe('Element ID, if present.').optional(),\n classNames: z.array(z.string()).describe('Element CSS classes.').optional(),\n textContent: z\n .string()\n .describe('Current text of the element, to help locate its source.')\n .optional(),\n reactComponentName: z\n .string()\n .describe('React component name, if known.')\n .optional(),\n }),\n changes: z\n .record(\n z.string(),\n z.object({\n from: z\n .string()\n .describe(\n 'Previous value. Context for the model, not a checked precondition.',\n ),\n to: z.string().describe('Requested value.'),\n }),\n )\n .describe(\n 'CSS property names in camelCase mapped to old and new values. Use textContent for text replacement.',\n ),\n }),\n z.object({\n type: z.enum(['deleteElement']),\n element: z.object({\n selectorPath: z.string().describe('CSS selector identifying the rendered element.'),\n tagName: z.string().describe('HTML tag name, such as h1 or button.'),\n id: z.string().describe('Element ID, if present.').optional(),\n classNames: z.array(z.string()).describe('Element CSS classes.').optional(),\n textContent: z\n .string()\n .describe('Current text of the element, to help locate its source.')\n .optional(),\n reactComponentName: z\n .string()\n .describe('React component name, if known.')\n .optional(),\n }),\n }),\n z.object({\n type: z.enum(['move']),\n element: z.object({\n selectorPath: z.string().describe('CSS selector identifying the rendered element.'),\n tagName: z.string().describe('HTML tag name, such as h1 or button.'),\n id: z.string().describe('Element ID, if present.').optional(),\n classNames: z.array(z.string()).describe('Element CSS classes.').optional(),\n textContent: z\n .string()\n .describe('Current text of the element, to help locate its source.')\n .optional(),\n reactComponentName: z\n .string()\n .describe('React component name, if known.')\n .optional(),\n }),\n toParentSelector: z\n .string()\n .describe('Destination parent selector. Required when position is inside.')\n .optional(),\n targetSelector: z\n .string()\n .describe(\n 'Destination sibling selector. Required when position is before or after.',\n )\n .optional(),\n position: z\n .enum(['before', 'after', 'inside'])\n .describe('Placement relative to the destination.'),\n }),\n z.object({\n type: z.enum(['fontInjection']),\n fontName: z.string().describe('Font to add to the project, such as Inter.'),\n }),\n ]),\n )\n .describe('Element edits to apply to the source code. Maximum 100.')\n .optional(),\n element: z\n .string()\n .describe('CSS selector limiting the scope of the message instructions.')\n .optional(),\n screenshot: z\n .object({\n url: z\n .string()\n .describe(\n 'HTTPS image URL or base64 image data URI. Counts toward the attachment limits. Not supported for Vercel OIDC principals.',\n ),\n anchorElement: z\n .string()\n .describe('CSS selector anchoring the screenshot to a rendered element.')\n .optional(),\n })\n .describe('Screenshot providing visual context for the requested edits.')\n .optional(),\n })\n .describe(\n 'Apply element-scoped design edits using Design Mode. Source changes are model-generated, not deterministic DOM patches. The Design Mode model is selected automatically, regardless of modelConfiguration.modelId.',\n )\n .optional(),\n systemPrompt: z\n .string()\n .describe(\n 'System-level context for the chat, such as frameworks or development environment details.',\n )\n .optional(),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.'),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.'),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n mcpServerIds: z\n .array(z.string())\n .describe('MCP server IDs to enable. When omitted, uses default enabled servers.')\n .optional(),\n attachments: z\n .array(\n z.union([\n z.object({\n url: z.string().describe('URL or data URI containing the attachment.'),\n }),\n z.object({\n name: z.string().describe('Display name for the inline text attachment.').optional(),\n content: z.string().describe('UTF-8 text content of the attachment.'),\n }),\n ]),\n )\n .describe(\n 'Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.',\n )\n .optional(),\n skills: z\n .array(\n z.union([\n z.object({\n type: z.enum(['remote']).describe('Discriminator: a skills.sh skill.'),\n id: z.string().describe('Skill ID from skills.sh.'),\n }),\n z.object({\n type: z.enum(['memory']).describe('Discriminator: a user- or team-scoped memory skill.'),\n scope: z\n .enum(['user', 'team'])\n .describe('Whether the skill lives in user or team memory.'),\n skillName: z.string().describe('Name of the memory skill to attach.'),\n }),\n z.object({\n type: z.enum(['project']).describe('Discriminator: a skill defined in the project repo.'),\n skillName: z.string().describe('Name of the project skill to attach.'),\n }),\n ]),\n )\n .describe(\n 'Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.',\n )\n .optional(),\n})\n\nconst messagesSendStreamInputSchema = z.object({\n chatId: z.string(),\n message: z\n .string()\n .describe(\n 'The prompt or instruction to send to the model. May be omitted when designMode contains edits.',\n )\n .optional(),\n designMode: z\n .object({\n edits: z\n .array(\n z.union([\n z.object({\n type: z.enum(['style']),\n element: z.object({\n selectorPath: z.string().describe('CSS selector identifying the rendered element.'),\n tagName: z.string().describe('HTML tag name, such as h1 or button.'),\n id: z.string().describe('Element ID, if present.').optional(),\n classNames: z.array(z.string()).describe('Element CSS classes.').optional(),\n textContent: z\n .string()\n .describe('Current text of the element, to help locate its source.')\n .optional(),\n reactComponentName: z\n .string()\n .describe('React component name, if known.')\n .optional(),\n }),\n changes: z\n .record(\n z.string(),\n z.object({\n from: z\n .string()\n .describe(\n 'Previous value. Context for the model, not a checked precondition.',\n ),\n to: z.string().describe('Requested value.'),\n }),\n )\n .describe(\n 'CSS property names in camelCase mapped to old and new values. Use textContent for text replacement.',\n ),\n }),\n z.object({\n type: z.enum(['deleteElement']),\n element: z.object({\n selectorPath: z.string().describe('CSS selector identifying the rendered element.'),\n tagName: z.string().describe('HTML tag name, such as h1 or button.'),\n id: z.string().describe('Element ID, if present.').optional(),\n classNames: z.array(z.string()).describe('Element CSS classes.').optional(),\n textContent: z\n .string()\n .describe('Current text of the element, to help locate its source.')\n .optional(),\n reactComponentName: z\n .string()\n .describe('React component name, if known.')\n .optional(),\n }),\n }),\n z.object({\n type: z.enum(['move']),\n element: z.object({\n selectorPath: z.string().describe('CSS selector identifying the rendered element.'),\n tagName: z.string().describe('HTML tag name, such as h1 or button.'),\n id: z.string().describe('Element ID, if present.').optional(),\n classNames: z.array(z.string()).describe('Element CSS classes.').optional(),\n textContent: z\n .string()\n .describe('Current text of the element, to help locate its source.')\n .optional(),\n reactComponentName: z\n .string()\n .describe('React component name, if known.')\n .optional(),\n }),\n toParentSelector: z\n .string()\n .describe('Destination parent selector. Required when position is inside.')\n .optional(),\n targetSelector: z\n .string()\n .describe(\n 'Destination sibling selector. Required when position is before or after.',\n )\n .optional(),\n position: z\n .enum(['before', 'after', 'inside'])\n .describe('Placement relative to the destination.'),\n }),\n z.object({\n type: z.enum(['fontInjection']),\n fontName: z.string().describe('Font to add to the project, such as Inter.'),\n }),\n ]),\n )\n .describe('Element edits to apply to the source code. Maximum 100.')\n .optional(),\n element: z\n .string()\n .describe('CSS selector limiting the scope of the message instructions.')\n .optional(),\n screenshot: z\n .object({\n url: z\n .string()\n .describe(\n 'HTTPS image URL or base64 image data URI. Counts toward the attachment limits. Not supported for Vercel OIDC principals.',\n ),\n anchorElement: z\n .string()\n .describe('CSS selector anchoring the screenshot to a rendered element.')\n .optional(),\n })\n .describe('Screenshot providing visual context for the requested edits.')\n .optional(),\n })\n .describe(\n 'Apply element-scoped design edits using Design Mode. Source changes are model-generated, not deterministic DOM patches. The Design Mode model is selected automatically, regardless of modelConfiguration.modelId.',\n )\n .optional(),\n systemPrompt: z\n .string()\n .describe(\n 'System-level context for the chat, such as frameworks or development environment details.',\n )\n .optional(),\n modelConfiguration: z\n .object({\n modelId: z\n .enum(['v0-mini', 'v0-pro', 'v0-max', 'v0-max-fast'])\n .describe('Model to use for the generation.'),\n imageGenerations: z\n .boolean()\n .describe('Enables image generations to generate up to 5 images per version.'),\n })\n .describe('Overrides for the model behavior.')\n .optional(),\n mcpServerIds: z\n .array(z.string())\n .describe('MCP server IDs to enable. When omitted, uses default enabled servers.')\n .optional(),\n attachments: z\n .array(\n z.union([\n z.object({\n url: z.string().describe('URL or data URI containing the attachment.'),\n }),\n z.object({\n name: z.string().describe('Display name for the inline text attachment.').optional(),\n content: z.string().describe('UTF-8 text content of the attachment.'),\n }),\n ]),\n )\n .describe(\n 'Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.',\n )\n .optional(),\n skills: z\n .array(\n z.union([\n z.object({\n type: z.enum(['remote']).describe('Discriminator: a skills.sh skill.'),\n id: z.string().describe('Skill ID from skills.sh.'),\n }),\n z.object({\n type: z.enum(['memory']).describe('Discriminator: a user- or team-scoped memory skill.'),\n scope: z\n .enum(['user', 'team'])\n .describe('Whether the skill lives in user or team memory.'),\n skillName: z.string().describe('Name of the memory skill to attach.'),\n }),\n z.object({\n type: z.enum(['project']).describe('Discriminator: a skill defined in the project repo.'),\n skillName: z.string().describe('Name of the project skill to attach.'),\n }),\n ]),\n )\n .describe(\n 'Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.',\n )\n .optional(),\n})\n\nconst messagesStopInputSchema = z.object({\n chatId: z.string(),\n messageId: z.string(),\n})\n\nconst settingsAppendPreviewHostsInputSchema = z.object({\n hosts: z\n .array(z.string())\n .describe(\n 'Distinct hostname patterns to append. Provide hostnames only, without scheme, port, path, userinfo, query, or fragment. *.example.com matches one subdomain label; **.example.com matches one or more. Neither includes the apex. Patterns are canonicalized before comparison.',\n ),\n})\n\nconst settingsDeletePreviewHostsInputSchema = z.object({\n hosts: z\n .array(z.string())\n .describe(\n 'Distinct hostname patterns to delete. Provide hostnames only, without scheme, port, path, userinfo, query, or fragment. *.example.com matches one subdomain label; **.example.com matches one or more. Neither includes the apex. Patterns are canonicalized before comparison.',\n ),\n})\n\nconst settingsGetPreviewHostsInputSchema = z.object({})\n\nconst settingsSetPreviewHostsInputSchema = z.object({\n hosts: z\n .array(z.string())\n .describe(\n 'The complete list of exact or wildcard hostname patterns trusted to embed previews. Provide hostnames only, without a scheme, port, path, userinfo, query string, or fragment. Use *.example.com for exactly one subdomain label and **.example.com for one or more. Wildcards do not include example.com itself; add the apex as a separate entry when needed.',\n ),\n})\n\nconst usageGetActivityInputSchema = z.object({\n start: z.string().datetime().optional(),\n end: z.string().datetime().optional(),\n userId: z.string().optional(),\n})\n\nconst usageGetSummaryInputSchema = z.object({\n start: z.string().datetime().optional(),\n end: z.string().datetime().optional(),\n userId: z.string().optional(),\n})\n\nconst usageListEventsInputSchema = z.object({\n start: z.string().datetime().optional(),\n end: z.string().datetime().optional(),\n userId: z.string().optional(),\n chatId: z.string().optional(),\n messageId: z.string().optional(),\n limit: z.number().int().optional(),\n cursor: z.string().optional(),\n})\n\nconst webhooksCreateInputSchema = z.object({\n name: z.string().describe('A human-readable name for the webhook.'),\n events: z\n .array(\n z.enum([\n 'chat.created',\n 'chat.updated',\n 'chat.deleted',\n 'message.created',\n 'message.updated',\n 'message.deleted',\n 'message.finished',\n ]),\n )\n .describe('List of event types the webhook should subscribe to.'),\n url: z.string().url().describe('The target URL to receive the webhook payloads.'),\n chatId: z.union([z.string(), z.null()]).describe('The ID of a chat to scope the webhook to.'),\n})\n\nconst webhooksDeleteInputSchema = z.object({\n hookId: z.string(),\n})\n\nconst webhooksGetInputSchema = z.object({\n hookId: z.string(),\n})\n\nconst webhooksListInputSchema = z.object({})\n\nconst webhooksUpdateInputSchema = z.object({\n hookId: z.string(),\n name: z.string().describe('A new display name for the webhook.').optional(),\n events: z\n .array(\n z.enum([\n 'chat.created',\n 'chat.updated',\n 'chat.deleted',\n 'message.created',\n 'message.updated',\n 'message.deleted',\n 'message.finished',\n ]),\n )\n .describe('Updated list of event types to subscribe to.')\n .optional(),\n url: z.string().url().describe('A new target URL to receive webhook payloads.').optional(),\n})\n\nexport function v0Tools(config: V0ToolsConfig = {}): V0ToolsFlat {\n const client = createV0Client(resolveV0ToolsConfig(config))\n\n return {\n chatsCreate: tool({\n description:\n 'Create Chat: Creates a new chat from a prompt. The request blocks until the model response is complete and returns the chat.',\n inputSchema: chatsCreateInputSchema,\n execute: async (input) => {\n const parameters = {\n message: input.message,\n systemPrompt: input.systemPrompt,\n modelConfiguration: input.modelConfiguration,\n attachments: input.attachments,\n mcpServerIds: input.mcpServerIds,\n skills: input.skills,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n credentialAccess: input.credentialAccess,\n }\n return toToolResult(await client.chats.create(parameters))\n },\n }),\n chatsCreateAsync: tool({\n description:\n 'Create Chat (Async): Creates a new chat with a user message and processes it in the background. Returns immediately with the chat ID and message ID. Poll for the assistant message by ID until `finishReason` is non-null.',\n inputSchema: chatsCreateAsyncInputSchema,\n execute: async (input) => {\n const parameters = {\n message: input.message,\n systemPrompt: input.systemPrompt,\n modelConfiguration: input.modelConfiguration,\n attachments: input.attachments,\n mcpServerIds: input.mcpServerIds,\n skills: input.skills,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n credentialAccess: input.credentialAccess,\n }\n return toToolResult(await client.chats.createAsync(parameters))\n },\n }),\n chatsCreateFromFiles: tool({\n description:\n 'Create Chat From Files: Creates a new chat from inline UTF-8 or base64-encoded source files.',\n inputSchema: chatsCreateFromFilesInputSchema,\n execute: async (input) => {\n const parameters = {\n files: input.files,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.createFromFiles(parameters))\n },\n }),\n chatsCreateFromRepo: tool({\n description: 'Create Chat From Repository: Creates a new chat from a GitHub repository.',\n inputSchema: chatsCreateFromRepoInputSchema,\n execute: async (input) => {\n const parameters = {\n repo: input.repo,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.createFromRepo(parameters))\n },\n }),\n chatsCreateFromVercelProject: tool({\n description:\n 'Create Chat From Vercel Project: Creates a new chat from an existing Vercel project.',\n inputSchema: chatsCreateFromVercelProjectInputSchema,\n execute: async (input) => {\n const parameters = {\n vercelProjectId: input.vercelProjectId,\n baseBranch: input.baseBranch,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.createFromVercelProject(parameters))\n },\n }),\n chatsCreateFromZip: tool({\n description: 'Create Chat From ZIP: Creates a new chat from a zip archive.',\n inputSchema: chatsCreateFromZipInputSchema,\n execute: async (input) => {\n const parameters = {\n url: input.url,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.createFromZip(parameters))\n },\n }),\n chatsCreateStream: tool({\n description:\n 'Create Chat (Streaming): Creates a new chat with a user message and returns a Server-Sent Events stream. Events include initial chat state, title deltas, content chunk deltas, and final chat state. The response is `text/event-stream`; each event is `data: <JSON>\\\\n\\\\n` where the JSON conforms to ChatStreamEvent. If the stream disconnects before the final event, reconnect with `POST /chats/{chatId}/resume` instead of sending the message again.',\n inputSchema: chatsCreateStreamInputSchema,\n execute: async function* (input) {\n const parameters = {\n message: input.message,\n systemPrompt: input.systemPrompt,\n modelConfiguration: input.modelConfiguration,\n attachments: input.attachments,\n mcpServerIds: input.mcpServerIds,\n skills: input.skills,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n credentialAccess: input.credentialAccess,\n }\n const result = await client.chats.createStream(parameters)\n yield* result.stream\n },\n }),\n chatsCreateVercelProject: tool({\n description: 'Create Vercel Project: Creates a Vercel project and attaches it to the chat.',\n inputSchema: chatsCreateVercelProjectInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n name: input.name,\n }\n return toToolResult(await client.chats.createVercelProject(parameters))\n },\n }),\n chatsDelete: tool({\n description:\n 'Delete Chat: Deletes a chat and all its associated messages. The requester must have edit access to the chat.',\n inputSchema: chatsDeleteInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n }\n return toToolResult(await client.chats.delete(parameters))\n },\n }),\n chatsDeploy: tool({\n description:\n 'Deploy Chat: Triggers a Vercel deployment for a chat. Creates a Vercel project if one does not exist.',\n inputSchema: chatsDeployInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n }\n return toToolResult(await client.chats.deploy(parameters))\n },\n }),\n chatsDownloadFiles: tool({\n description: 'Download Chat Files: Downloads the source files for a chat as a ZIP archive.',\n inputSchema: chatsDownloadFilesInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n }\n return toToolResult(await client.chats.downloadFiles(parameters))\n },\n }),\n chatsDuplicate: tool({\n description: 'Duplicate Chat: Creates a new chat by duplicating an existing chat.',\n inputSchema: chatsDuplicateInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n privacy: input.privacy,\n title: input.title,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.duplicate(parameters))\n },\n }),\n chatsGet: tool({\n description: 'Get Chat: Retrieves a chat by ID.',\n inputSchema: chatsGetInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n }\n return toToolResult(await client.chats.get(parameters))\n },\n }),\n chatsGetConnectStatus: tool({\n description:\n 'Get Connect Setup Status: Polls the status of a Vercel Connect connector setup started by a `configure_vercel_connect` agent action. Open the `setupUrl` from the agent action data in a browser, then poll this endpoint every few seconds while `pending`. When it returns `ready`, resolve the chat with a `vercel-connect-setup` task to resume generation.',\n inputSchema: chatsGetConnectStatusInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n requestId: input.requestId,\n }\n return toToolResult(await client.chats.getConnectStatus(parameters))\n },\n }),\n chatsGetFiles: tool({\n description: 'Get Chat Files: Returns the source files for a chat.',\n inputSchema: chatsGetFilesInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n }\n return toToolResult(await client.chats.getFiles(parameters))\n },\n }),\n chatsGetPreview: tool({\n description:\n \"Get Preview URL: Returns the preview URL for a chat. If the preview isn't ready, the response is null. Poll this endpoint until the response is non-null.\",\n inputSchema: chatsGetPreviewInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n }\n return toToolResult(await client.chats.getPreview(parameters))\n },\n }),\n chatsList: tool({\n description:\n 'List Chats: Lists chats accessible to the authenticated user. Use metadata[key]=value style query parameters to filter by metadata.',\n inputSchema: chatsListInputSchema,\n execute: async (input) => {\n const parameters = {\n limit: input.limit,\n cursor: input.cursor,\n authorId: input.authorId,\n vercelProjectId: input.vercelProjectId,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.list(parameters))\n },\n }),\n chatsRestoreMessage: tool({\n description:\n 'Restore Message: Restores the files associated with an assistant message. The associated files must not already be the latest files in the chat.',\n inputSchema: chatsRestoreMessageInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n messageId: input.messageId,\n }\n return toToolResult(await client.chats.restoreMessage(parameters))\n },\n }),\n chatsResume: tool({\n description:\n 'Resume Chat Stream: Resumes consumption of the active assistant generation as Server-Sent Events. If the latest message has already finished, returns a closing chat-state event. The response is `text/event-stream`; each event is `data: <JSON>\\\\n\\\\n` where the JSON conforms to ChatStreamEvent.',\n inputSchema: chatsResumeInputSchema,\n execute: async function* (input) {\n const parameters = {\n chatId: input.chatId,\n }\n const result = await client.chats.resume(parameters)\n yield* result.stream\n },\n }),\n chatsUpdate: tool({\n description: \"Update Chat: Updates a chat's title, privacy, or metadata.\",\n inputSchema: chatsUpdateInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n title: input.title,\n privacy: input.privacy,\n metadata: input.metadata,\n }\n return toToolResult(await client.chats.update(parameters))\n },\n }),\n chatsUpdateFiles: tool({\n description:\n 'Update Chat Files: Creates, updates, or deletes UTF-8 or base64-encoded files for a chat. Pass null to delete.',\n inputSchema: chatsUpdateFilesInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n files: input.files,\n }\n return toToolResult(await client.chats.updateFiles(parameters))\n },\n }),\n mcpServersCreate: tool({\n description:\n 'Create MCP Server: Creates a new MCP server configuration. Limited to 100 servers per user.',\n inputSchema: mcpServersCreateInputSchema,\n execute: async (input) => {\n const parameters = {\n name: input.name,\n url: input.url,\n description: input.description,\n enabled: input.enabled,\n auth: input.auth,\n scope: input.scope,\n }\n return toToolResult(await client.mcpServers.create(parameters))\n },\n }),\n mcpServersDelete: tool({\n description:\n 'Delete MCP Server: Deletes an MCP server and cleans up associated OAuth tokens. This action is irreversible.',\n inputSchema: mcpServersDeleteInputSchema,\n execute: async (input) => {\n const parameters = {\n mcpServerId: input.mcpServerId,\n }\n return toToolResult(await client.mcpServers.delete(parameters))\n },\n }),\n mcpServersGet: tool({\n description: 'Get MCP Server: Retrieves a specific MCP server by ID.',\n inputSchema: mcpServersGetInputSchema,\n execute: async (input) => {\n const parameters = {\n mcpServerId: input.mcpServerId,\n }\n return toToolResult(await client.mcpServers.get(parameters))\n },\n }),\n mcpServersList: tool({\n description: 'List MCP Servers: Retrieves all MCP servers configured for the current user.',\n inputSchema: mcpServersListInputSchema,\n execute: async () => {\n return toToolResult(await client.mcpServers.list())\n },\n }),\n mcpServersUpdate: tool({\n description: 'Update MCP Server: Updates an existing MCP server configuration.',\n inputSchema: mcpServersUpdateInputSchema,\n execute: async (input) => {\n const parameters = {\n mcpServerId: input.mcpServerId,\n name: input.name,\n url: input.url,\n description: input.description,\n enabled: input.enabled,\n auth: input.auth,\n scope: input.scope,\n }\n return toToolResult(await client.mcpServers.update(parameters))\n },\n }),\n messagesGet: tool({\n description: 'Get Message: Fetches a single message in a chat.',\n inputSchema: messagesGetInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n messageId: input.messageId,\n }\n return toToolResult(await client.messages.get(parameters))\n },\n }),\n messagesList: tool({\n description: 'List Messages: Lists all messages in a chat.',\n inputSchema: messagesListInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n limit: input.limit,\n cursor: input.cursor,\n }\n return toToolResult(await client.messages.list(parameters))\n },\n }),\n messagesResolve: tool({\n description:\n 'Resolve Task: Resolves a pending task in a chat. Blocks until the model response is complete and returns the resulting message.',\n inputSchema: messagesResolveInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n task: input.task,\n modelConfiguration: input.modelConfiguration,\n }\n return toToolResult(await client.messages.resolve(parameters))\n },\n }),\n messagesResolveAsync: tool({\n description:\n 'Resolve Task (Async): Resolves a pending task and processes it in the background. Returns immediately with the assistant message ID. Poll GET /chats/:chatId/messages/:messageId and check `finishReason` to detect completion.',\n inputSchema: messagesResolveAsyncInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n task: input.task,\n modelConfiguration: input.modelConfiguration,\n }\n return toToolResult(await client.messages.resolveAsync(parameters))\n },\n }),\n messagesResolveStream: tool({\n description:\n 'Resolve Task (Streaming): Resolves a pending task in a chat and returns a Server-Sent Events stream. Events include the initial assistant-message snapshot, content chunk deltas, final usage, and a closing message snapshot. The response is `text/event-stream`; each event is `data: <JSON>\\\\n\\\\n` where the JSON conforms to MessageStreamEvent. If the stream disconnects before the final event, reconnect with `POST /chats/{chatId}/resume` instead of resolving the task again.',\n inputSchema: messagesResolveStreamInputSchema,\n execute: async function* (input) {\n const parameters = {\n chatId: input.chatId,\n task: input.task,\n modelConfiguration: input.modelConfiguration,\n }\n const result = await client.messages.resolveStream(parameters)\n yield* result.stream\n },\n }),\n messagesSend: tool({\n description:\n 'Send Message: Sends a new message to an existing chat. Blocks until the model response is complete and returns the message response. Include designMode to apply element-scoped design edits; message may be omitted when edits are provided.',\n inputSchema: messagesSendInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n message: input.message,\n designMode: input.designMode,\n systemPrompt: input.systemPrompt,\n modelConfiguration: input.modelConfiguration,\n mcpServerIds: input.mcpServerIds,\n attachments: input.attachments,\n skills: input.skills,\n }\n return toToolResult(await client.messages.send(parameters))\n },\n }),\n messagesSendAsync: tool({\n description:\n 'Send Message (Async): Sends a new message to an existing chat and processes it in the background. Include designMode to apply element-scoped design edits; message may be omitted when edits are provided. Returns immediately with the assistant message ID. Poll GET /chats/:chatId/messages/:messageId and check `finishReason` to detect completion.',\n inputSchema: messagesSendAsyncInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n message: input.message,\n designMode: input.designMode,\n systemPrompt: input.systemPrompt,\n modelConfiguration: input.modelConfiguration,\n mcpServerIds: input.mcpServerIds,\n attachments: input.attachments,\n skills: input.skills,\n }\n return toToolResult(await client.messages.sendAsync(parameters))\n },\n }),\n messagesSendStream: tool({\n description:\n 'Send Message (Streaming): Sends a new message to an existing chat and returns a Server-Sent Events stream. Include designMode to apply element-scoped design edits; message may be omitted when edits are provided. Events include the initial assistant-message snapshot, content chunk deltas, final usage, and a closing message snapshot. The response is `text/event-stream`; each event is `data: <JSON>\\\\n\\\\n` where the JSON conforms to MessageStreamEvent. If the stream disconnects before the final event, reconnect with `POST /chats/{chatId}/resume` instead of sending the message again.',\n inputSchema: messagesSendStreamInputSchema,\n execute: async function* (input) {\n const parameters = {\n chatId: input.chatId,\n message: input.message,\n designMode: input.designMode,\n systemPrompt: input.systemPrompt,\n modelConfiguration: input.modelConfiguration,\n mcpServerIds: input.mcpServerIds,\n attachments: input.attachments,\n skills: input.skills,\n }\n const result = await client.messages.sendStream(parameters)\n yield* result.stream\n },\n }),\n messagesStop: tool({\n description:\n 'Stop Message: Stops an in-flight assistant message generation. The agent aborts at the next safe point and the message is marked finished.',\n inputSchema: messagesStopInputSchema,\n execute: async (input) => {\n const parameters = {\n chatId: input.chatId,\n messageId: input.messageId,\n }\n return toToolResult(await client.messages.stop(parameters))\n },\n }),\n settingsAppendPreviewHosts: tool({\n description:\n 'Append Trusted Preview Hosts: Appends host patterns without replacing existing hosts. Returns 422 if any normalized pattern already exists or the resulting list exceeds 100 hosts. The entire request succeeds or fails together.',\n inputSchema: settingsAppendPreviewHostsInputSchema,\n execute: async (input) => {\n const parameters = {\n hosts: input.hosts,\n }\n return toToolResult(await client.settings.appendPreviewHosts(parameters))\n },\n }),\n settingsDeletePreviewHosts: tool({\n description:\n 'Delete Trusted Preview Hosts: Deletes exact normalized host patterns. Returns 404 if any pattern is not configured. Wildcard coverage does not count as an exact match. The entire request succeeds or fails together.',\n inputSchema: settingsDeletePreviewHostsInputSchema,\n execute: async (input) => {\n const parameters = {\n hosts: input.hosts,\n }\n return toToolResult(await client.settings.deletePreviewHosts(parameters))\n },\n }),\n settingsGetPreviewHosts: tool({\n description:\n 'Get Trusted Preview Hosts: Returns the hostname patterns trusted to embed previews for the current team.',\n inputSchema: settingsGetPreviewHostsInputSchema,\n execute: async () => {\n return toToolResult(await client.settings.getPreviewHosts())\n },\n }),\n settingsSetPreviewHosts: tool({\n description:\n 'Set Trusted Preview Hosts: Sets the host patterns trusted to embed previews for a team.',\n inputSchema: settingsSetPreviewHostsInputSchema,\n execute: async (input) => {\n const parameters = {\n hosts: input.hosts,\n }\n return toToolResult(await client.settings.setPreviewHosts(parameters))\n },\n }),\n usageGetActivity: tool({\n description:\n 'Get Usage Activity: Returns chat and project activity for the active billing scope. Team owners and billing members receive team-wide activity by default; other team members receive their own activity.',\n inputSchema: usageGetActivityInputSchema,\n execute: async (input) => {\n const parameters = {\n start: input.start === undefined ? undefined : new Date(input.start),\n end: input.end === undefined ? undefined : new Date(input.end),\n userId: input.userId,\n }\n return toToolResult(await client.usage.getActivity(parameters))\n },\n }),\n usageGetSummary: tool({\n description:\n 'Get Usage Summary: Returns credit usage for the active billing scope. Team owners and billing members receive team-wide usage by default; other team members receive their own usage.',\n inputSchema: usageGetSummaryInputSchema,\n execute: async (input) => {\n const parameters = {\n start: input.start === undefined ? undefined : new Date(input.start),\n end: input.end === undefined ? undefined : new Date(input.end),\n userId: input.userId,\n }\n return toToolResult(await client.usage.getSummary(parameters))\n },\n }),\n usageListEvents: tool({\n description:\n 'List Usage Events: Lists individual credit usage events. Each event includes the credits charged and, when available, associated token counts.',\n inputSchema: usageListEventsInputSchema,\n execute: async (input) => {\n const parameters = {\n start: input.start === undefined ? undefined : new Date(input.start),\n end: input.end === undefined ? undefined : new Date(input.end),\n userId: input.userId,\n chatId: input.chatId,\n messageId: input.messageId,\n limit: input.limit,\n cursor: input.cursor,\n }\n return toToolResult(await client.usage.listEvents(parameters))\n },\n }),\n webhooksCreate: tool({\n description:\n 'Create Webhook: Creates a new webhook that listens for specific events. Supports optional association with a chat.',\n inputSchema: webhooksCreateInputSchema,\n execute: async (input) => {\n const parameters = {\n name: input.name,\n events: input.events,\n url: input.url,\n chatId: input.chatId,\n }\n return toToolResult(await client.webhooks.create(parameters))\n },\n }),\n webhooksDelete: tool({\n description: 'Delete Webhook: Deletes a webhook. This action is irreversible.',\n inputSchema: webhooksDeleteInputSchema,\n execute: async (input) => {\n const parameters = {\n hookId: input.hookId,\n }\n return toToolResult(await client.webhooks.delete(parameters))\n },\n }),\n webhooksGet: tool({\n description: 'Get Webhook: Retrieves the details of a specific webhook using its ID.',\n inputSchema: webhooksGetInputSchema,\n execute: async (input) => {\n const parameters = {\n hookId: input.hookId,\n }\n return toToolResult(await client.webhooks.get(parameters))\n },\n }),\n webhooksList: tool({\n description: 'List Webhooks: Retrieves a list of all webhooks in your workspace.',\n inputSchema: webhooksListInputSchema,\n execute: async () => {\n return toToolResult(await client.webhooks.list())\n },\n }),\n webhooksUpdate: tool({\n description:\n 'Update Webhook: Updates the configuration of an existing webhook, including its name, event subscriptions, or target URL.',\n inputSchema: webhooksUpdateInputSchema,\n execute: async (input) => {\n const parameters = {\n hookId: input.hookId,\n name: input.name,\n events: input.events,\n url: input.url,\n }\n return toToolResult(await client.webhooks.update(parameters))\n },\n }),\n } satisfies V0ToolsFlat\n}\n\nexport function v0ToolsByCategory(config: V0ToolsConfig = {}): V0ToolsByCategory {\n const tools = v0Tools(config)\n\n return {\n chats: {\n chatsCreate: pickTool(tools, 'chatsCreate'),\n chatsCreateAsync: pickTool(tools, 'chatsCreateAsync'),\n chatsCreateFromFiles: pickTool(tools, 'chatsCreateFromFiles'),\n chatsCreateFromRepo: pickTool(tools, 'chatsCreateFromRepo'),\n chatsCreateFromVercelProject: pickTool(tools, 'chatsCreateFromVercelProject'),\n chatsCreateFromZip: pickTool(tools, 'chatsCreateFromZip'),\n chatsCreateStream: pickTool(tools, 'chatsCreateStream'),\n chatsCreateVercelProject: pickTool(tools, 'chatsCreateVercelProject'),\n chatsDelete: pickTool(tools, 'chatsDelete'),\n chatsDeploy: pickTool(tools, 'chatsDeploy'),\n chatsDownloadFiles: pickTool(tools, 'chatsDownloadFiles'),\n chatsDuplicate: pickTool(tools, 'chatsDuplicate'),\n chatsGet: pickTool(tools, 'chatsGet'),\n chatsGetConnectStatus: pickTool(tools, 'chatsGetConnectStatus'),\n chatsGetFiles: pickTool(tools, 'chatsGetFiles'),\n chatsGetPreview: pickTool(tools, 'chatsGetPreview'),\n chatsList: pickTool(tools, 'chatsList'),\n chatsRestoreMessage: pickTool(tools, 'chatsRestoreMessage'),\n chatsResume: pickTool(tools, 'chatsResume'),\n chatsUpdate: pickTool(tools, 'chatsUpdate'),\n chatsUpdateFiles: pickTool(tools, 'chatsUpdateFiles'),\n },\n mcpServers: {\n mcpServersCreate: pickTool(tools, 'mcpServersCreate'),\n mcpServersDelete: pickTool(tools, 'mcpServersDelete'),\n mcpServersGet: pickTool(tools, 'mcpServersGet'),\n mcpServersList: pickTool(tools, 'mcpServersList'),\n mcpServersUpdate: pickTool(tools, 'mcpServersUpdate'),\n },\n messages: {\n messagesGet: pickTool(tools, 'messagesGet'),\n messagesList: pickTool(tools, 'messagesList'),\n messagesResolve: pickTool(tools, 'messagesResolve'),\n messagesResolveAsync: pickTool(tools, 'messagesResolveAsync'),\n messagesResolveStream: pickTool(tools, 'messagesResolveStream'),\n messagesSend: pickTool(tools, 'messagesSend'),\n messagesSendAsync: pickTool(tools, 'messagesSendAsync'),\n messagesSendStream: pickTool(tools, 'messagesSendStream'),\n messagesStop: pickTool(tools, 'messagesStop'),\n },\n settings: {\n settingsAppendPreviewHosts: pickTool(tools, 'settingsAppendPreviewHosts'),\n settingsDeletePreviewHosts: pickTool(tools, 'settingsDeletePreviewHosts'),\n settingsGetPreviewHosts: pickTool(tools, 'settingsGetPreviewHosts'),\n settingsSetPreviewHosts: pickTool(tools, 'settingsSetPreviewHosts'),\n },\n usage: {\n usageGetActivity: pickTool(tools, 'usageGetActivity'),\n usageGetSummary: pickTool(tools, 'usageGetSummary'),\n usageListEvents: pickTool(tools, 'usageListEvents'),\n },\n webhooks: {\n webhooksCreate: pickTool(tools, 'webhooksCreate'),\n webhooksDelete: pickTool(tools, 'webhooksDelete'),\n webhooksGet: pickTool(tools, 'webhooksGet'),\n webhooksList: pickTool(tools, 'webhooksList'),\n webhooksUpdate: pickTool(tools, 'webhooksUpdate'),\n },\n }\n}\n\nfunction resolveV0ToolsConfig(config: V0ToolsConfig): Parameters<typeof createV0ClientType>[0] {\n const { apiKey, ...clientConfig } = config\n const envApiKey = typeof process !== 'undefined' ? process.env['V0_API_KEY'] : undefined\n const auth = clientConfig.auth ?? apiKey ?? envApiKey\n\n return auth === undefined ? clientConfig : { ...clientConfig, auth }\n}\n\nfunction pickTool(tools: V0ToolsFlat, key: V0ToolName): V0GeneratedTool {\n const selected = tools[key]\n if (!selected) {\n throw new Error(`Missing generated v0 tool: ${key}`)\n }\n\n return selected\n}\n\nfunction toToolResult(result: unknown): unknown {\n if (result && typeof result === 'object' && ('data' in result || 'error' in result)) {\n const response = result as { data?: unknown; error?: unknown }\n\n if (response.error !== undefined) {\n return { error: response.error }\n }\n\n return response.data ?? null\n }\n\n return result\n}\n"],"mappings":"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"}