@lovable.dev/sdk 1.4.1 → 1.7.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.
@@ -2,11 +2,6 @@
2
2
 
3
3
  import * as z from 'zod';
4
4
 
5
- export const CommonSeamlessConnectorCreatorSchema = z.object({
6
- name: z.string(),
7
- url: z.string()
8
- });
9
-
10
5
  export const CommonSeamlessConnectorFeatureSchema = z.object({
11
6
  body: z.string().optional(),
12
7
  items: z.array(z.string()).nullable(),
@@ -22,40 +17,13 @@ export const CommonSeamlessConnectorPermissionSchema = z.object({
22
17
  name: z.string()
23
18
  });
24
19
 
25
- export const CreatorSchema = z.object({
20
+ export const CompanyCreatorSchema = z.object({
21
+ logo_url: z.string().optional(),
26
22
  name: z.string(),
23
+ type: z.enum(['company']),
27
24
  url: z.string()
28
25
  });
29
26
 
30
- export const AppUserConnectorApiSchema = z.object({
31
- can_restrict_to_admins: z.boolean(),
32
- categories: z.array(z.enum([
33
- 'ecommerce',
34
- 'marketing',
35
- 'productivity',
36
- 'sales',
37
- 'support',
38
- 'other',
39
- 'messaging',
40
- 'coming_soon',
41
- 'development',
42
- 'payments',
43
- 'custom'
44
- ])),
45
- creator: CreatorSchema,
46
- display_name: z.string(),
47
- documentation_url: z.string(),
48
- features: z.string(),
49
- has_clients: z.boolean(),
50
- id: z.string(),
51
- is_enabled_for_workspace: z.boolean(),
52
- long_description: z.string(),
53
- search_tags: z.array(z.string()),
54
- short_description: z.string(),
55
- terms_url: z.string().optional(),
56
- who_can_create: z.enum(['editors_and_admins', 'admins_only'])
57
- });
58
-
59
27
  export const DiffLineSchema = z.object({
60
28
  content: z.string(),
61
29
  type: z.string()
@@ -84,16 +52,6 @@ export const ErrorModelSchema = z.object({
84
52
  type: z.string().optional()
85
53
  });
86
54
 
87
- export const FeatureDescriptionSchema = z.object({
88
- body: z.string().optional(),
89
- items: z.array(z.string()).nullable(),
90
- title: z.string()
91
- });
92
-
93
- export const GetMeCapabilitiesSchema = z.object({
94
- project_variants: z.boolean()
95
- });
96
-
97
55
  export const GetMeWorkspaceSchema = z.object({
98
56
  id: z.string(),
99
57
  name: z.string(),
@@ -101,7 +59,6 @@ export const GetMeWorkspaceSchema = z.object({
101
59
  });
102
60
 
103
61
  export const GetMeOutputBodySchema = z.object({
104
- capabilities: GetMeCapabilitiesSchema.optional(),
105
62
  email: z.string(),
106
63
  id: z.string(),
107
64
  name: z.string(),
@@ -144,6 +101,11 @@ export const ListDataSchema = z.object({
144
101
  label: z.string()
145
102
  });
146
103
 
104
+ export const ChannelListsGroupSchema = z.object({
105
+ page: ListDataSchema,
106
+ source: ListDataSchema
107
+ });
108
+
147
109
  export const ListsGroupSchema = z.object({
148
110
  country: ListDataSchema,
149
111
  device: ListDataSchema,
@@ -151,8 +113,9 @@ export const ListsGroupSchema = z.object({
151
113
  source: ListDataSchema
152
114
  });
153
115
 
154
- export const McpConnectorCreatorStructSchema = z.object({
116
+ export const LovableCreatorSchema = z.object({
155
117
  name: z.string(),
118
+ type: z.enum(['lovable']),
156
119
  url: z.string()
157
120
  });
158
121
 
@@ -216,7 +179,6 @@ export const CursorListResponsePublicV1ConnectorItemSchema = z.object({
216
179
  export const PublicV1CreateProjectResponseSchema = z.object({
217
180
  description: z.string().optional(),
218
181
  display_name: z.string().optional(),
219
- embed_url: z.string().optional(),
220
182
  id: z.string().optional(),
221
183
  is_published: z.boolean().optional(),
222
184
  job_id: z.string().optional(),
@@ -224,6 +186,7 @@ export const PublicV1CreateProjectResponseSchema = z.object({
224
186
  latest_screenshot_url: z.string().optional(),
225
187
  message_id: z.string().optional(),
226
188
  name: z.string().optional(),
189
+ preview_url: z.string().optional(),
227
190
  status: z.string().optional(),
228
191
  url: z.string().optional(),
229
192
  visibility: z.string().optional(),
@@ -246,6 +209,7 @@ export const PublicV1GitFilesResponseSchema = z.object({
246
209
  });
247
210
 
248
211
  export const PublicV1PatchProjectBodySchema = z.object({
212
+ description: z.string().max(100000).optional(),
249
213
  display_name: z.string().optional(),
250
214
  visibility: z.enum([
251
215
  'draft',
@@ -265,9 +229,9 @@ export const PublicV1ProjectListItemSchema = z.object({
265
229
  description: z.string().optional(),
266
230
  display_name: z.string().optional(),
267
231
  folder_id: z.string().optional(),
232
+ generated_description: z.string().optional(),
268
233
  id: z.string(),
269
234
  is_published: z.boolean().optional(),
270
- is_template: z.boolean().optional(),
271
235
  last_edited_at: z.iso.datetime().optional(),
272
236
  latest_screenshot_url: z.string().optional(),
273
237
  name: z.string().optional(),
@@ -302,6 +266,42 @@ export const PublicV1ProjectRemixInputBodySchema = z.object({
302
266
  workspace_id: z.string()
303
267
  });
304
268
 
269
+ export const PublicV1PublishAudienceTargetSchema = z.object({
270
+ id: z.string().min(1),
271
+ type: z.enum(['group', 'user'])
272
+ });
273
+
274
+ export const PublicV1PublishProjectInputBodySchema = z.object({
275
+ audience: z.array(PublicV1PublishAudienceTargetSchema).max(100).nullish(),
276
+ name: z.string().optional(),
277
+ visibility: z.enum([
278
+ 'public',
279
+ 'workspace',
280
+ 'custom'
281
+ ]).optional()
282
+ });
283
+
284
+ export const PublicV1PublishProjectResponseSchema = z.object({
285
+ deployment_id: z.string().optional(),
286
+ status: z.string(),
287
+ url: z.string().optional(),
288
+ visibility: z.string()
289
+ });
290
+
291
+ export const PublicV1PublishStatusResponseSchema = z.object({
292
+ deployment_id: z.string(),
293
+ error_class: z.string().optional(),
294
+ error_code: z.string().optional(),
295
+ error_message: z.string().optional(),
296
+ status: z.enum([
297
+ 'running',
298
+ 'completed',
299
+ 'error',
300
+ 'unknown'
301
+ ]),
302
+ url: z.string().optional()
303
+ });
304
+
305
305
  export const PublicV1SetProjectKnowledgeInputBodySchema = z.object({
306
306
  content: z.string(),
307
307
  project_id: z.string()
@@ -312,6 +312,22 @@ export const PublicV1SetProjectSkillEnabledInputBodySchema = z.object({
312
312
  project_id: z.string()
313
313
  });
314
314
 
315
+ export const PublicV1UpdatePublishSettingsInputBodySchema = z.object({
316
+ audience: z.array(PublicV1PublishAudienceTargetSchema).max(100).nullish(),
317
+ is_published: z.boolean().optional(),
318
+ visibility: z.enum([
319
+ 'public',
320
+ 'workspace',
321
+ 'custom'
322
+ ]).optional()
323
+ });
324
+
325
+ export const PublicV1UpdatePublishSettingsResponseSchema = z.object({
326
+ is_published: z.boolean(),
327
+ url: z.string().optional(),
328
+ visibility: z.string()
329
+ });
330
+
315
331
  export const PublicV1WorkspaceSchema = z.object({
316
332
  created_at: z.iso.datetime().optional(),
317
333
  description: z.string().optional(),
@@ -325,15 +341,7 @@ export const PublicV1WorkspaceSchema = z.object({
325
341
 
326
342
  export const PublicV1WorkspaceMemberSchema = z.object({
327
343
  joined_at: z.iso.datetime().optional(),
328
- role: z.enum([
329
- 'none',
330
- 'owner',
331
- 'admin',
332
- 'member',
333
- 'viewer',
334
- 'collaborator',
335
- 'invited'
336
- ]),
344
+ role: z.string(),
337
345
  user_id: z.string()
338
346
  });
339
347
 
@@ -354,29 +362,24 @@ export const PublicV1WorkspaceWithMembershipSchema = z.object({
354
362
  updated_at: z.iso.datetime().optional()
355
363
  });
356
364
 
365
+ export const RemixJobFailureSchema = z.object({
366
+ code: z.string().optional(),
367
+ failed_step: z.string(),
368
+ message: z.string()
369
+ });
370
+
357
371
  export const RemixJobStepInfoSchema = z.object({
372
+ failure: RemixJobFailureSchema.optional(),
358
373
  integration_name: z.string().optional(),
359
374
  status: z.string().optional(),
360
375
  step: z.string()
361
376
  });
362
377
 
363
- export const SeamlessConnectorApiSchema = z.object({
364
- alias: z.string().optional(),
365
- categories: z.array(z.string()).nullable(),
366
- creator: CommonSeamlessConnectorCreatorSchema,
367
- description: z.string(),
368
- display_name: z.string(),
369
- documentation_url: z.string(),
370
- features: z.array(CommonSeamlessConnectorFeatureSchema).nullish(),
371
- id: z.string(),
372
- is_enabled_for_workspace: z.boolean(),
373
- level: z.string(),
374
- logo_id: z.string().optional(),
375
- manual_connect_hint: z.string().optional(),
376
- permissions: z.array(CommonSeamlessConnectorPermissionSchema).nullable(),
377
- searchTags: z.array(z.string()).nullish(),
378
- short_description: z.string(),
379
- toolIntegrationName: z.string().optional()
378
+ export const RemixWarningSchema = z.object({
379
+ code: z.enum(['edge_functions_not_deployed', 'integration_skipped']),
380
+ failed_edge_functions: z.array(z.string()).nullish(),
381
+ reason: z.string().optional(),
382
+ skipped_integration: z.string().optional()
380
383
  });
381
384
 
382
385
  export const SearchProjectItemSchema = z.object({
@@ -458,49 +461,6 @@ export const StandardConnectorPromotionSchema = z.object({
458
461
  until: z.iso.datetime()
459
462
  });
460
463
 
461
- export const StandardConnectorApiSchema = z.object({
462
- can_be_managed: z.boolean(),
463
- can_restrict_to_admins: z.boolean(),
464
- categories: z.array(z.enum([
465
- 'ecommerce',
466
- 'marketing',
467
- 'productivity',
468
- 'sales',
469
- 'support',
470
- 'other',
471
- 'messaging',
472
- 'coming_soon',
473
- 'development',
474
- 'payments',
475
- 'custom'
476
- ])),
477
- coming_soon: z.boolean().optional(),
478
- connection_scope: z.enum(['project', 'workspace']),
479
- creator: CreatorSchema,
480
- data_scope: z.enum(['organization', 'individual']),
481
- description: z.string(),
482
- display_name: z.string(),
483
- documentation_url: z.string(),
484
- features: z.array(FeatureDescriptionSchema).nullish(),
485
- has_connections: z.boolean(),
486
- id: z.string(),
487
- is_enabled_for_workspace: z.boolean(),
488
- is_new: z.boolean().optional(),
489
- logo_id: z.string(),
490
- promotion: StandardConnectorPromotionSchema.optional(),
491
- searchTags: z.array(z.string()),
492
- short_description: z.string(),
493
- single_connection: z.boolean().optional(),
494
- source: z.enum(['native', 'user_defined']).optional(),
495
- terms_url: z.string().optional(),
496
- vendor: z.enum([
497
- 'google',
498
- 'microsoft',
499
- 'aws'
500
- ]).optional(),
501
- who_can_create: z.enum(['editors_and_admins', 'admins_only'])
502
- });
503
-
504
464
  export const TemplateProjectResponseSchema = z.object({
505
465
  description: z.string(),
506
466
  id: z.string(),
@@ -525,6 +485,19 @@ export const TimeSeriesDataSchema = z.object({
525
485
  total: z.number()
526
486
  });
527
487
 
488
+ export const ChannelTimeSeriesGroupSchema = z.object({
489
+ bounceRate: TimeSeriesDataSchema,
490
+ pageviews: TimeSeriesDataSchema,
491
+ pageviewsPerVisit: TimeSeriesDataSchema,
492
+ sessionDuration: TimeSeriesDataSchema,
493
+ visitors: TimeSeriesDataSchema
494
+ });
495
+
496
+ export const ChannelAnalyticsSchema = z.object({
497
+ lists: ChannelListsGroupSchema,
498
+ timeSeries: ChannelTimeSeriesGroupSchema
499
+ });
500
+
528
501
  export const TimeSeriesGroupSchema = z.object({
529
502
  bounceRate: TimeSeriesDataSchema,
530
503
  pageviews: TimeSeriesDataSchema,
@@ -534,20 +507,84 @@ export const TimeSeriesGroupSchema = z.object({
534
507
  });
535
508
 
536
509
  export const ProjectAnalyticsResponseSchema = z.object({
510
+ channels: z.record(z.string(), ChannelAnalyticsSchema).optional(),
511
+ channelsSource: z.enum(['legacy', 'user_app_events']).optional(),
537
512
  lists: ListsGroupSchema,
538
513
  timeSeries: TimeSeriesGroupSchema
539
514
  });
540
515
 
541
516
  export const ToolDisplayDataSchema = z.object({
517
+ default_preference: z.enum([
518
+ 'never_ask',
519
+ 'ask',
520
+ 'disable'
521
+ ]).optional(),
542
522
  description: z.string(),
543
523
  input_schema: z.unknown().optional(),
544
- name: z.string()
524
+ name: z.string(),
525
+ title: z.string().optional()
526
+ });
527
+
528
+ export const TrendDataPointSchema = z.object({
529
+ time: z.string(),
530
+ visits: z.number()
531
+ });
532
+
533
+ export const ProjectTrendResponseSchema = z.object({
534
+ currentVisitors: z.number(),
535
+ data: z.array(TrendDataPointSchema).nullable()
536
+ });
537
+
538
+ export const PublicV1ProjectAnalyticsBodySchema = z.object({
539
+ lists: ListsGroupSchema.optional(),
540
+ timeSeries: TimeSeriesGroupSchema.optional(),
541
+ trend: ProjectTrendResponseSchema.optional()
542
+ });
543
+
544
+ export const UserCreatorSchema = z.object({
545
+ type: z.enum(['user']),
546
+ user_id: z.string()
547
+ });
548
+
549
+ export const CreatorSchema = z.discriminatedUnion('type', [
550
+ LovableCreatorSchema.extend({ type: z.literal('lovable') }),
551
+ UserCreatorSchema.extend({ type: z.literal('user') }),
552
+ CompanyCreatorSchema.extend({ type: z.literal('company') })
553
+ ]);
554
+
555
+ export const AppUserConnectorApiSchema = z.object({
556
+ can_restrict_to_admins: z.boolean(),
557
+ categories: z.array(z.enum([
558
+ 'ecommerce',
559
+ 'marketing',
560
+ 'productivity',
561
+ 'sales',
562
+ 'support',
563
+ 'other',
564
+ 'messaging',
565
+ 'development',
566
+ 'payments',
567
+ 'security',
568
+ 'custom'
569
+ ])),
570
+ creator: CreatorSchema,
571
+ display_name: z.string(),
572
+ documentation_url: z.string(),
573
+ has_clients: z.boolean(),
574
+ id: z.string(),
575
+ is_enabled_for_workspace: z.boolean(),
576
+ long_description: z.string(),
577
+ search_tags: z.array(z.string()),
578
+ short_description: z.string(),
579
+ terms_url: z.string().optional(),
580
+ who_can_create: z.enum(['editors_and_admins', 'admins_only'])
545
581
  });
546
582
 
547
583
  export const McpConnectorSchema = z.object({
548
584
  app_mcp_auth_method: z.string().optional(),
549
585
  app_mcp_project_id: z.string().optional(),
550
586
  app_mcp_server_id: z.string().optional(),
587
+ app_site_url: z.string().optional(),
551
588
  category: z.enum([
552
589
  'ecommerce',
553
590
  'marketing',
@@ -556,15 +593,15 @@ export const McpConnectorSchema = z.object({
556
593
  'support',
557
594
  'other',
558
595
  'messaging',
559
- 'coming_soon',
560
596
  'development',
561
597
  'payments',
598
+ 'security',
562
599
  'custom'
563
600
  ]),
564
601
  connect_interaction: z.enum(['desktop_app_download']).optional(),
565
602
  connection_id: z.string().optional(),
566
603
  connector_id: z.string().optional(),
567
- creator: McpConnectorCreatorStructSchema,
604
+ creator: CreatorSchema,
568
605
  custom_url_hint: z.string().optional(),
569
606
  display_name: z.string(),
570
607
  documentation_url: z.string().optional(),
@@ -592,14 +629,64 @@ export const McpConnectorSchema = z.object({
592
629
  url_placeholder: z.string().optional()
593
630
  });
594
631
 
595
- export const TrendDataPointSchema = z.object({
596
- time: z.string(),
597
- visits: z.number()
632
+ export const SeamlessConnectorApiSchema = z.object({
633
+ alias: z.string().optional(),
634
+ categories: z.array(z.string()).nullable(),
635
+ creator: CreatorSchema,
636
+ description: z.string(),
637
+ display_name: z.string(),
638
+ documentation_url: z.string(),
639
+ features: z.array(CommonSeamlessConnectorFeatureSchema).nullish(),
640
+ id: z.string(),
641
+ is_enabled_for_workspace: z.boolean(),
642
+ level: z.string(),
643
+ manual_connect_hint: z.string().optional(),
644
+ permissions: z.array(CommonSeamlessConnectorPermissionSchema).nullable(),
645
+ searchTags: z.array(z.string()).nullish(),
646
+ short_description: z.string(),
647
+ toolIntegrationName: z.string().optional()
598
648
  });
599
649
 
600
- export const ProjectTrendResponseSchema = z.object({
601
- currentVisitors: z.number(),
602
- data: z.array(TrendDataPointSchema).nullable()
650
+ export const StandardConnectorApiSchema = z.object({
651
+ can_restrict_to_admins: z.boolean(),
652
+ categories: z.array(z.enum([
653
+ 'ecommerce',
654
+ 'marketing',
655
+ 'productivity',
656
+ 'sales',
657
+ 'support',
658
+ 'other',
659
+ 'messaging',
660
+ 'development',
661
+ 'payments',
662
+ 'security',
663
+ 'custom'
664
+ ])),
665
+ connection_scope: z.enum(['project', 'workspace']),
666
+ creator: CreatorSchema,
667
+ data_scope: z.enum(['organization', 'individual']),
668
+ description: z.string(),
669
+ display_name: z.string(),
670
+ documentation_url: z.string(),
671
+ has_connections: z.boolean(),
672
+ has_metered_option: z.boolean().optional(),
673
+ id: z.string(),
674
+ is_enabled_for_workspace: z.boolean(),
675
+ is_new: z.boolean().optional(),
676
+ logo_url: z.string().optional(),
677
+ promotion: StandardConnectorPromotionSchema.optional(),
678
+ searchTags: z.array(z.string()),
679
+ short_description: z.string(),
680
+ single_connection: z.boolean().optional(),
681
+ source: z.enum(['native', 'user_defined']).optional(),
682
+ terms_url: z.string().optional(),
683
+ vendor: z.enum([
684
+ 'google',
685
+ 'microsoft',
686
+ 'aws',
687
+ 'meta'
688
+ ]).optional(),
689
+ who_can_create: z.enum(['editors_and_admins', 'admins_only'])
603
690
  });
604
691
 
605
692
  export const V1AddConnectorInputBodySchema = z.object({
@@ -641,20 +728,44 @@ export const V1AiResponseSummarySchema = z.object({
641
728
  summary: z.string().optional()
642
729
  });
643
730
 
731
+ export const V1BillingCreditLimitRowSchema = z.object({
732
+ monthly_credit_limit: z.number().optional(),
733
+ user_id: z.string()
734
+ });
735
+
736
+ export const V1BillingCreditLimitsBodySchema = z.object({
737
+ data: z.array(V1BillingCreditLimitRowSchema).nullable(),
738
+ default_monthly_credit_limit: z.number().optional(),
739
+ pagination: PaginationSchema
740
+ });
741
+
644
742
  export const V1BillingPeriodSchema = z.object({
645
743
  end: z.iso.datetime(),
646
744
  start: z.iso.datetime()
647
745
  });
648
746
 
747
+ export const V1BillingUsagePeriodSchema = z.object({
748
+ end: z.string(),
749
+ group_by: z.string().optional(),
750
+ interval: z.string().optional(),
751
+ start: z.string()
752
+ });
753
+
649
754
  export const V1BulkMemberCreditLimitItemSchema = z.object({
755
+ email: z.string().optional(),
650
756
  monthly_credit_limit: z.number().gte(0).nullable(),
651
- user_id: z.string()
757
+ user_id: z.string().optional()
758
+ });
759
+
760
+ export const V1BillingBulkSetMemberCreditLimitInputBodySchema = z.object({
761
+ members: z.array(V1BulkMemberCreditLimitItemSchema).min(1).max(1000)
652
762
  });
653
763
 
654
764
  export const V1BulkMemberCreditLimitResultSchema = z.object({
765
+ email: z.string().optional(),
655
766
  error: z.string().optional(),
656
767
  status: z.string(),
657
- user_id: z.string()
768
+ user_id: z.string().optional()
658
769
  });
659
770
 
660
771
  export const V1BulkSetMemberCreditLimitInputBodySchema = z.object({
@@ -701,17 +812,17 @@ export const V1CreateProjectResponseSchema = z.object({
701
812
  created_at: z.iso.datetime().optional(),
702
813
  description: z.string().optional(),
703
814
  display_name: z.string().optional(),
704
- embed_url: z.string().optional(),
705
815
  folder_id: z.string().optional(),
816
+ generated_description: z.string().optional(),
706
817
  id: z.string(),
707
818
  is_published: z.boolean().optional(),
708
- is_template: z.boolean().optional(),
709
819
  last_edited_at: z.iso.datetime().optional(),
710
820
  latest_commit_sha: z.string().optional(),
711
821
  latest_screenshot_url: z.string().optional(),
712
822
  message_id: z.string().optional(),
713
823
  name: z.string().optional(),
714
824
  og_image_url: z.string().optional(),
825
+ preview_url: z.string().optional(),
715
826
  project_type: z.string().optional(),
716
827
  publish_visibility: z.string().optional(),
717
828
  status: z.string().optional(),
@@ -794,10 +905,8 @@ export const V1EditSummarySchema = z.object({
794
905
  type: z.string()
795
906
  });
796
907
 
797
- export const PublicV1GetEditsOutputBodySchema = z.object({
908
+ export const CursorListResponseV1EditSummarySchema = z.object({
798
909
  data: z.array(V1EditSummarySchema).nullable(),
799
- edits: z.array(V1EditSummarySchema).nullable(),
800
- has_more: z.boolean(),
801
910
  pagination: PaginationSchema
802
911
  });
803
912
 
@@ -807,7 +916,8 @@ export const V1EnableDatabaseOutputBodySchema = z.object({
807
916
  });
808
917
 
809
918
  export const V1EphemeralFileUploadUrlInputBodySchema = z.object({
810
- content_type: z.string().optional()
919
+ content_type: z.string().optional(),
920
+ workspace_id: z.string().optional()
811
921
  });
812
922
 
813
923
  export const V1FileUploadUrlOutputBodySchema = z.object({
@@ -880,6 +990,23 @@ export const V1ListWorkspacesBodySchema = z.object({
880
990
  pagination: PaginationSchema
881
991
  });
882
992
 
993
+ export const V1MessageExportStatusSchema = z.object({
994
+ archive_size_bytes: z.number().optional(),
995
+ completed_at: z.iso.datetime().optional(),
996
+ created_at: z.iso.datetime(),
997
+ download_url: z.string().optional(),
998
+ expires_at: z.iso.datetime().optional(),
999
+ export_id: z.string(),
1000
+ message_count: z.number().optional(),
1001
+ project_count: z.number().optional(),
1002
+ status: z.enum([
1003
+ 'running',
1004
+ 'completed',
1005
+ 'failed',
1006
+ 'expired'
1007
+ ])
1008
+ });
1009
+
883
1010
  export const V1MessageListItemSchema = z.object({
884
1011
  content: z.string(),
885
1012
  created_at: z.string(),
@@ -920,6 +1047,58 @@ export const V1MoveProjectsToFolderInputBodySchema = z.object({
920
1047
  project_ids: z.array(z.string()).min(1).max(30).nullable()
921
1048
  });
922
1049
 
1050
+ export const V1ProjectCloudDiskSchema = z.object({
1051
+ size_bytes: z.number(),
1052
+ timestamp: z.iso.datetime(),
1053
+ used_bytes: z.number()
1054
+ });
1055
+
1056
+ export const V1ProjectCloudResourceSignalSchema = z.object({
1057
+ alert_hours: z.number(),
1058
+ label: z.string(),
1059
+ latest_alert_at: z.iso.datetime().optional(),
1060
+ latest_value: z.number().optional(),
1061
+ resource_type: z.string()
1062
+ });
1063
+
1064
+ export const V1ProjectCloudResourcePressureSchema = z.object({
1065
+ resources: z.array(V1ProjectCloudResourceSignalSchema).nullable(),
1066
+ window_hours: z.number()
1067
+ });
1068
+
1069
+ export const V1ProjectCloudBodySchema = z.object({
1070
+ disk: V1ProjectCloudDiskSchema.optional(),
1071
+ environment: z.string(),
1072
+ instance_tier: z.enum([
1073
+ 'xs',
1074
+ 's',
1075
+ 'm',
1076
+ 'ml',
1077
+ 'l',
1078
+ 'xl',
1079
+ 'xxl'
1080
+ ]),
1081
+ instance_tier_label: z.string(),
1082
+ pause_reason: z.string().optional(),
1083
+ postgres_version: z.string().optional(),
1084
+ region: z.string().optional(),
1085
+ resource_pressure: V1ProjectCloudResourcePressureSchema.optional(),
1086
+ status: z.enum([
1087
+ 'OK',
1088
+ 'RESIZING',
1089
+ 'UPGRADING',
1090
+ 'RESTARTING',
1091
+ 'COMING_UP',
1092
+ 'RESTORING',
1093
+ 'UNHEALTHY',
1094
+ 'INACTIVE',
1095
+ 'PAUSING',
1096
+ 'UNKNOWN',
1097
+ ''
1098
+ ]).optional(),
1099
+ user_paused: z.boolean()
1100
+ });
1101
+
923
1102
  export const V1ProjectCollaboratorSchema = z.object({
924
1103
  accepted_at: z.iso.datetime().optional(),
925
1104
  access_level: z.enum([
@@ -958,16 +1137,16 @@ export const V1ProjectResponseSchema = z.object({
958
1137
  created_at: z.iso.datetime().optional(),
959
1138
  description: z.string().optional(),
960
1139
  display_name: z.string().optional(),
961
- embed_url: z.string().optional(),
962
1140
  folder_id: z.string().optional(),
1141
+ generated_description: z.string().optional(),
963
1142
  id: z.string(),
964
1143
  is_published: z.boolean().optional(),
965
- is_template: z.boolean().optional(),
966
1144
  last_edited_at: z.iso.datetime().optional(),
967
1145
  latest_commit_sha: z.string().optional(),
968
1146
  latest_screenshot_url: z.string().optional(),
969
1147
  name: z.string().optional(),
970
1148
  og_image_url: z.string().optional(),
1149
+ preview_url: z.string().optional(),
971
1150
  project_type: z.string().optional(),
972
1151
  publish_visibility: z.string().optional(),
973
1152
  status: z.string().optional(),
@@ -1015,7 +1194,8 @@ export const V1RemixInitOutputBodySchema = z.object({
1015
1194
  });
1016
1195
 
1017
1196
  export const V1RemixProgressResultSchema = z.object({
1018
- project_id: z.string()
1197
+ project_id: z.string(),
1198
+ warnings: z.array(RemixWarningSchema).nullish()
1019
1199
  });
1020
1200
 
1021
1201
  export const V1RemixProgressOutputBodySchema = z.object({
@@ -1032,7 +1212,6 @@ export const V1RemoveConnectorOutputBodySchema = z.object({
1032
1212
 
1033
1213
  export const V1SecurityFindingSchema = z.object({
1034
1214
  category: z.string().optional(),
1035
- connector_id: z.string().optional(),
1036
1215
  created_at: z.iso.datetime(),
1037
1216
  description: z.string().optional(),
1038
1217
  details: z.string().optional(),
@@ -1049,6 +1228,13 @@ export const V1SecurityFindingSchema = z.object({
1049
1228
  updated_at: z.iso.datetime()
1050
1229
  });
1051
1230
 
1231
+ export const V1SecurityScanActorSchema = z.object({
1232
+ email: z.string().optional(),
1233
+ id: z.string().optional(),
1234
+ name: z.string().optional(),
1235
+ type: z.string()
1236
+ });
1237
+
1052
1238
  export const V1SecurityScanSummarySchema = z.object({
1053
1239
  commit_sha: z.string().optional(),
1054
1240
  finished_at: z.iso.datetime().optional(),
@@ -1057,7 +1243,7 @@ export const V1SecurityScanSummarySchema = z.object({
1057
1243
  started_at: z.iso.datetime(),
1058
1244
  status: z.string(),
1059
1245
  trigger_source: z.string(),
1060
- triggered_by: z.string().optional()
1246
+ triggered_by: V1SecurityScanActorSchema
1061
1247
  });
1062
1248
 
1063
1249
  export const CursorListResponseV1SecurityScanSummarySchema = z.object({
@@ -1086,6 +1272,7 @@ export const V1SelectedLibrarySchema = z.object({
1086
1272
  });
1087
1273
 
1088
1274
  export const V1SendMessageOutputBodySchema = z.object({
1275
+ agent_version: z.string().optional(),
1089
1276
  message_id: z.string(),
1090
1277
  status: z.string(),
1091
1278
  thread_id: z.string()
@@ -1128,6 +1315,18 @@ export const V1SetWorkspaceKnowledgeInputBodySchema = z.object({
1128
1315
  content: z.string()
1129
1316
  });
1130
1317
 
1318
+ export const V1StartMessageExportInputBodySchema = z.object({
1319
+ end_date: z.string().optional(),
1320
+ project_id: z.string().optional(),
1321
+ start_date: z.string().optional(),
1322
+ user_id: z.string().optional()
1323
+ });
1324
+
1325
+ export const V1StartMessageExportOutputBodySchema = z.object({
1326
+ export_id: z.string(),
1327
+ status: z.enum(['running'])
1328
+ });
1329
+
1131
1330
  export const V1TriggerSecurityScanInputBodySchema = z.object({
1132
1331
  project_id: z.string()
1133
1332
  });
@@ -1157,7 +1356,12 @@ export const PublicV1ProjectCreateInputBodySchema = z.object({
1157
1356
  source_project_id: z.string().regex(/^\s*$/).nullish(),
1158
1357
  tech_stack: z.string().optional(),
1159
1358
  template_project_id: z.string().optional(),
1160
- visibility: z.string().optional(),
1359
+ visibility: z.enum([
1360
+ 'draft',
1361
+ 'private',
1362
+ 'public',
1363
+ 'workspace_view'
1364
+ ]).optional(),
1161
1365
  workspace_id: z.string()
1162
1366
  });
1163
1367
 
@@ -1169,10 +1373,10 @@ export const PublicV1SendMessageInputBodySchema = z.object({
1169
1373
  ]).optional(),
1170
1374
  ephemeral_files: z.array(V1UnscopedFileSchema).nullish(),
1171
1375
  files: z.array(V1UnscopedFileSchema).nullish(),
1376
+ max_iterations: z.coerce.number().gte(1).lte(50).optional(),
1172
1377
  message: z.string().min(1).max(100000),
1173
1378
  plan_mode: z.boolean().optional(),
1174
- project_id: z.string(),
1175
- variant_id: z.string().optional()
1379
+ project_id: z.string()
1176
1380
  });
1177
1381
 
1178
1382
  export const V1CreateProjectInputBodySchema = z.object({
@@ -1186,7 +1390,12 @@ export const V1CreateProjectInputBodySchema = z.object({
1186
1390
  selected_libraries: z.array(V1SelectedLibrarySchema).nullish(),
1187
1391
  tech_stack: z.string().optional(),
1188
1392
  template_project_id: z.string().optional(),
1189
- visibility: z.string().optional()
1393
+ visibility: z.enum([
1394
+ 'draft',
1395
+ 'private',
1396
+ 'public',
1397
+ 'workspace_view'
1398
+ ]).optional()
1190
1399
  });
1191
1400
 
1192
1401
  export const V1SendMessageInputBodySchema = z.object({
@@ -1197,9 +1406,9 @@ export const V1SendMessageInputBodySchema = z.object({
1197
1406
  ]).optional(),
1198
1407
  ephemeral_files: z.array(V1UnscopedFileSchema).nullish(),
1199
1408
  files: z.array(V1UnscopedFileSchema).nullish(),
1409
+ max_iterations: z.coerce.number().gte(1).lte(50).optional(),
1200
1410
  message: z.string().min(1).max(100000),
1201
- plan_mode: z.boolean().optional(),
1202
- variant_id: z.string().optional()
1411
+ plan_mode: z.boolean().optional()
1203
1412
  });
1204
1413
 
1205
1414
  export const V1UpdateMemberCreditLimitInputBodySchema = z.object({
@@ -1212,6 +1421,10 @@ export const V1UpdateWorkspaceSettingsInputBodySchema = z.object({
1212
1421
  workspace_id: z.string()
1213
1422
  });
1214
1423
 
1424
+ export const V1UpdateWorkspaceSettingsNestedInputBodySchema = z.object({
1425
+ default_monthly_member_credit_limit: z.number().gte(0).nullish()
1426
+ });
1427
+
1215
1428
  export const V1UsagePeriodSchema = z.object({
1216
1429
  end: z.string(),
1217
1430
  granularity: z.string().optional(),
@@ -1220,9 +1433,11 @@ export const V1UsagePeriodSchema = z.object({
1220
1433
 
1221
1434
  export const V1WorkspaceAuditLogEntrySchema = z.object({
1222
1435
  action: z.string(),
1436
+ action_description: z.string(),
1223
1437
  actor_display_name: z.string().optional(),
1224
1438
  actor_id: z.string(),
1225
1439
  actor_type: z.string().optional(),
1440
+ client_platform: z.string().optional(),
1226
1441
  details: z.record(z.string(), z.unknown()).optional(),
1227
1442
  id: z.string(),
1228
1443
  ip_address: z.string().optional(),
@@ -1272,32 +1487,16 @@ export const V1WorkspaceCreditsBodySchema = z.object({
1272
1487
  total_remaining: z.number()
1273
1488
  });
1274
1489
 
1275
- export const V1WorkspaceMemberSchema = z.object({
1276
- display_name: z.string().optional(),
1277
- email: z.string().optional(),
1278
- invited_at: z.iso.datetime().optional(),
1279
- joined_at: z.iso.datetime().optional(),
1280
- monthly_credit_limit: z.number().optional(),
1281
- role: z.string(),
1282
- user_id: z.string(),
1283
- workspace_id: z.string()
1284
- });
1285
-
1286
- export const CursorListResponseV1WorkspaceMemberSchema = z.object({
1287
- data: z.array(V1WorkspaceMemberSchema).nullable(),
1288
- pagination: PaginationSchema
1289
- });
1290
-
1291
- export const V1WorkspaceSecurityActivityFreshnessSchema = z.object({
1490
+ export const V1WorkspaceInsightsActivityFreshnessSchema = z.object({
1292
1491
  edits_as_of: z.iso.datetime().optional(),
1293
1492
  visitors_as_of: z.iso.datetime().optional()
1294
1493
  });
1295
1494
 
1296
- export const V1WorkspaceSecurityEdgeFunctionSchema = z.object({
1495
+ export const V1WorkspaceInsightsEdgeFunctionSchema = z.object({
1297
1496
  name: z.string()
1298
1497
  });
1299
1498
 
1300
- export const V1WorkspaceSecurityFindingSchema = z.object({
1499
+ export const V1WorkspaceInsightsFindingSchema = z.object({
1301
1500
  category: z.string(),
1302
1501
  description: z.string(),
1303
1502
  id: z.string(),
@@ -1306,11 +1505,11 @@ export const V1WorkspaceSecurityFindingSchema = z.object({
1306
1505
  title: z.string()
1307
1506
  });
1308
1507
 
1309
- export const V1WorkspaceSecurityOwnerSchema = z.object({
1508
+ export const V1WorkspaceInsightsOwnerSchema = z.object({
1310
1509
  display_name: z.string().optional()
1311
1510
  });
1312
1511
 
1313
- export const V1WorkspaceSecurityReasonValuesSchema = z.object({
1512
+ export const V1WorkspaceInsightsReasonValuesSchema = z.object({
1314
1513
  connector_count: z.number().optional(),
1315
1514
  edge_function_count: z.number().optional(),
1316
1515
  error_count: z.number().optional(),
@@ -1321,22 +1520,22 @@ export const V1WorkspaceSecurityReasonValuesSchema = z.object({
1321
1520
  warning_count: z.number().optional()
1322
1521
  });
1323
1522
 
1324
- export const V1WorkspaceSecurityReasonSchema = z.object({
1523
+ export const V1WorkspaceInsightsReasonSchema = z.object({
1325
1524
  category: z.string(),
1326
1525
  detail: z.string(),
1327
1526
  id: z.string(),
1328
1527
  label: z.string(),
1329
1528
  severity: z.string(),
1330
- values: V1WorkspaceSecurityReasonValuesSchema.optional()
1529
+ values: V1WorkspaceInsightsReasonValuesSchema.optional()
1331
1530
  });
1332
1531
 
1333
- export const V1WorkspaceSecurityReviewPrioritySchema = z.object({
1532
+ export const V1WorkspaceInsightsReviewPrioritySchema = z.object({
1334
1533
  needs_review: z.number(),
1335
1534
  no_review_needed: z.number(),
1336
1535
  review_recommended: z.number()
1337
1536
  });
1338
1537
 
1339
- export const V1WorkspaceSecuritySignalsSchema = z.object({
1538
+ export const V1WorkspaceInsightsSignalsSchema = z.object({
1340
1539
  chat_attachment_count: z.number(),
1341
1540
  connector_count: z.number(),
1342
1541
  edge_function_count: z.number(),
@@ -1368,12 +1567,12 @@ export const V1WorkspaceSecuritySignalsSchema = z.object({
1368
1567
  warning_count: z.number()
1369
1568
  });
1370
1569
 
1371
- export const V1WorkspaceSecurityProjectSchema = z.object({
1570
+ export const V1WorkspaceInsightsProjectSchema = z.object({
1372
1571
  activity_group: z.string().optional(),
1373
1572
  connectors: z.array(z.string()).nullish(),
1374
1573
  description: z.string().optional(),
1375
1574
  display_name: z.string().optional(),
1376
- edge_functions: z.array(V1WorkspaceSecurityEdgeFunctionSchema).nullish(),
1575
+ edge_functions: z.array(V1WorkspaceInsightsEdgeFunctionSchema).nullish(),
1377
1576
  edit_count: z.number(),
1378
1577
  edits_24h: z.number(),
1379
1578
  edits_30d: z.number(),
@@ -1383,15 +1582,15 @@ export const V1WorkspaceSecurityProjectSchema = z.object({
1383
1582
  is_published: z.boolean().optional(),
1384
1583
  last_edited_at: z.iso.datetime().optional(),
1385
1584
  last_security_scan_at: z.iso.datetime().optional(),
1386
- matched_reason: V1WorkspaceSecurityReasonSchema.optional(),
1585
+ matched_reason: V1WorkspaceInsightsReasonSchema.optional(),
1387
1586
  message_count: z.number(),
1388
1587
  name: z.string().optional(),
1389
1588
  og_image_url: z.string().optional(),
1390
- owner: V1WorkspaceSecurityOwnerSchema.optional(),
1589
+ owner: V1WorkspaceInsightsOwnerSchema.optional(),
1391
1590
  publish_visibility: z.string().optional(),
1392
1591
  review_priority: z.string().optional(),
1393
- review_priority_explanation: z.array(V1WorkspaceSecurityReasonSchema).nullable(),
1394
- signals: V1WorkspaceSecuritySignalsSchema,
1592
+ review_priority_explanation: z.array(V1WorkspaceInsightsReasonSchema).nullable(),
1593
+ signals: V1WorkspaceInsightsSignalsSchema,
1395
1594
  url: z.string().optional(),
1396
1595
  visibility: z.string().optional(),
1397
1596
  visitors_24h: z.number(),
@@ -1399,32 +1598,48 @@ export const V1WorkspaceSecurityProjectSchema = z.object({
1399
1598
  visitors_7d: z.number()
1400
1599
  });
1401
1600
 
1402
- export const V1WorkspaceSecurityProjectsBodySchema = z.object({
1403
- activity_as_of: V1WorkspaceSecurityActivityFreshnessSchema.optional(),
1404
- applied_finding: V1WorkspaceSecurityFindingSchema.optional(),
1601
+ export const V1WorkspaceInsightsProjectsBodySchema = z.object({
1602
+ activity_as_of: V1WorkspaceInsightsActivityFreshnessSchema.optional(),
1603
+ applied_finding: V1WorkspaceInsightsFindingSchema.optional(),
1405
1604
  as_of: z.iso.datetime().optional(),
1406
- data: z.array(V1WorkspaceSecurityProjectSchema).nullable(),
1605
+ data: z.array(V1WorkspaceInsightsProjectSchema).nullable(),
1407
1606
  pagination: PaginationSchema,
1408
1607
  total: z.number()
1409
1608
  });
1410
1609
 
1411
- export const V1WorkspaceSecurityStatSchema = z.object({
1610
+ export const V1WorkspaceInsightsStatSchema = z.object({
1412
1611
  delta_30d: z.number(),
1413
1612
  delta_window: z.string(),
1414
1613
  value: z.number()
1415
1614
  });
1416
1615
 
1417
- export const V1WorkspaceSecuritySummarySchema = z.object({
1418
- externally_published: V1WorkspaceSecurityStatSchema,
1419
- risk: V1WorkspaceSecurityReviewPrioritySchema,
1420
- total_projects: V1WorkspaceSecurityStatSchema,
1421
- workspace_members: V1WorkspaceSecurityStatSchema
1616
+ export const V1WorkspaceInsightsSummarySchema = z.object({
1617
+ externally_published: V1WorkspaceInsightsStatSchema,
1618
+ risk: V1WorkspaceInsightsReviewPrioritySchema,
1619
+ total_projects: V1WorkspaceInsightsStatSchema,
1620
+ workspace_members: V1WorkspaceInsightsStatSchema
1422
1621
  });
1423
1622
 
1424
- export const V1WorkspaceSecurityDashboardBodySchema = z.object({
1623
+ export const V1WorkspaceInsightsBodySchema = z.object({
1425
1624
  as_of: z.iso.datetime().optional(),
1426
- findings: z.array(V1WorkspaceSecurityFindingSchema).nullable(),
1427
- summary: V1WorkspaceSecuritySummarySchema
1625
+ findings: z.array(V1WorkspaceInsightsFindingSchema).nullable(),
1626
+ summary: V1WorkspaceInsightsSummarySchema
1627
+ });
1628
+
1629
+ export const V1WorkspaceMemberSchema = z.object({
1630
+ display_name: z.string().optional(),
1631
+ email: z.string().optional(),
1632
+ invited_at: z.iso.datetime().optional(),
1633
+ joined_at: z.iso.datetime().optional(),
1634
+ monthly_credit_limit: z.number().optional(),
1635
+ role: z.string(),
1636
+ user_id: z.string(),
1637
+ workspace_id: z.string()
1638
+ });
1639
+
1640
+ export const CursorListResponseV1WorkspaceMemberSchema = z.object({
1641
+ data: z.array(V1WorkspaceMemberSchema).nullable(),
1642
+ pagination: PaginationSchema
1428
1643
  });
1429
1644
 
1430
1645
  export const V1WorkspaceSettingsBodySchema = z.object({
@@ -1476,6 +1691,12 @@ export const V1WorkspaceUsageBreakdownBodySchema = z.object({
1476
1691
  pagination: PaginationSchema
1477
1692
  });
1478
1693
 
1694
+ export const V1WorkspaceUsageConnectorBreakdownSchema = z.object({
1695
+ credits: z.number(),
1696
+ key: z.string(),
1697
+ label: z.string()
1698
+ });
1699
+
1479
1700
  export const V1WorkspaceUsageDatabaseBreakdownSchema = z.object({
1480
1701
  credits: z.number(),
1481
1702
  key: z.enum(['database_server', 'database_storage']),
@@ -1488,6 +1709,36 @@ export const V1WorkspaceUsageGatewayModelSchema = z.object({
1488
1709
  provider: z.string()
1489
1710
  });
1490
1711
 
1712
+ export const V1BillingUsageRowSchema = z.object({
1713
+ build: z.number(),
1714
+ connectors: z.number(),
1715
+ connectors_breakdown: z.array(V1WorkspaceUsageConnectorBreakdownSchema).nullish(),
1716
+ database: z.number(),
1717
+ database_breakdown: z.array(V1WorkspaceUsageDatabaseBreakdownSchema).nullish(),
1718
+ display_name: z.string().optional(),
1719
+ email: z.string().optional(),
1720
+ functions: z.number(),
1721
+ gateway: z.number(),
1722
+ gateway_models: z.array(V1WorkspaceUsageGatewayModelSchema).nullish(),
1723
+ network: z.number(),
1724
+ period_end: z.string().optional(),
1725
+ period_start: z.string().optional(),
1726
+ project_id: z.string().optional(),
1727
+ realtime: z.number(),
1728
+ run: z.number(),
1729
+ storage: z.number(),
1730
+ total: z.number(),
1731
+ user_id: z.string().optional()
1732
+ });
1733
+
1734
+ export const V1BillingUsageBodySchema = z.object({
1735
+ data: z.array(V1BillingUsageRowSchema).nullable(),
1736
+ entity_count: z.number().optional(),
1737
+ pagination: PaginationSchema,
1738
+ period: V1BillingUsagePeriodSchema,
1739
+ workspace_total: z.number()
1740
+ });
1741
+
1491
1742
  export const V1WorkspaceUsageMeBodySchema = z.object({
1492
1743
  credits_used: z.number(),
1493
1744
  monthly_credit_limit: z.number().optional()
@@ -1495,6 +1746,7 @@ export const V1WorkspaceUsageMeBodySchema = z.object({
1495
1746
 
1496
1747
  export const V1WorkspaceUsageProjectRowSchema = z.object({
1497
1748
  build: z.number(),
1749
+ connectors: z.number(),
1498
1750
  database: z.number(),
1499
1751
  functions: z.number(),
1500
1752
  gateway: z.number(),
@@ -1516,6 +1768,8 @@ export const V1WorkspaceUsageProjectsBodySchema = z.object({
1516
1768
 
1517
1769
  export const V1WorkspaceUsageTimeseriesBucketSchema = z.object({
1518
1770
  build: z.number(),
1771
+ connectors: z.number(),
1772
+ connectors_breakdown: z.array(V1WorkspaceUsageConnectorBreakdownSchema).nullable(),
1519
1773
  database: z.number(),
1520
1774
  database_breakdown: z.array(V1WorkspaceUsageDatabaseBreakdownSchema).nullable(),
1521
1775
  functions: z.number(),
@@ -1569,3 +1823,7 @@ export const AddProjectsToFolderResultSchema = z.object({
1569
1823
  total_requested: z.number(),
1570
1824
  visibility_updated: z.array(VisibilityChangeInfoSchema).nullable()
1571
1825
  });
1826
+
1827
+ export const WorkspaceAnalyticsResponseSchema = z.object({
1828
+ timeSeries: TimeSeriesGroupSchema
1829
+ });