UNPKG

v0-sdk

Version:

TypeScript SDK for the v0 Platform API

826 lines (824 loc) 25 kB
type ChatDetail = { id: string; object: 'chat'; shareable: boolean; privacy: 'public' | 'private' | 'team' | 'team-edit' | 'unlisted'; name?: string; /** @deprecated */ title?: string; createdAt: string; updatedAt?: string; favorite: boolean; authorId: string; projectId?: string; webUrl: string; apiUrl: string; latestVersion?: { id: string; object: 'version'; status: 'pending' | 'completed' | 'failed'; demoUrl?: string; createdAt: string; updatedAt?: string; files: { object: 'file'; name: string; content: string; locked: boolean; }[]; }; /** @deprecated */ url: string; messages: Array<{ id: string; object: 'message'; content: string; createdAt: string; updatedAt?: string; type: 'message' | 'forked-block' | 'forked-chat' | 'open-in-v0' | 'refinement' | 'added-environment-variables' | 'added-integration' | 'deleted-file' | 'moved-file' | 'renamed-file' | 'edited-file' | 'replace-src' | 'reverted-block' | 'fix-with-v0' | 'auto-fix-with-v0' | 'sync-git'; role: 'user' | 'assistant'; apiUrl: string; }>; files?: { lang: string; meta: Record<string, any>; source: string; }[]; /** @deprecated */ demo?: string; text: string; modelConfiguration?: { modelId: 'v0-1.5-sm' | 'v0-1.5-md' | 'v0-1.5-lg'; imageGenerations?: boolean; thinking?: boolean; }; }; type ChatSummary = { id: string; object: 'chat'; shareable: boolean; privacy: 'public' | 'private' | 'team' | 'team-edit' | 'unlisted'; name?: string; /** @deprecated */ title?: string; createdAt: string; updatedAt?: string; favorite: boolean; authorId: string; projectId?: string; webUrl: string; apiUrl: string; latestVersion?: { id: string; object: 'version'; status: 'pending' | 'completed' | 'failed'; demoUrl?: string; createdAt: string; updatedAt?: string; }; }; interface DeploymentDetail { id: string; object: 'deployment'; inspectorUrl: string; chatId: string; projectId: string; versionId: string; apiUrl: string; webUrl: string; } interface DeploymentSummary { id: string; object: 'deployment'; inspectorUrl: string; chatId: string; projectId: string; versionId: string; apiUrl: string; webUrl: string; } interface FileDetail { object: 'file'; name: string; content: string; locked: boolean; } interface FileSummary { object: 'file'; name: string; } type HookDetail = { id: string; object: 'hook'; name: string; events: Array<'chat.created' | 'chat.updated' | 'chat.deleted' | 'message.created' | 'message.updated' | 'message.deleted' | 'project.created' | 'project.updated' | 'project.deleted'>; chatId?: string; projectId?: string; url: string; }; type HookEventDetail = { id: string; object: 'hookEvent'; event: 'chat.created' | 'chat.updated' | 'chat.deleted' | 'message.created' | 'message.updated' | 'message.deleted' | 'project.created' | 'project.updated' | 'project.deleted'; status?: 'pending' | 'success' | 'error'; createdAt: string; }; interface HookSummary { id: string; object: 'hook'; name: string; } type MessageDetail = { id: string; object: 'message'; content: string; createdAt: string; updatedAt?: string; type: 'message' | 'forked-block' | 'forked-chat' | 'open-in-v0' | 'refinement' | 'added-environment-variables' | 'added-integration' | 'deleted-file' | 'moved-file' | 'renamed-file' | 'edited-file' | 'replace-src' | 'reverted-block' | 'fix-with-v0' | 'auto-fix-with-v0' | 'sync-git'; role: 'user' | 'assistant'; apiUrl: string; chatId: string; }; type MessageSummary = { id: string; object: 'message'; content: string; createdAt: string; updatedAt?: string; type: 'message' | 'forked-block' | 'forked-chat' | 'open-in-v0' | 'refinement' | 'added-environment-variables' | 'added-integration' | 'deleted-file' | 'moved-file' | 'renamed-file' | 'edited-file' | 'replace-src' | 'reverted-block' | 'fix-with-v0' | 'auto-fix-with-v0' | 'sync-git'; role: 'user' | 'assistant'; apiUrl: string; }; type MessageSummaryList = { object: 'list'; data: Array<{ id: string; object: 'message'; content: string; createdAt: string; updatedAt?: string; type: 'message' | 'forked-block' | 'forked-chat' | 'open-in-v0' | 'refinement' | 'added-environment-variables' | 'added-integration' | 'deleted-file' | 'moved-file' | 'renamed-file' | 'edited-file' | 'replace-src' | 'reverted-block' | 'fix-with-v0' | 'auto-fix-with-v0' | 'sync-git'; role: 'user' | 'assistant'; apiUrl: string; }>; pagination: { hasMore: boolean; nextCursor?: string; nextUrl?: string; }; }; type ProjectDetail = { id: string; object: 'project'; name: string; vercelProjectId?: string; createdAt: string; updatedAt?: string; apiUrl: string; webUrl: string; description?: string; instructions?: string; chats: Array<{ id: string; object: 'chat'; shareable: boolean; privacy: 'public' | 'private' | 'team' | 'team-edit' | 'unlisted'; name?: string; /** @deprecated */ title?: string; createdAt: string; updatedAt?: string; favorite: boolean; authorId: string; projectId?: string; webUrl: string; apiUrl: string; latestVersion?: { id: string; object: 'version'; status: 'pending' | 'completed' | 'failed'; demoUrl?: string; createdAt: string; updatedAt?: string; }; }>; }; interface ProjectSummary { id: string; object: 'project'; name: string; vercelProjectId?: string; createdAt: string; updatedAt?: string; apiUrl: string; webUrl: string; } interface ScopeSummary { id: string; object: 'scope'; name?: string; } type SearchResultItem = { id: string; object: 'chat' | 'project'; name: string; createdAt: string; updatedAt?: string; apiUrl: string; webUrl: string; }; interface UserDetail { id: string; object: 'user'; name?: string; email: string; avatar: string; } interface VercelProjectDetail { id: string; object: 'vercel_project'; name: string; } interface VercelProjectSummary { id: string; object: 'vercel_project'; name: string; } type VersionDetail = { id: string; object: 'version'; status: 'pending' | 'completed' | 'failed'; demoUrl?: string; createdAt: string; updatedAt?: string; files: { object: 'file'; name: string; content: string; locked: boolean; }[]; }; type VersionSummary = { id: string; object: 'version'; status: 'pending' | 'completed' | 'failed'; demoUrl?: string; createdAt: string; updatedAt?: string; }; type VersionSummaryList = { object: 'list'; data: Array<{ id: string; object: 'version'; status: 'pending' | 'completed' | 'failed'; demoUrl?: string; createdAt: string; updatedAt?: string; }>; pagination: { hasMore: boolean; nextCursor?: string; nextUrl?: string; }; }; interface ChatsCreateRequest { message: string; attachments?: { url: string; }[]; system?: string; chatPrivacy?: 'public' | 'private' | 'team-edit' | 'team' | 'unlisted'; projectId?: string; modelConfiguration?: { modelId: 'v0-1.5-sm' | 'v0-1.5-md' | 'v0-1.5-lg'; imageGenerations?: boolean; thinking?: boolean; }; responseMode?: 'sync' | 'async'; } type ChatsCreateResponse = ChatDetail; interface ChatsFindResponse { object: 'list'; data: ChatSummary[]; } type ChatsInitRequest = { name?: string; chatPrivacy?: 'public' | 'private' | 'team-edit' | 'team' | 'unlisted'; projectId?: string; } & ({ type: 'files'; files: Array<{ name: string; url: string; locked?: boolean; content?: never; } | { name: string; content: string; locked?: boolean; url?: never; }>; repo?: never; lockAllFiles?: never; registry?: never; zip?: never; } | { type: 'repo'; repo: { url: string; branch?: string; }; lockAllFiles?: boolean; files?: never; registry?: never; zip?: never; } | { type: 'registry'; registry: { url: string; }; lockAllFiles?: boolean; files?: never; repo?: never; zip?: never; } | { type: 'zip'; zip: { url: string; }; lockAllFiles?: boolean; files?: never; repo?: never; registry?: never; }); type ChatsInitResponse = ChatDetail; interface ChatsDeleteResponse { id: string; object: 'chat'; deleted: true; } type ChatsGetByIdResponse = ChatDetail; interface ChatsUpdateRequest { name?: string; privacy?: 'public' | 'private' | 'team' | 'team-edit' | 'unlisted'; } type ChatsUpdateResponse = ChatDetail; interface ChatsFavoriteRequest { isFavorite: boolean; } interface ChatsFavoriteResponse { id: string; object: 'chat'; favorited: boolean; } interface ChatsForkRequest { versionId?: string; } type ChatsForkResponse = ChatDetail; type ProjectsGetByChatIdResponse = ProjectDetail; interface ChatsFindMessagesResponse { object: 'list'; data: MessageSummary[]; pagination: { hasMore: boolean; nextCursor?: string; nextUrl?: string; }; } interface ChatsSendMessageRequest { message: string; attachments?: { url: string; }[]; modelConfiguration?: { modelId: 'v0-1.5-sm' | 'v0-1.5-md' | 'v0-1.5-lg'; imageGenerations?: boolean; thinking?: boolean; }; responseMode?: 'sync' | 'async'; } type ChatsSendMessageResponse = ChatDetail; type ChatsGetMessageResponse = MessageDetail; interface ChatsFindVersionsResponse { object: 'list'; data: VersionSummary[]; pagination: { hasMore: boolean; nextCursor?: string; nextUrl?: string; }; } type ChatsGetVersionResponse = VersionDetail; interface ChatsUpdateVersionRequest { files: { name: string; content: string; locked?: boolean; }[]; } type ChatsUpdateVersionResponse = VersionDetail; type ChatsResumeResponse = MessageDetail; interface DeploymentsFindResponse { object: 'list'; data: DeploymentDetail[]; } interface DeploymentsCreateRequest { projectId: string; chatId: string; versionId: string; } type DeploymentsCreateResponse = DeploymentDetail; type DeploymentsGetByIdResponse = DeploymentDetail; interface DeploymentsDeleteResponse { id: string; object: 'deployment'; deleted: true; } interface DeploymentsFindLogsResponse { error?: string; logs: string[]; nextSince?: number; } interface DeploymentsFindErrorsResponse { error?: string; fullErrorText?: string; errorType?: string; formattedError?: string; } interface HooksFindResponse { object: 'list'; data: HookSummary[]; } interface HooksCreateRequest { name: string; events: Array<'chat.created' | 'chat.updated' | 'chat.deleted' | 'message.created' | 'message.updated' | 'message.deleted' | 'project.created' | 'project.updated' | 'project.deleted'>; chatId?: string; projectId?: string; url: string; } type HooksCreateResponse = HookDetail; type HooksGetByIdResponse = HookDetail; interface HooksUpdateRequest { name?: string; events?: Array<'chat.created' | 'chat.updated' | 'chat.deleted' | 'message.created' | 'message.updated' | 'message.deleted' | 'project.created' | 'project.updated' | 'project.deleted'>; url?: string; } type HooksUpdateResponse = HookDetail; interface HooksDeleteResponse { id: string; object: 'hook'; deleted: true; } interface IntegrationsVercelProjectsFindResponse { object: 'list'; data: VercelProjectDetail[]; } interface IntegrationsVercelProjectsCreateRequest { projectId: string; name: string; } type IntegrationsVercelProjectsCreateResponse = VercelProjectDetail; interface ProjectsFindResponse { object: 'list'; data: ProjectSummary[]; } interface ProjectsCreateRequest { name: string; description?: string; icon?: string; environmentVariables?: { key: string; value: string; }[]; instructions?: string; } type ProjectsCreateResponse = ProjectDetail; type ProjectsGetByIdResponse = ProjectDetail; interface ProjectsUpdateRequest { name?: string; description?: string; instructions?: string; } type ProjectsUpdateResponse = ProjectDetail; interface ProjectsAssignRequest { chatId: string; } interface ProjectsAssignResponse { object: 'project'; id: string; assigned: true; } interface RateLimitsFindResponse { remaining?: number; reset?: number; limit: number; } type UserGetResponse = UserDetail; type UserGetBillingResponse = { billingType: 'token'; data: { plan: string; billingMode?: 'test'; role: string; billingCycle: { start: number; end: number; }; balance: { remaining: number; total: number; }; onDemand: { balance: number; blocks?: { expirationDate?: number; effectiveDate: number; originalBalance: number; currentBalance: number; }[]; }; }; } | { billingType: 'legacy'; data: { remaining?: number; reset?: number; limit: number; }; }; interface UserGetPlanResponse { object: 'plan'; plan: string; billingCycle: { start: number; end: number; }; balance: { remaining: number; total: number; }; } interface UserGetScopesResponse { object: 'list'; data: ScopeSummary[]; } interface V0ClientConfig { apiKey?: string; baseUrl?: string; } declare function createClient(config?: V0ClientConfig): { chats: { create(params: ChatsCreateRequest): Promise<ChatsCreateResponse>; find(params?: { limit?: string; offset?: string; isFavorite?: string; }): Promise<ChatsFindResponse>; init(params: ChatsInitRequest): Promise<ChatsInitResponse>; delete(params: { chatId: string; }): Promise<ChatsDeleteResponse>; getById(params: { chatId: string; }): Promise<ChatsGetByIdResponse>; update(params: { chatId: string; } & ChatsUpdateRequest): Promise<ChatsUpdateResponse>; favorite(params: { chatId: string; } & ChatsFavoriteRequest): Promise<ChatsFavoriteResponse>; fork(params: { chatId: string; } & ChatsForkRequest): Promise<ChatsForkResponse>; findMessages(params: { chatId: string; limit?: string; cursor?: string; }): Promise<ChatsFindMessagesResponse>; sendMessage(params: { chatId: string; } & ChatsSendMessageRequest): Promise<ChatsSendMessageResponse>; getMessage(params: { chatId: string; messageId: string; }): Promise<ChatsGetMessageResponse>; findVersions(params: { chatId: string; limit?: string; cursor?: string; }): Promise<ChatsFindVersionsResponse>; getVersion(params: { chatId: string; versionId: string; }): Promise<ChatsGetVersionResponse>; updateVersion(params: { chatId: string; versionId: string; } & ChatsUpdateVersionRequest): Promise<ChatsUpdateVersionResponse>; resume(params: { chatId: string; messageId: string; }): Promise<ChatsResumeResponse>; }; projects: { getByChatId(params: { chatId: string; }): Promise<ProjectsGetByChatIdResponse>; find(): Promise<ProjectsFindResponse>; create(params: ProjectsCreateRequest): Promise<ProjectsCreateResponse>; getById(params: { projectId: string; }): Promise<ProjectsGetByIdResponse>; update(params: { projectId: string; } & ProjectsUpdateRequest): Promise<ProjectsUpdateResponse>; assign(params: { projectId: string; } & ProjectsAssignRequest): Promise<ProjectsAssignResponse>; }; deployments: { find(params: { projectId: string; chatId: string; versionId: string; }): Promise<DeploymentsFindResponse>; create(params: DeploymentsCreateRequest): Promise<DeploymentsCreateResponse>; getById(params: { deploymentId: string; }): Promise<DeploymentsGetByIdResponse>; delete(params: { deploymentId: string; }): Promise<DeploymentsDeleteResponse>; findLogs(params: { deploymentId: string; since?: string; }): Promise<DeploymentsFindLogsResponse>; findErrors(params: { deploymentId: string; }): Promise<DeploymentsFindErrorsResponse>; }; hooks: { find(): Promise<HooksFindResponse>; create(params: HooksCreateRequest): Promise<HooksCreateResponse>; getById(params: { hookId: string; }): Promise<HooksGetByIdResponse>; update(params: { hookId: string; } & HooksUpdateRequest): Promise<HooksUpdateResponse>; delete(params: { hookId: string; }): Promise<HooksDeleteResponse>; }; integrations: { vercel: { projects: { find(): Promise<IntegrationsVercelProjectsFindResponse>; create(params: IntegrationsVercelProjectsCreateRequest): Promise<IntegrationsVercelProjectsCreateResponse>; }; }; }; rateLimits: { find(params?: { scope?: string; }): Promise<RateLimitsFindResponse>; }; user: { get(): Promise<UserGetResponse>; getBilling(params?: { scope?: string; }): Promise<UserGetBillingResponse>; getPlan(): Promise<UserGetPlanResponse>; getScopes(): Promise<UserGetScopesResponse>; }; }; declare const v0: { chats: { create(params: ChatsCreateRequest): Promise<ChatsCreateResponse>; find(params?: { limit?: string; offset?: string; isFavorite?: string; }): Promise<ChatsFindResponse>; init(params: ChatsInitRequest): Promise<ChatsInitResponse>; delete(params: { chatId: string; }): Promise<ChatsDeleteResponse>; getById(params: { chatId: string; }): Promise<ChatsGetByIdResponse>; update(params: { chatId: string; } & ChatsUpdateRequest): Promise<ChatsUpdateResponse>; favorite(params: { chatId: string; } & ChatsFavoriteRequest): Promise<ChatsFavoriteResponse>; fork(params: { chatId: string; } & ChatsForkRequest): Promise<ChatsForkResponse>; findMessages(params: { chatId: string; limit?: string; cursor?: string; }): Promise<ChatsFindMessagesResponse>; sendMessage(params: { chatId: string; } & ChatsSendMessageRequest): Promise<ChatsSendMessageResponse>; getMessage(params: { chatId: string; messageId: string; }): Promise<ChatsGetMessageResponse>; findVersions(params: { chatId: string; limit?: string; cursor?: string; }): Promise<ChatsFindVersionsResponse>; getVersion(params: { chatId: string; versionId: string; }): Promise<ChatsGetVersionResponse>; updateVersion(params: { chatId: string; versionId: string; } & ChatsUpdateVersionRequest): Promise<ChatsUpdateVersionResponse>; resume(params: { chatId: string; messageId: string; }): Promise<ChatsResumeResponse>; }; projects: { getByChatId(params: { chatId: string; }): Promise<ProjectsGetByChatIdResponse>; find(): Promise<ProjectsFindResponse>; create(params: ProjectsCreateRequest): Promise<ProjectsCreateResponse>; getById(params: { projectId: string; }): Promise<ProjectsGetByIdResponse>; update(params: { projectId: string; } & ProjectsUpdateRequest): Promise<ProjectsUpdateResponse>; assign(params: { projectId: string; } & ProjectsAssignRequest): Promise<ProjectsAssignResponse>; }; deployments: { find(params: { projectId: string; chatId: string; versionId: string; }): Promise<DeploymentsFindResponse>; create(params: DeploymentsCreateRequest): Promise<DeploymentsCreateResponse>; getById(params: { deploymentId: string; }): Promise<DeploymentsGetByIdResponse>; delete(params: { deploymentId: string; }): Promise<DeploymentsDeleteResponse>; findLogs(params: { deploymentId: string; since?: string; }): Promise<DeploymentsFindLogsResponse>; findErrors(params: { deploymentId: string; }): Promise<DeploymentsFindErrorsResponse>; }; hooks: { find(): Promise<HooksFindResponse>; create(params: HooksCreateRequest): Promise<HooksCreateResponse>; getById(params: { hookId: string; }): Promise<HooksGetByIdResponse>; update(params: { hookId: string; } & HooksUpdateRequest): Promise<HooksUpdateResponse>; delete(params: { hookId: string; }): Promise<HooksDeleteResponse>; }; integrations: { vercel: { projects: { find(): Promise<IntegrationsVercelProjectsFindResponse>; create(params: IntegrationsVercelProjectsCreateRequest): Promise<IntegrationsVercelProjectsCreateResponse>; }; }; }; rateLimits: { find(params?: { scope?: string; }): Promise<RateLimitsFindResponse>; }; user: { get(): Promise<UserGetResponse>; getBilling(params?: { scope?: string; }): Promise<UserGetBillingResponse>; getPlan(): Promise<UserGetPlanResponse>; getScopes(): Promise<UserGetScopesResponse>; }; }; export { createClient, v0 }; export type { ChatDetail, ChatSummary, ChatsCreateRequest, ChatsCreateResponse, ChatsDeleteResponse, ChatsFavoriteRequest, ChatsFavoriteResponse, ChatsFindMessagesResponse, ChatsFindResponse, ChatsFindVersionsResponse, ChatsForkRequest, ChatsForkResponse, ChatsGetByIdResponse, ChatsGetMessageResponse, ChatsGetVersionResponse, ChatsInitRequest, ChatsInitResponse, ChatsResumeResponse, ChatsSendMessageRequest, ChatsSendMessageResponse, ChatsUpdateRequest, ChatsUpdateResponse, ChatsUpdateVersionRequest, ChatsUpdateVersionResponse, DeploymentDetail, DeploymentSummary, DeploymentsCreateRequest, DeploymentsCreateResponse, DeploymentsDeleteResponse, DeploymentsFindErrorsResponse, DeploymentsFindLogsResponse, DeploymentsFindResponse, DeploymentsGetByIdResponse, FileDetail, FileSummary, HookDetail, HookEventDetail, HookSummary, HooksCreateRequest, HooksCreateResponse, HooksDeleteResponse, HooksFindResponse, HooksGetByIdResponse, HooksUpdateRequest, HooksUpdateResponse, IntegrationsVercelProjectsCreateRequest, IntegrationsVercelProjectsCreateResponse, IntegrationsVercelProjectsFindResponse, MessageDetail, MessageSummary, MessageSummaryList, ProjectDetail, ProjectSummary, ProjectsAssignRequest, ProjectsAssignResponse, ProjectsCreateRequest, ProjectsCreateResponse, ProjectsFindResponse, ProjectsGetByChatIdResponse, ProjectsGetByIdResponse, ProjectsUpdateRequest, ProjectsUpdateResponse, RateLimitsFindResponse, ScopeSummary, SearchResultItem, UserDetail, UserGetBillingResponse, UserGetPlanResponse, UserGetResponse, UserGetScopesResponse, V0ClientConfig, VercelProjectDetail, VercelProjectSummary, VersionDetail, VersionSummary, VersionSummaryList }; //# sourceMappingURL=index.d.ts.map