@v0-sdk/ai-tools 0.1.0

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.
@@ -0,0 +1,1944 @@
1
+ import * as ai from 'ai';
2
+ import { V0ClientConfig } from '@v0/sdk';
3
+
4
+ interface V0ToolsConfig extends V0ClientConfig {
5
+ /**
6
+ * Optional base URL for v0 API
7
+ * @default "https://api.v0.dev"
8
+ */
9
+ baseUrl?: string;
10
+ /**
11
+ * API key for v0 authentication
12
+ * If not provided, will use V0_API_KEY environment variable
13
+ */
14
+ apiKey?: string;
15
+ }
16
+
17
+ /**
18
+ * Creates chat-related AI SDK tools
19
+ */
20
+ declare function createChatTools(config?: V0ClientConfig): {
21
+ createChat: ai.Tool<{
22
+ message: string;
23
+ system?: string | undefined;
24
+ attachments?: {
25
+ url: string;
26
+ }[] | undefined;
27
+ chatPrivacy?: "public" | "private" | "team-edit" | "team" | "unlisted" | undefined;
28
+ projectId?: string | undefined;
29
+ modelConfiguration?: {
30
+ modelId: "v0-1.5-sm" | "v0-1.5-md" | "v0-1.5-lg" | "v0-gpt-5";
31
+ imageGenerations?: boolean | undefined;
32
+ thinking?: boolean | undefined;
33
+ } | undefined;
34
+ responseMode?: "sync" | "async" | undefined;
35
+ }, {
36
+ chatId: string;
37
+ webUrl: string;
38
+ apiUrl: string;
39
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
40
+ name: string | undefined;
41
+ favorite: boolean;
42
+ latestVersion: {
43
+ id: string;
44
+ object: "version";
45
+ status: "pending" | "completed" | "failed";
46
+ demoUrl?: string;
47
+ createdAt: string;
48
+ updatedAt?: string;
49
+ files: {
50
+ object: "file";
51
+ name: string;
52
+ content: string;
53
+ locked: boolean;
54
+ }[];
55
+ } | undefined;
56
+ createdAt: string;
57
+ }>;
58
+ sendMessage: ai.Tool<{
59
+ message: string;
60
+ chatId: string;
61
+ attachments?: {
62
+ url: string;
63
+ }[] | undefined;
64
+ modelConfiguration?: {
65
+ modelId: "v0-1.5-sm" | "v0-1.5-md" | "v0-1.5-lg" | "v0-gpt-5";
66
+ imageGenerations?: boolean | undefined;
67
+ thinking?: boolean | undefined;
68
+ } | undefined;
69
+ responseMode?: "sync" | "async" | undefined;
70
+ }, {
71
+ chatId: string;
72
+ webUrl: string;
73
+ latestVersion: {
74
+ id: string;
75
+ object: "version";
76
+ status: "pending" | "completed" | "failed";
77
+ demoUrl?: string;
78
+ createdAt: string;
79
+ updatedAt?: string;
80
+ files: {
81
+ object: "file";
82
+ name: string;
83
+ content: string;
84
+ locked: boolean;
85
+ }[];
86
+ } | undefined;
87
+ updatedAt: string | undefined;
88
+ }>;
89
+ getChat: ai.Tool<{
90
+ chatId: string;
91
+ }, {
92
+ chatId: string;
93
+ name: string | undefined;
94
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
95
+ webUrl: string;
96
+ favorite: boolean;
97
+ createdAt: string;
98
+ updatedAt: string | undefined;
99
+ latestVersion: {
100
+ id: string;
101
+ object: "version";
102
+ status: "pending" | "completed" | "failed";
103
+ demoUrl?: string;
104
+ createdAt: string;
105
+ updatedAt?: string;
106
+ files: {
107
+ object: "file";
108
+ name: string;
109
+ content: string;
110
+ locked: boolean;
111
+ }[];
112
+ } | undefined;
113
+ messagesCount: number;
114
+ }>;
115
+ updateChat: ai.Tool<{
116
+ chatId: string;
117
+ name?: string | undefined;
118
+ privacy?: "public" | "private" | "team-edit" | "team" | "unlisted" | undefined;
119
+ }, {
120
+ chatId: string;
121
+ name: string | undefined;
122
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
123
+ updatedAt: string | undefined;
124
+ }>;
125
+ deleteChat: ai.Tool<{
126
+ chatId: string;
127
+ }, {
128
+ chatId: string;
129
+ deleted: true;
130
+ }>;
131
+ favoriteChat: ai.Tool<{
132
+ chatId: string;
133
+ isFavorite: boolean;
134
+ }, {
135
+ chatId: string;
136
+ favorited: boolean;
137
+ }>;
138
+ forkChat: ai.Tool<{
139
+ chatId: string;
140
+ privacy?: "public" | "private" | "team-edit" | "team" | "unlisted" | undefined;
141
+ versionId?: string | undefined;
142
+ }, {
143
+ originalChatId: string;
144
+ newChatId: string;
145
+ webUrl: string;
146
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
147
+ createdAt: string;
148
+ }>;
149
+ listChats: ai.Tool<{
150
+ isFavorite?: string | undefined;
151
+ limit?: string | undefined;
152
+ offset?: string | undefined;
153
+ }, {
154
+ chats: {
155
+ chatId: string;
156
+ name: string | undefined;
157
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
158
+ webUrl: string;
159
+ favorite: boolean;
160
+ createdAt: string;
161
+ updatedAt: string | undefined;
162
+ }[];
163
+ }>;
164
+ };
165
+
166
+ /**
167
+ * Creates project-related AI SDK tools
168
+ */
169
+ declare function createProjectTools(config?: V0ClientConfig): {
170
+ createProject: ai.Tool<{
171
+ name: string;
172
+ description?: string | undefined;
173
+ privacy?: "private" | "team" | undefined;
174
+ icon?: string | undefined;
175
+ environmentVariables?: {
176
+ value: string;
177
+ key: string;
178
+ }[] | undefined;
179
+ instructions?: string | undefined;
180
+ vercelProjectId?: string | undefined;
181
+ }, {
182
+ projectId: string;
183
+ name: string;
184
+ description: string | undefined;
185
+ privacy: "private" | "team";
186
+ webUrl: string;
187
+ apiUrl: string;
188
+ createdAt: string;
189
+ vercelProjectId: string | undefined;
190
+ }>;
191
+ getProject: ai.Tool<{
192
+ projectId: string;
193
+ }, {
194
+ projectId: string;
195
+ name: string;
196
+ description: string | undefined;
197
+ instructions: string | undefined;
198
+ privacy: "private" | "team";
199
+ webUrl: string;
200
+ apiUrl: string;
201
+ createdAt: string;
202
+ updatedAt: string | undefined;
203
+ vercelProjectId: string | undefined;
204
+ chatsCount: number;
205
+ }>;
206
+ updateProject: ai.Tool<{
207
+ projectId: string;
208
+ description?: string | undefined;
209
+ name?: string | undefined;
210
+ privacy?: "private" | "team" | undefined;
211
+ instructions?: string | undefined;
212
+ }, {
213
+ projectId: string;
214
+ name: string;
215
+ description: string | undefined;
216
+ instructions: string | undefined;
217
+ privacy: "private" | "team";
218
+ updatedAt: string | undefined;
219
+ }>;
220
+ listProjects: ai.Tool<{}, {
221
+ projects: {
222
+ projectId: string;
223
+ name: string;
224
+ privacy: "private" | "team";
225
+ webUrl: string;
226
+ createdAt: string;
227
+ updatedAt: string | undefined;
228
+ vercelProjectId: string | undefined;
229
+ }[];
230
+ }>;
231
+ assignChatToProject: ai.Tool<{
232
+ projectId: string;
233
+ chatId: string;
234
+ }, {
235
+ projectId: string;
236
+ assigned: true;
237
+ }>;
238
+ getProjectByChat: ai.Tool<{
239
+ chatId: string;
240
+ }, {
241
+ projectId: string;
242
+ name: string;
243
+ description: string | undefined;
244
+ privacy: "private" | "team";
245
+ webUrl: string;
246
+ createdAt: string;
247
+ chatsCount: number;
248
+ }>;
249
+ createEnvironmentVariables: ai.Tool<{
250
+ projectId: string;
251
+ environmentVariables: {
252
+ value: string;
253
+ key: string;
254
+ }[];
255
+ upsert?: boolean | undefined;
256
+ decrypted?: string | undefined;
257
+ }, {
258
+ environmentVariables: {
259
+ id: string;
260
+ key: string;
261
+ value: string;
262
+ decrypted: boolean;
263
+ createdAt: number;
264
+ }[];
265
+ }>;
266
+ listEnvironmentVariables: ai.Tool<{
267
+ projectId: string;
268
+ decrypted?: string | undefined;
269
+ }, {
270
+ environmentVariables: {
271
+ id: string;
272
+ key: string;
273
+ value: string;
274
+ decrypted: boolean;
275
+ createdAt: number;
276
+ updatedAt: number | undefined;
277
+ }[];
278
+ }>;
279
+ updateEnvironmentVariables: ai.Tool<{
280
+ projectId: string;
281
+ environmentVariables: {
282
+ value: string;
283
+ id: string;
284
+ }[];
285
+ decrypted?: string | undefined;
286
+ }, {
287
+ environmentVariables: {
288
+ id: string;
289
+ key: string;
290
+ value: string;
291
+ decrypted: boolean;
292
+ updatedAt: number | undefined;
293
+ }[];
294
+ }>;
295
+ deleteEnvironmentVariables: ai.Tool<{
296
+ projectId: string;
297
+ environmentVariableIds: string[];
298
+ }, {
299
+ deletedVariables: {
300
+ id: string;
301
+ deleted: true;
302
+ }[];
303
+ }>;
304
+ };
305
+
306
+ /**
307
+ * Creates deployment-related AI SDK tools
308
+ */
309
+ declare function createDeploymentTools(config?: V0ClientConfig): {
310
+ createDeployment: ai.Tool<{
311
+ projectId: string;
312
+ chatId: string;
313
+ versionId: string;
314
+ }, {
315
+ deploymentId: string;
316
+ projectId: string;
317
+ chatId: string;
318
+ versionId: string;
319
+ inspectorUrl: string;
320
+ webUrl: string;
321
+ apiUrl: string;
322
+ }>;
323
+ getDeployment: ai.Tool<{
324
+ deploymentId: string;
325
+ }, {
326
+ deploymentId: string;
327
+ projectId: string;
328
+ chatId: string;
329
+ versionId: string;
330
+ inspectorUrl: string;
331
+ webUrl: string;
332
+ apiUrl: string;
333
+ }>;
334
+ deleteDeployment: ai.Tool<{
335
+ deploymentId: string;
336
+ }, {
337
+ deploymentId: string;
338
+ deleted: true;
339
+ }>;
340
+ listDeployments: ai.Tool<{
341
+ projectId: string;
342
+ chatId: string;
343
+ versionId: string;
344
+ }, {
345
+ deployments: {
346
+ deploymentId: string;
347
+ projectId: string;
348
+ chatId: string;
349
+ versionId: string;
350
+ inspectorUrl: string;
351
+ webUrl: string;
352
+ apiUrl: string;
353
+ }[];
354
+ }>;
355
+ getDeploymentLogs: ai.Tool<{
356
+ deploymentId: string;
357
+ since?: string | undefined;
358
+ }, {
359
+ logs: string[];
360
+ error: string | undefined;
361
+ nextSince: number | undefined;
362
+ }>;
363
+ getDeploymentErrors: ai.Tool<{
364
+ deploymentId: string;
365
+ }, {
366
+ error: string | undefined;
367
+ fullErrorText: string | undefined;
368
+ errorType: string | undefined;
369
+ formattedError: string | undefined;
370
+ }>;
371
+ };
372
+
373
+ /**
374
+ * Creates user-related AI SDK tools
375
+ */
376
+ declare function createUserTools(config?: V0ClientConfig): {
377
+ getCurrentUser: ai.Tool<{}, {
378
+ userId: string;
379
+ name: string | undefined;
380
+ email: string;
381
+ avatar: string;
382
+ }>;
383
+ getUserBilling: ai.Tool<{
384
+ scope?: string | undefined;
385
+ }, {
386
+ billingType: "token";
387
+ plan: string;
388
+ role: string;
389
+ billingMode: "test" | undefined;
390
+ billingCycle: {
391
+ start: number;
392
+ end: number;
393
+ };
394
+ balance: {
395
+ remaining: number;
396
+ total: number;
397
+ };
398
+ onDemand: {
399
+ balance: number;
400
+ blocks: {
401
+ expirationDate?: number;
402
+ effectiveDate: number;
403
+ originalBalance: number;
404
+ currentBalance: number;
405
+ }[] | undefined;
406
+ };
407
+ remaining?: undefined;
408
+ reset?: undefined;
409
+ limit?: undefined;
410
+ } | {
411
+ billingType: "legacy";
412
+ remaining: number | undefined;
413
+ reset: number | undefined;
414
+ limit: number;
415
+ plan?: undefined;
416
+ role?: undefined;
417
+ billingMode?: undefined;
418
+ billingCycle?: undefined;
419
+ balance?: undefined;
420
+ onDemand?: undefined;
421
+ }>;
422
+ getUserPlan: ai.Tool<{}, {
423
+ plan: string;
424
+ billingCycle: {
425
+ start: number;
426
+ end: number;
427
+ };
428
+ balance: {
429
+ remaining: number;
430
+ total: number;
431
+ };
432
+ }>;
433
+ getUserScopes: ai.Tool<{}, {
434
+ scopes: {
435
+ id: string;
436
+ name: string | undefined;
437
+ }[];
438
+ }>;
439
+ getRateLimits: ai.Tool<{
440
+ scope?: string | undefined;
441
+ }, {
442
+ remaining: number | undefined;
443
+ reset: number | undefined;
444
+ limit: number;
445
+ }>;
446
+ };
447
+
448
+ /**
449
+ * Creates webhook-related AI SDK tools
450
+ */
451
+ declare function createHookTools(config?: V0ClientConfig): {
452
+ createHook: ai.Tool<{
453
+ url: string;
454
+ name: string;
455
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
456
+ chatId?: string | undefined;
457
+ }, {
458
+ hookId: string;
459
+ name: string;
460
+ url: string;
461
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
462
+ chatId: string | undefined;
463
+ }>;
464
+ getHook: ai.Tool<{
465
+ hookId: string;
466
+ }, {
467
+ hookId: string;
468
+ name: string;
469
+ url: string;
470
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
471
+ chatId: string | undefined;
472
+ }>;
473
+ updateHook: ai.Tool<{
474
+ hookId: string;
475
+ url?: string | undefined;
476
+ name?: string | undefined;
477
+ events?: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[] | undefined;
478
+ }, {
479
+ hookId: string;
480
+ name: string;
481
+ url: string;
482
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
483
+ chatId: string | undefined;
484
+ }>;
485
+ deleteHook: ai.Tool<{
486
+ hookId: string;
487
+ }, {
488
+ hookId: string;
489
+ deleted: true;
490
+ }>;
491
+ listHooks: ai.Tool<{}, {
492
+ hooks: {
493
+ hookId: string;
494
+ name: string;
495
+ }[];
496
+ }>;
497
+ };
498
+
499
+ /**
500
+ * Creates all v0 AI SDK tools as a flat object.
501
+ *
502
+ * ⚠️ Note: This includes ALL available tools (~20+ tools) which adds significant context.
503
+ * Consider using v0ToolsByCategory() to select only the tools you need.
504
+ *
505
+ * @param config Configuration for v0 client
506
+ * @returns Flat object with all v0 tools ready to use with AI SDK
507
+ *
508
+ * @example
509
+ * ```typescript
510
+ * import { generateText } from 'ai'
511
+ * import { openai } from '@ai-sdk/openai'
512
+ * import { v0Tools } from '@v0-sdk/ai-tools'
513
+ *
514
+ * const result = await generateText({
515
+ * model: openai('gpt-4'),
516
+ * prompt: 'Create a new React component',
517
+ * tools: v0Tools({
518
+ * apiKey: process.env.V0_API_KEY
519
+ * })
520
+ * })
521
+ * ```
522
+ */
523
+ declare function v0Tools(config?: V0ToolsConfig): {
524
+ createHook: ai.Tool<{
525
+ url: string;
526
+ name: string;
527
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
528
+ chatId?: string | undefined;
529
+ }, {
530
+ hookId: string;
531
+ name: string;
532
+ url: string;
533
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
534
+ chatId: string | undefined;
535
+ }>;
536
+ getHook: ai.Tool<{
537
+ hookId: string;
538
+ }, {
539
+ hookId: string;
540
+ name: string;
541
+ url: string;
542
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
543
+ chatId: string | undefined;
544
+ }>;
545
+ updateHook: ai.Tool<{
546
+ hookId: string;
547
+ url?: string | undefined;
548
+ name?: string | undefined;
549
+ events?: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[] | undefined;
550
+ }, {
551
+ hookId: string;
552
+ name: string;
553
+ url: string;
554
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
555
+ chatId: string | undefined;
556
+ }>;
557
+ deleteHook: ai.Tool<{
558
+ hookId: string;
559
+ }, {
560
+ hookId: string;
561
+ deleted: true;
562
+ }>;
563
+ listHooks: ai.Tool<{}, {
564
+ hooks: {
565
+ hookId: string;
566
+ name: string;
567
+ }[];
568
+ }>;
569
+ getCurrentUser: ai.Tool<{}, {
570
+ userId: string;
571
+ name: string | undefined;
572
+ email: string;
573
+ avatar: string;
574
+ }>;
575
+ getUserBilling: ai.Tool<{
576
+ scope?: string | undefined;
577
+ }, {
578
+ billingType: "token";
579
+ plan: string;
580
+ role: string;
581
+ billingMode: "test" | undefined;
582
+ billingCycle: {
583
+ start: number;
584
+ end: number;
585
+ };
586
+ balance: {
587
+ remaining: number;
588
+ total: number;
589
+ };
590
+ onDemand: {
591
+ balance: number;
592
+ blocks: {
593
+ expirationDate?: number;
594
+ effectiveDate: number;
595
+ originalBalance: number;
596
+ currentBalance: number;
597
+ }[] | undefined;
598
+ };
599
+ remaining?: undefined;
600
+ reset?: undefined;
601
+ limit?: undefined;
602
+ } | {
603
+ billingType: "legacy";
604
+ remaining: number | undefined;
605
+ reset: number | undefined;
606
+ limit: number;
607
+ plan?: undefined;
608
+ role?: undefined;
609
+ billingMode?: undefined;
610
+ billingCycle?: undefined;
611
+ balance?: undefined;
612
+ onDemand?: undefined;
613
+ }>;
614
+ getUserPlan: ai.Tool<{}, {
615
+ plan: string;
616
+ billingCycle: {
617
+ start: number;
618
+ end: number;
619
+ };
620
+ balance: {
621
+ remaining: number;
622
+ total: number;
623
+ };
624
+ }>;
625
+ getUserScopes: ai.Tool<{}, {
626
+ scopes: {
627
+ id: string;
628
+ name: string | undefined;
629
+ }[];
630
+ }>;
631
+ getRateLimits: ai.Tool<{
632
+ scope?: string | undefined;
633
+ }, {
634
+ remaining: number | undefined;
635
+ reset: number | undefined;
636
+ limit: number;
637
+ }>;
638
+ createDeployment: ai.Tool<{
639
+ projectId: string;
640
+ chatId: string;
641
+ versionId: string;
642
+ }, {
643
+ deploymentId: string;
644
+ projectId: string;
645
+ chatId: string;
646
+ versionId: string;
647
+ inspectorUrl: string;
648
+ webUrl: string;
649
+ apiUrl: string;
650
+ }>;
651
+ getDeployment: ai.Tool<{
652
+ deploymentId: string;
653
+ }, {
654
+ deploymentId: string;
655
+ projectId: string;
656
+ chatId: string;
657
+ versionId: string;
658
+ inspectorUrl: string;
659
+ webUrl: string;
660
+ apiUrl: string;
661
+ }>;
662
+ deleteDeployment: ai.Tool<{
663
+ deploymentId: string;
664
+ }, {
665
+ deploymentId: string;
666
+ deleted: true;
667
+ }>;
668
+ listDeployments: ai.Tool<{
669
+ projectId: string;
670
+ chatId: string;
671
+ versionId: string;
672
+ }, {
673
+ deployments: {
674
+ deploymentId: string;
675
+ projectId: string;
676
+ chatId: string;
677
+ versionId: string;
678
+ inspectorUrl: string;
679
+ webUrl: string;
680
+ apiUrl: string;
681
+ }[];
682
+ }>;
683
+ getDeploymentLogs: ai.Tool<{
684
+ deploymentId: string;
685
+ since?: string | undefined;
686
+ }, {
687
+ logs: string[];
688
+ error: string | undefined;
689
+ nextSince: number | undefined;
690
+ }>;
691
+ getDeploymentErrors: ai.Tool<{
692
+ deploymentId: string;
693
+ }, {
694
+ error: string | undefined;
695
+ fullErrorText: string | undefined;
696
+ errorType: string | undefined;
697
+ formattedError: string | undefined;
698
+ }>;
699
+ createProject: ai.Tool<{
700
+ name: string;
701
+ description?: string | undefined;
702
+ privacy?: "private" | "team" | undefined;
703
+ icon?: string | undefined;
704
+ environmentVariables?: {
705
+ value: string;
706
+ key: string;
707
+ }[] | undefined;
708
+ instructions?: string | undefined;
709
+ vercelProjectId?: string | undefined;
710
+ }, {
711
+ projectId: string;
712
+ name: string;
713
+ description: string | undefined;
714
+ privacy: "private" | "team";
715
+ webUrl: string;
716
+ apiUrl: string;
717
+ createdAt: string;
718
+ vercelProjectId: string | undefined;
719
+ }>;
720
+ getProject: ai.Tool<{
721
+ projectId: string;
722
+ }, {
723
+ projectId: string;
724
+ name: string;
725
+ description: string | undefined;
726
+ instructions: string | undefined;
727
+ privacy: "private" | "team";
728
+ webUrl: string;
729
+ apiUrl: string;
730
+ createdAt: string;
731
+ updatedAt: string | undefined;
732
+ vercelProjectId: string | undefined;
733
+ chatsCount: number;
734
+ }>;
735
+ updateProject: ai.Tool<{
736
+ projectId: string;
737
+ description?: string | undefined;
738
+ name?: string | undefined;
739
+ privacy?: "private" | "team" | undefined;
740
+ instructions?: string | undefined;
741
+ }, {
742
+ projectId: string;
743
+ name: string;
744
+ description: string | undefined;
745
+ instructions: string | undefined;
746
+ privacy: "private" | "team";
747
+ updatedAt: string | undefined;
748
+ }>;
749
+ listProjects: ai.Tool<{}, {
750
+ projects: {
751
+ projectId: string;
752
+ name: string;
753
+ privacy: "private" | "team";
754
+ webUrl: string;
755
+ createdAt: string;
756
+ updatedAt: string | undefined;
757
+ vercelProjectId: string | undefined;
758
+ }[];
759
+ }>;
760
+ assignChatToProject: ai.Tool<{
761
+ projectId: string;
762
+ chatId: string;
763
+ }, {
764
+ projectId: string;
765
+ assigned: true;
766
+ }>;
767
+ getProjectByChat: ai.Tool<{
768
+ chatId: string;
769
+ }, {
770
+ projectId: string;
771
+ name: string;
772
+ description: string | undefined;
773
+ privacy: "private" | "team";
774
+ webUrl: string;
775
+ createdAt: string;
776
+ chatsCount: number;
777
+ }>;
778
+ createEnvironmentVariables: ai.Tool<{
779
+ projectId: string;
780
+ environmentVariables: {
781
+ value: string;
782
+ key: string;
783
+ }[];
784
+ upsert?: boolean | undefined;
785
+ decrypted?: string | undefined;
786
+ }, {
787
+ environmentVariables: {
788
+ id: string;
789
+ key: string;
790
+ value: string;
791
+ decrypted: boolean;
792
+ createdAt: number;
793
+ }[];
794
+ }>;
795
+ listEnvironmentVariables: ai.Tool<{
796
+ projectId: string;
797
+ decrypted?: string | undefined;
798
+ }, {
799
+ environmentVariables: {
800
+ id: string;
801
+ key: string;
802
+ value: string;
803
+ decrypted: boolean;
804
+ createdAt: number;
805
+ updatedAt: number | undefined;
806
+ }[];
807
+ }>;
808
+ updateEnvironmentVariables: ai.Tool<{
809
+ projectId: string;
810
+ environmentVariables: {
811
+ value: string;
812
+ id: string;
813
+ }[];
814
+ decrypted?: string | undefined;
815
+ }, {
816
+ environmentVariables: {
817
+ id: string;
818
+ key: string;
819
+ value: string;
820
+ decrypted: boolean;
821
+ updatedAt: number | undefined;
822
+ }[];
823
+ }>;
824
+ deleteEnvironmentVariables: ai.Tool<{
825
+ projectId: string;
826
+ environmentVariableIds: string[];
827
+ }, {
828
+ deletedVariables: {
829
+ id: string;
830
+ deleted: true;
831
+ }[];
832
+ }>;
833
+ createChat: ai.Tool<{
834
+ message: string;
835
+ system?: string | undefined;
836
+ attachments?: {
837
+ url: string;
838
+ }[] | undefined;
839
+ chatPrivacy?: "public" | "private" | "team-edit" | "team" | "unlisted" | undefined;
840
+ projectId?: string | undefined;
841
+ modelConfiguration?: {
842
+ modelId: "v0-1.5-sm" | "v0-1.5-md" | "v0-1.5-lg" | "v0-gpt-5";
843
+ imageGenerations?: boolean | undefined;
844
+ thinking?: boolean | undefined;
845
+ } | undefined;
846
+ responseMode?: "sync" | "async" | undefined;
847
+ }, {
848
+ chatId: string;
849
+ webUrl: string;
850
+ apiUrl: string;
851
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
852
+ name: string | undefined;
853
+ favorite: boolean;
854
+ latestVersion: {
855
+ id: string;
856
+ object: "version";
857
+ status: "pending" | "completed" | "failed";
858
+ demoUrl?: string;
859
+ createdAt: string;
860
+ updatedAt?: string;
861
+ files: {
862
+ object: "file";
863
+ name: string;
864
+ content: string;
865
+ locked: boolean;
866
+ }[];
867
+ } | undefined;
868
+ createdAt: string;
869
+ }>;
870
+ sendMessage: ai.Tool<{
871
+ message: string;
872
+ chatId: string;
873
+ attachments?: {
874
+ url: string;
875
+ }[] | undefined;
876
+ modelConfiguration?: {
877
+ modelId: "v0-1.5-sm" | "v0-1.5-md" | "v0-1.5-lg" | "v0-gpt-5";
878
+ imageGenerations?: boolean | undefined;
879
+ thinking?: boolean | undefined;
880
+ } | undefined;
881
+ responseMode?: "sync" | "async" | undefined;
882
+ }, {
883
+ chatId: string;
884
+ webUrl: string;
885
+ latestVersion: {
886
+ id: string;
887
+ object: "version";
888
+ status: "pending" | "completed" | "failed";
889
+ demoUrl?: string;
890
+ createdAt: string;
891
+ updatedAt?: string;
892
+ files: {
893
+ object: "file";
894
+ name: string;
895
+ content: string;
896
+ locked: boolean;
897
+ }[];
898
+ } | undefined;
899
+ updatedAt: string | undefined;
900
+ }>;
901
+ getChat: ai.Tool<{
902
+ chatId: string;
903
+ }, {
904
+ chatId: string;
905
+ name: string | undefined;
906
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
907
+ webUrl: string;
908
+ favorite: boolean;
909
+ createdAt: string;
910
+ updatedAt: string | undefined;
911
+ latestVersion: {
912
+ id: string;
913
+ object: "version";
914
+ status: "pending" | "completed" | "failed";
915
+ demoUrl?: string;
916
+ createdAt: string;
917
+ updatedAt?: string;
918
+ files: {
919
+ object: "file";
920
+ name: string;
921
+ content: string;
922
+ locked: boolean;
923
+ }[];
924
+ } | undefined;
925
+ messagesCount: number;
926
+ }>;
927
+ updateChat: ai.Tool<{
928
+ chatId: string;
929
+ name?: string | undefined;
930
+ privacy?: "public" | "private" | "team-edit" | "team" | "unlisted" | undefined;
931
+ }, {
932
+ chatId: string;
933
+ name: string | undefined;
934
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
935
+ updatedAt: string | undefined;
936
+ }>;
937
+ deleteChat: ai.Tool<{
938
+ chatId: string;
939
+ }, {
940
+ chatId: string;
941
+ deleted: true;
942
+ }>;
943
+ favoriteChat: ai.Tool<{
944
+ chatId: string;
945
+ isFavorite: boolean;
946
+ }, {
947
+ chatId: string;
948
+ favorited: boolean;
949
+ }>;
950
+ forkChat: ai.Tool<{
951
+ chatId: string;
952
+ privacy?: "public" | "private" | "team-edit" | "team" | "unlisted" | undefined;
953
+ versionId?: string | undefined;
954
+ }, {
955
+ originalChatId: string;
956
+ newChatId: string;
957
+ webUrl: string;
958
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
959
+ createdAt: string;
960
+ }>;
961
+ listChats: ai.Tool<{
962
+ isFavorite?: string | undefined;
963
+ limit?: string | undefined;
964
+ offset?: string | undefined;
965
+ }, {
966
+ chats: {
967
+ chatId: string;
968
+ name: string | undefined;
969
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
970
+ webUrl: string;
971
+ favorite: boolean;
972
+ createdAt: string;
973
+ updatedAt: string | undefined;
974
+ }[];
975
+ }>;
976
+ };
977
+ /**
978
+ * Creates v0 tools organized by category for selective usage (recommended).
979
+ * This allows you to include only the tools you need, reducing context size.
980
+ *
981
+ * @param config Configuration for v0 client
982
+ * @returns Object containing all v0 tools organized by category
983
+ *
984
+ * @example
985
+ * ```typescript
986
+ * import { generateText } from 'ai'
987
+ * import { openai } from '@ai-sdk/openai'
988
+ * import { v0ToolsByCategory } from '@v0-sdk/ai-tools'
989
+ *
990
+ * const tools = v0ToolsByCategory({
991
+ * apiKey: process.env.V0_API_KEY
992
+ * })
993
+ *
994
+ * // Only include chat and project tools
995
+ * const result = await generateText({
996
+ * model: openai('gpt-4'),
997
+ * prompt: 'Create a new React component',
998
+ * tools: {
999
+ * ...tools.chat,
1000
+ * ...tools.project
1001
+ * }
1002
+ * })
1003
+ * ```
1004
+ */
1005
+ declare function v0ToolsByCategory(config?: V0ToolsConfig): {
1006
+ /**
1007
+ * Chat-related tools for creating, managing, and interacting with v0 chats
1008
+ */
1009
+ chat: {
1010
+ createChat: ai.Tool<{
1011
+ message: string;
1012
+ system?: string | undefined;
1013
+ attachments?: {
1014
+ url: string;
1015
+ }[] | undefined;
1016
+ chatPrivacy?: "public" | "private" | "team-edit" | "team" | "unlisted" | undefined;
1017
+ projectId?: string | undefined;
1018
+ modelConfiguration?: {
1019
+ modelId: "v0-1.5-sm" | "v0-1.5-md" | "v0-1.5-lg" | "v0-gpt-5";
1020
+ imageGenerations?: boolean | undefined;
1021
+ thinking?: boolean | undefined;
1022
+ } | undefined;
1023
+ responseMode?: "sync" | "async" | undefined;
1024
+ }, {
1025
+ chatId: string;
1026
+ webUrl: string;
1027
+ apiUrl: string;
1028
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
1029
+ name: string | undefined;
1030
+ favorite: boolean;
1031
+ latestVersion: {
1032
+ id: string;
1033
+ object: "version";
1034
+ status: "pending" | "completed" | "failed";
1035
+ demoUrl?: string;
1036
+ createdAt: string;
1037
+ updatedAt?: string;
1038
+ files: {
1039
+ object: "file";
1040
+ name: string;
1041
+ content: string;
1042
+ locked: boolean;
1043
+ }[];
1044
+ } | undefined;
1045
+ createdAt: string;
1046
+ }>;
1047
+ sendMessage: ai.Tool<{
1048
+ message: string;
1049
+ chatId: string;
1050
+ attachments?: {
1051
+ url: string;
1052
+ }[] | undefined;
1053
+ modelConfiguration?: {
1054
+ modelId: "v0-1.5-sm" | "v0-1.5-md" | "v0-1.5-lg" | "v0-gpt-5";
1055
+ imageGenerations?: boolean | undefined;
1056
+ thinking?: boolean | undefined;
1057
+ } | undefined;
1058
+ responseMode?: "sync" | "async" | undefined;
1059
+ }, {
1060
+ chatId: string;
1061
+ webUrl: string;
1062
+ latestVersion: {
1063
+ id: string;
1064
+ object: "version";
1065
+ status: "pending" | "completed" | "failed";
1066
+ demoUrl?: string;
1067
+ createdAt: string;
1068
+ updatedAt?: string;
1069
+ files: {
1070
+ object: "file";
1071
+ name: string;
1072
+ content: string;
1073
+ locked: boolean;
1074
+ }[];
1075
+ } | undefined;
1076
+ updatedAt: string | undefined;
1077
+ }>;
1078
+ getChat: ai.Tool<{
1079
+ chatId: string;
1080
+ }, {
1081
+ chatId: string;
1082
+ name: string | undefined;
1083
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
1084
+ webUrl: string;
1085
+ favorite: boolean;
1086
+ createdAt: string;
1087
+ updatedAt: string | undefined;
1088
+ latestVersion: {
1089
+ id: string;
1090
+ object: "version";
1091
+ status: "pending" | "completed" | "failed";
1092
+ demoUrl?: string;
1093
+ createdAt: string;
1094
+ updatedAt?: string;
1095
+ files: {
1096
+ object: "file";
1097
+ name: string;
1098
+ content: string;
1099
+ locked: boolean;
1100
+ }[];
1101
+ } | undefined;
1102
+ messagesCount: number;
1103
+ }>;
1104
+ updateChat: ai.Tool<{
1105
+ chatId: string;
1106
+ name?: string | undefined;
1107
+ privacy?: "public" | "private" | "team-edit" | "team" | "unlisted" | undefined;
1108
+ }, {
1109
+ chatId: string;
1110
+ name: string | undefined;
1111
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
1112
+ updatedAt: string | undefined;
1113
+ }>;
1114
+ deleteChat: ai.Tool<{
1115
+ chatId: string;
1116
+ }, {
1117
+ chatId: string;
1118
+ deleted: true;
1119
+ }>;
1120
+ favoriteChat: ai.Tool<{
1121
+ chatId: string;
1122
+ isFavorite: boolean;
1123
+ }, {
1124
+ chatId: string;
1125
+ favorited: boolean;
1126
+ }>;
1127
+ forkChat: ai.Tool<{
1128
+ chatId: string;
1129
+ privacy?: "public" | "private" | "team-edit" | "team" | "unlisted" | undefined;
1130
+ versionId?: string | undefined;
1131
+ }, {
1132
+ originalChatId: string;
1133
+ newChatId: string;
1134
+ webUrl: string;
1135
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
1136
+ createdAt: string;
1137
+ }>;
1138
+ listChats: ai.Tool<{
1139
+ isFavorite?: string | undefined;
1140
+ limit?: string | undefined;
1141
+ offset?: string | undefined;
1142
+ }, {
1143
+ chats: {
1144
+ chatId: string;
1145
+ name: string | undefined;
1146
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
1147
+ webUrl: string;
1148
+ favorite: boolean;
1149
+ createdAt: string;
1150
+ updatedAt: string | undefined;
1151
+ }[];
1152
+ }>;
1153
+ };
1154
+ /**
1155
+ * Project-related tools for creating and managing v0 projects
1156
+ */
1157
+ project: {
1158
+ createProject: ai.Tool<{
1159
+ name: string;
1160
+ description?: string | undefined;
1161
+ privacy?: "private" | "team" | undefined;
1162
+ icon?: string | undefined;
1163
+ environmentVariables?: {
1164
+ value: string;
1165
+ key: string;
1166
+ }[] | undefined;
1167
+ instructions?: string | undefined;
1168
+ vercelProjectId?: string | undefined;
1169
+ }, {
1170
+ projectId: string;
1171
+ name: string;
1172
+ description: string | undefined;
1173
+ privacy: "private" | "team";
1174
+ webUrl: string;
1175
+ apiUrl: string;
1176
+ createdAt: string;
1177
+ vercelProjectId: string | undefined;
1178
+ }>;
1179
+ getProject: ai.Tool<{
1180
+ projectId: string;
1181
+ }, {
1182
+ projectId: string;
1183
+ name: string;
1184
+ description: string | undefined;
1185
+ instructions: string | undefined;
1186
+ privacy: "private" | "team";
1187
+ webUrl: string;
1188
+ apiUrl: string;
1189
+ createdAt: string;
1190
+ updatedAt: string | undefined;
1191
+ vercelProjectId: string | undefined;
1192
+ chatsCount: number;
1193
+ }>;
1194
+ updateProject: ai.Tool<{
1195
+ projectId: string;
1196
+ description?: string | undefined;
1197
+ name?: string | undefined;
1198
+ privacy?: "private" | "team" | undefined;
1199
+ instructions?: string | undefined;
1200
+ }, {
1201
+ projectId: string;
1202
+ name: string;
1203
+ description: string | undefined;
1204
+ instructions: string | undefined;
1205
+ privacy: "private" | "team";
1206
+ updatedAt: string | undefined;
1207
+ }>;
1208
+ listProjects: ai.Tool<{}, {
1209
+ projects: {
1210
+ projectId: string;
1211
+ name: string;
1212
+ privacy: "private" | "team";
1213
+ webUrl: string;
1214
+ createdAt: string;
1215
+ updatedAt: string | undefined;
1216
+ vercelProjectId: string | undefined;
1217
+ }[];
1218
+ }>;
1219
+ assignChatToProject: ai.Tool<{
1220
+ projectId: string;
1221
+ chatId: string;
1222
+ }, {
1223
+ projectId: string;
1224
+ assigned: true;
1225
+ }>;
1226
+ getProjectByChat: ai.Tool<{
1227
+ chatId: string;
1228
+ }, {
1229
+ projectId: string;
1230
+ name: string;
1231
+ description: string | undefined;
1232
+ privacy: "private" | "team";
1233
+ webUrl: string;
1234
+ createdAt: string;
1235
+ chatsCount: number;
1236
+ }>;
1237
+ createEnvironmentVariables: ai.Tool<{
1238
+ projectId: string;
1239
+ environmentVariables: {
1240
+ value: string;
1241
+ key: string;
1242
+ }[];
1243
+ upsert?: boolean | undefined;
1244
+ decrypted?: string | undefined;
1245
+ }, {
1246
+ environmentVariables: {
1247
+ id: string;
1248
+ key: string;
1249
+ value: string;
1250
+ decrypted: boolean;
1251
+ createdAt: number;
1252
+ }[];
1253
+ }>;
1254
+ listEnvironmentVariables: ai.Tool<{
1255
+ projectId: string;
1256
+ decrypted?: string | undefined;
1257
+ }, {
1258
+ environmentVariables: {
1259
+ id: string;
1260
+ key: string;
1261
+ value: string;
1262
+ decrypted: boolean;
1263
+ createdAt: number;
1264
+ updatedAt: number | undefined;
1265
+ }[];
1266
+ }>;
1267
+ updateEnvironmentVariables: ai.Tool<{
1268
+ projectId: string;
1269
+ environmentVariables: {
1270
+ value: string;
1271
+ id: string;
1272
+ }[];
1273
+ decrypted?: string | undefined;
1274
+ }, {
1275
+ environmentVariables: {
1276
+ id: string;
1277
+ key: string;
1278
+ value: string;
1279
+ decrypted: boolean;
1280
+ updatedAt: number | undefined;
1281
+ }[];
1282
+ }>;
1283
+ deleteEnvironmentVariables: ai.Tool<{
1284
+ projectId: string;
1285
+ environmentVariableIds: string[];
1286
+ }, {
1287
+ deletedVariables: {
1288
+ id: string;
1289
+ deleted: true;
1290
+ }[];
1291
+ }>;
1292
+ };
1293
+ /**
1294
+ * Deployment-related tools for creating and managing deployments
1295
+ */
1296
+ deployment: {
1297
+ createDeployment: ai.Tool<{
1298
+ projectId: string;
1299
+ chatId: string;
1300
+ versionId: string;
1301
+ }, {
1302
+ deploymentId: string;
1303
+ projectId: string;
1304
+ chatId: string;
1305
+ versionId: string;
1306
+ inspectorUrl: string;
1307
+ webUrl: string;
1308
+ apiUrl: string;
1309
+ }>;
1310
+ getDeployment: ai.Tool<{
1311
+ deploymentId: string;
1312
+ }, {
1313
+ deploymentId: string;
1314
+ projectId: string;
1315
+ chatId: string;
1316
+ versionId: string;
1317
+ inspectorUrl: string;
1318
+ webUrl: string;
1319
+ apiUrl: string;
1320
+ }>;
1321
+ deleteDeployment: ai.Tool<{
1322
+ deploymentId: string;
1323
+ }, {
1324
+ deploymentId: string;
1325
+ deleted: true;
1326
+ }>;
1327
+ listDeployments: ai.Tool<{
1328
+ projectId: string;
1329
+ chatId: string;
1330
+ versionId: string;
1331
+ }, {
1332
+ deployments: {
1333
+ deploymentId: string;
1334
+ projectId: string;
1335
+ chatId: string;
1336
+ versionId: string;
1337
+ inspectorUrl: string;
1338
+ webUrl: string;
1339
+ apiUrl: string;
1340
+ }[];
1341
+ }>;
1342
+ getDeploymentLogs: ai.Tool<{
1343
+ deploymentId: string;
1344
+ since?: string | undefined;
1345
+ }, {
1346
+ logs: string[];
1347
+ error: string | undefined;
1348
+ nextSince: number | undefined;
1349
+ }>;
1350
+ getDeploymentErrors: ai.Tool<{
1351
+ deploymentId: string;
1352
+ }, {
1353
+ error: string | undefined;
1354
+ fullErrorText: string | undefined;
1355
+ errorType: string | undefined;
1356
+ formattedError: string | undefined;
1357
+ }>;
1358
+ };
1359
+ /**
1360
+ * User-related tools for getting user information, billing, and rate limits
1361
+ */
1362
+ user: {
1363
+ getCurrentUser: ai.Tool<{}, {
1364
+ userId: string;
1365
+ name: string | undefined;
1366
+ email: string;
1367
+ avatar: string;
1368
+ }>;
1369
+ getUserBilling: ai.Tool<{
1370
+ scope?: string | undefined;
1371
+ }, {
1372
+ billingType: "token";
1373
+ plan: string;
1374
+ role: string;
1375
+ billingMode: "test" | undefined;
1376
+ billingCycle: {
1377
+ start: number;
1378
+ end: number;
1379
+ };
1380
+ balance: {
1381
+ remaining: number;
1382
+ total: number;
1383
+ };
1384
+ onDemand: {
1385
+ balance: number;
1386
+ blocks: {
1387
+ expirationDate?: number;
1388
+ effectiveDate: number;
1389
+ originalBalance: number;
1390
+ currentBalance: number;
1391
+ }[] | undefined;
1392
+ };
1393
+ remaining?: undefined;
1394
+ reset?: undefined;
1395
+ limit?: undefined;
1396
+ } | {
1397
+ billingType: "legacy";
1398
+ remaining: number | undefined;
1399
+ reset: number | undefined;
1400
+ limit: number;
1401
+ plan?: undefined;
1402
+ role?: undefined;
1403
+ billingMode?: undefined;
1404
+ billingCycle?: undefined;
1405
+ balance?: undefined;
1406
+ onDemand?: undefined;
1407
+ }>;
1408
+ getUserPlan: ai.Tool<{}, {
1409
+ plan: string;
1410
+ billingCycle: {
1411
+ start: number;
1412
+ end: number;
1413
+ };
1414
+ balance: {
1415
+ remaining: number;
1416
+ total: number;
1417
+ };
1418
+ }>;
1419
+ getUserScopes: ai.Tool<{}, {
1420
+ scopes: {
1421
+ id: string;
1422
+ name: string | undefined;
1423
+ }[];
1424
+ }>;
1425
+ getRateLimits: ai.Tool<{
1426
+ scope?: string | undefined;
1427
+ }, {
1428
+ remaining: number | undefined;
1429
+ reset: number | undefined;
1430
+ limit: number;
1431
+ }>;
1432
+ };
1433
+ /**
1434
+ * Webhook tools for creating and managing event hooks
1435
+ */
1436
+ hook: {
1437
+ createHook: ai.Tool<{
1438
+ url: string;
1439
+ name: string;
1440
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
1441
+ chatId?: string | undefined;
1442
+ }, {
1443
+ hookId: string;
1444
+ name: string;
1445
+ url: string;
1446
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
1447
+ chatId: string | undefined;
1448
+ }>;
1449
+ getHook: ai.Tool<{
1450
+ hookId: string;
1451
+ }, {
1452
+ hookId: string;
1453
+ name: string;
1454
+ url: string;
1455
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
1456
+ chatId: string | undefined;
1457
+ }>;
1458
+ updateHook: ai.Tool<{
1459
+ hookId: string;
1460
+ url?: string | undefined;
1461
+ name?: string | undefined;
1462
+ events?: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[] | undefined;
1463
+ }, {
1464
+ hookId: string;
1465
+ name: string;
1466
+ url: string;
1467
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
1468
+ chatId: string | undefined;
1469
+ }>;
1470
+ deleteHook: ai.Tool<{
1471
+ hookId: string;
1472
+ }, {
1473
+ hookId: string;
1474
+ deleted: true;
1475
+ }>;
1476
+ listHooks: ai.Tool<{}, {
1477
+ hooks: {
1478
+ hookId: string;
1479
+ name: string;
1480
+ }[];
1481
+ }>;
1482
+ };
1483
+ };
1484
+ /**
1485
+ * @deprecated Use v0Tools instead (now returns flat structure by default)
1486
+ */
1487
+ declare function v0ToolsFlat(config?: V0ToolsConfig): {
1488
+ createHook: ai.Tool<{
1489
+ url: string;
1490
+ name: string;
1491
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
1492
+ chatId?: string | undefined;
1493
+ }, {
1494
+ hookId: string;
1495
+ name: string;
1496
+ url: string;
1497
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
1498
+ chatId: string | undefined;
1499
+ }>;
1500
+ getHook: ai.Tool<{
1501
+ hookId: string;
1502
+ }, {
1503
+ hookId: string;
1504
+ name: string;
1505
+ url: string;
1506
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
1507
+ chatId: string | undefined;
1508
+ }>;
1509
+ updateHook: ai.Tool<{
1510
+ hookId: string;
1511
+ url?: string | undefined;
1512
+ name?: string | undefined;
1513
+ events?: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[] | undefined;
1514
+ }, {
1515
+ hookId: string;
1516
+ name: string;
1517
+ url: string;
1518
+ events: ("chat.created" | "chat.updated" | "chat.deleted" | "message.created" | "message.updated" | "message.deleted")[];
1519
+ chatId: string | undefined;
1520
+ }>;
1521
+ deleteHook: ai.Tool<{
1522
+ hookId: string;
1523
+ }, {
1524
+ hookId: string;
1525
+ deleted: true;
1526
+ }>;
1527
+ listHooks: ai.Tool<{}, {
1528
+ hooks: {
1529
+ hookId: string;
1530
+ name: string;
1531
+ }[];
1532
+ }>;
1533
+ getCurrentUser: ai.Tool<{}, {
1534
+ userId: string;
1535
+ name: string | undefined;
1536
+ email: string;
1537
+ avatar: string;
1538
+ }>;
1539
+ getUserBilling: ai.Tool<{
1540
+ scope?: string | undefined;
1541
+ }, {
1542
+ billingType: "token";
1543
+ plan: string;
1544
+ role: string;
1545
+ billingMode: "test" | undefined;
1546
+ billingCycle: {
1547
+ start: number;
1548
+ end: number;
1549
+ };
1550
+ balance: {
1551
+ remaining: number;
1552
+ total: number;
1553
+ };
1554
+ onDemand: {
1555
+ balance: number;
1556
+ blocks: {
1557
+ expirationDate?: number;
1558
+ effectiveDate: number;
1559
+ originalBalance: number;
1560
+ currentBalance: number;
1561
+ }[] | undefined;
1562
+ };
1563
+ remaining?: undefined;
1564
+ reset?: undefined;
1565
+ limit?: undefined;
1566
+ } | {
1567
+ billingType: "legacy";
1568
+ remaining: number | undefined;
1569
+ reset: number | undefined;
1570
+ limit: number;
1571
+ plan?: undefined;
1572
+ role?: undefined;
1573
+ billingMode?: undefined;
1574
+ billingCycle?: undefined;
1575
+ balance?: undefined;
1576
+ onDemand?: undefined;
1577
+ }>;
1578
+ getUserPlan: ai.Tool<{}, {
1579
+ plan: string;
1580
+ billingCycle: {
1581
+ start: number;
1582
+ end: number;
1583
+ };
1584
+ balance: {
1585
+ remaining: number;
1586
+ total: number;
1587
+ };
1588
+ }>;
1589
+ getUserScopes: ai.Tool<{}, {
1590
+ scopes: {
1591
+ id: string;
1592
+ name: string | undefined;
1593
+ }[];
1594
+ }>;
1595
+ getRateLimits: ai.Tool<{
1596
+ scope?: string | undefined;
1597
+ }, {
1598
+ remaining: number | undefined;
1599
+ reset: number | undefined;
1600
+ limit: number;
1601
+ }>;
1602
+ createDeployment: ai.Tool<{
1603
+ projectId: string;
1604
+ chatId: string;
1605
+ versionId: string;
1606
+ }, {
1607
+ deploymentId: string;
1608
+ projectId: string;
1609
+ chatId: string;
1610
+ versionId: string;
1611
+ inspectorUrl: string;
1612
+ webUrl: string;
1613
+ apiUrl: string;
1614
+ }>;
1615
+ getDeployment: ai.Tool<{
1616
+ deploymentId: string;
1617
+ }, {
1618
+ deploymentId: string;
1619
+ projectId: string;
1620
+ chatId: string;
1621
+ versionId: string;
1622
+ inspectorUrl: string;
1623
+ webUrl: string;
1624
+ apiUrl: string;
1625
+ }>;
1626
+ deleteDeployment: ai.Tool<{
1627
+ deploymentId: string;
1628
+ }, {
1629
+ deploymentId: string;
1630
+ deleted: true;
1631
+ }>;
1632
+ listDeployments: ai.Tool<{
1633
+ projectId: string;
1634
+ chatId: string;
1635
+ versionId: string;
1636
+ }, {
1637
+ deployments: {
1638
+ deploymentId: string;
1639
+ projectId: string;
1640
+ chatId: string;
1641
+ versionId: string;
1642
+ inspectorUrl: string;
1643
+ webUrl: string;
1644
+ apiUrl: string;
1645
+ }[];
1646
+ }>;
1647
+ getDeploymentLogs: ai.Tool<{
1648
+ deploymentId: string;
1649
+ since?: string | undefined;
1650
+ }, {
1651
+ logs: string[];
1652
+ error: string | undefined;
1653
+ nextSince: number | undefined;
1654
+ }>;
1655
+ getDeploymentErrors: ai.Tool<{
1656
+ deploymentId: string;
1657
+ }, {
1658
+ error: string | undefined;
1659
+ fullErrorText: string | undefined;
1660
+ errorType: string | undefined;
1661
+ formattedError: string | undefined;
1662
+ }>;
1663
+ createProject: ai.Tool<{
1664
+ name: string;
1665
+ description?: string | undefined;
1666
+ privacy?: "private" | "team" | undefined;
1667
+ icon?: string | undefined;
1668
+ environmentVariables?: {
1669
+ value: string;
1670
+ key: string;
1671
+ }[] | undefined;
1672
+ instructions?: string | undefined;
1673
+ vercelProjectId?: string | undefined;
1674
+ }, {
1675
+ projectId: string;
1676
+ name: string;
1677
+ description: string | undefined;
1678
+ privacy: "private" | "team";
1679
+ webUrl: string;
1680
+ apiUrl: string;
1681
+ createdAt: string;
1682
+ vercelProjectId: string | undefined;
1683
+ }>;
1684
+ getProject: ai.Tool<{
1685
+ projectId: string;
1686
+ }, {
1687
+ projectId: string;
1688
+ name: string;
1689
+ description: string | undefined;
1690
+ instructions: string | undefined;
1691
+ privacy: "private" | "team";
1692
+ webUrl: string;
1693
+ apiUrl: string;
1694
+ createdAt: string;
1695
+ updatedAt: string | undefined;
1696
+ vercelProjectId: string | undefined;
1697
+ chatsCount: number;
1698
+ }>;
1699
+ updateProject: ai.Tool<{
1700
+ projectId: string;
1701
+ description?: string | undefined;
1702
+ name?: string | undefined;
1703
+ privacy?: "private" | "team" | undefined;
1704
+ instructions?: string | undefined;
1705
+ }, {
1706
+ projectId: string;
1707
+ name: string;
1708
+ description: string | undefined;
1709
+ instructions: string | undefined;
1710
+ privacy: "private" | "team";
1711
+ updatedAt: string | undefined;
1712
+ }>;
1713
+ listProjects: ai.Tool<{}, {
1714
+ projects: {
1715
+ projectId: string;
1716
+ name: string;
1717
+ privacy: "private" | "team";
1718
+ webUrl: string;
1719
+ createdAt: string;
1720
+ updatedAt: string | undefined;
1721
+ vercelProjectId: string | undefined;
1722
+ }[];
1723
+ }>;
1724
+ assignChatToProject: ai.Tool<{
1725
+ projectId: string;
1726
+ chatId: string;
1727
+ }, {
1728
+ projectId: string;
1729
+ assigned: true;
1730
+ }>;
1731
+ getProjectByChat: ai.Tool<{
1732
+ chatId: string;
1733
+ }, {
1734
+ projectId: string;
1735
+ name: string;
1736
+ description: string | undefined;
1737
+ privacy: "private" | "team";
1738
+ webUrl: string;
1739
+ createdAt: string;
1740
+ chatsCount: number;
1741
+ }>;
1742
+ createEnvironmentVariables: ai.Tool<{
1743
+ projectId: string;
1744
+ environmentVariables: {
1745
+ value: string;
1746
+ key: string;
1747
+ }[];
1748
+ upsert?: boolean | undefined;
1749
+ decrypted?: string | undefined;
1750
+ }, {
1751
+ environmentVariables: {
1752
+ id: string;
1753
+ key: string;
1754
+ value: string;
1755
+ decrypted: boolean;
1756
+ createdAt: number;
1757
+ }[];
1758
+ }>;
1759
+ listEnvironmentVariables: ai.Tool<{
1760
+ projectId: string;
1761
+ decrypted?: string | undefined;
1762
+ }, {
1763
+ environmentVariables: {
1764
+ id: string;
1765
+ key: string;
1766
+ value: string;
1767
+ decrypted: boolean;
1768
+ createdAt: number;
1769
+ updatedAt: number | undefined;
1770
+ }[];
1771
+ }>;
1772
+ updateEnvironmentVariables: ai.Tool<{
1773
+ projectId: string;
1774
+ environmentVariables: {
1775
+ value: string;
1776
+ id: string;
1777
+ }[];
1778
+ decrypted?: string | undefined;
1779
+ }, {
1780
+ environmentVariables: {
1781
+ id: string;
1782
+ key: string;
1783
+ value: string;
1784
+ decrypted: boolean;
1785
+ updatedAt: number | undefined;
1786
+ }[];
1787
+ }>;
1788
+ deleteEnvironmentVariables: ai.Tool<{
1789
+ projectId: string;
1790
+ environmentVariableIds: string[];
1791
+ }, {
1792
+ deletedVariables: {
1793
+ id: string;
1794
+ deleted: true;
1795
+ }[];
1796
+ }>;
1797
+ createChat: ai.Tool<{
1798
+ message: string;
1799
+ system?: string | undefined;
1800
+ attachments?: {
1801
+ url: string;
1802
+ }[] | undefined;
1803
+ chatPrivacy?: "public" | "private" | "team-edit" | "team" | "unlisted" | undefined;
1804
+ projectId?: string | undefined;
1805
+ modelConfiguration?: {
1806
+ modelId: "v0-1.5-sm" | "v0-1.5-md" | "v0-1.5-lg" | "v0-gpt-5";
1807
+ imageGenerations?: boolean | undefined;
1808
+ thinking?: boolean | undefined;
1809
+ } | undefined;
1810
+ responseMode?: "sync" | "async" | undefined;
1811
+ }, {
1812
+ chatId: string;
1813
+ webUrl: string;
1814
+ apiUrl: string;
1815
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
1816
+ name: string | undefined;
1817
+ favorite: boolean;
1818
+ latestVersion: {
1819
+ id: string;
1820
+ object: "version";
1821
+ status: "pending" | "completed" | "failed";
1822
+ demoUrl?: string;
1823
+ createdAt: string;
1824
+ updatedAt?: string;
1825
+ files: {
1826
+ object: "file";
1827
+ name: string;
1828
+ content: string;
1829
+ locked: boolean;
1830
+ }[];
1831
+ } | undefined;
1832
+ createdAt: string;
1833
+ }>;
1834
+ sendMessage: ai.Tool<{
1835
+ message: string;
1836
+ chatId: string;
1837
+ attachments?: {
1838
+ url: string;
1839
+ }[] | undefined;
1840
+ modelConfiguration?: {
1841
+ modelId: "v0-1.5-sm" | "v0-1.5-md" | "v0-1.5-lg" | "v0-gpt-5";
1842
+ imageGenerations?: boolean | undefined;
1843
+ thinking?: boolean | undefined;
1844
+ } | undefined;
1845
+ responseMode?: "sync" | "async" | undefined;
1846
+ }, {
1847
+ chatId: string;
1848
+ webUrl: string;
1849
+ latestVersion: {
1850
+ id: string;
1851
+ object: "version";
1852
+ status: "pending" | "completed" | "failed";
1853
+ demoUrl?: string;
1854
+ createdAt: string;
1855
+ updatedAt?: string;
1856
+ files: {
1857
+ object: "file";
1858
+ name: string;
1859
+ content: string;
1860
+ locked: boolean;
1861
+ }[];
1862
+ } | undefined;
1863
+ updatedAt: string | undefined;
1864
+ }>;
1865
+ getChat: ai.Tool<{
1866
+ chatId: string;
1867
+ }, {
1868
+ chatId: string;
1869
+ name: string | undefined;
1870
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
1871
+ webUrl: string;
1872
+ favorite: boolean;
1873
+ createdAt: string;
1874
+ updatedAt: string | undefined;
1875
+ latestVersion: {
1876
+ id: string;
1877
+ object: "version";
1878
+ status: "pending" | "completed" | "failed";
1879
+ demoUrl?: string;
1880
+ createdAt: string;
1881
+ updatedAt?: string;
1882
+ files: {
1883
+ object: "file";
1884
+ name: string;
1885
+ content: string;
1886
+ locked: boolean;
1887
+ }[];
1888
+ } | undefined;
1889
+ messagesCount: number;
1890
+ }>;
1891
+ updateChat: ai.Tool<{
1892
+ chatId: string;
1893
+ name?: string | undefined;
1894
+ privacy?: "public" | "private" | "team-edit" | "team" | "unlisted" | undefined;
1895
+ }, {
1896
+ chatId: string;
1897
+ name: string | undefined;
1898
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
1899
+ updatedAt: string | undefined;
1900
+ }>;
1901
+ deleteChat: ai.Tool<{
1902
+ chatId: string;
1903
+ }, {
1904
+ chatId: string;
1905
+ deleted: true;
1906
+ }>;
1907
+ favoriteChat: ai.Tool<{
1908
+ chatId: string;
1909
+ isFavorite: boolean;
1910
+ }, {
1911
+ chatId: string;
1912
+ favorited: boolean;
1913
+ }>;
1914
+ forkChat: ai.Tool<{
1915
+ chatId: string;
1916
+ privacy?: "public" | "private" | "team-edit" | "team" | "unlisted" | undefined;
1917
+ versionId?: string | undefined;
1918
+ }, {
1919
+ originalChatId: string;
1920
+ newChatId: string;
1921
+ webUrl: string;
1922
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
1923
+ createdAt: string;
1924
+ }>;
1925
+ listChats: ai.Tool<{
1926
+ isFavorite?: string | undefined;
1927
+ limit?: string | undefined;
1928
+ offset?: string | undefined;
1929
+ }, {
1930
+ chats: {
1931
+ chatId: string;
1932
+ name: string | undefined;
1933
+ privacy: "public" | "private" | "team-edit" | "team" | "unlisted";
1934
+ webUrl: string;
1935
+ favorite: boolean;
1936
+ createdAt: string;
1937
+ updatedAt: string | undefined;
1938
+ }[];
1939
+ }>;
1940
+ };
1941
+
1942
+ export { createChatTools, createDeploymentTools, createHookTools, createProjectTools, createUserTools, v0Tools as default, v0Tools, v0ToolsByCategory, v0ToolsFlat };
1943
+ export type { V0ToolsConfig };
1944
+ //# sourceMappingURL=index.d.ts.map