@v0-sdk/ai-tools 3.0.7 → 3.0.8-canary.1ad7fc7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`ai`),t=require(`v0`),n=require(`zod`);const r=n.z.object({message:n.z.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.z.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),attachments:n.z.array(n.z.union([n.z.object({url:n.z.string().describe(`URL or data URI containing the attachment.`)}),n.z.object({name:n.z.string().describe(`Display name for the inline text attachment.`).optional(),content:n.z.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),mcpServerIds:n.z.array(n.z.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),skills:n.z.array(n.z.union([n.z.object({type:n.z.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.z.string().describe(`Skill ID from skills.sh.`)}),n.z.object({type:n.z.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.z.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.z.string().describe(`Name of the memory skill to attach.`)}),n.z.object({type:n.z.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.z.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional(),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.z.string().describe(`Title for the new chat.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),i=n.z.object({message:n.z.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.z.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),attachments:n.z.array(n.z.union([n.z.object({url:n.z.string().describe(`URL or data URI containing the attachment.`)}),n.z.object({name:n.z.string().describe(`Display name for the inline text attachment.`).optional(),content:n.z.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),mcpServerIds:n.z.array(n.z.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),skills:n.z.array(n.z.union([n.z.object({type:n.z.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.z.string().describe(`Skill ID from skills.sh.`)}),n.z.object({type:n.z.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.z.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.z.string().describe(`Name of the memory skill to attach.`)}),n.z.object({type:n.z.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.z.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional(),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.z.string().describe(`Title for the new chat.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),a=n.z.object({files:n.z.array(n.z.object({name:n.z.string().describe(`Path of the file in the project.`),content:n.z.string().describe(`UTF-8 text content of the file.`)})).describe(`Source files used to seed the new chat.`),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.z.string().describe(`Title for the new chat.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),o=n.z.object({repo:n.z.object({url:n.z.string().describe(`GitHub repository URL, for example https://github.com/vercel/next.js.`),branch:n.z.string().describe(`Branch to import. If omitted, v0 uses the repository default branch.`).optional()}).describe(`Repository source for initialization. Supports public GitHub repositories and private repositories connected through Vercel.`),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.z.string().describe(`Title for the new chat.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),s=n.z.object({vercelProjectId:n.z.string().describe(`Vercel project ID in the active user or team scope.`),baseBranch:n.z.string().describe(`Base branch for a GitHub-linked project. Defaults to the repository default branch. Ignored for projects without a GitHub link.`).optional()}),c=n.z.object({url:n.z.string().url().describe(`Zip archive used to seed the new chat.`),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.z.string().describe(`Title for the new chat.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),l=n.z.object({message:n.z.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.z.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),attachments:n.z.array(n.z.union([n.z.object({url:n.z.string().describe(`URL or data URI containing the attachment.`)}),n.z.object({name:n.z.string().describe(`Display name for the inline text attachment.`).optional(),content:n.z.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),mcpServerIds:n.z.array(n.z.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),skills:n.z.array(n.z.union([n.z.object({type:n.z.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.z.string().describe(`Skill ID from skills.sh.`)}),n.z.object({type:n.z.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.z.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.z.string().describe(`Name of the memory skill to attach.`)}),n.z.object({type:n.z.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.z.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional(),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.z.string().describe(`Title for the new chat.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),u=n.z.object({chatId:n.z.string(),name:n.z.string().describe(`Name for the Vercel project. When omitted, the chat's title is used.`).optional()}),d=n.z.object({chatId:n.z.string()}),f=n.z.object({chatId:n.z.string()}),p=n.z.object({chatId:n.z.string()}),m=n.z.object({chatId:n.z.string(),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the duplicated chat.`),title:n.z.string().describe(`Custom title for the duplicated chat. If omitted, the original title is reused with an incremented suffix (e.g. "My Chat (2)").`).optional()}),h=n.z.object({chatId:n.z.string()}),g=n.z.object({chatId:n.z.string(),requestId:n.z.string()}),_=n.z.object({chatId:n.z.string()}),v=n.z.object({chatId:n.z.string()}),y=n.z.object({limit:n.z.number().int().describe(`Maximum number of chats to return (1-100, default 20).`).optional(),cursor:n.z.string().describe(`Pagination cursor returned from a previous response.`).optional(),authorId:n.z.string().describe(`Restrict results to chats created by this user. Must be a member of the calling scope.`).optional(),vercelProjectId:n.z.string().describe(`Restrict results to chats associated with this Vercel project.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Filter by metadata, e.g. metadata[environment]=production. Returns chats matching all supplied key-value pairs.`).optional()}),b=n.z.object({chatId:n.z.string(),messageId:n.z.string().describe(`The unique identifier of the assistant message whose files to restore.`)}),x=n.z.object({chatId:n.z.string()}),S=n.z.object({chatId:n.z.string(),title:n.z.string().describe(`A new title to assign to the chat.`).optional(),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Updated visibility setting for the chat.`).optional(),metadata:n.z.union([n.z.record(n.z.string(),n.z.union([n.z.string(),n.z.null()])),n.z.null()]).describe("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.").optional()}),C=n.z.object({chatId:n.z.string(),files:n.z.array(n.z.object({path:n.z.string().describe(`Project-relative file path, e.g. "app/page.tsx".`),content:n.z.union([n.z.string(),n.z.null()]).describe("New file content. Pass `null` to delete the file at this path.")})).describe(`The files to create, update, or delete. Each path must be unique.`)}),w=n.z.object({name:n.z.string().describe(`Display name for the MCP server.`),url:n.z.string().url().describe(`URL endpoint of the MCP server.`),description:n.z.string().describe(`Optional description of the MCP server.`).optional(),enabled:n.z.boolean().describe(`Whether the server should be enabled.`),auth:n.z.union([n.z.object({type:n.z.enum([`none`])}),n.z.object({type:n.z.enum([`bearer`]),token:n.z.string().describe(`Bearer token for authentication.`)}),n.z.object({type:n.z.enum([`custom-headers`]),headers:n.z.record(n.z.string(),n.z.string()).describe(`Custom headers to include in requests.`)}),n.z.object({type:n.z.enum([`oauth`]),config:n.z.object({authorizationUrl:n.z.string().url(),tokenUrl:n.z.string().url(),registrationUrl:n.z.string().url().optional(),clientId:n.z.string(),clientSecret:n.z.string().optional(),scopes:n.z.array(n.z.string()),usePKCE:n.z.boolean(),issuer:n.z.string().optional(),resource:n.z.string().optional(),clientIdMetadataDocumentSupported:n.z.boolean().optional()}).describe(`OAuth configuration discovered or manually set.`).optional(),connected:n.z.boolean().describe(`Whether OAuth is currently connected.`),expiresAt:n.z.string().describe(`ISO timestamp when the token expires.`).optional()})]).describe(`Authentication configuration.`),scope:n.z.enum([`user`,`team`]).describe(`Scope of the MCP server configuration.`)}),T=n.z.object({mcpServerId:n.z.string()}),E=n.z.object({mcpServerId:n.z.string()}),D=n.z.object({}),O=n.z.object({mcpServerId:n.z.string(),name:n.z.string().describe(`New display name.`).optional(),url:n.z.string().url().describe(`New URL endpoint.`).optional(),description:n.z.string().describe(`New description.`).optional(),enabled:n.z.boolean().describe(`Enable or disable.`).optional(),auth:n.z.union([n.z.object({type:n.z.enum([`none`])}),n.z.object({type:n.z.enum([`bearer`]),token:n.z.string().describe(`Bearer token for authentication.`)}),n.z.object({type:n.z.enum([`custom-headers`]),headers:n.z.record(n.z.string(),n.z.string()).describe(`Custom headers to include in requests.`)}),n.z.object({type:n.z.enum([`oauth`]),config:n.z.object({authorizationUrl:n.z.string().url(),tokenUrl:n.z.string().url(),registrationUrl:n.z.string().url().optional(),clientId:n.z.string(),clientSecret:n.z.string().optional(),scopes:n.z.array(n.z.string()),usePKCE:n.z.boolean(),issuer:n.z.string().optional(),resource:n.z.string().optional(),clientIdMetadataDocumentSupported:n.z.boolean().optional()}).describe(`OAuth configuration discovered or manually set.`).optional(),connected:n.z.boolean().describe(`Whether OAuth is currently connected.`),expiresAt:n.z.string().describe(`ISO timestamp when the token expires.`).optional()})]).describe(`New authentication configuration.`).optional(),scope:n.z.enum([`user`,`team`]).describe(`New scope.`).optional()}),k=n.z.object({chatId:n.z.string(),messageId:n.z.string()}),A=n.z.object({chatId:n.z.string(),limit:n.z.number().int(),cursor:n.z.string().optional()}),j=n.z.object({chatId:n.z.string(),task:n.z.union([n.z.object({type:n.z.enum([`confirmed-steps`]),connectedIntegrationNames:n.z.array(n.z.string()).describe(`Names of integrations that were successfully connected (e.g. "Neon"). Pass an empty array to skip.`).optional(),connectedNpmRegistryIds:n.z.array(n.z.string()).describe(`Qualified npm registry IDs that were successfully connected (e.g. "npm:https://registry.example.com/"). Pass an empty array to skip.`).optional(),connectedMcpPresetNames:n.z.array(n.z.enum([`Linear`,`Notion`,`Context7`,`Sentry`,`Zapier`,`Glean`,`Hex`,`Sanity`,`Granola`,`PostHog`,`Contentful`,`Slack`])).describe(`Names of MCP presets that were connected (e.g. "Linear", "Sentry"). Pass an empty array to skip.`).optional(),appliedScripts:n.z.array(n.z.string()).describe(`Names of scripts that were applied.`).optional(),addedEnvVars:n.z.array(n.z.string()).describe(`Names of environment variables that were added.`).optional()}),n.z.object({type:n.z.enum([`plan-exit-response`]),status:n.z.enum([`approved`,`rejected`,`request-changes`]).describe(`Whether the plan is approved, rejected, or needs changes.`),content:n.z.string().describe(`Feedback or instructions for the agent.`)}),n.z.object({type:n.z.enum([`answered-questions`]),answers:n.z.array(n.z.object({questionId:n.z.string().describe(`The ID of the question being answered.`),questionText:n.z.string().describe(`The text of the question being answered.`),selectedLabels:n.z.array(n.z.string()).describe(`The labels of the selected options. For single-select questions, pass one item.`),customText:n.z.string().describe(`Free-form text input, used when the user selects "Other" or wants to add context.`).optional()})).describe(`Answers to the questions the agent asked.`)}),n.z.object({type:n.z.enum([`confirmed-permissions`]),permissions:n.z.array(n.z.object({type:n.z.enum([`ALLOW_DYNAMIC_TOOL_STRICT`]),toolName:n.z.string().describe(`The name of the tool being permitted.`),input:n.z.unknown().describe(`The tool call input arguments. Pass the exact input from the stopped task.`),toolDisplayName:n.z.union([n.z.string(),n.z.null()]).describe(`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.`).optional(),taskNameActive:n.z.union([n.z.string(),n.z.null()]).describe(`Label shown while the tool is running (e.g. "Running migration").`).optional(),taskNameComplete:n.z.union([n.z.string(),n.z.null()]).describe(`Label shown after the tool completes (e.g. "Migration complete").`).optional(),userMessage:n.z.string().describe(`Optional message from the user about this permission.`).optional()})).describe(`The permissions to grant. Pass the suggestedPermissions from the stopped task.`),userMessage:n.z.string().describe(`Optional message from the user about the permission grant.`).optional()}),n.z.object({type:n.z.enum([`vercel-connect-setup`])}),n.z.object({type:n.z.enum([`vercel-connect-authorization`])})]).describe(`The task resolution data. Use this when the chat is waiting for user input on the matching task type.`),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`).optional(),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`).optional()}).describe(`Overrides for the model behavior.`).optional()}),M=n.z.object({chatId:n.z.string(),task:n.z.union([n.z.object({type:n.z.enum([`confirmed-steps`]),connectedIntegrationNames:n.z.array(n.z.string()).describe(`Names of integrations that were successfully connected (e.g. "Neon"). Pass an empty array to skip.`).optional(),connectedNpmRegistryIds:n.z.array(n.z.string()).describe(`Qualified npm registry IDs that were successfully connected (e.g. "npm:https://registry.example.com/"). Pass an empty array to skip.`).optional(),connectedMcpPresetNames:n.z.array(n.z.enum([`Linear`,`Notion`,`Context7`,`Sentry`,`Zapier`,`Glean`,`Hex`,`Sanity`,`Granola`,`PostHog`,`Contentful`,`Slack`])).describe(`Names of MCP presets that were connected (e.g. "Linear", "Sentry"). Pass an empty array to skip.`).optional(),appliedScripts:n.z.array(n.z.string()).describe(`Names of scripts that were applied.`).optional(),addedEnvVars:n.z.array(n.z.string()).describe(`Names of environment variables that were added.`).optional()}),n.z.object({type:n.z.enum([`plan-exit-response`]),status:n.z.enum([`approved`,`rejected`,`request-changes`]).describe(`Whether the plan is approved, rejected, or needs changes.`),content:n.z.string().describe(`Feedback or instructions for the agent.`)}),n.z.object({type:n.z.enum([`answered-questions`]),answers:n.z.array(n.z.object({questionId:n.z.string().describe(`The ID of the question being answered.`),questionText:n.z.string().describe(`The text of the question being answered.`),selectedLabels:n.z.array(n.z.string()).describe(`The labels of the selected options. For single-select questions, pass one item.`),customText:n.z.string().describe(`Free-form text input, used when the user selects "Other" or wants to add context.`).optional()})).describe(`Answers to the questions the agent asked.`)}),n.z.object({type:n.z.enum([`confirmed-permissions`]),permissions:n.z.array(n.z.object({type:n.z.enum([`ALLOW_DYNAMIC_TOOL_STRICT`]),toolName:n.z.string().describe(`The name of the tool being permitted.`),input:n.z.unknown().describe(`The tool call input arguments. Pass the exact input from the stopped task.`),toolDisplayName:n.z.union([n.z.string(),n.z.null()]).describe(`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.`).optional(),taskNameActive:n.z.union([n.z.string(),n.z.null()]).describe(`Label shown while the tool is running (e.g. "Running migration").`).optional(),taskNameComplete:n.z.union([n.z.string(),n.z.null()]).describe(`Label shown after the tool completes (e.g. "Migration complete").`).optional(),userMessage:n.z.string().describe(`Optional message from the user about this permission.`).optional()})).describe(`The permissions to grant. Pass the suggestedPermissions from the stopped task.`),userMessage:n.z.string().describe(`Optional message from the user about the permission grant.`).optional()}),n.z.object({type:n.z.enum([`vercel-connect-setup`])}),n.z.object({type:n.z.enum([`vercel-connect-authorization`])})]).describe(`The task resolution data. Use this when the chat is waiting for user input on the matching task type.`),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`).optional(),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`).optional()}).describe(`Overrides for the model behavior.`).optional()}),N=n.z.object({chatId:n.z.string(),task:n.z.union([n.z.object({type:n.z.enum([`confirmed-steps`]),connectedIntegrationNames:n.z.array(n.z.string()).describe(`Names of integrations that were successfully connected (e.g. "Neon"). Pass an empty array to skip.`).optional(),connectedNpmRegistryIds:n.z.array(n.z.string()).describe(`Qualified npm registry IDs that were successfully connected (e.g. "npm:https://registry.example.com/"). Pass an empty array to skip.`).optional(),connectedMcpPresetNames:n.z.array(n.z.enum([`Linear`,`Notion`,`Context7`,`Sentry`,`Zapier`,`Glean`,`Hex`,`Sanity`,`Granola`,`PostHog`,`Contentful`,`Slack`])).describe(`Names of MCP presets that were connected (e.g. "Linear", "Sentry"). Pass an empty array to skip.`).optional(),appliedScripts:n.z.array(n.z.string()).describe(`Names of scripts that were applied.`).optional(),addedEnvVars:n.z.array(n.z.string()).describe(`Names of environment variables that were added.`).optional()}),n.z.object({type:n.z.enum([`plan-exit-response`]),status:n.z.enum([`approved`,`rejected`,`request-changes`]).describe(`Whether the plan is approved, rejected, or needs changes.`),content:n.z.string().describe(`Feedback or instructions for the agent.`)}),n.z.object({type:n.z.enum([`answered-questions`]),answers:n.z.array(n.z.object({questionId:n.z.string().describe(`The ID of the question being answered.`),questionText:n.z.string().describe(`The text of the question being answered.`),selectedLabels:n.z.array(n.z.string()).describe(`The labels of the selected options. For single-select questions, pass one item.`),customText:n.z.string().describe(`Free-form text input, used when the user selects "Other" or wants to add context.`).optional()})).describe(`Answers to the questions the agent asked.`)}),n.z.object({type:n.z.enum([`confirmed-permissions`]),permissions:n.z.array(n.z.object({type:n.z.enum([`ALLOW_DYNAMIC_TOOL_STRICT`]),toolName:n.z.string().describe(`The name of the tool being permitted.`),input:n.z.unknown().describe(`The tool call input arguments. Pass the exact input from the stopped task.`),toolDisplayName:n.z.union([n.z.string(),n.z.null()]).describe(`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.`).optional(),taskNameActive:n.z.union([n.z.string(),n.z.null()]).describe(`Label shown while the tool is running (e.g. "Running migration").`).optional(),taskNameComplete:n.z.union([n.z.string(),n.z.null()]).describe(`Label shown after the tool completes (e.g. "Migration complete").`).optional(),userMessage:n.z.string().describe(`Optional message from the user about this permission.`).optional()})).describe(`The permissions to grant. Pass the suggestedPermissions from the stopped task.`),userMessage:n.z.string().describe(`Optional message from the user about the permission grant.`).optional()}),n.z.object({type:n.z.enum([`vercel-connect-setup`])}),n.z.object({type:n.z.enum([`vercel-connect-authorization`])})]).describe(`The task resolution data. Use this when the chat is waiting for user input on the matching task type.`),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`).optional(),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`).optional()}).describe(`Overrides for the model behavior.`).optional()}),P=n.z.object({chatId:n.z.string(),message:n.z.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.z.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),mcpServerIds:n.z.array(n.z.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),attachments:n.z.array(n.z.union([n.z.object({url:n.z.string().describe(`URL or data URI containing the attachment.`)}),n.z.object({name:n.z.string().describe(`Display name for the inline text attachment.`).optional(),content:n.z.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),skills:n.z.array(n.z.union([n.z.object({type:n.z.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.z.string().describe(`Skill ID from skills.sh.`)}),n.z.object({type:n.z.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.z.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.z.string().describe(`Name of the memory skill to attach.`)}),n.z.object({type:n.z.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.z.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional()}),F=n.z.object({chatId:n.z.string(),message:n.z.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.z.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),mcpServerIds:n.z.array(n.z.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),attachments:n.z.array(n.z.union([n.z.object({url:n.z.string().describe(`URL or data URI containing the attachment.`)}),n.z.object({name:n.z.string().describe(`Display name for the inline text attachment.`).optional(),content:n.z.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),skills:n.z.array(n.z.union([n.z.object({type:n.z.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.z.string().describe(`Skill ID from skills.sh.`)}),n.z.object({type:n.z.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.z.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.z.string().describe(`Name of the memory skill to attach.`)}),n.z.object({type:n.z.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.z.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional()}),I=n.z.object({chatId:n.z.string(),message:n.z.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.z.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),mcpServerIds:n.z.array(n.z.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),attachments:n.z.array(n.z.union([n.z.object({url:n.z.string().describe(`URL or data URI containing the attachment.`)}),n.z.object({name:n.z.string().describe(`Display name for the inline text attachment.`).optional(),content:n.z.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),skills:n.z.array(n.z.union([n.z.object({type:n.z.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.z.string().describe(`Skill ID from skills.sh.`)}),n.z.object({type:n.z.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.z.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.z.string().describe(`Name of the memory skill to attach.`)}),n.z.object({type:n.z.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.z.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional()}),L=n.z.object({chatId:n.z.string(),messageId:n.z.string()}),R=n.z.object({}),z=n.z.object({hosts:n.z.array(n.z.string()).describe(`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.`)}),B=n.z.object({start:n.z.string().datetime().optional(),end:n.z.string().datetime().optional(),userId:n.z.string().optional()}),V=n.z.object({start:n.z.string().datetime().optional(),end:n.z.string().datetime().optional(),userId:n.z.string().optional()}),H=n.z.object({start:n.z.string().datetime().optional(),end:n.z.string().datetime().optional(),userId:n.z.string().optional(),chatId:n.z.string().optional(),messageId:n.z.string().optional(),limit:n.z.number().int().optional(),cursor:n.z.string().optional()}),U=n.z.object({name:n.z.string().describe(`A human-readable name for the webhook.`),events:n.z.array(n.z.enum([`chat.created`,`chat.updated`,`chat.deleted`,`message.created`,`message.updated`,`message.deleted`,`message.finished`])).describe(`List of event types the webhook should subscribe to.`),url:n.z.string().url().describe(`The target URL to receive the webhook payloads.`),chatId:n.z.union([n.z.string(),n.z.null()]).describe(`The ID of a chat to scope the webhook to.`)}),W=n.z.object({hookId:n.z.string()}),G=n.z.object({hookId:n.z.string()}),K=n.z.object({}),q=n.z.object({hookId:n.z.string(),name:n.z.string().describe(`A new display name for the webhook.`).optional(),events:n.z.array(n.z.enum([`chat.created`,`chat.updated`,`chat.deleted`,`message.created`,`message.updated`,`message.deleted`,`message.finished`])).describe(`Updated list of event types to subscribe to.`).optional(),url:n.z.string().url().describe(`A new target URL to receive webhook payloads.`).optional()});function J(n={}){let J=(0,t.createV0Client)(X(n));return{chatsCreate:(0,e.tool)({description:`Create Chat: Creates a new chat from a prompt. The request blocks until the model response is complete and returns the chat.`,inputSchema:r,execute:async e=>{let t={message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,attachments:e.attachments,mcpServerIds:e.mcpServerIds,skills:e.skills,privacy:e.privacy,title:e.title,metadata:e.metadata};return Q(await J.chats.create(t))}}),chatsCreateAsync:(0,e.tool)({description:"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.",inputSchema:i,execute:async e=>{let t={message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,attachments:e.attachments,mcpServerIds:e.mcpServerIds,skills:e.skills,privacy:e.privacy,title:e.title,metadata:e.metadata};return Q(await J.chats.createAsync(t))}}),chatsCreateFromFiles:(0,e.tool)({description:`Create Chat From Files: Creates a new chat from inline source files.`,inputSchema:a,execute:async e=>{let t={files:e.files,privacy:e.privacy,title:e.title,metadata:e.metadata};return Q(await J.chats.createFromFiles(t))}}),chatsCreateFromRepo:(0,e.tool)({description:`Create Chat From Repository: Creates a new chat from a GitHub repository.`,inputSchema:o,execute:async e=>{let t={repo:e.repo,privacy:e.privacy,title:e.title,metadata:e.metadata};return Q(await J.chats.createFromRepo(t))}}),chatsCreateFromVercelProject:(0,e.tool)({description:`Create Chat From Vercel Project: Creates a new chat from an existing Vercel project.`,inputSchema:s,execute:async e=>{let t={vercelProjectId:e.vercelProjectId,baseBranch:e.baseBranch};return Q(await J.chats.createFromVercelProject(t))}}),chatsCreateFromZip:(0,e.tool)({description:`Create Chat From ZIP: Creates a new chat from a zip archive.`,inputSchema:c,execute:async e=>{let t={url:e.url,privacy:e.privacy,title:e.title,metadata:e.metadata};return Q(await J.chats.createFromZip(t))}}),chatsCreateStream:(0,e.tool)({description:"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.",inputSchema:l,execute:async function*(e){let t={message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,attachments:e.attachments,mcpServerIds:e.mcpServerIds,skills:e.skills,privacy:e.privacy,title:e.title,metadata:e.metadata};yield*(await J.chats.createStream(t)).stream}}),chatsCreateVercelProject:(0,e.tool)({description:`Create Vercel Project: Creates a Vercel project and attaches it to the chat.`,inputSchema:u,execute:async e=>{let t={chatId:e.chatId,name:e.name};return Q(await J.chats.createVercelProject(t))}}),chatsDelete:(0,e.tool)({description:`Delete Chat: Deletes a chat and all its associated messages. The requester must have edit access to the chat.`,inputSchema:d,execute:async e=>{let t={chatId:e.chatId};return Q(await J.chats.delete(t))}}),chatsDeploy:(0,e.tool)({description:`Deploy Chat: Triggers a Vercel deployment for a chat. Creates a Vercel project if one does not exist.`,inputSchema:f,execute:async e=>{let t={chatId:e.chatId};return Q(await J.chats.deploy(t))}}),chatsDownloadFiles:(0,e.tool)({description:`Download Chat Files: Downloads the source files for a chat as a ZIP archive.`,inputSchema:p,execute:async e=>{let t={chatId:e.chatId};return Q(await J.chats.downloadFiles(t))}}),chatsDuplicate:(0,e.tool)({description:`Duplicate Chat: Creates a new chat by duplicating an existing chat.`,inputSchema:m,execute:async e=>{let t={chatId:e.chatId,privacy:e.privacy,title:e.title};return Q(await J.chats.duplicate(t))}}),chatsGet:(0,e.tool)({description:`Get Chat: Retrieves a chat by ID.`,inputSchema:h,execute:async e=>{let t={chatId:e.chatId};return Q(await J.chats.get(t))}}),chatsGetConnectStatus:(0,e.tool)({description:"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.",inputSchema:g,execute:async e=>{let t={chatId:e.chatId,requestId:e.requestId};return Q(await J.chats.getConnectStatus(t))}}),chatsGetFiles:(0,e.tool)({description:`Get Chat Files: Returns the source files for a chat.`,inputSchema:_,execute:async e=>{let t={chatId:e.chatId};return Q(await J.chats.getFiles(t))}}),chatsGetPreview:(0,e.tool)({description:`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.`,inputSchema:v,execute:async e=>{let t={chatId:e.chatId};return Q(await J.chats.getPreview(t))}}),chatsList:(0,e.tool)({description:`List Chats: Lists chats accessible to the authenticated user. Use metadata[key]=value style query parameters to filter by metadata.`,inputSchema:y,execute:async e=>{let t={limit:e.limit,cursor:e.cursor,authorId:e.authorId,vercelProjectId:e.vercelProjectId,metadata:e.metadata};return Q(await J.chats.list(t))}}),chatsRestoreMessage:(0,e.tool)({description:`Restore Message: Restores the files associated with an assistant message. The associated files must not already be the latest files in the chat.`,inputSchema:b,execute:async e=>{let t={chatId:e.chatId,messageId:e.messageId};return Q(await J.chats.restoreMessage(t))}}),chatsResume:(0,e.tool)({description:"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.",inputSchema:x,execute:async function*(e){let t={chatId:e.chatId};yield*(await J.chats.resume(t)).stream}}),chatsUpdate:(0,e.tool)({description:`Update Chat: Updates a chat's title, privacy, or metadata.`,inputSchema:S,execute:async e=>{let t={chatId:e.chatId,title:e.title,privacy:e.privacy,metadata:e.metadata};return Q(await J.chats.update(t))}}),chatsUpdateFiles:(0,e.tool)({description:`Update Chat Files: Creates, updates, or deletes files for a chat. Pass null to delete. This requires the chat's preview to be running.`,inputSchema:C,execute:async e=>{let t={chatId:e.chatId,files:e.files};return Q(await J.chats.updateFiles(t))}}),mcpServersCreate:(0,e.tool)({description:`Create MCP Server: Creates a new MCP server configuration. Limited to 100 servers per user.`,inputSchema:w,execute:async e=>{let t={name:e.name,url:e.url,description:e.description,enabled:e.enabled,auth:e.auth,scope:e.scope};return Q(await J.mcpServers.create(t))}}),mcpServersDelete:(0,e.tool)({description:`Delete MCP Server: Deletes an MCP server and cleans up associated OAuth tokens. This action is irreversible.`,inputSchema:T,execute:async e=>{let t={mcpServerId:e.mcpServerId};return Q(await J.mcpServers.delete(t))}}),mcpServersGet:(0,e.tool)({description:`Get MCP Server: Retrieves a specific MCP server by ID.`,inputSchema:E,execute:async e=>{let t={mcpServerId:e.mcpServerId};return Q(await J.mcpServers.get(t))}}),mcpServersList:(0,e.tool)({description:`List MCP Servers: Retrieves all MCP servers configured for the current user.`,inputSchema:D,execute:async()=>Q(await J.mcpServers.list())}),mcpServersUpdate:(0,e.tool)({description:`Update MCP Server: Updates an existing MCP server configuration.`,inputSchema:O,execute:async e=>{let t={mcpServerId:e.mcpServerId,name:e.name,url:e.url,description:e.description,enabled:e.enabled,auth:e.auth,scope:e.scope};return Q(await J.mcpServers.update(t))}}),messagesGet:(0,e.tool)({description:`Get Message: Fetches a single message in a chat.`,inputSchema:k,execute:async e=>{let t={chatId:e.chatId,messageId:e.messageId};return Q(await J.messages.get(t))}}),messagesList:(0,e.tool)({description:`List Messages: Lists all messages in a chat.`,inputSchema:A,execute:async e=>{let t={chatId:e.chatId,limit:e.limit,cursor:e.cursor};return Q(await J.messages.list(t))}}),messagesResolve:(0,e.tool)({description:`Resolve Task: Resolves a pending task in a chat. Blocks until the model response is complete and returns the resulting message.`,inputSchema:j,execute:async e=>{let t={chatId:e.chatId,task:e.task,modelConfiguration:e.modelConfiguration};return Q(await J.messages.resolve(t))}}),messagesResolveAsync:(0,e.tool)({description:"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.",inputSchema:M,execute:async e=>{let t={chatId:e.chatId,task:e.task,modelConfiguration:e.modelConfiguration};return Q(await J.messages.resolveAsync(t))}}),messagesResolveStream:(0,e.tool)({description:"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.",inputSchema:N,execute:async function*(e){let t={chatId:e.chatId,task:e.task,modelConfiguration:e.modelConfiguration};yield*(await J.messages.resolveStream(t)).stream}}),messagesSend:(0,e.tool)({description:`Send Message: Sends a new message to an existing chat. Blocks until the model response is complete and returns the message response.`,inputSchema:P,execute:async e=>{let t={chatId:e.chatId,message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,mcpServerIds:e.mcpServerIds,attachments:e.attachments,skills:e.skills};return Q(await J.messages.send(t))}}),messagesSendAsync:(0,e.tool)({description:"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.",inputSchema:F,execute:async e=>{let t={chatId:e.chatId,message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,mcpServerIds:e.mcpServerIds,attachments:e.attachments,skills:e.skills};return Q(await J.messages.sendAsync(t))}}),messagesSendStream:(0,e.tool)({description:"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.",inputSchema:I,execute:async function*(e){let t={chatId:e.chatId,message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,mcpServerIds:e.mcpServerIds,attachments:e.attachments,skills:e.skills};yield*(await J.messages.sendStream(t)).stream}}),messagesStop:(0,e.tool)({description:`Stop Message: Stops an in-flight assistant message generation. The agent aborts at the next safe point and the message is marked finished.`,inputSchema:L,execute:async e=>{let t={chatId:e.chatId,messageId:e.messageId};return Q(await J.messages.stop(t))}}),settingsGetPreviewHosts:(0,e.tool)({description:`Get Trusted Preview Hosts: Returns the hostname patterns trusted to embed previews for the current team. Organization child teams inherit the parent organization’s hosts.`,inputSchema:R,execute:async()=>Q(await J.settings.getPreviewHosts())}),settingsSetPreviewHosts:(0,e.tool)({description:`Set Trusted Preview Hosts: Sets the host patterns trusted to embed previews for a standalone team or parent organization. Organization child teams cannot override this setting.`,inputSchema:z,execute:async e=>{let t={hosts:e.hosts};return Q(await J.settings.setPreviewHosts(t))}}),usageGetActivity:(0,e.tool)({description:`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.`,inputSchema:B,execute:async e=>{let t={start:e.start===void 0?void 0:new Date(e.start),end:e.end===void 0?void 0:new Date(e.end),userId:e.userId};return Q(await J.usage.getActivity(t))}}),usageGetSummary:(0,e.tool)({description:`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.`,inputSchema:V,execute:async e=>{let t={start:e.start===void 0?void 0:new Date(e.start),end:e.end===void 0?void 0:new Date(e.end),userId:e.userId};return Q(await J.usage.getSummary(t))}}),usageListEvents:(0,e.tool)({description:`List Usage Events: Lists individual credit usage events. Each event includes the credits charged and, when available, associated token counts.`,inputSchema:H,execute:async e=>{let t={start:e.start===void 0?void 0:new Date(e.start),end:e.end===void 0?void 0:new Date(e.end),userId:e.userId,chatId:e.chatId,messageId:e.messageId,limit:e.limit,cursor:e.cursor};return Q(await J.usage.listEvents(t))}}),webhooksCreate:(0,e.tool)({description:`Create Webhook: Creates a new webhook that listens for specific events. Supports optional association with a chat.`,inputSchema:U,execute:async e=>{let t={name:e.name,events:e.events,url:e.url,chatId:e.chatId};return Q(await J.webhooks.create(t))}}),webhooksDelete:(0,e.tool)({description:`Delete Webhook: Deletes a webhook. This action is irreversible.`,inputSchema:W,execute:async e=>{let t={hookId:e.hookId};return Q(await J.webhooks.delete(t))}}),webhooksGet:(0,e.tool)({description:`Get Webhook: Retrieves the details of a specific webhook using its ID.`,inputSchema:G,execute:async e=>{let t={hookId:e.hookId};return Q(await J.webhooks.get(t))}}),webhooksList:(0,e.tool)({description:`List Webhooks: Retrieves a list of all webhooks in your workspace.`,inputSchema:K,execute:async()=>Q(await J.webhooks.list())}),webhooksUpdate:(0,e.tool)({description:`Update Webhook: Updates the configuration of an existing webhook, including its name, event subscriptions, or target URL.`,inputSchema:q,execute:async e=>{let t={hookId:e.hookId,name:e.name,events:e.events,url:e.url};return Q(await J.webhooks.update(t))}})}}function Y(e={}){let t=J(e);return{chats:{chatsCreate:Z(t,`chatsCreate`),chatsCreateAsync:Z(t,`chatsCreateAsync`),chatsCreateFromFiles:Z(t,`chatsCreateFromFiles`),chatsCreateFromRepo:Z(t,`chatsCreateFromRepo`),chatsCreateFromVercelProject:Z(t,`chatsCreateFromVercelProject`),chatsCreateFromZip:Z(t,`chatsCreateFromZip`),chatsCreateStream:Z(t,`chatsCreateStream`),chatsCreateVercelProject:Z(t,`chatsCreateVercelProject`),chatsDelete:Z(t,`chatsDelete`),chatsDeploy:Z(t,`chatsDeploy`),chatsDownloadFiles:Z(t,`chatsDownloadFiles`),chatsDuplicate:Z(t,`chatsDuplicate`),chatsGet:Z(t,`chatsGet`),chatsGetConnectStatus:Z(t,`chatsGetConnectStatus`),chatsGetFiles:Z(t,`chatsGetFiles`),chatsGetPreview:Z(t,`chatsGetPreview`),chatsList:Z(t,`chatsList`),chatsRestoreMessage:Z(t,`chatsRestoreMessage`),chatsResume:Z(t,`chatsResume`),chatsUpdate:Z(t,`chatsUpdate`),chatsUpdateFiles:Z(t,`chatsUpdateFiles`)},mcpServers:{mcpServersCreate:Z(t,`mcpServersCreate`),mcpServersDelete:Z(t,`mcpServersDelete`),mcpServersGet:Z(t,`mcpServersGet`),mcpServersList:Z(t,`mcpServersList`),mcpServersUpdate:Z(t,`mcpServersUpdate`)},messages:{messagesGet:Z(t,`messagesGet`),messagesList:Z(t,`messagesList`),messagesResolve:Z(t,`messagesResolve`),messagesResolveAsync:Z(t,`messagesResolveAsync`),messagesResolveStream:Z(t,`messagesResolveStream`),messagesSend:Z(t,`messagesSend`),messagesSendAsync:Z(t,`messagesSendAsync`),messagesSendStream:Z(t,`messagesSendStream`),messagesStop:Z(t,`messagesStop`)},settings:{settingsGetPreviewHosts:Z(t,`settingsGetPreviewHosts`),settingsSetPreviewHosts:Z(t,`settingsSetPreviewHosts`)},usage:{usageGetActivity:Z(t,`usageGetActivity`),usageGetSummary:Z(t,`usageGetSummary`),usageListEvents:Z(t,`usageListEvents`)},webhooks:{webhooksCreate:Z(t,`webhooksCreate`),webhooksDelete:Z(t,`webhooksDelete`),webhooksGet:Z(t,`webhooksGet`),webhooksList:Z(t,`webhooksList`),webhooksUpdate:Z(t,`webhooksUpdate`)}}}function X(e){let{apiKey:t,...n}=e,r=typeof process<`u`?process.env.V0_API_KEY:void 0,i=n.auth??t??r;return i===void 0?n:{...n,auth:i}}function Z(e,t){let n=e[t];if(!n)throw Error(`Missing generated v0 tool: ${t}`);return n}function Q(e){if(e&&typeof e==`object`&&(`data`in e||`error`in e)){let t=e;return t.error===void 0?t.data??null:{error:t.error}}return e}exports.v0Tools=J,exports.v0ToolsByCategory=Y;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`ai`),t=require(`v0`),n=require(`zod`);const r=n.z.object({message:n.z.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.z.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),attachments:n.z.array(n.z.union([n.z.object({url:n.z.string().describe(`URL or data URI containing the attachment.`)}),n.z.object({name:n.z.string().describe(`Display name for the inline text attachment.`).optional(),content:n.z.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),mcpServerIds:n.z.array(n.z.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),skills:n.z.array(n.z.union([n.z.object({type:n.z.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.z.string().describe(`Skill ID from skills.sh.`)}),n.z.object({type:n.z.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.z.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.z.string().describe(`Name of the memory skill to attach.`)}),n.z.object({type:n.z.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.z.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional(),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.z.string().describe(`Title for the new chat.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),i=n.z.object({message:n.z.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.z.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),attachments:n.z.array(n.z.union([n.z.object({url:n.z.string().describe(`URL or data URI containing the attachment.`)}),n.z.object({name:n.z.string().describe(`Display name for the inline text attachment.`).optional(),content:n.z.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),mcpServerIds:n.z.array(n.z.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),skills:n.z.array(n.z.union([n.z.object({type:n.z.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.z.string().describe(`Skill ID from skills.sh.`)}),n.z.object({type:n.z.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.z.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.z.string().describe(`Name of the memory skill to attach.`)}),n.z.object({type:n.z.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.z.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional(),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.z.string().describe(`Title for the new chat.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),a=n.z.object({files:n.z.array(n.z.object({name:n.z.string().describe(`Path of the file in the project.`),content:n.z.string().describe("File content encoded according to `encoding`."),encoding:n.z.enum([`utf8`,`base64`]).describe("How `content` is encoded. Defaults to `utf8` when omitted.").optional()})).describe(`Source files used to seed the new chat.`),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.z.string().describe(`Title for the new chat.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),o=n.z.object({repo:n.z.object({url:n.z.string().describe(`GitHub repository URL, for example https://github.com/vercel/next.js.`),branch:n.z.string().describe(`Branch to import. If omitted, v0 uses the repository default branch.`).optional()}).describe(`Repository source for initialization. Supports public GitHub repositories and private repositories connected through Vercel.`),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.z.string().describe(`Title for the new chat.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),s=n.z.object({vercelProjectId:n.z.string().describe(`Vercel project ID in the active user or team scope.`),baseBranch:n.z.string().describe(`Base branch for a GitHub-linked project. Defaults to the repository default branch. Ignored for projects without a GitHub link.`).optional(),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.z.string().describe(`Title for the new chat.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),c=n.z.object({url:n.z.string().url().describe(`Zip archive used to seed the new chat.`),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.z.string().describe(`Title for the new chat.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),l=n.z.object({message:n.z.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.z.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),attachments:n.z.array(n.z.union([n.z.object({url:n.z.string().describe(`URL or data URI containing the attachment.`)}),n.z.object({name:n.z.string().describe(`Display name for the inline text attachment.`).optional(),content:n.z.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),mcpServerIds:n.z.array(n.z.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),skills:n.z.array(n.z.union([n.z.object({type:n.z.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.z.string().describe(`Skill ID from skills.sh.`)}),n.z.object({type:n.z.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.z.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.z.string().describe(`Name of the memory skill to attach.`)}),n.z.object({type:n.z.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.z.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional(),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.z.string().describe(`Title for the new chat.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),u=n.z.object({chatId:n.z.string(),name:n.z.string().describe(`Name for the Vercel project. When omitted, the chat's title is used.`).optional()}),d=n.z.object({chatId:n.z.string()}),f=n.z.object({chatId:n.z.string()}),p=n.z.object({chatId:n.z.string()}),m=n.z.object({chatId:n.z.string(),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the duplicated chat.`),title:n.z.string().describe(`Custom title for the duplicated chat. If omitted, the original title is reused with an incremented suffix (e.g. "My Chat (2)").`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),h=n.z.object({chatId:n.z.string()}),g=n.z.object({chatId:n.z.string(),requestId:n.z.string()}),_=n.z.object({chatId:n.z.string()}),v=n.z.object({chatId:n.z.string()}),y=n.z.object({limit:n.z.number().int().describe(`Maximum number of chats to return (1-100, default 20).`).optional(),cursor:n.z.string().describe(`Pagination cursor returned from a previous response.`).optional(),authorId:n.z.string().describe(`Restrict results to chats created by this user. Must be a member of the calling scope.`).optional(),vercelProjectId:n.z.string().describe(`Restrict results to chats associated with this Vercel project.`).optional(),metadata:n.z.record(n.z.string(),n.z.string()).describe(`Filter by metadata, e.g. metadata[environment]=production. Returns chats matching all supplied key-value pairs.`).optional()}),b=n.z.object({chatId:n.z.string(),messageId:n.z.string().describe(`The unique identifier of the assistant message whose files to restore.`)}),x=n.z.object({chatId:n.z.string()}),S=n.z.object({chatId:n.z.string(),title:n.z.string().describe(`A new title to assign to the chat.`).optional(),privacy:n.z.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Updated visibility setting for the chat.`).optional(),metadata:n.z.union([n.z.record(n.z.string(),n.z.union([n.z.string(),n.z.null()])),n.z.null()]).describe("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.").optional()}),C=n.z.object({chatId:n.z.string(),files:n.z.array(n.z.object({path:n.z.string().describe(`Project-relative file path, e.g. "app/page.tsx".`),content:n.z.union([n.z.string(),n.z.null()]).describe("New file content. Pass `null` to delete the file at this path."),encoding:n.z.enum([`utf8`,`base64`]).describe("How non-null `content` is encoded. Defaults to `utf8` when omitted.").optional()})).describe(`The files to create, update, or delete. Each path must be unique.`)}),w=n.z.object({name:n.z.string().describe(`Display name for the MCP server.`),url:n.z.string().url().describe(`URL endpoint of the MCP server.`),description:n.z.string().describe(`Optional description of the MCP server.`).optional(),enabled:n.z.boolean().describe(`Whether the server should be enabled.`),auth:n.z.union([n.z.object({type:n.z.enum([`none`])}),n.z.object({type:n.z.enum([`bearer`]),token:n.z.string().describe(`Bearer token for authentication.`)}),n.z.object({type:n.z.enum([`custom-headers`]),headers:n.z.record(n.z.string(),n.z.string()).describe(`Custom headers to include in requests.`)}),n.z.object({type:n.z.enum([`oauth`]),config:n.z.object({authorizationUrl:n.z.string().url(),tokenUrl:n.z.string().url(),registrationUrl:n.z.string().url().optional(),clientId:n.z.string(),clientSecret:n.z.string().optional(),scopes:n.z.array(n.z.string()),usePKCE:n.z.boolean(),issuer:n.z.string().optional(),resource:n.z.string().optional(),clientIdMetadataDocumentSupported:n.z.boolean().optional()}).describe(`OAuth configuration discovered or manually set.`).optional(),connected:n.z.boolean().describe(`Whether OAuth is currently connected.`),expiresAt:n.z.string().describe(`ISO timestamp when the token expires.`).optional()})]).describe(`Authentication configuration.`),scope:n.z.enum([`user`,`team`]).describe(`Scope of the MCP server configuration.`)}),T=n.z.object({mcpServerId:n.z.string()}),E=n.z.object({mcpServerId:n.z.string()}),D=n.z.object({}),O=n.z.object({mcpServerId:n.z.string(),name:n.z.string().describe(`New display name.`).optional(),url:n.z.string().url().describe(`New URL endpoint.`).optional(),description:n.z.string().describe(`New description.`).optional(),enabled:n.z.boolean().describe(`Enable or disable.`).optional(),auth:n.z.union([n.z.object({type:n.z.enum([`none`])}),n.z.object({type:n.z.enum([`bearer`]),token:n.z.string().describe(`Bearer token for authentication.`)}),n.z.object({type:n.z.enum([`custom-headers`]),headers:n.z.record(n.z.string(),n.z.string()).describe(`Custom headers to include in requests.`)}),n.z.object({type:n.z.enum([`oauth`]),config:n.z.object({authorizationUrl:n.z.string().url(),tokenUrl:n.z.string().url(),registrationUrl:n.z.string().url().optional(),clientId:n.z.string(),clientSecret:n.z.string().optional(),scopes:n.z.array(n.z.string()),usePKCE:n.z.boolean(),issuer:n.z.string().optional(),resource:n.z.string().optional(),clientIdMetadataDocumentSupported:n.z.boolean().optional()}).describe(`OAuth configuration discovered or manually set.`).optional(),connected:n.z.boolean().describe(`Whether OAuth is currently connected.`),expiresAt:n.z.string().describe(`ISO timestamp when the token expires.`).optional()})]).describe(`New authentication configuration.`).optional(),scope:n.z.enum([`user`,`team`]).describe(`New scope.`).optional()}),ee=n.z.object({chatId:n.z.string(),messageId:n.z.string()}),k=n.z.object({chatId:n.z.string(),limit:n.z.number().int(),cursor:n.z.string().optional()}),A=n.z.object({chatId:n.z.string(),task:n.z.union([n.z.object({type:n.z.enum([`confirmed-steps`]),connectedIntegrationNames:n.z.array(n.z.string()).describe(`Names of integrations that were successfully connected (e.g. "Neon"). Pass an empty array to skip.`).optional(),connectedNpmRegistryIds:n.z.array(n.z.string()).describe(`Deprecated. npm registry connections are no longer supported; this field is accepted for compatibility and ignored.`).optional(),connectedMcpPresetNames:n.z.array(n.z.enum([`Linear`,`Notion`,`Context7`,`Sentry`,`Zapier`,`Glean`,`Hex`,`Sanity`,`Granola`,`PostHog`,`Contentful`,`Mobbin`,`Slack`])).describe(`Names of MCP presets that were connected (e.g. "Linear", "Sentry"). Pass an empty array to skip.`).optional(),appliedScripts:n.z.array(n.z.string()).describe(`Names of scripts that were applied.`).optional(),addedEnvVars:n.z.array(n.z.string()).describe(`Names of environment variables that were added.`).optional()}),n.z.object({type:n.z.enum([`plan-exit-response`]),status:n.z.enum([`approved`,`rejected`,`request-changes`]).describe(`Whether the plan is approved, rejected, or needs changes.`),content:n.z.string().describe(`Feedback or instructions for the agent.`)}),n.z.object({type:n.z.enum([`answered-questions`]),answers:n.z.array(n.z.object({questionId:n.z.string().describe(`The ID of the question being answered.`),questionText:n.z.string().describe(`The text of the question being answered.`),selectedLabels:n.z.array(n.z.string()).describe(`The labels of the selected options. For single-select questions, pass one item.`),customText:n.z.string().describe(`Free-form text input, used when the user selects "Other" or wants to add context.`).optional()})).describe(`Answers to the questions the agent asked.`)}),n.z.object({type:n.z.enum([`confirmed-permissions`]),permissions:n.z.array(n.z.object({type:n.z.enum([`ALLOW_DYNAMIC_TOOL_STRICT`]),toolName:n.z.string().describe(`The name of the tool being permitted.`),input:n.z.unknown().describe(`The tool call input arguments. Pass the exact input from the stopped task.`),toolDisplayName:n.z.union([n.z.string(),n.z.null()]).describe(`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.`).optional(),taskNameActive:n.z.union([n.z.string(),n.z.null()]).describe(`Label shown while the tool is running (e.g. "Running migration").`).optional(),taskNameComplete:n.z.union([n.z.string(),n.z.null()]).describe(`Label shown after the tool completes (e.g. "Migration complete").`).optional(),userMessage:n.z.string().describe(`Optional message from the user about this permission.`).optional()})).describe(`The permissions to grant. Pass the suggestedPermissions from the stopped task.`),userMessage:n.z.string().describe(`Optional message from the user about the permission grant.`).optional()}),n.z.object({type:n.z.enum([`vercel-connect-setup`])}),n.z.object({type:n.z.enum([`vercel-connect-authorization`])})]).describe(`The task resolution data. Use this when the chat is waiting for user input on the matching task type.`),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`).optional(),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`).optional()}).describe(`Overrides for the model behavior.`).optional()}),j=n.z.object({chatId:n.z.string(),task:n.z.union([n.z.object({type:n.z.enum([`confirmed-steps`]),connectedIntegrationNames:n.z.array(n.z.string()).describe(`Names of integrations that were successfully connected (e.g. "Neon"). Pass an empty array to skip.`).optional(),connectedNpmRegistryIds:n.z.array(n.z.string()).describe(`Deprecated. npm registry connections are no longer supported; this field is accepted for compatibility and ignored.`).optional(),connectedMcpPresetNames:n.z.array(n.z.enum([`Linear`,`Notion`,`Context7`,`Sentry`,`Zapier`,`Glean`,`Hex`,`Sanity`,`Granola`,`PostHog`,`Contentful`,`Mobbin`,`Slack`])).describe(`Names of MCP presets that were connected (e.g. "Linear", "Sentry"). Pass an empty array to skip.`).optional(),appliedScripts:n.z.array(n.z.string()).describe(`Names of scripts that were applied.`).optional(),addedEnvVars:n.z.array(n.z.string()).describe(`Names of environment variables that were added.`).optional()}),n.z.object({type:n.z.enum([`plan-exit-response`]),status:n.z.enum([`approved`,`rejected`,`request-changes`]).describe(`Whether the plan is approved, rejected, or needs changes.`),content:n.z.string().describe(`Feedback or instructions for the agent.`)}),n.z.object({type:n.z.enum([`answered-questions`]),answers:n.z.array(n.z.object({questionId:n.z.string().describe(`The ID of the question being answered.`),questionText:n.z.string().describe(`The text of the question being answered.`),selectedLabels:n.z.array(n.z.string()).describe(`The labels of the selected options. For single-select questions, pass one item.`),customText:n.z.string().describe(`Free-form text input, used when the user selects "Other" or wants to add context.`).optional()})).describe(`Answers to the questions the agent asked.`)}),n.z.object({type:n.z.enum([`confirmed-permissions`]),permissions:n.z.array(n.z.object({type:n.z.enum([`ALLOW_DYNAMIC_TOOL_STRICT`]),toolName:n.z.string().describe(`The name of the tool being permitted.`),input:n.z.unknown().describe(`The tool call input arguments. Pass the exact input from the stopped task.`),toolDisplayName:n.z.union([n.z.string(),n.z.null()]).describe(`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.`).optional(),taskNameActive:n.z.union([n.z.string(),n.z.null()]).describe(`Label shown while the tool is running (e.g. "Running migration").`).optional(),taskNameComplete:n.z.union([n.z.string(),n.z.null()]).describe(`Label shown after the tool completes (e.g. "Migration complete").`).optional(),userMessage:n.z.string().describe(`Optional message from the user about this permission.`).optional()})).describe(`The permissions to grant. Pass the suggestedPermissions from the stopped task.`),userMessage:n.z.string().describe(`Optional message from the user about the permission grant.`).optional()}),n.z.object({type:n.z.enum([`vercel-connect-setup`])}),n.z.object({type:n.z.enum([`vercel-connect-authorization`])})]).describe(`The task resolution data. Use this when the chat is waiting for user input on the matching task type.`),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`).optional(),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`).optional()}).describe(`Overrides for the model behavior.`).optional()}),M=n.z.object({chatId:n.z.string(),task:n.z.union([n.z.object({type:n.z.enum([`confirmed-steps`]),connectedIntegrationNames:n.z.array(n.z.string()).describe(`Names of integrations that were successfully connected (e.g. "Neon"). Pass an empty array to skip.`).optional(),connectedNpmRegistryIds:n.z.array(n.z.string()).describe(`Deprecated. npm registry connections are no longer supported; this field is accepted for compatibility and ignored.`).optional(),connectedMcpPresetNames:n.z.array(n.z.enum([`Linear`,`Notion`,`Context7`,`Sentry`,`Zapier`,`Glean`,`Hex`,`Sanity`,`Granola`,`PostHog`,`Contentful`,`Mobbin`,`Slack`])).describe(`Names of MCP presets that were connected (e.g. "Linear", "Sentry"). Pass an empty array to skip.`).optional(),appliedScripts:n.z.array(n.z.string()).describe(`Names of scripts that were applied.`).optional(),addedEnvVars:n.z.array(n.z.string()).describe(`Names of environment variables that were added.`).optional()}),n.z.object({type:n.z.enum([`plan-exit-response`]),status:n.z.enum([`approved`,`rejected`,`request-changes`]).describe(`Whether the plan is approved, rejected, or needs changes.`),content:n.z.string().describe(`Feedback or instructions for the agent.`)}),n.z.object({type:n.z.enum([`answered-questions`]),answers:n.z.array(n.z.object({questionId:n.z.string().describe(`The ID of the question being answered.`),questionText:n.z.string().describe(`The text of the question being answered.`),selectedLabels:n.z.array(n.z.string()).describe(`The labels of the selected options. For single-select questions, pass one item.`),customText:n.z.string().describe(`Free-form text input, used when the user selects "Other" or wants to add context.`).optional()})).describe(`Answers to the questions the agent asked.`)}),n.z.object({type:n.z.enum([`confirmed-permissions`]),permissions:n.z.array(n.z.object({type:n.z.enum([`ALLOW_DYNAMIC_TOOL_STRICT`]),toolName:n.z.string().describe(`The name of the tool being permitted.`),input:n.z.unknown().describe(`The tool call input arguments. Pass the exact input from the stopped task.`),toolDisplayName:n.z.union([n.z.string(),n.z.null()]).describe(`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.`).optional(),taskNameActive:n.z.union([n.z.string(),n.z.null()]).describe(`Label shown while the tool is running (e.g. "Running migration").`).optional(),taskNameComplete:n.z.union([n.z.string(),n.z.null()]).describe(`Label shown after the tool completes (e.g. "Migration complete").`).optional(),userMessage:n.z.string().describe(`Optional message from the user about this permission.`).optional()})).describe(`The permissions to grant. Pass the suggestedPermissions from the stopped task.`),userMessage:n.z.string().describe(`Optional message from the user about the permission grant.`).optional()}),n.z.object({type:n.z.enum([`vercel-connect-setup`])}),n.z.object({type:n.z.enum([`vercel-connect-authorization`])})]).describe(`The task resolution data. Use this when the chat is waiting for user input on the matching task type.`),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`).optional(),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`).optional()}).describe(`Overrides for the model behavior.`).optional()}),N=n.z.object({chatId:n.z.string(),message:n.z.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.z.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),mcpServerIds:n.z.array(n.z.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),attachments:n.z.array(n.z.union([n.z.object({url:n.z.string().describe(`URL or data URI containing the attachment.`)}),n.z.object({name:n.z.string().describe(`Display name for the inline text attachment.`).optional(),content:n.z.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),skills:n.z.array(n.z.union([n.z.object({type:n.z.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.z.string().describe(`Skill ID from skills.sh.`)}),n.z.object({type:n.z.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.z.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.z.string().describe(`Name of the memory skill to attach.`)}),n.z.object({type:n.z.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.z.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional()}),P=n.z.object({chatId:n.z.string(),message:n.z.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.z.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),mcpServerIds:n.z.array(n.z.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),attachments:n.z.array(n.z.union([n.z.object({url:n.z.string().describe(`URL or data URI containing the attachment.`)}),n.z.object({name:n.z.string().describe(`Display name for the inline text attachment.`).optional(),content:n.z.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),skills:n.z.array(n.z.union([n.z.object({type:n.z.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.z.string().describe(`Skill ID from skills.sh.`)}),n.z.object({type:n.z.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.z.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.z.string().describe(`Name of the memory skill to attach.`)}),n.z.object({type:n.z.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.z.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional()}),F=n.z.object({chatId:n.z.string(),message:n.z.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.z.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.z.object({modelId:n.z.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.z.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),mcpServerIds:n.z.array(n.z.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),attachments:n.z.array(n.z.union([n.z.object({url:n.z.string().describe(`URL or data URI containing the attachment.`)}),n.z.object({name:n.z.string().describe(`Display name for the inline text attachment.`).optional(),content:n.z.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),skills:n.z.array(n.z.union([n.z.object({type:n.z.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.z.string().describe(`Skill ID from skills.sh.`)}),n.z.object({type:n.z.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.z.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.z.string().describe(`Name of the memory skill to attach.`)}),n.z.object({type:n.z.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.z.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional()}),I=n.z.object({chatId:n.z.string(),messageId:n.z.string()}),L=n.z.object({hosts:n.z.array(n.z.string()).describe(`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.`)}),R=n.z.object({hosts:n.z.array(n.z.string()).describe(`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.`)}),z=n.z.object({}),B=n.z.object({hosts:n.z.array(n.z.string()).describe(`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.`)}),V=n.z.object({start:n.z.string().datetime().optional(),end:n.z.string().datetime().optional(),userId:n.z.string().optional()}),H=n.z.object({start:n.z.string().datetime().optional(),end:n.z.string().datetime().optional(),userId:n.z.string().optional()}),U=n.z.object({start:n.z.string().datetime().optional(),end:n.z.string().datetime().optional(),userId:n.z.string().optional(),chatId:n.z.string().optional(),messageId:n.z.string().optional(),limit:n.z.number().int().optional(),cursor:n.z.string().optional()}),W=n.z.object({name:n.z.string().describe(`A human-readable name for the webhook.`),events:n.z.array(n.z.enum([`chat.created`,`chat.updated`,`chat.deleted`,`message.created`,`message.updated`,`message.deleted`,`message.finished`])).describe(`List of event types the webhook should subscribe to.`),url:n.z.string().url().describe(`The target URL to receive the webhook payloads.`),chatId:n.z.union([n.z.string(),n.z.null()]).describe(`The ID of a chat to scope the webhook to.`)}),G=n.z.object({hookId:n.z.string()}),K=n.z.object({hookId:n.z.string()}),q=n.z.object({}),J=n.z.object({hookId:n.z.string(),name:n.z.string().describe(`A new display name for the webhook.`).optional(),events:n.z.array(n.z.enum([`chat.created`,`chat.updated`,`chat.deleted`,`message.created`,`message.updated`,`message.deleted`,`message.finished`])).describe(`Updated list of event types to subscribe to.`).optional(),url:n.z.string().url().describe(`A new target URL to receive webhook payloads.`).optional()});function Y(n={}){let Y=(0,t.createV0Client)(Z(n));return{chatsCreate:(0,e.tool)({description:`Create Chat: Creates a new chat from a prompt. The request blocks until the model response is complete and returns the chat.`,inputSchema:r,execute:async e=>{let t={message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,attachments:e.attachments,mcpServerIds:e.mcpServerIds,skills:e.skills,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.create(t))}}),chatsCreateAsync:(0,e.tool)({description:"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.",inputSchema:i,execute:async e=>{let t={message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,attachments:e.attachments,mcpServerIds:e.mcpServerIds,skills:e.skills,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.createAsync(t))}}),chatsCreateFromFiles:(0,e.tool)({description:`Create Chat From Files: Creates a new chat from inline UTF-8 or base64-encoded source files.`,inputSchema:a,execute:async e=>{let t={files:e.files,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.createFromFiles(t))}}),chatsCreateFromRepo:(0,e.tool)({description:`Create Chat From Repository: Creates a new chat from a GitHub repository.`,inputSchema:o,execute:async e=>{let t={repo:e.repo,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.createFromRepo(t))}}),chatsCreateFromVercelProject:(0,e.tool)({description:`Create Chat From Vercel Project: Creates a new chat from an existing Vercel project.`,inputSchema:s,execute:async e=>{let t={vercelProjectId:e.vercelProjectId,baseBranch:e.baseBranch,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.createFromVercelProject(t))}}),chatsCreateFromZip:(0,e.tool)({description:`Create Chat From ZIP: Creates a new chat from a zip archive.`,inputSchema:c,execute:async e=>{let t={url:e.url,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.createFromZip(t))}}),chatsCreateStream:(0,e.tool)({description:"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.",inputSchema:l,execute:async function*(e){let t={message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,attachments:e.attachments,mcpServerIds:e.mcpServerIds,skills:e.skills,privacy:e.privacy,title:e.title,metadata:e.metadata};yield*(await Y.chats.createStream(t)).stream}}),chatsCreateVercelProject:(0,e.tool)({description:`Create Vercel Project: Creates a Vercel project and attaches it to the chat.`,inputSchema:u,execute:async e=>{let t={chatId:e.chatId,name:e.name};return $(await Y.chats.createVercelProject(t))}}),chatsDelete:(0,e.tool)({description:`Delete Chat: Deletes a chat and all its associated messages. The requester must have edit access to the chat.`,inputSchema:d,execute:async e=>{let t={chatId:e.chatId};return $(await Y.chats.delete(t))}}),chatsDeploy:(0,e.tool)({description:`Deploy Chat: Triggers a Vercel deployment for a chat. Creates a Vercel project if one does not exist.`,inputSchema:f,execute:async e=>{let t={chatId:e.chatId};return $(await Y.chats.deploy(t))}}),chatsDownloadFiles:(0,e.tool)({description:`Download Chat Files: Downloads the source files for a chat as a ZIP archive.`,inputSchema:p,execute:async e=>{let t={chatId:e.chatId};return $(await Y.chats.downloadFiles(t))}}),chatsDuplicate:(0,e.tool)({description:`Duplicate Chat: Creates a new chat by duplicating an existing chat.`,inputSchema:m,execute:async e=>{let t={chatId:e.chatId,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.duplicate(t))}}),chatsGet:(0,e.tool)({description:`Get Chat: Retrieves a chat by ID.`,inputSchema:h,execute:async e=>{let t={chatId:e.chatId};return $(await Y.chats.get(t))}}),chatsGetConnectStatus:(0,e.tool)({description:"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.",inputSchema:g,execute:async e=>{let t={chatId:e.chatId,requestId:e.requestId};return $(await Y.chats.getConnectStatus(t))}}),chatsGetFiles:(0,e.tool)({description:`Get Chat Files: Returns the source files for a chat.`,inputSchema:_,execute:async e=>{let t={chatId:e.chatId};return $(await Y.chats.getFiles(t))}}),chatsGetPreview:(0,e.tool)({description:`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.`,inputSchema:v,execute:async e=>{let t={chatId:e.chatId};return $(await Y.chats.getPreview(t))}}),chatsList:(0,e.tool)({description:`List Chats: Lists chats accessible to the authenticated user. Use metadata[key]=value style query parameters to filter by metadata.`,inputSchema:y,execute:async e=>{let t={limit:e.limit,cursor:e.cursor,authorId:e.authorId,vercelProjectId:e.vercelProjectId,metadata:e.metadata};return $(await Y.chats.list(t))}}),chatsRestoreMessage:(0,e.tool)({description:`Restore Message: Restores the files associated with an assistant message. The associated files must not already be the latest files in the chat.`,inputSchema:b,execute:async e=>{let t={chatId:e.chatId,messageId:e.messageId};return $(await Y.chats.restoreMessage(t))}}),chatsResume:(0,e.tool)({description:"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.",inputSchema:x,execute:async function*(e){let t={chatId:e.chatId};yield*(await Y.chats.resume(t)).stream}}),chatsUpdate:(0,e.tool)({description:`Update Chat: Updates a chat's title, privacy, or metadata.`,inputSchema:S,execute:async e=>{let t={chatId:e.chatId,title:e.title,privacy:e.privacy,metadata:e.metadata};return $(await Y.chats.update(t))}}),chatsUpdateFiles:(0,e.tool)({description:`Update Chat Files: Creates, updates, or deletes UTF-8 or base64-encoded files for a chat. Pass null to delete.`,inputSchema:C,execute:async e=>{let t={chatId:e.chatId,files:e.files};return $(await Y.chats.updateFiles(t))}}),mcpServersCreate:(0,e.tool)({description:`Create MCP Server: Creates a new MCP server configuration. Limited to 100 servers per user.`,inputSchema:w,execute:async e=>{let t={name:e.name,url:e.url,description:e.description,enabled:e.enabled,auth:e.auth,scope:e.scope};return $(await Y.mcpServers.create(t))}}),mcpServersDelete:(0,e.tool)({description:`Delete MCP Server: Deletes an MCP server and cleans up associated OAuth tokens. This action is irreversible.`,inputSchema:T,execute:async e=>{let t={mcpServerId:e.mcpServerId};return $(await Y.mcpServers.delete(t))}}),mcpServersGet:(0,e.tool)({description:`Get MCP Server: Retrieves a specific MCP server by ID.`,inputSchema:E,execute:async e=>{let t={mcpServerId:e.mcpServerId};return $(await Y.mcpServers.get(t))}}),mcpServersList:(0,e.tool)({description:`List MCP Servers: Retrieves all MCP servers configured for the current user.`,inputSchema:D,execute:async()=>$(await Y.mcpServers.list())}),mcpServersUpdate:(0,e.tool)({description:`Update MCP Server: Updates an existing MCP server configuration.`,inputSchema:O,execute:async e=>{let t={mcpServerId:e.mcpServerId,name:e.name,url:e.url,description:e.description,enabled:e.enabled,auth:e.auth,scope:e.scope};return $(await Y.mcpServers.update(t))}}),messagesGet:(0,e.tool)({description:`Get Message: Fetches a single message in a chat.`,inputSchema:ee,execute:async e=>{let t={chatId:e.chatId,messageId:e.messageId};return $(await Y.messages.get(t))}}),messagesList:(0,e.tool)({description:`List Messages: Lists all messages in a chat.`,inputSchema:k,execute:async e=>{let t={chatId:e.chatId,limit:e.limit,cursor:e.cursor};return $(await Y.messages.list(t))}}),messagesResolve:(0,e.tool)({description:`Resolve Task: Resolves a pending task in a chat. Blocks until the model response is complete and returns the resulting message.`,inputSchema:A,execute:async e=>{let t={chatId:e.chatId,task:e.task,modelConfiguration:e.modelConfiguration};return $(await Y.messages.resolve(t))}}),messagesResolveAsync:(0,e.tool)({description:"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.",inputSchema:j,execute:async e=>{let t={chatId:e.chatId,task:e.task,modelConfiguration:e.modelConfiguration};return $(await Y.messages.resolveAsync(t))}}),messagesResolveStream:(0,e.tool)({description:"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.",inputSchema:M,execute:async function*(e){let t={chatId:e.chatId,task:e.task,modelConfiguration:e.modelConfiguration};yield*(await Y.messages.resolveStream(t)).stream}}),messagesSend:(0,e.tool)({description:`Send Message: Sends a new message to an existing chat. Blocks until the model response is complete and returns the message response.`,inputSchema:N,execute:async e=>{let t={chatId:e.chatId,message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,mcpServerIds:e.mcpServerIds,attachments:e.attachments,skills:e.skills};return $(await Y.messages.send(t))}}),messagesSendAsync:(0,e.tool)({description:"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.",inputSchema:P,execute:async e=>{let t={chatId:e.chatId,message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,mcpServerIds:e.mcpServerIds,attachments:e.attachments,skills:e.skills};return $(await Y.messages.sendAsync(t))}}),messagesSendStream:(0,e.tool)({description:"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.",inputSchema:F,execute:async function*(e){let t={chatId:e.chatId,message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,mcpServerIds:e.mcpServerIds,attachments:e.attachments,skills:e.skills};yield*(await Y.messages.sendStream(t)).stream}}),messagesStop:(0,e.tool)({description:`Stop Message: Stops an in-flight assistant message generation. The agent aborts at the next safe point and the message is marked finished.`,inputSchema:I,execute:async e=>{let t={chatId:e.chatId,messageId:e.messageId};return $(await Y.messages.stop(t))}}),settingsAppendPreviewHosts:(0,e.tool)({description:`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.`,inputSchema:L,execute:async e=>{let t={hosts:e.hosts};return $(await Y.settings.appendPreviewHosts(t))}}),settingsDeletePreviewHosts:(0,e.tool)({description:`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.`,inputSchema:R,execute:async e=>{let t={hosts:e.hosts};return $(await Y.settings.deletePreviewHosts(t))}}),settingsGetPreviewHosts:(0,e.tool)({description:`Get Trusted Preview Hosts: Returns the hostname patterns trusted to embed previews for the current team.`,inputSchema:z,execute:async()=>$(await Y.settings.getPreviewHosts())}),settingsSetPreviewHosts:(0,e.tool)({description:`Set Trusted Preview Hosts: Sets the host patterns trusted to embed previews for a team.`,inputSchema:B,execute:async e=>{let t={hosts:e.hosts};return $(await Y.settings.setPreviewHosts(t))}}),usageGetActivity:(0,e.tool)({description:`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.`,inputSchema:V,execute:async e=>{let t={start:e.start===void 0?void 0:new Date(e.start),end:e.end===void 0?void 0:new Date(e.end),userId:e.userId};return $(await Y.usage.getActivity(t))}}),usageGetSummary:(0,e.tool)({description:`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.`,inputSchema:H,execute:async e=>{let t={start:e.start===void 0?void 0:new Date(e.start),end:e.end===void 0?void 0:new Date(e.end),userId:e.userId};return $(await Y.usage.getSummary(t))}}),usageListEvents:(0,e.tool)({description:`List Usage Events: Lists individual credit usage events. Each event includes the credits charged and, when available, associated token counts.`,inputSchema:U,execute:async e=>{let t={start:e.start===void 0?void 0:new Date(e.start),end:e.end===void 0?void 0:new Date(e.end),userId:e.userId,chatId:e.chatId,messageId:e.messageId,limit:e.limit,cursor:e.cursor};return $(await Y.usage.listEvents(t))}}),webhooksCreate:(0,e.tool)({description:`Create Webhook: Creates a new webhook that listens for specific events. Supports optional association with a chat.`,inputSchema:W,execute:async e=>{let t={name:e.name,events:e.events,url:e.url,chatId:e.chatId};return $(await Y.webhooks.create(t))}}),webhooksDelete:(0,e.tool)({description:`Delete Webhook: Deletes a webhook. This action is irreversible.`,inputSchema:G,execute:async e=>{let t={hookId:e.hookId};return $(await Y.webhooks.delete(t))}}),webhooksGet:(0,e.tool)({description:`Get Webhook: Retrieves the details of a specific webhook using its ID.`,inputSchema:K,execute:async e=>{let t={hookId:e.hookId};return $(await Y.webhooks.get(t))}}),webhooksList:(0,e.tool)({description:`List Webhooks: Retrieves a list of all webhooks in your workspace.`,inputSchema:q,execute:async()=>$(await Y.webhooks.list())}),webhooksUpdate:(0,e.tool)({description:`Update Webhook: Updates the configuration of an existing webhook, including its name, event subscriptions, or target URL.`,inputSchema:J,execute:async e=>{let t={hookId:e.hookId,name:e.name,events:e.events,url:e.url};return $(await Y.webhooks.update(t))}})}}function X(e={}){let t=Y(e);return{chats:{chatsCreate:Q(t,`chatsCreate`),chatsCreateAsync:Q(t,`chatsCreateAsync`),chatsCreateFromFiles:Q(t,`chatsCreateFromFiles`),chatsCreateFromRepo:Q(t,`chatsCreateFromRepo`),chatsCreateFromVercelProject:Q(t,`chatsCreateFromVercelProject`),chatsCreateFromZip:Q(t,`chatsCreateFromZip`),chatsCreateStream:Q(t,`chatsCreateStream`),chatsCreateVercelProject:Q(t,`chatsCreateVercelProject`),chatsDelete:Q(t,`chatsDelete`),chatsDeploy:Q(t,`chatsDeploy`),chatsDownloadFiles:Q(t,`chatsDownloadFiles`),chatsDuplicate:Q(t,`chatsDuplicate`),chatsGet:Q(t,`chatsGet`),chatsGetConnectStatus:Q(t,`chatsGetConnectStatus`),chatsGetFiles:Q(t,`chatsGetFiles`),chatsGetPreview:Q(t,`chatsGetPreview`),chatsList:Q(t,`chatsList`),chatsRestoreMessage:Q(t,`chatsRestoreMessage`),chatsResume:Q(t,`chatsResume`),chatsUpdate:Q(t,`chatsUpdate`),chatsUpdateFiles:Q(t,`chatsUpdateFiles`)},mcpServers:{mcpServersCreate:Q(t,`mcpServersCreate`),mcpServersDelete:Q(t,`mcpServersDelete`),mcpServersGet:Q(t,`mcpServersGet`),mcpServersList:Q(t,`mcpServersList`),mcpServersUpdate:Q(t,`mcpServersUpdate`)},messages:{messagesGet:Q(t,`messagesGet`),messagesList:Q(t,`messagesList`),messagesResolve:Q(t,`messagesResolve`),messagesResolveAsync:Q(t,`messagesResolveAsync`),messagesResolveStream:Q(t,`messagesResolveStream`),messagesSend:Q(t,`messagesSend`),messagesSendAsync:Q(t,`messagesSendAsync`),messagesSendStream:Q(t,`messagesSendStream`),messagesStop:Q(t,`messagesStop`)},settings:{settingsAppendPreviewHosts:Q(t,`settingsAppendPreviewHosts`),settingsDeletePreviewHosts:Q(t,`settingsDeletePreviewHosts`),settingsGetPreviewHosts:Q(t,`settingsGetPreviewHosts`),settingsSetPreviewHosts:Q(t,`settingsSetPreviewHosts`)},usage:{usageGetActivity:Q(t,`usageGetActivity`),usageGetSummary:Q(t,`usageGetSummary`),usageListEvents:Q(t,`usageListEvents`)},webhooks:{webhooksCreate:Q(t,`webhooksCreate`),webhooksDelete:Q(t,`webhooksDelete`),webhooksGet:Q(t,`webhooksGet`),webhooksList:Q(t,`webhooksList`),webhooksUpdate:Q(t,`webhooksUpdate`)}}}function Z(e){let{apiKey:t,...n}=e,r=typeof process<`u`?process.env.V0_API_KEY:void 0,i=n.auth??t??r;return i===void 0?n:{...n,auth:i}}function Q(e,t){let n=e[t];if(!n)throw Error(`Missing generated v0 tool: ${t}`);return n}function $(e){if(e&&typeof e==`object`&&(`data`in e||`error`in e)){let t=e;return t.error===void 0?t.data??null:{error:t.error}}return e}exports.v0Tools=Y,exports.v0ToolsByCategory=X;
|
package/dist/index.d.cts
CHANGED
|
@@ -6,13 +6,13 @@ type V0ToolsConfig = Parameters<typeof createV0Client>[0] & {
|
|
|
6
6
|
apiKey?: string;
|
|
7
7
|
};
|
|
8
8
|
type V0GeneratedTool = NonNullable<ToolSet[string]>;
|
|
9
|
-
type V0ToolName = 'chatsCreate' | 'chatsCreateAsync' | 'chatsCreateFromFiles' | 'chatsCreateFromRepo' | 'chatsCreateFromVercelProject' | 'chatsCreateFromZip' | 'chatsCreateStream' | 'chatsCreateVercelProject' | 'chatsDelete' | 'chatsDeploy' | 'chatsDownloadFiles' | 'chatsDuplicate' | 'chatsGet' | 'chatsGetConnectStatus' | 'chatsGetFiles' | 'chatsGetPreview' | 'chatsList' | 'chatsRestoreMessage' | 'chatsResume' | 'chatsUpdate' | 'chatsUpdateFiles' | 'mcpServersCreate' | 'mcpServersDelete' | 'mcpServersGet' | 'mcpServersList' | 'mcpServersUpdate' | 'messagesGet' | 'messagesList' | 'messagesResolve' | 'messagesResolveAsync' | 'messagesResolveStream' | 'messagesSend' | 'messagesSendAsync' | 'messagesSendStream' | 'messagesStop' | 'settingsGetPreviewHosts' | 'settingsSetPreviewHosts' | 'usageGetActivity' | 'usageGetSummary' | 'usageListEvents' | 'webhooksCreate' | 'webhooksDelete' | 'webhooksGet' | 'webhooksList' | 'webhooksUpdate';
|
|
9
|
+
type V0ToolName = 'chatsCreate' | 'chatsCreateAsync' | 'chatsCreateFromFiles' | 'chatsCreateFromRepo' | 'chatsCreateFromVercelProject' | 'chatsCreateFromZip' | 'chatsCreateStream' | 'chatsCreateVercelProject' | 'chatsDelete' | 'chatsDeploy' | 'chatsDownloadFiles' | 'chatsDuplicate' | 'chatsGet' | 'chatsGetConnectStatus' | 'chatsGetFiles' | 'chatsGetPreview' | 'chatsList' | 'chatsRestoreMessage' | 'chatsResume' | 'chatsUpdate' | 'chatsUpdateFiles' | 'mcpServersCreate' | 'mcpServersDelete' | 'mcpServersGet' | 'mcpServersList' | 'mcpServersUpdate' | 'messagesGet' | 'messagesList' | 'messagesResolve' | 'messagesResolveAsync' | 'messagesResolveStream' | 'messagesSend' | 'messagesSendAsync' | 'messagesSendStream' | 'messagesStop' | 'settingsAppendPreviewHosts' | 'settingsDeletePreviewHosts' | 'settingsGetPreviewHosts' | 'settingsSetPreviewHosts' | 'usageGetActivity' | 'usageGetSummary' | 'usageListEvents' | 'webhooksCreate' | 'webhooksDelete' | 'webhooksGet' | 'webhooksList' | 'webhooksUpdate';
|
|
10
10
|
type V0ToolsFlat = Record<V0ToolName, V0GeneratedTool>;
|
|
11
11
|
type V0ToolsByCategory = {
|
|
12
12
|
chats: Pick<V0ToolsFlat, 'chatsCreate' | 'chatsCreateAsync' | 'chatsCreateFromFiles' | 'chatsCreateFromRepo' | 'chatsCreateFromVercelProject' | 'chatsCreateFromZip' | 'chatsCreateStream' | 'chatsCreateVercelProject' | 'chatsDelete' | 'chatsDeploy' | 'chatsDownloadFiles' | 'chatsDuplicate' | 'chatsGet' | 'chatsGetConnectStatus' | 'chatsGetFiles' | 'chatsGetPreview' | 'chatsList' | 'chatsRestoreMessage' | 'chatsResume' | 'chatsUpdate' | 'chatsUpdateFiles'>;
|
|
13
13
|
mcpServers: Pick<V0ToolsFlat, 'mcpServersCreate' | 'mcpServersDelete' | 'mcpServersGet' | 'mcpServersList' | 'mcpServersUpdate'>;
|
|
14
14
|
messages: Pick<V0ToolsFlat, 'messagesGet' | 'messagesList' | 'messagesResolve' | 'messagesResolveAsync' | 'messagesResolveStream' | 'messagesSend' | 'messagesSendAsync' | 'messagesSendStream' | 'messagesStop'>;
|
|
15
|
-
settings: Pick<V0ToolsFlat, 'settingsGetPreviewHosts' | 'settingsSetPreviewHosts'>;
|
|
15
|
+
settings: Pick<V0ToolsFlat, 'settingsAppendPreviewHosts' | 'settingsDeletePreviewHosts' | 'settingsGetPreviewHosts' | 'settingsSetPreviewHosts'>;
|
|
16
16
|
usage: Pick<V0ToolsFlat, 'usageGetActivity' | 'usageGetSummary' | 'usageListEvents'>;
|
|
17
17
|
webhooks: Pick<V0ToolsFlat, 'webhooksCreate' | 'webhooksDelete' | 'webhooksGet' | 'webhooksList' | 'webhooksUpdate'>;
|
|
18
18
|
};
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/generated/tools.ts"],"mappings":";;;;KAQY,aAAA,GAAgB,UAAA,QAAkB,cAAA;EAC5C,MAAA;AAAA;AAAA,KAGG,eAAA,GAAkB,WAAA,CAAY,OAAA;AAAA,KAEvB,UAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/generated/tools.ts"],"mappings":";;;;KAQY,aAAA,GAAgB,UAAA,QAAkB,cAAA;EAC5C,MAAA;AAAA;AAAA,KAGG,eAAA,GAAkB,WAAA,CAAY,OAAA;AAAA,KAEvB,UAAA;AAAA,KAiDA,WAAA,GAAc,MAAA,CAAO,UAAA,EAAY,eAAA;AAAA,KAEjC,iBAAA;EACV,KAAA,EAAO,IAAA,CACL,WAAA;EAuBF,UAAA,EAAY,IAAA,CACV,WAAA;EAOF,QAAA,EAAU,IAAA,CACR,WAAA;EAWF,QAAA,EAAU,IAAA,CACR,WAAA;EAMF,KAAA,EAAO,IAAA,CAAK,WAAA;EACZ,QAAA,EAAU,IAAA,CACR,WAAA;AAAA;AAAA,KAKQ,cAAA,SAAuB,iBAAA;AAAA,iBAsvCnB,OAAA,CAAQ,MAAA,GAAQ,aAAA,GAAqB,WAAA;AAAA,iBAimBrC,iBAAA,CAAkB,MAAA,GAAQ,aAAA,GAAqB,iBAAA"}
|
package/dist/index.d.mts
CHANGED
|
@@ -6,13 +6,13 @@ type V0ToolsConfig = Parameters<typeof createV0Client>[0] & {
|
|
|
6
6
|
apiKey?: string;
|
|
7
7
|
};
|
|
8
8
|
type V0GeneratedTool = NonNullable<ToolSet[string]>;
|
|
9
|
-
type V0ToolName = 'chatsCreate' | 'chatsCreateAsync' | 'chatsCreateFromFiles' | 'chatsCreateFromRepo' | 'chatsCreateFromVercelProject' | 'chatsCreateFromZip' | 'chatsCreateStream' | 'chatsCreateVercelProject' | 'chatsDelete' | 'chatsDeploy' | 'chatsDownloadFiles' | 'chatsDuplicate' | 'chatsGet' | 'chatsGetConnectStatus' | 'chatsGetFiles' | 'chatsGetPreview' | 'chatsList' | 'chatsRestoreMessage' | 'chatsResume' | 'chatsUpdate' | 'chatsUpdateFiles' | 'mcpServersCreate' | 'mcpServersDelete' | 'mcpServersGet' | 'mcpServersList' | 'mcpServersUpdate' | 'messagesGet' | 'messagesList' | 'messagesResolve' | 'messagesResolveAsync' | 'messagesResolveStream' | 'messagesSend' | 'messagesSendAsync' | 'messagesSendStream' | 'messagesStop' | 'settingsGetPreviewHosts' | 'settingsSetPreviewHosts' | 'usageGetActivity' | 'usageGetSummary' | 'usageListEvents' | 'webhooksCreate' | 'webhooksDelete' | 'webhooksGet' | 'webhooksList' | 'webhooksUpdate';
|
|
9
|
+
type V0ToolName = 'chatsCreate' | 'chatsCreateAsync' | 'chatsCreateFromFiles' | 'chatsCreateFromRepo' | 'chatsCreateFromVercelProject' | 'chatsCreateFromZip' | 'chatsCreateStream' | 'chatsCreateVercelProject' | 'chatsDelete' | 'chatsDeploy' | 'chatsDownloadFiles' | 'chatsDuplicate' | 'chatsGet' | 'chatsGetConnectStatus' | 'chatsGetFiles' | 'chatsGetPreview' | 'chatsList' | 'chatsRestoreMessage' | 'chatsResume' | 'chatsUpdate' | 'chatsUpdateFiles' | 'mcpServersCreate' | 'mcpServersDelete' | 'mcpServersGet' | 'mcpServersList' | 'mcpServersUpdate' | 'messagesGet' | 'messagesList' | 'messagesResolve' | 'messagesResolveAsync' | 'messagesResolveStream' | 'messagesSend' | 'messagesSendAsync' | 'messagesSendStream' | 'messagesStop' | 'settingsAppendPreviewHosts' | 'settingsDeletePreviewHosts' | 'settingsGetPreviewHosts' | 'settingsSetPreviewHosts' | 'usageGetActivity' | 'usageGetSummary' | 'usageListEvents' | 'webhooksCreate' | 'webhooksDelete' | 'webhooksGet' | 'webhooksList' | 'webhooksUpdate';
|
|
10
10
|
type V0ToolsFlat = Record<V0ToolName, V0GeneratedTool>;
|
|
11
11
|
type V0ToolsByCategory = {
|
|
12
12
|
chats: Pick<V0ToolsFlat, 'chatsCreate' | 'chatsCreateAsync' | 'chatsCreateFromFiles' | 'chatsCreateFromRepo' | 'chatsCreateFromVercelProject' | 'chatsCreateFromZip' | 'chatsCreateStream' | 'chatsCreateVercelProject' | 'chatsDelete' | 'chatsDeploy' | 'chatsDownloadFiles' | 'chatsDuplicate' | 'chatsGet' | 'chatsGetConnectStatus' | 'chatsGetFiles' | 'chatsGetPreview' | 'chatsList' | 'chatsRestoreMessage' | 'chatsResume' | 'chatsUpdate' | 'chatsUpdateFiles'>;
|
|
13
13
|
mcpServers: Pick<V0ToolsFlat, 'mcpServersCreate' | 'mcpServersDelete' | 'mcpServersGet' | 'mcpServersList' | 'mcpServersUpdate'>;
|
|
14
14
|
messages: Pick<V0ToolsFlat, 'messagesGet' | 'messagesList' | 'messagesResolve' | 'messagesResolveAsync' | 'messagesResolveStream' | 'messagesSend' | 'messagesSendAsync' | 'messagesSendStream' | 'messagesStop'>;
|
|
15
|
-
settings: Pick<V0ToolsFlat, 'settingsGetPreviewHosts' | 'settingsSetPreviewHosts'>;
|
|
15
|
+
settings: Pick<V0ToolsFlat, 'settingsAppendPreviewHosts' | 'settingsDeletePreviewHosts' | 'settingsGetPreviewHosts' | 'settingsSetPreviewHosts'>;
|
|
16
16
|
usage: Pick<V0ToolsFlat, 'usageGetActivity' | 'usageGetSummary' | 'usageListEvents'>;
|
|
17
17
|
webhooks: Pick<V0ToolsFlat, 'webhooksCreate' | 'webhooksDelete' | 'webhooksGet' | 'webhooksList' | 'webhooksUpdate'>;
|
|
18
18
|
};
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/generated/tools.ts"],"mappings":";;;;KAQY,aAAA,GAAgB,UAAA,QAAkB,cAAA;EAC5C,MAAA;AAAA;AAAA,KAGG,eAAA,GAAkB,WAAA,CAAY,OAAA;AAAA,KAEvB,UAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/generated/tools.ts"],"mappings":";;;;KAQY,aAAA,GAAgB,UAAA,QAAkB,cAAA;EAC5C,MAAA;AAAA;AAAA,KAGG,eAAA,GAAkB,WAAA,CAAY,OAAA;AAAA,KAEvB,UAAA;AAAA,KAiDA,WAAA,GAAc,MAAA,CAAO,UAAA,EAAY,eAAA;AAAA,KAEjC,iBAAA;EACV,KAAA,EAAO,IAAA,CACL,WAAA;EAuBF,UAAA,EAAY,IAAA,CACV,WAAA;EAOF,QAAA,EAAU,IAAA,CACR,WAAA;EAWF,QAAA,EAAU,IAAA,CACR,WAAA;EAMF,KAAA,EAAO,IAAA,CAAK,WAAA;EACZ,QAAA,EAAU,IAAA,CACR,WAAA;AAAA;AAAA,KAKQ,cAAA,SAAuB,iBAAA;AAAA,iBAsvCnB,OAAA,CAAQ,MAAA,GAAQ,aAAA,GAAqB,WAAA;AAAA,iBAimBrC,iBAAA,CAAkB,MAAA,GAAQ,aAAA,GAAqB,iBAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{tool as e}from"ai";import{createV0Client as t}from"v0";import{z as n}from"zod";const r=n.object({message:n.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),attachments:n.array(n.union([n.object({url:n.string().describe(`URL or data URI containing the attachment.`)}),n.object({name:n.string().describe(`Display name for the inline text attachment.`).optional(),content:n.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),mcpServerIds:n.array(n.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),skills:n.array(n.union([n.object({type:n.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.string().describe(`Skill ID from skills.sh.`)}),n.object({type:n.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.string().describe(`Name of the memory skill to attach.`)}),n.object({type:n.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional(),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.string().describe(`Title for the new chat.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),i=n.object({message:n.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),attachments:n.array(n.union([n.object({url:n.string().describe(`URL or data URI containing the attachment.`)}),n.object({name:n.string().describe(`Display name for the inline text attachment.`).optional(),content:n.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),mcpServerIds:n.array(n.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),skills:n.array(n.union([n.object({type:n.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.string().describe(`Skill ID from skills.sh.`)}),n.object({type:n.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.string().describe(`Name of the memory skill to attach.`)}),n.object({type:n.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional(),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.string().describe(`Title for the new chat.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),a=n.object({files:n.array(n.object({name:n.string().describe(`Path of the file in the project.`),content:n.string().describe(`UTF-8 text content of the file.`)})).describe(`Source files used to seed the new chat.`),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.string().describe(`Title for the new chat.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),o=n.object({repo:n.object({url:n.string().describe(`GitHub repository URL, for example https://github.com/vercel/next.js.`),branch:n.string().describe(`Branch to import. If omitted, v0 uses the repository default branch.`).optional()}).describe(`Repository source for initialization. Supports public GitHub repositories and private repositories connected through Vercel.`),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.string().describe(`Title for the new chat.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),s=n.object({vercelProjectId:n.string().describe(`Vercel project ID in the active user or team scope.`),baseBranch:n.string().describe(`Base branch for a GitHub-linked project. Defaults to the repository default branch. Ignored for projects without a GitHub link.`).optional()}),c=n.object({url:n.string().url().describe(`Zip archive used to seed the new chat.`),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.string().describe(`Title for the new chat.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),l=n.object({message:n.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),attachments:n.array(n.union([n.object({url:n.string().describe(`URL or data URI containing the attachment.`)}),n.object({name:n.string().describe(`Display name for the inline text attachment.`).optional(),content:n.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),mcpServerIds:n.array(n.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),skills:n.array(n.union([n.object({type:n.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.string().describe(`Skill ID from skills.sh.`)}),n.object({type:n.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.string().describe(`Name of the memory skill to attach.`)}),n.object({type:n.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional(),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.string().describe(`Title for the new chat.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),u=n.object({chatId:n.string(),name:n.string().describe(`Name for the Vercel project. When omitted, the chat's title is used.`).optional()}),d=n.object({chatId:n.string()}),f=n.object({chatId:n.string()}),p=n.object({chatId:n.string()}),m=n.object({chatId:n.string(),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the duplicated chat.`),title:n.string().describe(`Custom title for the duplicated chat. If omitted, the original title is reused with an incremented suffix (e.g. "My Chat (2)").`).optional()}),h=n.object({chatId:n.string()}),g=n.object({chatId:n.string(),requestId:n.string()}),_=n.object({chatId:n.string()}),v=n.object({chatId:n.string()}),y=n.object({limit:n.number().int().describe(`Maximum number of chats to return (1-100, default 20).`).optional(),cursor:n.string().describe(`Pagination cursor returned from a previous response.`).optional(),authorId:n.string().describe(`Restrict results to chats created by this user. Must be a member of the calling scope.`).optional(),vercelProjectId:n.string().describe(`Restrict results to chats associated with this Vercel project.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Filter by metadata, e.g. metadata[environment]=production. Returns chats matching all supplied key-value pairs.`).optional()}),b=n.object({chatId:n.string(),messageId:n.string().describe(`The unique identifier of the assistant message whose files to restore.`)}),x=n.object({chatId:n.string()}),S=n.object({chatId:n.string(),title:n.string().describe(`A new title to assign to the chat.`).optional(),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Updated visibility setting for the chat.`).optional(),metadata:n.union([n.record(n.string(),n.union([n.string(),n.null()])),n.null()]).describe("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.").optional()}),C=n.object({chatId:n.string(),files:n.array(n.object({path:n.string().describe(`Project-relative file path, e.g. "app/page.tsx".`),content:n.union([n.string(),n.null()]).describe("New file content. Pass `null` to delete the file at this path.")})).describe(`The files to create, update, or delete. Each path must be unique.`)}),w=n.object({name:n.string().describe(`Display name for the MCP server.`),url:n.string().url().describe(`URL endpoint of the MCP server.`),description:n.string().describe(`Optional description of the MCP server.`).optional(),enabled:n.boolean().describe(`Whether the server should be enabled.`),auth:n.union([n.object({type:n.enum([`none`])}),n.object({type:n.enum([`bearer`]),token:n.string().describe(`Bearer token for authentication.`)}),n.object({type:n.enum([`custom-headers`]),headers:n.record(n.string(),n.string()).describe(`Custom headers to include in requests.`)}),n.object({type:n.enum([`oauth`]),config:n.object({authorizationUrl:n.string().url(),tokenUrl:n.string().url(),registrationUrl:n.string().url().optional(),clientId:n.string(),clientSecret:n.string().optional(),scopes:n.array(n.string()),usePKCE:n.boolean(),issuer:n.string().optional(),resource:n.string().optional(),clientIdMetadataDocumentSupported:n.boolean().optional()}).describe(`OAuth configuration discovered or manually set.`).optional(),connected:n.boolean().describe(`Whether OAuth is currently connected.`),expiresAt:n.string().describe(`ISO timestamp when the token expires.`).optional()})]).describe(`Authentication configuration.`),scope:n.enum([`user`,`team`]).describe(`Scope of the MCP server configuration.`)}),T=n.object({mcpServerId:n.string()}),E=n.object({mcpServerId:n.string()}),D=n.object({}),O=n.object({mcpServerId:n.string(),name:n.string().describe(`New display name.`).optional(),url:n.string().url().describe(`New URL endpoint.`).optional(),description:n.string().describe(`New description.`).optional(),enabled:n.boolean().describe(`Enable or disable.`).optional(),auth:n.union([n.object({type:n.enum([`none`])}),n.object({type:n.enum([`bearer`]),token:n.string().describe(`Bearer token for authentication.`)}),n.object({type:n.enum([`custom-headers`]),headers:n.record(n.string(),n.string()).describe(`Custom headers to include in requests.`)}),n.object({type:n.enum([`oauth`]),config:n.object({authorizationUrl:n.string().url(),tokenUrl:n.string().url(),registrationUrl:n.string().url().optional(),clientId:n.string(),clientSecret:n.string().optional(),scopes:n.array(n.string()),usePKCE:n.boolean(),issuer:n.string().optional(),resource:n.string().optional(),clientIdMetadataDocumentSupported:n.boolean().optional()}).describe(`OAuth configuration discovered or manually set.`).optional(),connected:n.boolean().describe(`Whether OAuth is currently connected.`),expiresAt:n.string().describe(`ISO timestamp when the token expires.`).optional()})]).describe(`New authentication configuration.`).optional(),scope:n.enum([`user`,`team`]).describe(`New scope.`).optional()}),k=n.object({chatId:n.string(),messageId:n.string()}),A=n.object({chatId:n.string(),limit:n.number().int(),cursor:n.string().optional()}),j=n.object({chatId:n.string(),task:n.union([n.object({type:n.enum([`confirmed-steps`]),connectedIntegrationNames:n.array(n.string()).describe(`Names of integrations that were successfully connected (e.g. "Neon"). Pass an empty array to skip.`).optional(),connectedNpmRegistryIds:n.array(n.string()).describe(`Qualified npm registry IDs that were successfully connected (e.g. "npm:https://registry.example.com/"). Pass an empty array to skip.`).optional(),connectedMcpPresetNames:n.array(n.enum([`Linear`,`Notion`,`Context7`,`Sentry`,`Zapier`,`Glean`,`Hex`,`Sanity`,`Granola`,`PostHog`,`Contentful`,`Slack`])).describe(`Names of MCP presets that were connected (e.g. "Linear", "Sentry"). Pass an empty array to skip.`).optional(),appliedScripts:n.array(n.string()).describe(`Names of scripts that were applied.`).optional(),addedEnvVars:n.array(n.string()).describe(`Names of environment variables that were added.`).optional()}),n.object({type:n.enum([`plan-exit-response`]),status:n.enum([`approved`,`rejected`,`request-changes`]).describe(`Whether the plan is approved, rejected, or needs changes.`),content:n.string().describe(`Feedback or instructions for the agent.`)}),n.object({type:n.enum([`answered-questions`]),answers:n.array(n.object({questionId:n.string().describe(`The ID of the question being answered.`),questionText:n.string().describe(`The text of the question being answered.`),selectedLabels:n.array(n.string()).describe(`The labels of the selected options. For single-select questions, pass one item.`),customText:n.string().describe(`Free-form text input, used when the user selects "Other" or wants to add context.`).optional()})).describe(`Answers to the questions the agent asked.`)}),n.object({type:n.enum([`confirmed-permissions`]),permissions:n.array(n.object({type:n.enum([`ALLOW_DYNAMIC_TOOL_STRICT`]),toolName:n.string().describe(`The name of the tool being permitted.`),input:n.unknown().describe(`The tool call input arguments. Pass the exact input from the stopped task.`),toolDisplayName:n.union([n.string(),n.null()]).describe(`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.`).optional(),taskNameActive:n.union([n.string(),n.null()]).describe(`Label shown while the tool is running (e.g. "Running migration").`).optional(),taskNameComplete:n.union([n.string(),n.null()]).describe(`Label shown after the tool completes (e.g. "Migration complete").`).optional(),userMessage:n.string().describe(`Optional message from the user about this permission.`).optional()})).describe(`The permissions to grant. Pass the suggestedPermissions from the stopped task.`),userMessage:n.string().describe(`Optional message from the user about the permission grant.`).optional()}),n.object({type:n.enum([`vercel-connect-setup`])}),n.object({type:n.enum([`vercel-connect-authorization`])})]).describe(`The task resolution data. Use this when the chat is waiting for user input on the matching task type.`),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`).optional(),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`).optional()}).describe(`Overrides for the model behavior.`).optional()}),M=n.object({chatId:n.string(),task:n.union([n.object({type:n.enum([`confirmed-steps`]),connectedIntegrationNames:n.array(n.string()).describe(`Names of integrations that were successfully connected (e.g. "Neon"). Pass an empty array to skip.`).optional(),connectedNpmRegistryIds:n.array(n.string()).describe(`Qualified npm registry IDs that were successfully connected (e.g. "npm:https://registry.example.com/"). Pass an empty array to skip.`).optional(),connectedMcpPresetNames:n.array(n.enum([`Linear`,`Notion`,`Context7`,`Sentry`,`Zapier`,`Glean`,`Hex`,`Sanity`,`Granola`,`PostHog`,`Contentful`,`Slack`])).describe(`Names of MCP presets that were connected (e.g. "Linear", "Sentry"). Pass an empty array to skip.`).optional(),appliedScripts:n.array(n.string()).describe(`Names of scripts that were applied.`).optional(),addedEnvVars:n.array(n.string()).describe(`Names of environment variables that were added.`).optional()}),n.object({type:n.enum([`plan-exit-response`]),status:n.enum([`approved`,`rejected`,`request-changes`]).describe(`Whether the plan is approved, rejected, or needs changes.`),content:n.string().describe(`Feedback or instructions for the agent.`)}),n.object({type:n.enum([`answered-questions`]),answers:n.array(n.object({questionId:n.string().describe(`The ID of the question being answered.`),questionText:n.string().describe(`The text of the question being answered.`),selectedLabels:n.array(n.string()).describe(`The labels of the selected options. For single-select questions, pass one item.`),customText:n.string().describe(`Free-form text input, used when the user selects "Other" or wants to add context.`).optional()})).describe(`Answers to the questions the agent asked.`)}),n.object({type:n.enum([`confirmed-permissions`]),permissions:n.array(n.object({type:n.enum([`ALLOW_DYNAMIC_TOOL_STRICT`]),toolName:n.string().describe(`The name of the tool being permitted.`),input:n.unknown().describe(`The tool call input arguments. Pass the exact input from the stopped task.`),toolDisplayName:n.union([n.string(),n.null()]).describe(`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.`).optional(),taskNameActive:n.union([n.string(),n.null()]).describe(`Label shown while the tool is running (e.g. "Running migration").`).optional(),taskNameComplete:n.union([n.string(),n.null()]).describe(`Label shown after the tool completes (e.g. "Migration complete").`).optional(),userMessage:n.string().describe(`Optional message from the user about this permission.`).optional()})).describe(`The permissions to grant. Pass the suggestedPermissions from the stopped task.`),userMessage:n.string().describe(`Optional message from the user about the permission grant.`).optional()}),n.object({type:n.enum([`vercel-connect-setup`])}),n.object({type:n.enum([`vercel-connect-authorization`])})]).describe(`The task resolution data. Use this when the chat is waiting for user input on the matching task type.`),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`).optional(),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`).optional()}).describe(`Overrides for the model behavior.`).optional()}),N=n.object({chatId:n.string(),task:n.union([n.object({type:n.enum([`confirmed-steps`]),connectedIntegrationNames:n.array(n.string()).describe(`Names of integrations that were successfully connected (e.g. "Neon"). Pass an empty array to skip.`).optional(),connectedNpmRegistryIds:n.array(n.string()).describe(`Qualified npm registry IDs that were successfully connected (e.g. "npm:https://registry.example.com/"). Pass an empty array to skip.`).optional(),connectedMcpPresetNames:n.array(n.enum([`Linear`,`Notion`,`Context7`,`Sentry`,`Zapier`,`Glean`,`Hex`,`Sanity`,`Granola`,`PostHog`,`Contentful`,`Slack`])).describe(`Names of MCP presets that were connected (e.g. "Linear", "Sentry"). Pass an empty array to skip.`).optional(),appliedScripts:n.array(n.string()).describe(`Names of scripts that were applied.`).optional(),addedEnvVars:n.array(n.string()).describe(`Names of environment variables that were added.`).optional()}),n.object({type:n.enum([`plan-exit-response`]),status:n.enum([`approved`,`rejected`,`request-changes`]).describe(`Whether the plan is approved, rejected, or needs changes.`),content:n.string().describe(`Feedback or instructions for the agent.`)}),n.object({type:n.enum([`answered-questions`]),answers:n.array(n.object({questionId:n.string().describe(`The ID of the question being answered.`),questionText:n.string().describe(`The text of the question being answered.`),selectedLabels:n.array(n.string()).describe(`The labels of the selected options. For single-select questions, pass one item.`),customText:n.string().describe(`Free-form text input, used when the user selects "Other" or wants to add context.`).optional()})).describe(`Answers to the questions the agent asked.`)}),n.object({type:n.enum([`confirmed-permissions`]),permissions:n.array(n.object({type:n.enum([`ALLOW_DYNAMIC_TOOL_STRICT`]),toolName:n.string().describe(`The name of the tool being permitted.`),input:n.unknown().describe(`The tool call input arguments. Pass the exact input from the stopped task.`),toolDisplayName:n.union([n.string(),n.null()]).describe(`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.`).optional(),taskNameActive:n.union([n.string(),n.null()]).describe(`Label shown while the tool is running (e.g. "Running migration").`).optional(),taskNameComplete:n.union([n.string(),n.null()]).describe(`Label shown after the tool completes (e.g. "Migration complete").`).optional(),userMessage:n.string().describe(`Optional message from the user about this permission.`).optional()})).describe(`The permissions to grant. Pass the suggestedPermissions from the stopped task.`),userMessage:n.string().describe(`Optional message from the user about the permission grant.`).optional()}),n.object({type:n.enum([`vercel-connect-setup`])}),n.object({type:n.enum([`vercel-connect-authorization`])})]).describe(`The task resolution data. Use this when the chat is waiting for user input on the matching task type.`),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`).optional(),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`).optional()}).describe(`Overrides for the model behavior.`).optional()}),P=n.object({chatId:n.string(),message:n.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),mcpServerIds:n.array(n.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),attachments:n.array(n.union([n.object({url:n.string().describe(`URL or data URI containing the attachment.`)}),n.object({name:n.string().describe(`Display name for the inline text attachment.`).optional(),content:n.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),skills:n.array(n.union([n.object({type:n.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.string().describe(`Skill ID from skills.sh.`)}),n.object({type:n.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.string().describe(`Name of the memory skill to attach.`)}),n.object({type:n.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional()}),F=n.object({chatId:n.string(),message:n.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),mcpServerIds:n.array(n.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),attachments:n.array(n.union([n.object({url:n.string().describe(`URL or data URI containing the attachment.`)}),n.object({name:n.string().describe(`Display name for the inline text attachment.`).optional(),content:n.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),skills:n.array(n.union([n.object({type:n.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.string().describe(`Skill ID from skills.sh.`)}),n.object({type:n.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.string().describe(`Name of the memory skill to attach.`)}),n.object({type:n.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional()}),I=n.object({chatId:n.string(),message:n.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),mcpServerIds:n.array(n.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),attachments:n.array(n.union([n.object({url:n.string().describe(`URL or data URI containing the attachment.`)}),n.object({name:n.string().describe(`Display name for the inline text attachment.`).optional(),content:n.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),skills:n.array(n.union([n.object({type:n.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.string().describe(`Skill ID from skills.sh.`)}),n.object({type:n.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.string().describe(`Name of the memory skill to attach.`)}),n.object({type:n.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional()}),L=n.object({chatId:n.string(),messageId:n.string()}),R=n.object({}),z=n.object({hosts:n.array(n.string()).describe(`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.`)}),B=n.object({start:n.string().datetime().optional(),end:n.string().datetime().optional(),userId:n.string().optional()}),V=n.object({start:n.string().datetime().optional(),end:n.string().datetime().optional(),userId:n.string().optional()}),H=n.object({start:n.string().datetime().optional(),end:n.string().datetime().optional(),userId:n.string().optional(),chatId:n.string().optional(),messageId:n.string().optional(),limit:n.number().int().optional(),cursor:n.string().optional()}),U=n.object({name:n.string().describe(`A human-readable name for the webhook.`),events:n.array(n.enum([`chat.created`,`chat.updated`,`chat.deleted`,`message.created`,`message.updated`,`message.deleted`,`message.finished`])).describe(`List of event types the webhook should subscribe to.`),url:n.string().url().describe(`The target URL to receive the webhook payloads.`),chatId:n.union([n.string(),n.null()]).describe(`The ID of a chat to scope the webhook to.`)}),W=n.object({hookId:n.string()}),G=n.object({hookId:n.string()}),K=n.object({}),q=n.object({hookId:n.string(),name:n.string().describe(`A new display name for the webhook.`).optional(),events:n.array(n.enum([`chat.created`,`chat.updated`,`chat.deleted`,`message.created`,`message.updated`,`message.deleted`,`message.finished`])).describe(`Updated list of event types to subscribe to.`).optional(),url:n.string().url().describe(`A new target URL to receive webhook payloads.`).optional()});function J(n={}){let J=t(X(n));return{chatsCreate:e({description:`Create Chat: Creates a new chat from a prompt. The request blocks until the model response is complete and returns the chat.`,inputSchema:r,execute:async e=>{let t={message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,attachments:e.attachments,mcpServerIds:e.mcpServerIds,skills:e.skills,privacy:e.privacy,title:e.title,metadata:e.metadata};return Q(await J.chats.create(t))}}),chatsCreateAsync:e({description:"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.",inputSchema:i,execute:async e=>{let t={message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,attachments:e.attachments,mcpServerIds:e.mcpServerIds,skills:e.skills,privacy:e.privacy,title:e.title,metadata:e.metadata};return Q(await J.chats.createAsync(t))}}),chatsCreateFromFiles:e({description:`Create Chat From Files: Creates a new chat from inline source files.`,inputSchema:a,execute:async e=>{let t={files:e.files,privacy:e.privacy,title:e.title,metadata:e.metadata};return Q(await J.chats.createFromFiles(t))}}),chatsCreateFromRepo:e({description:`Create Chat From Repository: Creates a new chat from a GitHub repository.`,inputSchema:o,execute:async e=>{let t={repo:e.repo,privacy:e.privacy,title:e.title,metadata:e.metadata};return Q(await J.chats.createFromRepo(t))}}),chatsCreateFromVercelProject:e({description:`Create Chat From Vercel Project: Creates a new chat from an existing Vercel project.`,inputSchema:s,execute:async e=>{let t={vercelProjectId:e.vercelProjectId,baseBranch:e.baseBranch};return Q(await J.chats.createFromVercelProject(t))}}),chatsCreateFromZip:e({description:`Create Chat From ZIP: Creates a new chat from a zip archive.`,inputSchema:c,execute:async e=>{let t={url:e.url,privacy:e.privacy,title:e.title,metadata:e.metadata};return Q(await J.chats.createFromZip(t))}}),chatsCreateStream:e({description:"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.",inputSchema:l,execute:async function*(e){let t={message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,attachments:e.attachments,mcpServerIds:e.mcpServerIds,skills:e.skills,privacy:e.privacy,title:e.title,metadata:e.metadata};yield*(await J.chats.createStream(t)).stream}}),chatsCreateVercelProject:e({description:`Create Vercel Project: Creates a Vercel project and attaches it to the chat.`,inputSchema:u,execute:async e=>{let t={chatId:e.chatId,name:e.name};return Q(await J.chats.createVercelProject(t))}}),chatsDelete:e({description:`Delete Chat: Deletes a chat and all its associated messages. The requester must have edit access to the chat.`,inputSchema:d,execute:async e=>{let t={chatId:e.chatId};return Q(await J.chats.delete(t))}}),chatsDeploy:e({description:`Deploy Chat: Triggers a Vercel deployment for a chat. Creates a Vercel project if one does not exist.`,inputSchema:f,execute:async e=>{let t={chatId:e.chatId};return Q(await J.chats.deploy(t))}}),chatsDownloadFiles:e({description:`Download Chat Files: Downloads the source files for a chat as a ZIP archive.`,inputSchema:p,execute:async e=>{let t={chatId:e.chatId};return Q(await J.chats.downloadFiles(t))}}),chatsDuplicate:e({description:`Duplicate Chat: Creates a new chat by duplicating an existing chat.`,inputSchema:m,execute:async e=>{let t={chatId:e.chatId,privacy:e.privacy,title:e.title};return Q(await J.chats.duplicate(t))}}),chatsGet:e({description:`Get Chat: Retrieves a chat by ID.`,inputSchema:h,execute:async e=>{let t={chatId:e.chatId};return Q(await J.chats.get(t))}}),chatsGetConnectStatus:e({description:"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.",inputSchema:g,execute:async e=>{let t={chatId:e.chatId,requestId:e.requestId};return Q(await J.chats.getConnectStatus(t))}}),chatsGetFiles:e({description:`Get Chat Files: Returns the source files for a chat.`,inputSchema:_,execute:async e=>{let t={chatId:e.chatId};return Q(await J.chats.getFiles(t))}}),chatsGetPreview:e({description:`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.`,inputSchema:v,execute:async e=>{let t={chatId:e.chatId};return Q(await J.chats.getPreview(t))}}),chatsList:e({description:`List Chats: Lists chats accessible to the authenticated user. Use metadata[key]=value style query parameters to filter by metadata.`,inputSchema:y,execute:async e=>{let t={limit:e.limit,cursor:e.cursor,authorId:e.authorId,vercelProjectId:e.vercelProjectId,metadata:e.metadata};return Q(await J.chats.list(t))}}),chatsRestoreMessage:e({description:`Restore Message: Restores the files associated with an assistant message. The associated files must not already be the latest files in the chat.`,inputSchema:b,execute:async e=>{let t={chatId:e.chatId,messageId:e.messageId};return Q(await J.chats.restoreMessage(t))}}),chatsResume:e({description:"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.",inputSchema:x,execute:async function*(e){let t={chatId:e.chatId};yield*(await J.chats.resume(t)).stream}}),chatsUpdate:e({description:`Update Chat: Updates a chat's title, privacy, or metadata.`,inputSchema:S,execute:async e=>{let t={chatId:e.chatId,title:e.title,privacy:e.privacy,metadata:e.metadata};return Q(await J.chats.update(t))}}),chatsUpdateFiles:e({description:`Update Chat Files: Creates, updates, or deletes files for a chat. Pass null to delete. This requires the chat's preview to be running.`,inputSchema:C,execute:async e=>{let t={chatId:e.chatId,files:e.files};return Q(await J.chats.updateFiles(t))}}),mcpServersCreate:e({description:`Create MCP Server: Creates a new MCP server configuration. Limited to 100 servers per user.`,inputSchema:w,execute:async e=>{let t={name:e.name,url:e.url,description:e.description,enabled:e.enabled,auth:e.auth,scope:e.scope};return Q(await J.mcpServers.create(t))}}),mcpServersDelete:e({description:`Delete MCP Server: Deletes an MCP server and cleans up associated OAuth tokens. This action is irreversible.`,inputSchema:T,execute:async e=>{let t={mcpServerId:e.mcpServerId};return Q(await J.mcpServers.delete(t))}}),mcpServersGet:e({description:`Get MCP Server: Retrieves a specific MCP server by ID.`,inputSchema:E,execute:async e=>{let t={mcpServerId:e.mcpServerId};return Q(await J.mcpServers.get(t))}}),mcpServersList:e({description:`List MCP Servers: Retrieves all MCP servers configured for the current user.`,inputSchema:D,execute:async()=>Q(await J.mcpServers.list())}),mcpServersUpdate:e({description:`Update MCP Server: Updates an existing MCP server configuration.`,inputSchema:O,execute:async e=>{let t={mcpServerId:e.mcpServerId,name:e.name,url:e.url,description:e.description,enabled:e.enabled,auth:e.auth,scope:e.scope};return Q(await J.mcpServers.update(t))}}),messagesGet:e({description:`Get Message: Fetches a single message in a chat.`,inputSchema:k,execute:async e=>{let t={chatId:e.chatId,messageId:e.messageId};return Q(await J.messages.get(t))}}),messagesList:e({description:`List Messages: Lists all messages in a chat.`,inputSchema:A,execute:async e=>{let t={chatId:e.chatId,limit:e.limit,cursor:e.cursor};return Q(await J.messages.list(t))}}),messagesResolve:e({description:`Resolve Task: Resolves a pending task in a chat. Blocks until the model response is complete and returns the resulting message.`,inputSchema:j,execute:async e=>{let t={chatId:e.chatId,task:e.task,modelConfiguration:e.modelConfiguration};return Q(await J.messages.resolve(t))}}),messagesResolveAsync:e({description:"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.",inputSchema:M,execute:async e=>{let t={chatId:e.chatId,task:e.task,modelConfiguration:e.modelConfiguration};return Q(await J.messages.resolveAsync(t))}}),messagesResolveStream:e({description:"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.",inputSchema:N,execute:async function*(e){let t={chatId:e.chatId,task:e.task,modelConfiguration:e.modelConfiguration};yield*(await J.messages.resolveStream(t)).stream}}),messagesSend:e({description:`Send Message: Sends a new message to an existing chat. Blocks until the model response is complete and returns the message response.`,inputSchema:P,execute:async e=>{let t={chatId:e.chatId,message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,mcpServerIds:e.mcpServerIds,attachments:e.attachments,skills:e.skills};return Q(await J.messages.send(t))}}),messagesSendAsync:e({description:"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.",inputSchema:F,execute:async e=>{let t={chatId:e.chatId,message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,mcpServerIds:e.mcpServerIds,attachments:e.attachments,skills:e.skills};return Q(await J.messages.sendAsync(t))}}),messagesSendStream:e({description:"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.",inputSchema:I,execute:async function*(e){let t={chatId:e.chatId,message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,mcpServerIds:e.mcpServerIds,attachments:e.attachments,skills:e.skills};yield*(await J.messages.sendStream(t)).stream}}),messagesStop:e({description:`Stop Message: Stops an in-flight assistant message generation. The agent aborts at the next safe point and the message is marked finished.`,inputSchema:L,execute:async e=>{let t={chatId:e.chatId,messageId:e.messageId};return Q(await J.messages.stop(t))}}),settingsGetPreviewHosts:e({description:`Get Trusted Preview Hosts: Returns the hostname patterns trusted to embed previews for the current team. Organization child teams inherit the parent organization’s hosts.`,inputSchema:R,execute:async()=>Q(await J.settings.getPreviewHosts())}),settingsSetPreviewHosts:e({description:`Set Trusted Preview Hosts: Sets the host patterns trusted to embed previews for a standalone team or parent organization. Organization child teams cannot override this setting.`,inputSchema:z,execute:async e=>{let t={hosts:e.hosts};return Q(await J.settings.setPreviewHosts(t))}}),usageGetActivity:e({description:`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.`,inputSchema:B,execute:async e=>{let t={start:e.start===void 0?void 0:new Date(e.start),end:e.end===void 0?void 0:new Date(e.end),userId:e.userId};return Q(await J.usage.getActivity(t))}}),usageGetSummary:e({description:`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.`,inputSchema:V,execute:async e=>{let t={start:e.start===void 0?void 0:new Date(e.start),end:e.end===void 0?void 0:new Date(e.end),userId:e.userId};return Q(await J.usage.getSummary(t))}}),usageListEvents:e({description:`List Usage Events: Lists individual credit usage events. Each event includes the credits charged and, when available, associated token counts.`,inputSchema:H,execute:async e=>{let t={start:e.start===void 0?void 0:new Date(e.start),end:e.end===void 0?void 0:new Date(e.end),userId:e.userId,chatId:e.chatId,messageId:e.messageId,limit:e.limit,cursor:e.cursor};return Q(await J.usage.listEvents(t))}}),webhooksCreate:e({description:`Create Webhook: Creates a new webhook that listens for specific events. Supports optional association with a chat.`,inputSchema:U,execute:async e=>{let t={name:e.name,events:e.events,url:e.url,chatId:e.chatId};return Q(await J.webhooks.create(t))}}),webhooksDelete:e({description:`Delete Webhook: Deletes a webhook. This action is irreversible.`,inputSchema:W,execute:async e=>{let t={hookId:e.hookId};return Q(await J.webhooks.delete(t))}}),webhooksGet:e({description:`Get Webhook: Retrieves the details of a specific webhook using its ID.`,inputSchema:G,execute:async e=>{let t={hookId:e.hookId};return Q(await J.webhooks.get(t))}}),webhooksList:e({description:`List Webhooks: Retrieves a list of all webhooks in your workspace.`,inputSchema:K,execute:async()=>Q(await J.webhooks.list())}),webhooksUpdate:e({description:`Update Webhook: Updates the configuration of an existing webhook, including its name, event subscriptions, or target URL.`,inputSchema:q,execute:async e=>{let t={hookId:e.hookId,name:e.name,events:e.events,url:e.url};return Q(await J.webhooks.update(t))}})}}function Y(e={}){let t=J(e);return{chats:{chatsCreate:Z(t,`chatsCreate`),chatsCreateAsync:Z(t,`chatsCreateAsync`),chatsCreateFromFiles:Z(t,`chatsCreateFromFiles`),chatsCreateFromRepo:Z(t,`chatsCreateFromRepo`),chatsCreateFromVercelProject:Z(t,`chatsCreateFromVercelProject`),chatsCreateFromZip:Z(t,`chatsCreateFromZip`),chatsCreateStream:Z(t,`chatsCreateStream`),chatsCreateVercelProject:Z(t,`chatsCreateVercelProject`),chatsDelete:Z(t,`chatsDelete`),chatsDeploy:Z(t,`chatsDeploy`),chatsDownloadFiles:Z(t,`chatsDownloadFiles`),chatsDuplicate:Z(t,`chatsDuplicate`),chatsGet:Z(t,`chatsGet`),chatsGetConnectStatus:Z(t,`chatsGetConnectStatus`),chatsGetFiles:Z(t,`chatsGetFiles`),chatsGetPreview:Z(t,`chatsGetPreview`),chatsList:Z(t,`chatsList`),chatsRestoreMessage:Z(t,`chatsRestoreMessage`),chatsResume:Z(t,`chatsResume`),chatsUpdate:Z(t,`chatsUpdate`),chatsUpdateFiles:Z(t,`chatsUpdateFiles`)},mcpServers:{mcpServersCreate:Z(t,`mcpServersCreate`),mcpServersDelete:Z(t,`mcpServersDelete`),mcpServersGet:Z(t,`mcpServersGet`),mcpServersList:Z(t,`mcpServersList`),mcpServersUpdate:Z(t,`mcpServersUpdate`)},messages:{messagesGet:Z(t,`messagesGet`),messagesList:Z(t,`messagesList`),messagesResolve:Z(t,`messagesResolve`),messagesResolveAsync:Z(t,`messagesResolveAsync`),messagesResolveStream:Z(t,`messagesResolveStream`),messagesSend:Z(t,`messagesSend`),messagesSendAsync:Z(t,`messagesSendAsync`),messagesSendStream:Z(t,`messagesSendStream`),messagesStop:Z(t,`messagesStop`)},settings:{settingsGetPreviewHosts:Z(t,`settingsGetPreviewHosts`),settingsSetPreviewHosts:Z(t,`settingsSetPreviewHosts`)},usage:{usageGetActivity:Z(t,`usageGetActivity`),usageGetSummary:Z(t,`usageGetSummary`),usageListEvents:Z(t,`usageListEvents`)},webhooks:{webhooksCreate:Z(t,`webhooksCreate`),webhooksDelete:Z(t,`webhooksDelete`),webhooksGet:Z(t,`webhooksGet`),webhooksList:Z(t,`webhooksList`),webhooksUpdate:Z(t,`webhooksUpdate`)}}}function X(e){let{apiKey:t,...n}=e,r=typeof process<`u`?process.env.V0_API_KEY:void 0,i=n.auth??t??r;return i===void 0?n:{...n,auth:i}}function Z(e,t){let n=e[t];if(!n)throw Error(`Missing generated v0 tool: ${t}`);return n}function Q(e){if(e&&typeof e==`object`&&(`data`in e||`error`in e)){let t=e;return t.error===void 0?t.data??null:{error:t.error}}return e}export{J as v0Tools,Y as v0ToolsByCategory};
|
|
1
|
+
import{tool as e}from"ai";import{createV0Client as t}from"v0";import{z as n}from"zod";const r=n.object({message:n.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),attachments:n.array(n.union([n.object({url:n.string().describe(`URL or data URI containing the attachment.`)}),n.object({name:n.string().describe(`Display name for the inline text attachment.`).optional(),content:n.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),mcpServerIds:n.array(n.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),skills:n.array(n.union([n.object({type:n.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.string().describe(`Skill ID from skills.sh.`)}),n.object({type:n.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.string().describe(`Name of the memory skill to attach.`)}),n.object({type:n.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional(),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.string().describe(`Title for the new chat.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),i=n.object({message:n.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),attachments:n.array(n.union([n.object({url:n.string().describe(`URL or data URI containing the attachment.`)}),n.object({name:n.string().describe(`Display name for the inline text attachment.`).optional(),content:n.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),mcpServerIds:n.array(n.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),skills:n.array(n.union([n.object({type:n.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.string().describe(`Skill ID from skills.sh.`)}),n.object({type:n.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.string().describe(`Name of the memory skill to attach.`)}),n.object({type:n.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional(),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.string().describe(`Title for the new chat.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),a=n.object({files:n.array(n.object({name:n.string().describe(`Path of the file in the project.`),content:n.string().describe("File content encoded according to `encoding`."),encoding:n.enum([`utf8`,`base64`]).describe("How `content` is encoded. Defaults to `utf8` when omitted.").optional()})).describe(`Source files used to seed the new chat.`),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.string().describe(`Title for the new chat.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),o=n.object({repo:n.object({url:n.string().describe(`GitHub repository URL, for example https://github.com/vercel/next.js.`),branch:n.string().describe(`Branch to import. If omitted, v0 uses the repository default branch.`).optional()}).describe(`Repository source for initialization. Supports public GitHub repositories and private repositories connected through Vercel.`),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.string().describe(`Title for the new chat.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),s=n.object({vercelProjectId:n.string().describe(`Vercel project ID in the active user or team scope.`),baseBranch:n.string().describe(`Base branch for a GitHub-linked project. Defaults to the repository default branch. Ignored for projects without a GitHub link.`).optional(),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.string().describe(`Title for the new chat.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),c=n.object({url:n.string().url().describe(`Zip archive used to seed the new chat.`),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.string().describe(`Title for the new chat.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),l=n.object({message:n.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),attachments:n.array(n.union([n.object({url:n.string().describe(`URL or data URI containing the attachment.`)}),n.object({name:n.string().describe(`Display name for the inline text attachment.`).optional(),content:n.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),mcpServerIds:n.array(n.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),skills:n.array(n.union([n.object({type:n.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.string().describe(`Skill ID from skills.sh.`)}),n.object({type:n.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.string().describe(`Name of the memory skill to attach.`)}),n.object({type:n.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the chat. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional(),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the new chat.`).optional(),title:n.string().describe(`Title for the new chat.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),u=n.object({chatId:n.string(),name:n.string().describe(`Name for the Vercel project. When omitted, the chat's title is used.`).optional()}),d=n.object({chatId:n.string()}),f=n.object({chatId:n.string()}),p=n.object({chatId:n.string()}),m=n.object({chatId:n.string(),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Visibility setting for the duplicated chat.`),title:n.string().describe(`Custom title for the duplicated chat. If omitted, the original title is reused with an incremented suffix (e.g. "My Chat (2)").`).optional(),metadata:n.record(n.string(),n.string()).describe(`Arbitrary key-value data to attach to the chat.`).optional()}),h=n.object({chatId:n.string()}),g=n.object({chatId:n.string(),requestId:n.string()}),_=n.object({chatId:n.string()}),v=n.object({chatId:n.string()}),y=n.object({limit:n.number().int().describe(`Maximum number of chats to return (1-100, default 20).`).optional(),cursor:n.string().describe(`Pagination cursor returned from a previous response.`).optional(),authorId:n.string().describe(`Restrict results to chats created by this user. Must be a member of the calling scope.`).optional(),vercelProjectId:n.string().describe(`Restrict results to chats associated with this Vercel project.`).optional(),metadata:n.record(n.string(),n.string()).describe(`Filter by metadata, e.g. metadata[environment]=production. Returns chats matching all supplied key-value pairs.`).optional()}),b=n.object({chatId:n.string(),messageId:n.string().describe(`The unique identifier of the assistant message whose files to restore.`)}),x=n.object({chatId:n.string()}),S=n.object({chatId:n.string(),title:n.string().describe(`A new title to assign to the chat.`).optional(),privacy:n.enum([`public`,`private`,`team`,`team-edit`,`unlisted`]).describe(`Updated visibility setting for the chat.`).optional(),metadata:n.union([n.record(n.string(),n.union([n.string(),n.null()])),n.null()]).describe("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.").optional()}),C=n.object({chatId:n.string(),files:n.array(n.object({path:n.string().describe(`Project-relative file path, e.g. "app/page.tsx".`),content:n.union([n.string(),n.null()]).describe("New file content. Pass `null` to delete the file at this path."),encoding:n.enum([`utf8`,`base64`]).describe("How non-null `content` is encoded. Defaults to `utf8` when omitted.").optional()})).describe(`The files to create, update, or delete. Each path must be unique.`)}),w=n.object({name:n.string().describe(`Display name for the MCP server.`),url:n.string().url().describe(`URL endpoint of the MCP server.`),description:n.string().describe(`Optional description of the MCP server.`).optional(),enabled:n.boolean().describe(`Whether the server should be enabled.`),auth:n.union([n.object({type:n.enum([`none`])}),n.object({type:n.enum([`bearer`]),token:n.string().describe(`Bearer token for authentication.`)}),n.object({type:n.enum([`custom-headers`]),headers:n.record(n.string(),n.string()).describe(`Custom headers to include in requests.`)}),n.object({type:n.enum([`oauth`]),config:n.object({authorizationUrl:n.string().url(),tokenUrl:n.string().url(),registrationUrl:n.string().url().optional(),clientId:n.string(),clientSecret:n.string().optional(),scopes:n.array(n.string()),usePKCE:n.boolean(),issuer:n.string().optional(),resource:n.string().optional(),clientIdMetadataDocumentSupported:n.boolean().optional()}).describe(`OAuth configuration discovered or manually set.`).optional(),connected:n.boolean().describe(`Whether OAuth is currently connected.`),expiresAt:n.string().describe(`ISO timestamp when the token expires.`).optional()})]).describe(`Authentication configuration.`),scope:n.enum([`user`,`team`]).describe(`Scope of the MCP server configuration.`)}),T=n.object({mcpServerId:n.string()}),E=n.object({mcpServerId:n.string()}),D=n.object({}),O=n.object({mcpServerId:n.string(),name:n.string().describe(`New display name.`).optional(),url:n.string().url().describe(`New URL endpoint.`).optional(),description:n.string().describe(`New description.`).optional(),enabled:n.boolean().describe(`Enable or disable.`).optional(),auth:n.union([n.object({type:n.enum([`none`])}),n.object({type:n.enum([`bearer`]),token:n.string().describe(`Bearer token for authentication.`)}),n.object({type:n.enum([`custom-headers`]),headers:n.record(n.string(),n.string()).describe(`Custom headers to include in requests.`)}),n.object({type:n.enum([`oauth`]),config:n.object({authorizationUrl:n.string().url(),tokenUrl:n.string().url(),registrationUrl:n.string().url().optional(),clientId:n.string(),clientSecret:n.string().optional(),scopes:n.array(n.string()),usePKCE:n.boolean(),issuer:n.string().optional(),resource:n.string().optional(),clientIdMetadataDocumentSupported:n.boolean().optional()}).describe(`OAuth configuration discovered or manually set.`).optional(),connected:n.boolean().describe(`Whether OAuth is currently connected.`),expiresAt:n.string().describe(`ISO timestamp when the token expires.`).optional()})]).describe(`New authentication configuration.`).optional(),scope:n.enum([`user`,`team`]).describe(`New scope.`).optional()}),ee=n.object({chatId:n.string(),messageId:n.string()}),k=n.object({chatId:n.string(),limit:n.number().int(),cursor:n.string().optional()}),A=n.object({chatId:n.string(),task:n.union([n.object({type:n.enum([`confirmed-steps`]),connectedIntegrationNames:n.array(n.string()).describe(`Names of integrations that were successfully connected (e.g. "Neon"). Pass an empty array to skip.`).optional(),connectedNpmRegistryIds:n.array(n.string()).describe(`Deprecated. npm registry connections are no longer supported; this field is accepted for compatibility and ignored.`).optional(),connectedMcpPresetNames:n.array(n.enum([`Linear`,`Notion`,`Context7`,`Sentry`,`Zapier`,`Glean`,`Hex`,`Sanity`,`Granola`,`PostHog`,`Contentful`,`Mobbin`,`Slack`])).describe(`Names of MCP presets that were connected (e.g. "Linear", "Sentry"). Pass an empty array to skip.`).optional(),appliedScripts:n.array(n.string()).describe(`Names of scripts that were applied.`).optional(),addedEnvVars:n.array(n.string()).describe(`Names of environment variables that were added.`).optional()}),n.object({type:n.enum([`plan-exit-response`]),status:n.enum([`approved`,`rejected`,`request-changes`]).describe(`Whether the plan is approved, rejected, or needs changes.`),content:n.string().describe(`Feedback or instructions for the agent.`)}),n.object({type:n.enum([`answered-questions`]),answers:n.array(n.object({questionId:n.string().describe(`The ID of the question being answered.`),questionText:n.string().describe(`The text of the question being answered.`),selectedLabels:n.array(n.string()).describe(`The labels of the selected options. For single-select questions, pass one item.`),customText:n.string().describe(`Free-form text input, used when the user selects "Other" or wants to add context.`).optional()})).describe(`Answers to the questions the agent asked.`)}),n.object({type:n.enum([`confirmed-permissions`]),permissions:n.array(n.object({type:n.enum([`ALLOW_DYNAMIC_TOOL_STRICT`]),toolName:n.string().describe(`The name of the tool being permitted.`),input:n.unknown().describe(`The tool call input arguments. Pass the exact input from the stopped task.`),toolDisplayName:n.union([n.string(),n.null()]).describe(`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.`).optional(),taskNameActive:n.union([n.string(),n.null()]).describe(`Label shown while the tool is running (e.g. "Running migration").`).optional(),taskNameComplete:n.union([n.string(),n.null()]).describe(`Label shown after the tool completes (e.g. "Migration complete").`).optional(),userMessage:n.string().describe(`Optional message from the user about this permission.`).optional()})).describe(`The permissions to grant. Pass the suggestedPermissions from the stopped task.`),userMessage:n.string().describe(`Optional message from the user about the permission grant.`).optional()}),n.object({type:n.enum([`vercel-connect-setup`])}),n.object({type:n.enum([`vercel-connect-authorization`])})]).describe(`The task resolution data. Use this when the chat is waiting for user input on the matching task type.`),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`).optional(),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`).optional()}).describe(`Overrides for the model behavior.`).optional()}),j=n.object({chatId:n.string(),task:n.union([n.object({type:n.enum([`confirmed-steps`]),connectedIntegrationNames:n.array(n.string()).describe(`Names of integrations that were successfully connected (e.g. "Neon"). Pass an empty array to skip.`).optional(),connectedNpmRegistryIds:n.array(n.string()).describe(`Deprecated. npm registry connections are no longer supported; this field is accepted for compatibility and ignored.`).optional(),connectedMcpPresetNames:n.array(n.enum([`Linear`,`Notion`,`Context7`,`Sentry`,`Zapier`,`Glean`,`Hex`,`Sanity`,`Granola`,`PostHog`,`Contentful`,`Mobbin`,`Slack`])).describe(`Names of MCP presets that were connected (e.g. "Linear", "Sentry"). Pass an empty array to skip.`).optional(),appliedScripts:n.array(n.string()).describe(`Names of scripts that were applied.`).optional(),addedEnvVars:n.array(n.string()).describe(`Names of environment variables that were added.`).optional()}),n.object({type:n.enum([`plan-exit-response`]),status:n.enum([`approved`,`rejected`,`request-changes`]).describe(`Whether the plan is approved, rejected, or needs changes.`),content:n.string().describe(`Feedback or instructions for the agent.`)}),n.object({type:n.enum([`answered-questions`]),answers:n.array(n.object({questionId:n.string().describe(`The ID of the question being answered.`),questionText:n.string().describe(`The text of the question being answered.`),selectedLabels:n.array(n.string()).describe(`The labels of the selected options. For single-select questions, pass one item.`),customText:n.string().describe(`Free-form text input, used when the user selects "Other" or wants to add context.`).optional()})).describe(`Answers to the questions the agent asked.`)}),n.object({type:n.enum([`confirmed-permissions`]),permissions:n.array(n.object({type:n.enum([`ALLOW_DYNAMIC_TOOL_STRICT`]),toolName:n.string().describe(`The name of the tool being permitted.`),input:n.unknown().describe(`The tool call input arguments. Pass the exact input from the stopped task.`),toolDisplayName:n.union([n.string(),n.null()]).describe(`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.`).optional(),taskNameActive:n.union([n.string(),n.null()]).describe(`Label shown while the tool is running (e.g. "Running migration").`).optional(),taskNameComplete:n.union([n.string(),n.null()]).describe(`Label shown after the tool completes (e.g. "Migration complete").`).optional(),userMessage:n.string().describe(`Optional message from the user about this permission.`).optional()})).describe(`The permissions to grant. Pass the suggestedPermissions from the stopped task.`),userMessage:n.string().describe(`Optional message from the user about the permission grant.`).optional()}),n.object({type:n.enum([`vercel-connect-setup`])}),n.object({type:n.enum([`vercel-connect-authorization`])})]).describe(`The task resolution data. Use this when the chat is waiting for user input on the matching task type.`),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`).optional(),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`).optional()}).describe(`Overrides for the model behavior.`).optional()}),M=n.object({chatId:n.string(),task:n.union([n.object({type:n.enum([`confirmed-steps`]),connectedIntegrationNames:n.array(n.string()).describe(`Names of integrations that were successfully connected (e.g. "Neon"). Pass an empty array to skip.`).optional(),connectedNpmRegistryIds:n.array(n.string()).describe(`Deprecated. npm registry connections are no longer supported; this field is accepted for compatibility and ignored.`).optional(),connectedMcpPresetNames:n.array(n.enum([`Linear`,`Notion`,`Context7`,`Sentry`,`Zapier`,`Glean`,`Hex`,`Sanity`,`Granola`,`PostHog`,`Contentful`,`Mobbin`,`Slack`])).describe(`Names of MCP presets that were connected (e.g. "Linear", "Sentry"). Pass an empty array to skip.`).optional(),appliedScripts:n.array(n.string()).describe(`Names of scripts that were applied.`).optional(),addedEnvVars:n.array(n.string()).describe(`Names of environment variables that were added.`).optional()}),n.object({type:n.enum([`plan-exit-response`]),status:n.enum([`approved`,`rejected`,`request-changes`]).describe(`Whether the plan is approved, rejected, or needs changes.`),content:n.string().describe(`Feedback or instructions for the agent.`)}),n.object({type:n.enum([`answered-questions`]),answers:n.array(n.object({questionId:n.string().describe(`The ID of the question being answered.`),questionText:n.string().describe(`The text of the question being answered.`),selectedLabels:n.array(n.string()).describe(`The labels of the selected options. For single-select questions, pass one item.`),customText:n.string().describe(`Free-form text input, used when the user selects "Other" or wants to add context.`).optional()})).describe(`Answers to the questions the agent asked.`)}),n.object({type:n.enum([`confirmed-permissions`]),permissions:n.array(n.object({type:n.enum([`ALLOW_DYNAMIC_TOOL_STRICT`]),toolName:n.string().describe(`The name of the tool being permitted.`),input:n.unknown().describe(`The tool call input arguments. Pass the exact input from the stopped task.`),toolDisplayName:n.union([n.string(),n.null()]).describe(`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.`).optional(),taskNameActive:n.union([n.string(),n.null()]).describe(`Label shown while the tool is running (e.g. "Running migration").`).optional(),taskNameComplete:n.union([n.string(),n.null()]).describe(`Label shown after the tool completes (e.g. "Migration complete").`).optional(),userMessage:n.string().describe(`Optional message from the user about this permission.`).optional()})).describe(`The permissions to grant. Pass the suggestedPermissions from the stopped task.`),userMessage:n.string().describe(`Optional message from the user about the permission grant.`).optional()}),n.object({type:n.enum([`vercel-connect-setup`])}),n.object({type:n.enum([`vercel-connect-authorization`])})]).describe(`The task resolution data. Use this when the chat is waiting for user input on the matching task type.`),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`).optional(),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`).optional()}).describe(`Overrides for the model behavior.`).optional()}),N=n.object({chatId:n.string(),message:n.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),mcpServerIds:n.array(n.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),attachments:n.array(n.union([n.object({url:n.string().describe(`URL or data URI containing the attachment.`)}),n.object({name:n.string().describe(`Display name for the inline text attachment.`).optional(),content:n.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),skills:n.array(n.union([n.object({type:n.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.string().describe(`Skill ID from skills.sh.`)}),n.object({type:n.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.string().describe(`Name of the memory skill to attach.`)}),n.object({type:n.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional()}),P=n.object({chatId:n.string(),message:n.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),mcpServerIds:n.array(n.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),attachments:n.array(n.union([n.object({url:n.string().describe(`URL or data URI containing the attachment.`)}),n.object({name:n.string().describe(`Display name for the inline text attachment.`).optional(),content:n.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),skills:n.array(n.union([n.object({type:n.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.string().describe(`Skill ID from skills.sh.`)}),n.object({type:n.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.string().describe(`Name of the memory skill to attach.`)}),n.object({type:n.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional()}),F=n.object({chatId:n.string(),message:n.string().describe(`The prompt or instruction to send to the model.`),systemPrompt:n.string().describe(`System-level context for the chat, such as frameworks or development environment details.`).optional(),modelConfiguration:n.object({modelId:n.enum([`v0-mini`,`v0-pro`,`v0-max`,`v0-max-fast`]).describe(`Model to use for the generation.`),imageGenerations:n.boolean().describe(`Enables image generations to generate up to 5 images per version.`)}).describe(`Overrides for the model behavior.`).optional(),mcpServerIds:n.array(n.string()).describe(`MCP server IDs to enable. When omitted, uses default enabled servers.`).optional(),attachments:n.array(n.union([n.object({url:n.string().describe(`URL or data URI containing the attachment.`)}),n.object({name:n.string().describe(`Display name for the inline text attachment.`).optional(),content:n.string().describe(`UTF-8 text content of the attachment.`)})])).describe(`Files or assets to include with the message. Provide either a URL or data URI, or inline UTF-8 text content.`).optional(),skills:n.array(n.union([n.object({type:n.enum([`remote`]).describe(`Discriminator: a skills.sh skill.`),id:n.string().describe(`Skill ID from skills.sh.`)}),n.object({type:n.enum([`memory`]).describe(`Discriminator: a user- or team-scoped memory skill.`),scope:n.enum([`user`,`team`]).describe(`Whether the skill lives in user or team memory.`),skillName:n.string().describe(`Name of the memory skill to attach.`)}),n.object({type:n.enum([`project`]).describe(`Discriminator: a skill defined in the project repo.`),skillName:n.string().describe(`Name of the project skill to attach.`)})])).describe("Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.").optional()}),I=n.object({chatId:n.string(),messageId:n.string()}),L=n.object({hosts:n.array(n.string()).describe(`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.`)}),R=n.object({hosts:n.array(n.string()).describe(`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.`)}),z=n.object({}),B=n.object({hosts:n.array(n.string()).describe(`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.`)}),V=n.object({start:n.string().datetime().optional(),end:n.string().datetime().optional(),userId:n.string().optional()}),H=n.object({start:n.string().datetime().optional(),end:n.string().datetime().optional(),userId:n.string().optional()}),U=n.object({start:n.string().datetime().optional(),end:n.string().datetime().optional(),userId:n.string().optional(),chatId:n.string().optional(),messageId:n.string().optional(),limit:n.number().int().optional(),cursor:n.string().optional()}),W=n.object({name:n.string().describe(`A human-readable name for the webhook.`),events:n.array(n.enum([`chat.created`,`chat.updated`,`chat.deleted`,`message.created`,`message.updated`,`message.deleted`,`message.finished`])).describe(`List of event types the webhook should subscribe to.`),url:n.string().url().describe(`The target URL to receive the webhook payloads.`),chatId:n.union([n.string(),n.null()]).describe(`The ID of a chat to scope the webhook to.`)}),G=n.object({hookId:n.string()}),K=n.object({hookId:n.string()}),q=n.object({}),J=n.object({hookId:n.string(),name:n.string().describe(`A new display name for the webhook.`).optional(),events:n.array(n.enum([`chat.created`,`chat.updated`,`chat.deleted`,`message.created`,`message.updated`,`message.deleted`,`message.finished`])).describe(`Updated list of event types to subscribe to.`).optional(),url:n.string().url().describe(`A new target URL to receive webhook payloads.`).optional()});function Y(n={}){let Y=t(Z(n));return{chatsCreate:e({description:`Create Chat: Creates a new chat from a prompt. The request blocks until the model response is complete and returns the chat.`,inputSchema:r,execute:async e=>{let t={message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,attachments:e.attachments,mcpServerIds:e.mcpServerIds,skills:e.skills,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.create(t))}}),chatsCreateAsync:e({description:"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.",inputSchema:i,execute:async e=>{let t={message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,attachments:e.attachments,mcpServerIds:e.mcpServerIds,skills:e.skills,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.createAsync(t))}}),chatsCreateFromFiles:e({description:`Create Chat From Files: Creates a new chat from inline UTF-8 or base64-encoded source files.`,inputSchema:a,execute:async e=>{let t={files:e.files,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.createFromFiles(t))}}),chatsCreateFromRepo:e({description:`Create Chat From Repository: Creates a new chat from a GitHub repository.`,inputSchema:o,execute:async e=>{let t={repo:e.repo,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.createFromRepo(t))}}),chatsCreateFromVercelProject:e({description:`Create Chat From Vercel Project: Creates a new chat from an existing Vercel project.`,inputSchema:s,execute:async e=>{let t={vercelProjectId:e.vercelProjectId,baseBranch:e.baseBranch,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.createFromVercelProject(t))}}),chatsCreateFromZip:e({description:`Create Chat From ZIP: Creates a new chat from a zip archive.`,inputSchema:c,execute:async e=>{let t={url:e.url,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.createFromZip(t))}}),chatsCreateStream:e({description:"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.",inputSchema:l,execute:async function*(e){let t={message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,attachments:e.attachments,mcpServerIds:e.mcpServerIds,skills:e.skills,privacy:e.privacy,title:e.title,metadata:e.metadata};yield*(await Y.chats.createStream(t)).stream}}),chatsCreateVercelProject:e({description:`Create Vercel Project: Creates a Vercel project and attaches it to the chat.`,inputSchema:u,execute:async e=>{let t={chatId:e.chatId,name:e.name};return $(await Y.chats.createVercelProject(t))}}),chatsDelete:e({description:`Delete Chat: Deletes a chat and all its associated messages. The requester must have edit access to the chat.`,inputSchema:d,execute:async e=>{let t={chatId:e.chatId};return $(await Y.chats.delete(t))}}),chatsDeploy:e({description:`Deploy Chat: Triggers a Vercel deployment for a chat. Creates a Vercel project if one does not exist.`,inputSchema:f,execute:async e=>{let t={chatId:e.chatId};return $(await Y.chats.deploy(t))}}),chatsDownloadFiles:e({description:`Download Chat Files: Downloads the source files for a chat as a ZIP archive.`,inputSchema:p,execute:async e=>{let t={chatId:e.chatId};return $(await Y.chats.downloadFiles(t))}}),chatsDuplicate:e({description:`Duplicate Chat: Creates a new chat by duplicating an existing chat.`,inputSchema:m,execute:async e=>{let t={chatId:e.chatId,privacy:e.privacy,title:e.title,metadata:e.metadata};return $(await Y.chats.duplicate(t))}}),chatsGet:e({description:`Get Chat: Retrieves a chat by ID.`,inputSchema:h,execute:async e=>{let t={chatId:e.chatId};return $(await Y.chats.get(t))}}),chatsGetConnectStatus:e({description:"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.",inputSchema:g,execute:async e=>{let t={chatId:e.chatId,requestId:e.requestId};return $(await Y.chats.getConnectStatus(t))}}),chatsGetFiles:e({description:`Get Chat Files: Returns the source files for a chat.`,inputSchema:_,execute:async e=>{let t={chatId:e.chatId};return $(await Y.chats.getFiles(t))}}),chatsGetPreview:e({description:`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.`,inputSchema:v,execute:async e=>{let t={chatId:e.chatId};return $(await Y.chats.getPreview(t))}}),chatsList:e({description:`List Chats: Lists chats accessible to the authenticated user. Use metadata[key]=value style query parameters to filter by metadata.`,inputSchema:y,execute:async e=>{let t={limit:e.limit,cursor:e.cursor,authorId:e.authorId,vercelProjectId:e.vercelProjectId,metadata:e.metadata};return $(await Y.chats.list(t))}}),chatsRestoreMessage:e({description:`Restore Message: Restores the files associated with an assistant message. The associated files must not already be the latest files in the chat.`,inputSchema:b,execute:async e=>{let t={chatId:e.chatId,messageId:e.messageId};return $(await Y.chats.restoreMessage(t))}}),chatsResume:e({description:"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.",inputSchema:x,execute:async function*(e){let t={chatId:e.chatId};yield*(await Y.chats.resume(t)).stream}}),chatsUpdate:e({description:`Update Chat: Updates a chat's title, privacy, or metadata.`,inputSchema:S,execute:async e=>{let t={chatId:e.chatId,title:e.title,privacy:e.privacy,metadata:e.metadata};return $(await Y.chats.update(t))}}),chatsUpdateFiles:e({description:`Update Chat Files: Creates, updates, or deletes UTF-8 or base64-encoded files for a chat. Pass null to delete.`,inputSchema:C,execute:async e=>{let t={chatId:e.chatId,files:e.files};return $(await Y.chats.updateFiles(t))}}),mcpServersCreate:e({description:`Create MCP Server: Creates a new MCP server configuration. Limited to 100 servers per user.`,inputSchema:w,execute:async e=>{let t={name:e.name,url:e.url,description:e.description,enabled:e.enabled,auth:e.auth,scope:e.scope};return $(await Y.mcpServers.create(t))}}),mcpServersDelete:e({description:`Delete MCP Server: Deletes an MCP server and cleans up associated OAuth tokens. This action is irreversible.`,inputSchema:T,execute:async e=>{let t={mcpServerId:e.mcpServerId};return $(await Y.mcpServers.delete(t))}}),mcpServersGet:e({description:`Get MCP Server: Retrieves a specific MCP server by ID.`,inputSchema:E,execute:async e=>{let t={mcpServerId:e.mcpServerId};return $(await Y.mcpServers.get(t))}}),mcpServersList:e({description:`List MCP Servers: Retrieves all MCP servers configured for the current user.`,inputSchema:D,execute:async()=>$(await Y.mcpServers.list())}),mcpServersUpdate:e({description:`Update MCP Server: Updates an existing MCP server configuration.`,inputSchema:O,execute:async e=>{let t={mcpServerId:e.mcpServerId,name:e.name,url:e.url,description:e.description,enabled:e.enabled,auth:e.auth,scope:e.scope};return $(await Y.mcpServers.update(t))}}),messagesGet:e({description:`Get Message: Fetches a single message in a chat.`,inputSchema:ee,execute:async e=>{let t={chatId:e.chatId,messageId:e.messageId};return $(await Y.messages.get(t))}}),messagesList:e({description:`List Messages: Lists all messages in a chat.`,inputSchema:k,execute:async e=>{let t={chatId:e.chatId,limit:e.limit,cursor:e.cursor};return $(await Y.messages.list(t))}}),messagesResolve:e({description:`Resolve Task: Resolves a pending task in a chat. Blocks until the model response is complete and returns the resulting message.`,inputSchema:A,execute:async e=>{let t={chatId:e.chatId,task:e.task,modelConfiguration:e.modelConfiguration};return $(await Y.messages.resolve(t))}}),messagesResolveAsync:e({description:"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.",inputSchema:j,execute:async e=>{let t={chatId:e.chatId,task:e.task,modelConfiguration:e.modelConfiguration};return $(await Y.messages.resolveAsync(t))}}),messagesResolveStream:e({description:"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.",inputSchema:M,execute:async function*(e){let t={chatId:e.chatId,task:e.task,modelConfiguration:e.modelConfiguration};yield*(await Y.messages.resolveStream(t)).stream}}),messagesSend:e({description:`Send Message: Sends a new message to an existing chat. Blocks until the model response is complete and returns the message response.`,inputSchema:N,execute:async e=>{let t={chatId:e.chatId,message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,mcpServerIds:e.mcpServerIds,attachments:e.attachments,skills:e.skills};return $(await Y.messages.send(t))}}),messagesSendAsync:e({description:"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.",inputSchema:P,execute:async e=>{let t={chatId:e.chatId,message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,mcpServerIds:e.mcpServerIds,attachments:e.attachments,skills:e.skills};return $(await Y.messages.sendAsync(t))}}),messagesSendStream:e({description:"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.",inputSchema:F,execute:async function*(e){let t={chatId:e.chatId,message:e.message,systemPrompt:e.systemPrompt,modelConfiguration:e.modelConfiguration,mcpServerIds:e.mcpServerIds,attachments:e.attachments,skills:e.skills};yield*(await Y.messages.sendStream(t)).stream}}),messagesStop:e({description:`Stop Message: Stops an in-flight assistant message generation. The agent aborts at the next safe point and the message is marked finished.`,inputSchema:I,execute:async e=>{let t={chatId:e.chatId,messageId:e.messageId};return $(await Y.messages.stop(t))}}),settingsAppendPreviewHosts:e({description:`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.`,inputSchema:L,execute:async e=>{let t={hosts:e.hosts};return $(await Y.settings.appendPreviewHosts(t))}}),settingsDeletePreviewHosts:e({description:`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.`,inputSchema:R,execute:async e=>{let t={hosts:e.hosts};return $(await Y.settings.deletePreviewHosts(t))}}),settingsGetPreviewHosts:e({description:`Get Trusted Preview Hosts: Returns the hostname patterns trusted to embed previews for the current team.`,inputSchema:z,execute:async()=>$(await Y.settings.getPreviewHosts())}),settingsSetPreviewHosts:e({description:`Set Trusted Preview Hosts: Sets the host patterns trusted to embed previews for a team.`,inputSchema:B,execute:async e=>{let t={hosts:e.hosts};return $(await Y.settings.setPreviewHosts(t))}}),usageGetActivity:e({description:`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.`,inputSchema:V,execute:async e=>{let t={start:e.start===void 0?void 0:new Date(e.start),end:e.end===void 0?void 0:new Date(e.end),userId:e.userId};return $(await Y.usage.getActivity(t))}}),usageGetSummary:e({description:`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.`,inputSchema:H,execute:async e=>{let t={start:e.start===void 0?void 0:new Date(e.start),end:e.end===void 0?void 0:new Date(e.end),userId:e.userId};return $(await Y.usage.getSummary(t))}}),usageListEvents:e({description:`List Usage Events: Lists individual credit usage events. Each event includes the credits charged and, when available, associated token counts.`,inputSchema:U,execute:async e=>{let t={start:e.start===void 0?void 0:new Date(e.start),end:e.end===void 0?void 0:new Date(e.end),userId:e.userId,chatId:e.chatId,messageId:e.messageId,limit:e.limit,cursor:e.cursor};return $(await Y.usage.listEvents(t))}}),webhooksCreate:e({description:`Create Webhook: Creates a new webhook that listens for specific events. Supports optional association with a chat.`,inputSchema:W,execute:async e=>{let t={name:e.name,events:e.events,url:e.url,chatId:e.chatId};return $(await Y.webhooks.create(t))}}),webhooksDelete:e({description:`Delete Webhook: Deletes a webhook. This action is irreversible.`,inputSchema:G,execute:async e=>{let t={hookId:e.hookId};return $(await Y.webhooks.delete(t))}}),webhooksGet:e({description:`Get Webhook: Retrieves the details of a specific webhook using its ID.`,inputSchema:K,execute:async e=>{let t={hookId:e.hookId};return $(await Y.webhooks.get(t))}}),webhooksList:e({description:`List Webhooks: Retrieves a list of all webhooks in your workspace.`,inputSchema:q,execute:async()=>$(await Y.webhooks.list())}),webhooksUpdate:e({description:`Update Webhook: Updates the configuration of an existing webhook, including its name, event subscriptions, or target URL.`,inputSchema:J,execute:async e=>{let t={hookId:e.hookId,name:e.name,events:e.events,url:e.url};return $(await Y.webhooks.update(t))}})}}function X(e={}){let t=Y(e);return{chats:{chatsCreate:Q(t,`chatsCreate`),chatsCreateAsync:Q(t,`chatsCreateAsync`),chatsCreateFromFiles:Q(t,`chatsCreateFromFiles`),chatsCreateFromRepo:Q(t,`chatsCreateFromRepo`),chatsCreateFromVercelProject:Q(t,`chatsCreateFromVercelProject`),chatsCreateFromZip:Q(t,`chatsCreateFromZip`),chatsCreateStream:Q(t,`chatsCreateStream`),chatsCreateVercelProject:Q(t,`chatsCreateVercelProject`),chatsDelete:Q(t,`chatsDelete`),chatsDeploy:Q(t,`chatsDeploy`),chatsDownloadFiles:Q(t,`chatsDownloadFiles`),chatsDuplicate:Q(t,`chatsDuplicate`),chatsGet:Q(t,`chatsGet`),chatsGetConnectStatus:Q(t,`chatsGetConnectStatus`),chatsGetFiles:Q(t,`chatsGetFiles`),chatsGetPreview:Q(t,`chatsGetPreview`),chatsList:Q(t,`chatsList`),chatsRestoreMessage:Q(t,`chatsRestoreMessage`),chatsResume:Q(t,`chatsResume`),chatsUpdate:Q(t,`chatsUpdate`),chatsUpdateFiles:Q(t,`chatsUpdateFiles`)},mcpServers:{mcpServersCreate:Q(t,`mcpServersCreate`),mcpServersDelete:Q(t,`mcpServersDelete`),mcpServersGet:Q(t,`mcpServersGet`),mcpServersList:Q(t,`mcpServersList`),mcpServersUpdate:Q(t,`mcpServersUpdate`)},messages:{messagesGet:Q(t,`messagesGet`),messagesList:Q(t,`messagesList`),messagesResolve:Q(t,`messagesResolve`),messagesResolveAsync:Q(t,`messagesResolveAsync`),messagesResolveStream:Q(t,`messagesResolveStream`),messagesSend:Q(t,`messagesSend`),messagesSendAsync:Q(t,`messagesSendAsync`),messagesSendStream:Q(t,`messagesSendStream`),messagesStop:Q(t,`messagesStop`)},settings:{settingsAppendPreviewHosts:Q(t,`settingsAppendPreviewHosts`),settingsDeletePreviewHosts:Q(t,`settingsDeletePreviewHosts`),settingsGetPreviewHosts:Q(t,`settingsGetPreviewHosts`),settingsSetPreviewHosts:Q(t,`settingsSetPreviewHosts`)},usage:{usageGetActivity:Q(t,`usageGetActivity`),usageGetSummary:Q(t,`usageGetSummary`),usageListEvents:Q(t,`usageListEvents`)},webhooks:{webhooksCreate:Q(t,`webhooksCreate`),webhooksDelete:Q(t,`webhooksDelete`),webhooksGet:Q(t,`webhooksGet`),webhooksList:Q(t,`webhooksList`),webhooksUpdate:Q(t,`webhooksUpdate`)}}}function Z(e){let{apiKey:t,...n}=e,r=typeof process<`u`?process.env.V0_API_KEY:void 0,i=n.auth??t??r;return i===void 0?n:{...n,auth:i}}function Q(e,t){let n=e[t];if(!n)throw Error(`Missing generated v0 tool: ${t}`);return n}function $(e){if(e&&typeof e==`object`&&(`data`in e||`error`in e)){let t=e;return t.error===void 0?t.data??null:{error:t.error}}return e}export{Y as v0Tools,X as v0ToolsByCategory};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -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 | '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<V0ToolsFlat, 'settingsGetPreviewHosts' | 'settingsSetPreviewHosts'>\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})\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})\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('UTF-8 text content of the file.'),\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})\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})\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})\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 }),\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 'Qualified npm registry IDs that were successfully connected (e.g. \"npm:https://registry.example.com/\"). Pass an empty array to skip.',\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 'Slack',\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 'Qualified npm registry IDs that were successfully connected (e.g. \"npm:https://registry.example.com/\"). Pass an empty array to skip.',\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 'Slack',\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 'Qualified npm registry IDs that were successfully connected (e.g. \"npm:https://registry.example.com/\"). Pass an empty array to skip.',\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 'Slack',\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 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 }\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 }\n return toToolResult(await client.chats.createAsync(parameters))\n },\n }),\n chatsCreateFromFiles: tool({\n description: 'Create Chat From Files: Creates a new chat from inline 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 }\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.',\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 }\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 }\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 files for a chat. Pass null to delete. This requires the chat's preview to be running.\",\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.',\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.',\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 settingsGetPreviewHosts: tool({\n description:\n 'Get Trusted Preview Hosts: Returns the hostname patterns trusted to embed previews for the current team. Organization child teams inherit the parent organization’s hosts.',\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 standalone team or parent organization. Organization child teams cannot override this setting.',\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 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})\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})\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})\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 ]),\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 ]),\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 ]),\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 }\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 }\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.',\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 }\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.',\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.',\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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@v0-sdk/ai-tools",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.8-canary.1ad7fc7",
|
|
4
4
|
"description": "AI SDK tools for the v0 Platform API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"prepublishOnly": "bun run generate && bun run build"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"v0": "3.0.
|
|
41
|
+
"v0": "3.0.8-canary.1ad7fc7",
|
|
42
42
|
"zod": "^4.1.11"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|