samva 0.2.0 → 0.4.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.
Files changed (51) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.md +14 -3
  3. package/dist/client/sdk.gen.d.ts +321 -129
  4. package/dist/client/types.gen.d.ts +1818 -777
  5. package/dist/{client-BqkU-sFv.js → client-BmZK_uCt.js} +2699 -1839
  6. package/dist/client-attribution-BslSOa_8.js +9 -0
  7. package/dist/client-attribution.d.ts +2 -0
  8. package/dist/effect/api-keys.d.ts +51 -51
  9. package/dist/effect/api-keys.js +1 -1
  10. package/dist/effect/campaigns.d.ts +320 -1005
  11. package/dist/effect/campaigns.js +1 -1
  12. package/dist/effect/categories.d.ts +6 -6
  13. package/dist/effect/client.js +1 -1
  14. package/dist/effect/contacts.d.ts +292 -314
  15. package/dist/effect/contacts.js +1 -1
  16. package/dist/effect/conversations.d.ts +305 -437
  17. package/dist/effect/conversations.js +1 -1
  18. package/dist/effect/design.d.ts +74 -74
  19. package/dist/effect/design.js +1 -1
  20. package/dist/effect/email.d.ts +233 -265
  21. package/dist/effect/email.js +2 -2
  22. package/dist/effect/generated.d.ts +13410 -14526
  23. package/dist/effect/index.d.ts +1 -0
  24. package/dist/effect/index.js +3 -2
  25. package/dist/effect/internal/client.d.ts +1 -1
  26. package/dist/effect/internal/operation.d.ts +32 -129
  27. package/dist/effect/media.d.ts +80 -0
  28. package/dist/effect/media.js +19 -0
  29. package/dist/effect/messages.d.ts +90 -307
  30. package/dist/effect/messages.js +1 -1
  31. package/dist/effect/operations.d.ts +17 -17
  32. package/dist/effect/operations.js +1 -1
  33. package/dist/effect/organizations.d.ts +162 -180
  34. package/dist/effect/organizations.js +1 -1
  35. package/dist/effect/runtime.d.ts +0 -2
  36. package/dist/effect/scheduled-messages.d.ts +242 -639
  37. package/dist/effect/scheduled-messages.js +1 -1
  38. package/dist/effect/templates.d.ts +1376 -2033
  39. package/dist/effect/templates.js +40 -30
  40. package/dist/effect/webhooks.d.ts +53 -54
  41. package/dist/effect/webhooks.js +2 -2
  42. package/dist/index.js +1 -1
  43. package/dist/{normalize-LkWl4HUF.js → normalize-BiIJnycv.js} +6 -15
  44. package/dist/normalize.d.ts +3 -33
  45. package/dist/{operation-Ccqh_yxb.js → operation-B1knNlxk.js} +83 -38
  46. package/dist/promises/index.d.ts +13 -21
  47. package/dist/promises/index.js +1 -1
  48. package/dist/promises/types.gen.d.ts +1 -1
  49. package/dist/{promises-Dgv8UmCC.js → promises-n1opem5V.js} +572 -184
  50. package/dist/service-map.d.ts +96 -44
  51. package/package.json +23 -19
@@ -9,7 +9,7 @@ export type MessageContact = {
9
9
  displayName: string | null;
10
10
  type: string;
11
11
  identities: Array<{
12
- channel: "sms" | "whatsapp" | "email";
12
+ channel: "email";
13
13
  identifier: string;
14
14
  verified: boolean;
15
15
  }>;
@@ -26,7 +26,7 @@ export type Message = {
26
26
  actorMetadata: {
27
27
  [key: string]: JsonValue;
28
28
  } | null;
29
- channel: "sms" | "whatsapp" | "email";
29
+ channel: "email";
30
30
  direction: "outbound" | "inbound";
31
31
  content: JsonValue;
32
32
  metadata: {
@@ -67,7 +67,7 @@ export type Message = {
67
67
  id: string;
68
68
  messageId: string;
69
69
  recipientId: string | null;
70
- channel: "sms" | "whatsapp" | "email";
70
+ channel: "email";
71
71
  status: "pending" | "scheduled" | "queued" | "processing" | "sent" | "delivered" | "read" | "failed" | "bounced" | "complained";
72
72
  attemptCount: number;
73
73
  maxAttempts: number;
@@ -124,48 +124,6 @@ export type Message = {
124
124
  createdAt: string;
125
125
  updatedAt: string;
126
126
  }>;
127
- smsDeliveryDetails: Array<{
128
- deliveryId: string;
129
- fromNumber: string;
130
- toNumber: string;
131
- segmentCount: number;
132
- encoding: string;
133
- dltTemplateId: string | null;
134
- dltEntityId: string | null;
135
- dltContentId: string | null;
136
- carrier: string | null;
137
- numSegmentsReported: number | null;
138
- createdAt: string;
139
- updatedAt: string;
140
- }>;
141
- whatsappDeliveryDetails: Array<{
142
- deliveryId: string;
143
- fromNumber: string;
144
- toNumber: string;
145
- messageType: "text" | "image" | "video" | "audio" | "document" | "location" | "contacts" | "template" | "interactive" | "sticker" | "reaction" | "order" | "button" | "system" | "unsupported";
146
- templateName: string | null;
147
- templateLanguage: string | null;
148
- templateCategory: string | null;
149
- templateParams: JsonObject | null;
150
- mediaUrl: string | null;
151
- mediaType: string | null;
152
- mediaS3Key: string | null;
153
- interactiveType: string | null;
154
- contextMessageId: string | null;
155
- conversationType: "marketing" | "utility" | "authentication" | "service" | null;
156
- serviceWindowId: string | null;
157
- freeEntryPointId: string | null;
158
- isBillable: boolean;
159
- pricing: {
160
- messageCost: string;
161
- reason: string;
162
- sentInServiceWindow: boolean;
163
- sentInFreeEntryPoint: boolean;
164
- } | null;
165
- recipientId: string | null;
166
- createdAt: string;
167
- updatedAt: string;
168
- }>;
169
127
  };
170
128
  export type PaginationMeta = {
171
129
  page: number;
@@ -217,13 +175,17 @@ export type EmailSender = {
217
175
  email: string;
218
176
  name?: string | null | undefined;
219
177
  } | null;
220
- export type EmailAttachments = Array<{
178
+ export type MediaId = string;
179
+ export type EmailAttachment = {
221
180
  filename: string;
222
181
  content?: string | null | undefined;
223
- url?: string | null | undefined;
182
+ mediaId?: MediaId | null | undefined;
224
183
  contentType: string;
225
184
  size: number;
226
- }> | null;
185
+ };
186
+ export type EmailAttachments = Array<EmailAttachment> | null;
187
+ export type TemplatePublicationId = string;
188
+ export type TemplateInputContractId = string;
227
189
  export type TemplateId = string;
228
190
  export type TemplateData = JsonObject | null;
229
191
  export type ReplyToAddresses = Array<string> | null | null;
@@ -249,6 +211,8 @@ export type EmailContent = {
249
211
  html?: string | null | undefined;
250
212
  text?: string | null | undefined;
251
213
  attachments?: EmailAttachments | undefined;
214
+ publicationId?: TemplatePublicationId | undefined;
215
+ inputContractId?: TemplateInputContractId | undefined;
252
216
  templateId?: TemplateId | null | undefined;
253
217
  templateSlug?: string | null | undefined;
254
218
  templateData?: TemplateData | undefined;
@@ -268,60 +232,7 @@ export type EmailSendMessagePayload = {
268
232
  from?: EmailSender | undefined;
269
233
  email: EmailContent;
270
234
  };
271
- export type SmsRecipient = {
272
- contactId: ContactId;
273
- } | {
274
- phone: string;
275
- name?: string | null | undefined;
276
- displayName?: string | null | null | undefined;
277
- };
278
- export type SmsRecipients = [SmsRecipient];
279
- export type SmsTemplateData = JsonObject | null;
280
- export type SmsContent = {
281
- text?: string | null | undefined;
282
- templateId?: TemplateId | null | undefined;
283
- templateSlug?: string | null | undefined;
284
- templateData?: SmsTemplateData | undefined;
285
- };
286
- /**
287
- * SMS sending is coming soon. The payload is accepted by the contract today and the endpoint answers 403 until the channel launches for your organization.
288
- */
289
- export type SmsSendMessagePayload = {
290
- conversationId?: ConversationId | null | null | undefined;
291
- metadata?: MessageMetadata | undefined;
292
- channel: "sms";
293
- to: SmsRecipients;
294
- sms: SmsContent;
295
- };
296
- export type WhatsAppRecipient = {
297
- contactId: ContactId;
298
- } | {
299
- whatsapp: string;
300
- name?: string | null | undefined;
301
- displayName?: string | null | null | undefined;
302
- };
303
- export type WhatsAppRecipients = [WhatsAppRecipient];
304
- export type WhatsAppTemplateData = JsonObject | null;
305
- export type WhatsAppContent = {
306
- text?: string | null | undefined;
307
- mediaUrl?: string | null | undefined;
308
- mediaType?: "image" | "video" | "audio" | "document" | null | undefined;
309
- templateId?: TemplateId | null | undefined;
310
- templateSlug?: string | null | undefined;
311
- templateCategory?: "marketing" | "utility" | "authentication" | null | undefined;
312
- templateData?: WhatsAppTemplateData | undefined;
313
- };
314
- /**
315
- * WhatsApp sending is coming soon. The payload is accepted by the contract today and the endpoint answers 403 until the channel launches for your organization.
316
- */
317
- export type WhatsAppSendMessagePayload = {
318
- conversationId?: ConversationId | null | null | undefined;
319
- metadata?: MessageMetadata | undefined;
320
- channel: "whatsapp";
321
- to: WhatsAppRecipients;
322
- whatsapp: WhatsAppContent;
323
- };
324
- export type SendMessagePayload = EmailSendMessagePayload | SmsSendMessagePayload | WhatsAppSendMessagePayload;
235
+ export type SendMessagePayload = EmailSendMessagePayload;
325
236
  export type ConflictError = {
326
237
  _tag: "ConflictError";
327
238
  operation: string;
@@ -412,6 +323,8 @@ export type EmailDispatchContent = {
412
323
  html?: string | null | undefined;
413
324
  text?: string | null | undefined;
414
325
  attachments?: EmailAttachments | undefined;
326
+ publicationId?: TemplatePublicationId | undefined;
327
+ inputContractId?: TemplateInputContractId | undefined;
415
328
  templateId?: TemplateId | null | undefined;
416
329
  templateSlug?: string | null | undefined;
417
330
  templateData?: TemplateData | undefined;
@@ -431,42 +344,7 @@ export type EmailDispatchSendMessagePayload = {
431
344
  from?: EmailSender | undefined;
432
345
  email: EmailDispatchContent;
433
346
  };
434
- export type SmsDispatchContent = {
435
- text?: string | null | undefined;
436
- templateId?: TemplateId | null | undefined;
437
- templateSlug?: string | null | undefined;
438
- templateData?: SmsTemplateData | undefined;
439
- };
440
- /**
441
- * SMS sending is coming soon. The payload is accepted by the contract today and the endpoint answers 403 until the channel launches for your organization.
442
- */
443
- export type SmsDispatchSendMessagePayload = {
444
- conversationId?: ConversationId | null | null | undefined;
445
- metadata?: MessageMetadata | undefined;
446
- channel: "sms";
447
- to: SmsRecipients;
448
- sms: SmsDispatchContent;
449
- };
450
- export type WhatsAppDispatchContent = {
451
- text?: string | null | undefined;
452
- mediaUrl?: string | null | undefined;
453
- mediaType?: "image" | "video" | "audio" | "document" | null | undefined;
454
- templateId?: TemplateId | null | undefined;
455
- templateSlug?: string | null | undefined;
456
- templateCategory?: "marketing" | "utility" | "authentication" | null | undefined;
457
- templateData?: WhatsAppTemplateData | undefined;
458
- };
459
- /**
460
- * WhatsApp sending is coming soon. The payload is accepted by the contract today and the endpoint answers 403 until the channel launches for your organization.
461
- */
462
- export type WhatsAppDispatchSendMessagePayload = {
463
- conversationId?: ConversationId | null | null | undefined;
464
- metadata?: MessageMetadata | undefined;
465
- channel: "whatsapp";
466
- to: WhatsAppRecipients;
467
- whatsapp: WhatsAppDispatchContent;
468
- };
469
- export type DispatchSendMessagePayload = EmailDispatchSendMessagePayload | SmsDispatchSendMessagePayload | WhatsAppDispatchSendMessagePayload;
347
+ export type DispatchSendMessagePayload = EmailDispatchSendMessagePayload;
470
348
  export type ScheduledMessageId = string;
471
349
  export type ScheduledMessage = {
472
350
  id: ScheduledMessageId;
@@ -479,7 +357,7 @@ export type ScheduledMessage = {
479
357
  referenceId: string | null;
480
358
  failureReason: string | null;
481
359
  attempts: number;
482
- createdBy: string;
360
+ createdBy: string | null;
483
361
  actorEmail: string;
484
362
  memberRole: string;
485
363
  createdAt: string;
@@ -495,19 +373,7 @@ export type EmailCampaignContentInput = {
495
373
  conversationId?: CampaignConversationRef | undefined;
496
374
  metadata?: CampaignContentMetadata | undefined;
497
375
  };
498
- export type SmsCampaignContentInput = {
499
- channel: "sms";
500
- sms: SmsDispatchContent;
501
- conversationId?: CampaignConversationRef | undefined;
502
- metadata?: CampaignContentMetadata | undefined;
503
- };
504
- export type WhatsAppCampaignContentInput = {
505
- channel: "whatsapp";
506
- whatsapp: WhatsAppDispatchContent;
507
- conversationId?: CampaignConversationRef | undefined;
508
- metadata?: CampaignContentMetadata | undefined;
509
- };
510
- export type CampaignContentInput = EmailCampaignContentInput | SmsCampaignContentInput | WhatsAppCampaignContentInput;
376
+ export type CampaignContentInput = EmailCampaignContentInput;
511
377
  export type ContactGroupId = string;
512
378
  export type CampaignAudience = {
513
379
  includeTags?: Array<string> | null | undefined;
@@ -526,19 +392,7 @@ export type EmailCampaignContent = {
526
392
  conversationId?: CampaignConversationRef | undefined;
527
393
  metadata?: CampaignContentMetadata | undefined;
528
394
  };
529
- export type SmsCampaignContent = {
530
- channel: "sms";
531
- sms: SmsContent;
532
- conversationId?: CampaignConversationRef | undefined;
533
- metadata?: CampaignContentMetadata | undefined;
534
- };
535
- export type WhatsAppCampaignContent = {
536
- channel: "whatsapp";
537
- whatsapp: WhatsAppContent;
538
- conversationId?: CampaignConversationRef | undefined;
539
- metadata?: CampaignContentMetadata | undefined;
540
- };
541
- export type CampaignContent = EmailCampaignContent | SmsCampaignContent | WhatsAppCampaignContent;
395
+ export type CampaignContent = EmailCampaignContent;
542
396
  export type CampaignDefinitionSummary = {
543
397
  state: "editable" | "frozen" | "archived";
544
398
  frozenAt: string | null;
@@ -557,13 +411,13 @@ export type CampaignLatestRun = {
557
411
  export type Campaign = {
558
412
  id: CampaignId;
559
413
  name: string;
560
- channel: "sms" | "whatsapp" | "email";
414
+ channel: "email";
561
415
  content: CampaignContent;
562
416
  audience: CampaignAudience;
563
417
  policy: CampaignPolicy;
564
418
  definition: CampaignDefinitionSummary;
565
419
  latestRun: CampaignLatestRun | null;
566
- createdBy: string;
420
+ createdBy: string | null;
567
421
  actorEmail: string;
568
422
  memberRole: string;
569
423
  createdAt: string;
@@ -586,7 +440,7 @@ export type CampaignRun = {
586
440
  skippedCount: number;
587
441
  failureReason: string | null;
588
442
  lastContactId: string | null;
589
- createdBy: string;
443
+ createdBy: string | null;
590
444
  actorEmail: string;
591
445
  memberRole: string;
592
446
  createdAt: string;
@@ -616,14 +470,14 @@ export type DeliverabilityFacts = {
616
470
  complaintRate: number;
617
471
  sendingStatus: "enabled" | "disabled" | "reinstated" | "unknown";
618
472
  };
619
- export type EmailDomain = {
473
+ export type EmailDomainDetailed = {
620
474
  id: EmailDomainId;
621
475
  domain: string;
622
476
  phase: "dns-setup" | "provider-setup" | "provider-verification" | "ready" | "degraded" | "failed";
623
477
  dkimSelector?: string | null | undefined;
624
478
  dkimPublicKey?: string | null | undefined;
625
479
  dnsRecords: Array<{
626
- type: string;
480
+ type: "A" | "AAAA" | "CNAME" | "MX" | "NS" | "SOA" | "PTR" | "SRV" | "TXT" | "CAA";
627
481
  name: string;
628
482
  value: string;
629
483
  ttl?: string | null | undefined;
@@ -743,8 +597,66 @@ export type ForwardingConditions = {
743
597
  hasAttachments?: boolean | null | undefined;
744
598
  };
745
599
  export type EmailForwardingRuleId = string;
600
+ export type CreateMediaPayload = {
601
+ filename: string;
602
+ contentType: string;
603
+ sizeBytes: number;
604
+ purpose: "attachment" | "avatar";
605
+ checksumSha256?: string | null | undefined;
606
+ };
746
607
  export type OrganizationId = string;
747
- export type Arrays = Array<"sms" | "whatsapp" | "email">;
608
+ export type MediaUploadInstruction = {
609
+ url: string;
610
+ method: "PUT";
611
+ headers: {
612
+ [key: string]: string;
613
+ };
614
+ expiresAt: string;
615
+ };
616
+ export type CreatedMedia = {
617
+ id: MediaId;
618
+ organizationId: OrganizationId;
619
+ status: "pending" | "uploading" | "processing" | "ready" | "failed" | "deleted";
620
+ filename: string;
621
+ contentType: string;
622
+ sizeBytes: number;
623
+ width: number | null;
624
+ height: number | null;
625
+ durationMs: number | null;
626
+ purpose: "attachment" | "avatar";
627
+ checksumSha256: string | null;
628
+ expiresAt: string | null;
629
+ createdAt: string;
630
+ confirmedAt: string | null;
631
+ upload: MediaUploadInstruction;
632
+ };
633
+ export type Media = {
634
+ id: MediaId;
635
+ organizationId: OrganizationId;
636
+ status: "pending" | "uploading" | "processing" | "ready" | "failed" | "deleted";
637
+ filename: string;
638
+ contentType: string;
639
+ sizeBytes: number;
640
+ width: number | null;
641
+ height: number | null;
642
+ durationMs: number | null;
643
+ purpose: "attachment" | "avatar";
644
+ checksumSha256: string | null;
645
+ expiresAt: string | null;
646
+ createdAt: string;
647
+ confirmedAt: string | null;
648
+ };
649
+ export type CompletedMedia = {
650
+ media: Media;
651
+ downloadUrl: string;
652
+ };
653
+ export type SuccessResponse = {
654
+ success: boolean;
655
+ };
656
+ export type MediaDownloadUrl = {
657
+ url: string;
658
+ expiresAt: string;
659
+ };
748
660
  export type UnknownRecord = {
749
661
  [key: string]: JsonValue;
750
662
  };
@@ -753,7 +665,6 @@ export type ConversationMetadata = {
753
665
  tags?: Array<string> | null | undefined;
754
666
  customFields?: UnknownRecord | null | undefined;
755
667
  };
756
- export type Union = ConversationMetadata | null;
757
668
  export type ActorId = string;
758
669
  export type ActorTracking = {
759
670
  allActorIds: Array<ActorId>;
@@ -791,9 +702,6 @@ export type ConversationContext = {
791
702
  workflowData?: UnknownRecord | null | undefined;
792
703
  } | null | undefined;
793
704
  };
794
- export type Union1 = ConversationContext | null;
795
- export type Arrays1 = Array<string>;
796
- export type Arrays2 = Array<string>;
797
705
  export type Conversation = {
798
706
  id: ConversationId;
799
707
  organizationId: OrganizationId;
@@ -801,19 +709,19 @@ export type Conversation = {
801
709
  description: string | null;
802
710
  externalId: string | null;
803
711
  parentConversationId: ConversationId | null;
804
- channels: Arrays;
805
- primaryChannel: "sms" | "whatsapp" | "email";
712
+ channels: Array<"email">;
713
+ primaryChannel: "email";
806
714
  status: "active" | "waiting" | "resolved" | "escalated" | "archived";
807
715
  statusReason: string | null;
808
716
  priority: number;
809
717
  urgency: "low" | "medium" | "high" | "critical";
810
718
  complexity: "simple" | "moderate" | "complex";
811
- metadata: Union;
719
+ metadata: ConversationMetadata | null;
812
720
  actorTracking: ActorTracking;
813
721
  metrics: ConversationMetrics;
814
- context: Union1;
815
- tags: Arrays1;
816
- categories: Arrays2;
722
+ context: ConversationContext | null;
723
+ tags: Array<string>;
724
+ categories: Array<string>;
817
725
  isTest: boolean;
818
726
  isInternal: boolean;
819
727
  isPrivate: boolean;
@@ -841,19 +749,19 @@ export type ConversationDetail = {
841
749
  description: string | null;
842
750
  externalId: string | null;
843
751
  parentConversationId: ConversationId | null;
844
- channels: Arrays;
845
- primaryChannel: "sms" | "whatsapp" | "email";
752
+ channels: Array<"email">;
753
+ primaryChannel: "email";
846
754
  status: "active" | "waiting" | "resolved" | "escalated" | "archived";
847
755
  statusReason: string | null;
848
756
  priority: number;
849
757
  urgency: "low" | "medium" | "high" | "critical";
850
758
  complexity: "simple" | "moderate" | "complex";
851
- metadata: Union;
759
+ metadata: ConversationMetadata | null;
852
760
  actorTracking: ActorTracking;
853
761
  metrics: ConversationMetrics;
854
- context: Union1;
855
- tags: Arrays1;
856
- categories: Arrays2;
762
+ context: ConversationContext | null;
763
+ tags: Array<string>;
764
+ categories: Array<string>;
857
765
  isTest: boolean;
858
766
  isInternal: boolean;
859
767
  isPrivate: boolean;
@@ -874,11 +782,10 @@ export type ConversationContacts = {
874
782
  contactIds: [ContactId, ContactId];
875
783
  };
876
784
  export type ContactIdentity = {
877
- channel: "sms" | "whatsapp" | "email";
785
+ channel: "email";
878
786
  identifier: string;
879
787
  verified: boolean;
880
788
  };
881
- export type Arrays3 = Array<ContactIdentity>;
882
789
  export type HumanProfile = {
883
790
  firstName?: string | null | undefined;
884
791
  lastName?: string | null | undefined;
@@ -896,9 +803,6 @@ export type HumanProfile = {
896
803
  source?: "api" | "import" | "manual" | "form" | null | undefined;
897
804
  sourceDetails?: UnknownRecord | null | undefined;
898
805
  };
899
- export type Union2 = HumanProfile | null;
900
- export type Arrays4 = Array<string>;
901
- export type Arrays5 = Array<string>;
902
806
  export type ContactAccessConfig = {
903
807
  paymentRequired?: {
904
808
  amount: number;
@@ -923,15 +827,12 @@ export type ContactAccessConfig = {
923
827
  outOfOfficeMessage?: string | null | undefined;
924
828
  } | null | undefined;
925
829
  };
926
- export type Union3 = ContactAccessConfig | null;
927
830
  export type ContactPreferences = {
928
- preferredChannels?: Array<"sms" | "whatsapp" | "email"> | null | undefined;
831
+ preferredChannels?: Array<"email"> | null | undefined;
929
832
  language?: string | null | undefined;
930
833
  timezone?: string | null | undefined;
931
834
  notifications?: {
932
835
  email?: boolean | null | undefined;
933
- sms?: boolean | null | undefined;
934
- whatsapp?: boolean | null | undefined;
935
836
  quiet_hours?: {
936
837
  start: string;
937
838
  end: string;
@@ -943,8 +844,6 @@ export type ContactPreferences = {
943
844
  maxMessageLength?: number | null | undefined;
944
845
  } | null | undefined;
945
846
  };
946
- export type Union4 = ContactPreferences | null;
947
- export type Union5 = JsonObject | null;
948
847
  export type ContactActivitySummary = {
949
848
  totalInteractions: number;
950
849
  lastActiveAt: string | null;
@@ -956,17 +855,17 @@ export type ContactListItem = {
956
855
  name: string;
957
856
  displayName: string | null;
958
857
  avatar: string | null;
959
- identities: Arrays3;
960
- humanProfile: Union2;
961
- capabilities: Arrays4;
962
- tags: Arrays5;
858
+ identities: Array<ContactIdentity>;
859
+ humanProfile: HumanProfile | null;
860
+ capabilities: Array<string>;
861
+ tags: Array<string>;
963
862
  accessLevel: "public" | "authenticated" | "vip" | "internal";
964
- accessConfig: Union3;
965
- preferences: Union4;
863
+ accessConfig: ContactAccessConfig | null;
864
+ preferences: ContactPreferences | null;
966
865
  status: "active" | "paused" | "blocked" | "archived";
967
866
  statusReason: string | null;
968
867
  externalId: string | null;
969
- metadata: Union5;
868
+ metadata: JsonObject | null;
970
869
  createdAt: string;
971
870
  updatedAt: string;
972
871
  createdBy: ContactId | null;
@@ -980,17 +879,17 @@ export type Contact = {
980
879
  name: string;
981
880
  displayName: string | null;
982
881
  avatar: string | null;
983
- identities: Arrays3;
984
- humanProfile: Union2;
985
- capabilities: Arrays4;
986
- tags: Arrays5;
882
+ identities: Array<ContactIdentity>;
883
+ humanProfile: HumanProfile | null;
884
+ capabilities: Array<string>;
885
+ tags: Array<string>;
987
886
  accessLevel: "public" | "authenticated" | "vip" | "internal";
988
- accessConfig: Union3;
989
- preferences: Union4;
887
+ accessConfig: ContactAccessConfig | null;
888
+ preferences: ContactPreferences | null;
990
889
  status: "active" | "paused" | "blocked" | "archived";
991
890
  statusReason: string | null;
992
891
  externalId: string | null;
993
- metadata: Union5;
892
+ metadata: JsonObject | null;
994
893
  createdAt: string;
995
894
  updatedAt: string;
996
895
  createdBy: ContactId | null;
@@ -1000,35 +899,14 @@ export type BulkUpdateResult = {
1000
899
  updated: number;
1001
900
  failed: number;
1002
901
  };
902
+ export type TemplateProjectId = string;
1003
903
  export type TemplateFamilyId = string;
1004
904
  export type TemplateFromDefault = {
1005
905
  email: string;
1006
906
  name?: string | null | undefined;
1007
907
  };
1008
- export type TemplateVariable = {
1009
- name: string;
1010
- type: "string" | "number" | "boolean" | "date" | "array" | "object";
1011
- required: boolean;
1012
- default?: JsonValue | null | undefined;
1013
- description?: string | null | undefined;
1014
- validation?: {
1015
- pattern?: string | null | undefined;
1016
- min?: number | null | undefined;
1017
- max?: number | null | undefined;
1018
- minLength?: number | null | undefined;
1019
- maxLength?: number | null | undefined;
1020
- enum?: Array<string> | null | undefined;
1021
- format?: "email" | "url" | "date" | "date-time" | "uuid" | null | undefined;
1022
- } | null | undefined;
1023
- };
1024
908
  export type UserId = string;
1025
909
  export type TemplateCompliance = {
1026
- dltTemplateId?: string | null | undefined;
1027
- dltStatus?: "pending" | "approved" | "rejected" | "expired" | null | undefined;
1028
- dltApprovedAt?: string | null | undefined;
1029
- whatsappTemplateId?: string | null | undefined;
1030
- whatsappStatus?: "draft" | "pending" | "approved" | "published" | "rejected" | "archived" | null | undefined;
1031
- whatsappApprovedAt?: string | null | undefined;
1032
910
  metaStatus?: string | null | undefined;
1033
911
  submittedAt?: string | null | null | undefined;
1034
912
  qualityScore?: string | null | undefined;
@@ -1045,87 +923,23 @@ export type TemplateCompliance = {
1045
923
  notes?: string | null | undefined;
1046
924
  }> | null | undefined;
1047
925
  };
1048
- export type ThemeColors = {
1049
- [key: string]: string;
1050
- };
1051
- export type Design = {
1052
- theme?: {
1053
- colors?: ThemeColors | null | undefined;
1054
- colorsDark?: ThemeColors | null | undefined;
1055
- radiusPx?: {
1056
- [key: string]: number;
1057
- } | null | undefined;
1058
- fontFamilies?: {
1059
- [key: string]: {
1060
- source: "system" | "google" | "custom";
1061
- family: string;
1062
- fallback: string;
1063
- faces?: Array<{
1064
- weight: number;
1065
- style: "normal" | "italic";
1066
- src: string;
1067
- unicodeRange?: string | null | undefined;
1068
- }> | null | undefined;
1069
- };
1070
- } | null | undefined;
1071
- fontWeights?: {
1072
- [key: string]: number;
1073
- } | null | undefined;
1074
- text?: {
1075
- [key: string]: {
1076
- sizePx: number;
1077
- lineHeightPx: number;
1078
- };
1079
- } | null | undefined;
1080
- leading?: {
1081
- [key: string]: number;
1082
- } | null | undefined;
1083
- spacingPx?: number | null | undefined;
1084
- containerPx?: {
1085
- [key: string]: number;
1086
- } | null | undefined;
1087
- tracking?: {
1088
- [key: string]: number;
1089
- } | null | undefined;
1090
- } | null | undefined;
1091
- assets?: {
1092
- logoUrl?: string | null | undefined;
1093
- logoDarkUrl?: string | null | undefined;
1094
- iconUrl?: string | null | undefined;
1095
- } | null | undefined;
1096
- footer?: {
1097
- companyName?: string | null | undefined;
1098
- address?: {
1099
- street1: string;
1100
- street2?: string | null | undefined;
1101
- city: string;
1102
- region: string;
1103
- postalCode: string;
1104
- country: string;
1105
- } | null | undefined;
1106
- socialLinks?: Array<{
1107
- label: string;
1108
- url: string;
1109
- }> | null | undefined;
1110
- customHtml?: string | null | undefined;
1111
- } | null | undefined;
1112
- };
1113
926
  export type Template = {
1114
927
  id: TemplateId;
1115
928
  organizationId: OrganizationId;
929
+ projectId: TemplateProjectId;
930
+ entryPath: string;
1116
931
  name: string;
1117
932
  slug: string;
1118
933
  familyId: TemplateFamilyId | null;
1119
- channel: "sms" | "whatsapp" | "email";
1120
- origin: "dashboard" | "tsx";
934
+ channel: "email";
1121
935
  description: string | null;
1122
936
  category: string | null;
1123
- fromDefault?: TemplateFromDefault | null | undefined;
1124
- replyToDefault?: Array<string> | null | undefined;
937
+ fromDefault?: TemplateFromDefault | null | null | undefined;
938
+ replyToDefault?: Array<string> | null | null | undefined;
1125
939
  trackingDefault?: {
1126
940
  opens?: boolean | null | undefined;
1127
941
  clicks?: boolean | null | undefined;
1128
- } | null | undefined;
942
+ } | null | null | undefined;
1129
943
  email: {
1130
944
  subject: string;
1131
945
  preheader: string | null;
@@ -1133,75 +947,17 @@ export type Template = {
1133
947
  [key: string]: string;
1134
948
  } | null;
1135
949
  } | null;
1136
- sms: {
1137
- body: string;
1138
- encoding: string | null;
1139
- estimatedSegments: number | null;
1140
- category: "transactional" | "promotional" | "service_implicit" | null;
1141
- } | null;
1142
- whatsapp: {
1143
- name: string;
1144
- language: string;
1145
- category: "marketing" | "utility" | "authentication" | "service";
1146
- headerType: "text" | "image" | "video" | "document" | "none" | null;
1147
- headerMediaType: string | null;
1148
- headerContent: string | null;
1149
- bodyContent: string;
1150
- footerContent: string | null;
1151
- components: Array<{
1152
- type: "header" | "body" | "footer" | "button";
1153
- format?: "TEXT" | "IMAGE" | "VIDEO" | "DOCUMENT" | null | undefined;
1154
- text?: string | null | undefined;
1155
- example?: {
1156
- header_text?: Array<string> | null | undefined;
1157
- body_text?: Array<Array<string>> | null | undefined;
1158
- } | null | undefined;
1159
- buttons?: Array<{
1160
- type: "QUICK_REPLY" | "URL" | "PHONE_NUMBER" | "COPY_CODE";
1161
- text?: string | null | undefined;
1162
- url?: string | null | undefined;
1163
- phone_number?: string | null | undefined;
1164
- example?: string | null | undefined;
1165
- }> | null | undefined;
1166
- parameters?: Array<{
1167
- type: "text" | "currency" | "date_time" | "image" | "document" | "video";
1168
- text?: string | null | undefined;
1169
- currency?: {
1170
- fallback_value: string;
1171
- code: string;
1172
- amount_1000: number;
1173
- } | null | undefined;
1174
- date_time?: {
1175
- fallback_value: string;
1176
- } | null | undefined;
1177
- image?: {
1178
- link: string;
1179
- } | null | undefined;
1180
- document?: {
1181
- link: string;
1182
- filename?: string | null | undefined;
1183
- } | null | undefined;
1184
- video?: {
1185
- link: string;
1186
- } | null | undefined;
1187
- }> | null | undefined;
1188
- }> | null;
1189
- buttons: Array<{
1190
- [key: string]: JsonValue;
1191
- }> | null;
1192
- examples: {
1193
- [key: string]: JsonValue;
1194
- } | null;
950
+ publicationId: TemplatePublicationId | null;
951
+ inputContractId: TemplateInputContractId | null;
952
+ inputSchema: {
953
+ [key: string]: JsonValue;
1195
954
  } | null;
1196
- variableSchema: Array<TemplateVariable> | null;
1197
955
  compliance: TemplateCompliance | null;
1198
- designOverrides: Design | null;
1199
956
  usageCount: number;
1200
957
  lastUsedAt: string | null;
1201
958
  status: string;
1202
959
  isActive: boolean;
1203
960
  isDefault: boolean;
1204
- version: number;
1205
961
  publishedAt?: string | null | null | undefined;
1206
962
  publishedBy?: string | null | null | undefined;
1207
963
  createdAt: string;
@@ -1211,12 +967,10 @@ export type TemplateSummary = {
1211
967
  id: TemplateId;
1212
968
  name: string;
1213
969
  slug: string;
1214
- channel: "sms" | "whatsapp" | "email";
1215
- origin: "dashboard" | "tsx";
970
+ channel: "email";
1216
971
  description: string | null;
1217
972
  category: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null;
1218
973
  status: "draft" | "pending" | "approved" | "published" | "rejected" | "archived";
1219
- version: number;
1220
974
  usageCount: number;
1221
975
  lastUsedAt: string | null;
1222
976
  createdAt: string;
@@ -1230,11 +984,9 @@ export type TemplateFamily = {
1230
984
  id: TemplateId;
1231
985
  name: string;
1232
986
  slug: string;
1233
- channel: "sms" | "whatsapp" | "email";
1234
- variableSchema: Array<TemplateVariable> | null;
987
+ channel: "email";
1235
988
  status: "draft" | "pending" | "approved" | "published" | "rejected" | "archived";
1236
989
  isActive: boolean;
1237
- version: number;
1238
990
  createdAt: string;
1239
991
  updatedAt: string;
1240
992
  }>;
@@ -1244,106 +996,103 @@ export type TemplateFamily = {
1244
996
  export type TemplateFamilyName = {
1245
997
  name: string;
1246
998
  };
1247
- export type SuccessResponse = {
1248
- success: boolean;
1249
- };
1250
- export type TemplatePerformance = {
1251
- deliveryRate?: number | null | undefined;
1252
- openRate?: number | null | undefined;
1253
- clickRate?: number | null | undefined;
1254
- responseRate?: number | null | undefined;
1255
- conversionRate?: number | null | undefined;
1256
- averageSatisfaction?: number | null | undefined;
1257
- totalSent?: number | null | undefined;
1258
- totalDelivered?: number | null | undefined;
1259
- totalOpened?: number | null | undefined;
1260
- totalClicked?: number | null | undefined;
1261
- totalResponses?: number | null | undefined;
1262
- totalConversions?: number | null | undefined;
1263
- lastUsedAt?: string | null | undefined;
1264
- usageCount?: number | null | undefined;
1265
- };
1266
999
  export type CreateTemplatePayload = {
1267
1000
  name: string;
1001
+ projectName?: string | null | undefined;
1268
1002
  slug?: string | null | undefined;
1269
- origin?: "dashboard" | "tsx" | null | undefined;
1003
+ galleryTemplateId?: string | null | undefined;
1270
1004
  description?: string | null | null | undefined;
1271
1005
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | null | undefined;
1272
- source: string;
1273
- subject?: string | null | undefined;
1274
- headers?: {
1275
- [key: string]: string;
1276
- } | null | null | undefined;
1277
- variableSchema?: Array<TemplateVariable> | null | null | undefined;
1278
- compliance?: TemplateCompliance | null | null | undefined;
1279
- performance?: TemplatePerformance | null | null | undefined;
1280
- designOverrides?: Design | null | null | undefined;
1281
1006
  isActive?: boolean | null | undefined;
1282
- isDefault?: boolean | null | undefined;
1283
- version?: number | null | undefined;
1007
+ idempotencyKey: string;
1284
1008
  };
1285
1009
  export type UpdateTemplatePayload = {
1286
1010
  data: {
1287
1011
  name?: string | null | undefined;
1288
1012
  slug?: string | null | undefined;
1289
- origin?: "dashboard" | "tsx" | null | undefined;
1290
1013
  description?: string | null | null | undefined;
1291
1014
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | null | undefined;
1292
1015
  fromDefault?: TemplateFromDefault | null | null | undefined;
1293
1016
  replyToDefault?: Array<string> | null | null | undefined;
1294
- variableSchema?: Array<TemplateVariable> | null | null | undefined;
1295
- compliance?: TemplateCompliance | null | null | undefined;
1296
- performance?: TemplatePerformance | null | null | undefined;
1297
- designOverrides?: Design | null | null | undefined;
1298
1017
  isActive?: boolean | null | undefined;
1299
- isDefault?: boolean | null | undefined;
1300
- version?: number | null | undefined;
1301
1018
  };
1302
1019
  };
1303
- export type Objects1 = {
1304
- userId: UserId;
1305
- via: "api" | "mcp" | "agent";
1306
- };
1307
- export type Objects = {
1308
- templateId: TemplateId;
1309
- organizationId: OrganizationId;
1310
- channel: "sms" | "whatsapp" | "email";
1311
- source: string;
1312
- revision: string;
1313
- sourceDigest: string;
1314
- createdAt: string;
1315
- updatedAt: string;
1316
- createdBy: Objects1;
1317
- updatedBy: Objects1;
1020
+ export type ThemeColors = {
1021
+ [key: string]: string;
1318
1022
  };
1319
- export type Objects2 = {
1320
- revision: string;
1321
- variables?: {
1322
- [key: string]: JsonValue;
1023
+ export type Design = {
1024
+ theme?: {
1025
+ colors?: ThemeColors | null | undefined;
1026
+ colorsDark?: ThemeColors | null | undefined;
1027
+ radiusPx?: {
1028
+ [key: string]: number;
1029
+ } | null | undefined;
1030
+ fontFamilies?: {
1031
+ [key: string]: {
1032
+ source: "system" | "google" | "custom";
1033
+ family: string;
1034
+ fallback: string;
1035
+ faces?: Array<{
1036
+ weight: number;
1037
+ style: "normal" | "italic";
1038
+ src: string;
1039
+ unicodeRange?: string | null | undefined;
1040
+ }> | null | undefined;
1041
+ };
1042
+ } | null | undefined;
1043
+ fontWeights?: {
1044
+ [key: string]: number;
1045
+ } | null | undefined;
1046
+ text?: {
1047
+ [key: string]: {
1048
+ sizePx: number;
1049
+ lineHeightPx: number;
1050
+ };
1051
+ } | null | undefined;
1052
+ leading?: {
1053
+ [key: string]: number;
1054
+ } | null | undefined;
1055
+ spacingPx?: number | null | undefined;
1056
+ containerPx?: {
1057
+ [key: string]: number;
1058
+ } | null | undefined;
1059
+ tracking?: {
1060
+ [key: string]: number;
1061
+ } | null | undefined;
1323
1062
  } | null | undefined;
1324
- };
1325
- export type Objects3 = {
1326
- channel: "email" | "sms" | "whatsapp";
1327
- subject?: string | null | undefined;
1328
- html?: string | null | undefined;
1329
- text: string;
1330
- missingVariables: Array<string>;
1331
- };
1332
- export type TemplateSourceVersionId = string;
1333
- export type Objects4 = {
1334
- versionId: string;
1335
- };
1336
- export type DesignSettings = {
1337
- design: Design | null;
1338
- footerCompleteness: {
1339
- missingAddress: boolean;
1340
- };
1341
- };
1342
- export type CreateWebhookPayload = {
1063
+ assets?: {
1064
+ logoUrl?: string | null | undefined;
1065
+ logoDarkUrl?: string | null | undefined;
1066
+ iconUrl?: string | null | undefined;
1067
+ } | null | undefined;
1068
+ footer?: {
1069
+ companyName?: string | null | undefined;
1070
+ address?: {
1071
+ street1: string;
1072
+ street2?: string | null | undefined;
1073
+ city: string;
1074
+ region: string;
1075
+ postalCode: string;
1076
+ country: string;
1077
+ } | null | undefined;
1078
+ socialLinks?: Array<{
1079
+ label: string;
1080
+ url: string;
1081
+ }> | null | undefined;
1082
+ customHtml?: string | null | undefined;
1083
+ } | null | undefined;
1084
+ };
1085
+ export type DesignSettings = {
1086
+ design: Design | null;
1087
+ footerCompleteness: {
1088
+ missingAddress: boolean;
1089
+ };
1090
+ };
1091
+ export type CreateWebhookPayload = {
1343
1092
  name: string;
1344
1093
  url: string;
1345
1094
  eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated">;
1346
- channels?: Array<"sms" | "whatsapp" | "email"> | null | undefined;
1095
+ channels?: Array<"email"> | null | undefined;
1347
1096
  headers?: {
1348
1097
  [key: string]: string;
1349
1098
  } | null | undefined;
@@ -1354,7 +1103,7 @@ export type WebhookEndpoint = {
1354
1103
  name: string;
1355
1104
  url: string;
1356
1105
  eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated">;
1357
- channels: Array<"sms" | "whatsapp" | "email"> | null;
1106
+ channels: Array<"email"> | null;
1358
1107
  status: "active" | "disabled";
1359
1108
  hasCustomHeaders: boolean;
1360
1109
  failureStartedAt: string | null;
@@ -1366,7 +1115,7 @@ export type UpdateWebhookPayload = {
1366
1115
  name?: string | null | undefined;
1367
1116
  url?: string | null | undefined;
1368
1117
  eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated"> | null | undefined;
1369
- channels?: Array<"sms" | "whatsapp" | "email"> | null | null | undefined;
1118
+ channels?: Array<"email"> | null | null | undefined;
1370
1119
  headers?: {
1371
1120
  [key: string]: string;
1372
1121
  } | null | undefined;
@@ -1402,10 +1151,6 @@ export type Organization = {
1402
1151
  emailFooterEnabledDefault: boolean | null;
1403
1152
  messagesUsed: number;
1404
1153
  messagesUsedThisMonth: number;
1405
- smsUsed: number;
1406
- smsUsedThisMonth: number;
1407
- whatsappUsed: number;
1408
- whatsappUsedThisMonth: number;
1409
1154
  emailUsed: number;
1410
1155
  emailUsedThisMonth: number;
1411
1156
  contactsUsed: number;
@@ -1452,7 +1197,8 @@ export type MessagesListData = {
1452
1197
  query?: {
1453
1198
  page?: string | null | undefined;
1454
1199
  limit?: string | null | undefined;
1455
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
1200
+ channel?: "email" | null | undefined;
1201
+ direction?: "outbound" | "inbound" | null | undefined;
1456
1202
  status?: "pending" | "scheduled" | "queued" | "processing" | "sent" | "delivered" | "read" | "failed" | "bounced" | "complained" | null | undefined;
1457
1203
  conversationId?: ConversationId | null | undefined;
1458
1204
  contactId?: ContactId | null | undefined;
@@ -1487,7 +1233,7 @@ export type MessagesListResponses = {
1487
1233
  };
1488
1234
  export type MessagesListResponse = MessagesListResponses[keyof MessagesListResponses];
1489
1235
  export type MessagesSendData = {
1490
- body: EmailSendMessagePayload | SmsSendMessagePayload | WhatsAppSendMessagePayload;
1236
+ body: EmailSendMessagePayload;
1491
1237
  headers?: {
1492
1238
  "idempotency-key"?: string | null | undefined;
1493
1239
  };
@@ -1507,7 +1253,7 @@ export type MessagesSendErrors = {
1507
1253
  /**
1508
1254
  * ForbiddenError | FlagDisabledError
1509
1255
  */
1510
- 403: ForbiddenError | FlagDisabledError;
1256
+ 403: FlagDisabledError | ForbiddenError;
1511
1257
  /**
1512
1258
  * ResourceNotFoundError
1513
1259
  */
@@ -1651,7 +1397,7 @@ export type MessagesGetEmailResponses = {
1651
1397
  organizationId: string;
1652
1398
  conversationId: ConversationId | null;
1653
1399
  status: "pending" | "scheduled" | "queued" | "processing" | "sent" | "delivered" | "read" | "failed" | "bounced" | "complained";
1654
- channel: "sms" | "whatsapp" | "email";
1400
+ channel: "email";
1655
1401
  direction: "outbound" | "inbound";
1656
1402
  subject: string | null;
1657
1403
  fromEmail: string;
@@ -2086,7 +1832,7 @@ export type CampaignsListResponse = CampaignsListResponses[keyof CampaignsListRe
2086
1832
  export type CampaignsCreateData = {
2087
1833
  body: {
2088
1834
  name: string;
2089
- channel: "sms" | "whatsapp" | "email";
1835
+ channel: "email";
2090
1836
  content: CampaignContentInput;
2091
1837
  audience: CampaignAudience;
2092
1838
  policy?: CampaignPolicy | null | undefined;
@@ -2733,6 +2479,10 @@ export type EmailListDomainsResponse = EmailListDomainsResponses[keyof EmailList
2733
2479
  export type EmailAddDomainData = {
2734
2480
  body: {
2735
2481
  domain: string;
2482
+ connection?: {
2483
+ connectionId: string;
2484
+ zone: string;
2485
+ } | null | undefined;
2736
2486
  };
2737
2487
  path?: never;
2738
2488
  query?: never;
@@ -2755,6 +2505,10 @@ export type EmailAddDomainErrors = {
2755
2505
  * ConflictError
2756
2506
  */
2757
2507
  409: ConflictError;
2508
+ /**
2509
+ * ValidationError
2510
+ */
2511
+ 422: ValidationError;
2758
2512
  /**
2759
2513
  * InternalError
2760
2514
  */
@@ -2769,7 +2523,7 @@ export type EmailAddDomainResponses = {
2769
2523
  /**
2770
2524
  * Success
2771
2525
  */
2772
- 201: EmailDomain;
2526
+ 201: EmailDomainDetailed;
2773
2527
  };
2774
2528
  export type EmailAddDomainResponse = EmailAddDomainResponses[keyof EmailAddDomainResponses];
2775
2529
  export type EmailGetDomainVerificationData = {
@@ -2919,9 +2673,9 @@ export type EmailGetDomainByIdErrors = {
2919
2673
  export type EmailGetDomainByIdError = EmailGetDomainByIdErrors[keyof EmailGetDomainByIdErrors];
2920
2674
  export type EmailGetDomainByIdResponses = {
2921
2675
  /**
2922
- * EmailDomain
2676
+ * EmailDomainDetailed
2923
2677
  */
2924
- 200: EmailDomain;
2678
+ 200: EmailDomainDetailed;
2925
2679
  };
2926
2680
  export type EmailGetDomainByIdResponse = EmailGetDomainByIdResponses[keyof EmailGetDomainByIdResponses];
2927
2681
  export type EmailDetectRegistrarData = {
@@ -3550,6 +3304,8 @@ export type EmailListSendersResponses = {
3550
3304
  verificationStatus: "pending" | "verified" | "failed";
3551
3305
  verifiedAt: string | null;
3552
3306
  verificationToken: string | null;
3307
+ providerLifecycle: "provisioning" | "active" | "deleting" | "failed";
3308
+ providerFailureCode: string | null;
3553
3309
  isDefault: boolean;
3554
3310
  replyToEmails: Array<string> | null;
3555
3311
  deliverability: DeliverabilityFacts;
@@ -3568,6 +3324,9 @@ export type EmailAddSenderData = {
3568
3324
  name?: string | null | null | undefined;
3569
3325
  replyToEmails?: Array<string> | null | null | undefined;
3570
3326
  };
3327
+ headers: {
3328
+ "idempotency-key": string;
3329
+ };
3571
3330
  path?: never;
3572
3331
  query?: never;
3573
3332
  url: "/v1/email/senders";
@@ -3611,6 +3370,8 @@ export type EmailAddSenderResponses = {
3611
3370
  id: EmailSenderId;
3612
3371
  email: string;
3613
3372
  status: "pending" | "verified" | "failed";
3373
+ providerLifecycle: "provisioning" | "active" | "deleting" | "failed";
3374
+ providerFailureCode: string | null;
3614
3375
  createdAt: string;
3615
3376
  };
3616
3377
  };
@@ -4571,6 +4332,192 @@ export type EmailGetForwardingLogResponses = {
4571
4332
  };
4572
4333
  };
4573
4334
  export type EmailGetForwardingLogResponse = EmailGetForwardingLogResponses[keyof EmailGetForwardingLogResponses];
4335
+ export type MediaCreateData = {
4336
+ body: {
4337
+ filename: string;
4338
+ contentType: string;
4339
+ sizeBytes: number;
4340
+ purpose: "attachment" | "avatar";
4341
+ checksumSha256?: string | null | undefined;
4342
+ };
4343
+ path?: never;
4344
+ query?: never;
4345
+ url: "/v1/media";
4346
+ };
4347
+ export type MediaCreateErrors = {
4348
+ /**
4349
+ * UnauthorizedError
4350
+ */
4351
+ 401: UnauthorizedError;
4352
+ /**
4353
+ * ForbiddenError
4354
+ */
4355
+ 403: ForbiddenError;
4356
+ /**
4357
+ * ValidationError
4358
+ */
4359
+ 422: ValidationError;
4360
+ /**
4361
+ * InternalError
4362
+ */
4363
+ 500: InternalError;
4364
+ };
4365
+ export type MediaCreateError = MediaCreateErrors[keyof MediaCreateErrors];
4366
+ export type MediaCreateResponses = {
4367
+ /**
4368
+ * CreatedMedia
4369
+ */
4370
+ 201: CreatedMedia;
4371
+ };
4372
+ export type MediaCreateResponse = MediaCreateResponses[keyof MediaCreateResponses];
4373
+ export type MediaCompleteData = {
4374
+ body?: never;
4375
+ path: {
4376
+ mediaId: MediaId;
4377
+ };
4378
+ query?: never;
4379
+ url: "/v1/media/{mediaId}/complete";
4380
+ };
4381
+ export type MediaCompleteErrors = {
4382
+ /**
4383
+ * UnauthorizedError
4384
+ */
4385
+ 401: UnauthorizedError;
4386
+ /**
4387
+ * ForbiddenError
4388
+ */
4389
+ 403: ForbiddenError;
4390
+ /**
4391
+ * ResourceNotFoundError
4392
+ */
4393
+ 404: ResourceNotFoundError;
4394
+ /**
4395
+ * ValidationError
4396
+ */
4397
+ 422: ValidationError;
4398
+ /**
4399
+ * InternalError
4400
+ */
4401
+ 500: InternalError;
4402
+ };
4403
+ export type MediaCompleteError = MediaCompleteErrors[keyof MediaCompleteErrors];
4404
+ export type MediaCompleteResponses = {
4405
+ /**
4406
+ * CompletedMedia
4407
+ */
4408
+ 200: CompletedMedia;
4409
+ };
4410
+ export type MediaCompleteResponse = MediaCompleteResponses[keyof MediaCompleteResponses];
4411
+ export type MediaRemoveData = {
4412
+ body?: never;
4413
+ path: {
4414
+ mediaId: MediaId;
4415
+ };
4416
+ query?: never;
4417
+ url: "/v1/media/{mediaId}";
4418
+ };
4419
+ export type MediaRemoveErrors = {
4420
+ /**
4421
+ * UnauthorizedError
4422
+ */
4423
+ 401: UnauthorizedError;
4424
+ /**
4425
+ * ForbiddenError
4426
+ */
4427
+ 403: ForbiddenError;
4428
+ /**
4429
+ * ResourceNotFoundError
4430
+ */
4431
+ 404: ResourceNotFoundError;
4432
+ /**
4433
+ * ValidationError
4434
+ */
4435
+ 422: ValidationError;
4436
+ /**
4437
+ * InternalError
4438
+ */
4439
+ 500: InternalError;
4440
+ };
4441
+ export type MediaRemoveError = MediaRemoveErrors[keyof MediaRemoveErrors];
4442
+ export type MediaRemoveResponses = {
4443
+ /**
4444
+ * SuccessResponse
4445
+ */
4446
+ 200: SuccessResponse;
4447
+ };
4448
+ export type MediaRemoveResponse = MediaRemoveResponses[keyof MediaRemoveResponses];
4449
+ export type MediaGetByIdData = {
4450
+ body?: never;
4451
+ path: {
4452
+ mediaId: MediaId;
4453
+ };
4454
+ query?: never;
4455
+ url: "/v1/media/{mediaId}";
4456
+ };
4457
+ export type MediaGetByIdErrors = {
4458
+ /**
4459
+ * UnauthorizedError
4460
+ */
4461
+ 401: UnauthorizedError;
4462
+ /**
4463
+ * ForbiddenError
4464
+ */
4465
+ 403: ForbiddenError;
4466
+ /**
4467
+ * ResourceNotFoundError
4468
+ */
4469
+ 404: ResourceNotFoundError;
4470
+ /**
4471
+ * InternalError
4472
+ */
4473
+ 500: InternalError;
4474
+ };
4475
+ export type MediaGetByIdError = MediaGetByIdErrors[keyof MediaGetByIdErrors];
4476
+ export type MediaGetByIdResponses = {
4477
+ /**
4478
+ * Media
4479
+ */
4480
+ 200: Media;
4481
+ };
4482
+ export type MediaGetByIdResponse = MediaGetByIdResponses[keyof MediaGetByIdResponses];
4483
+ export type MediaDownloadUrlData = {
4484
+ body?: never;
4485
+ path: {
4486
+ mediaId: MediaId;
4487
+ };
4488
+ query?: never;
4489
+ url: "/v1/media/{mediaId}/url";
4490
+ };
4491
+ export type MediaDownloadUrlErrors = {
4492
+ /**
4493
+ * UnauthorizedError
4494
+ */
4495
+ 401: UnauthorizedError;
4496
+ /**
4497
+ * ForbiddenError
4498
+ */
4499
+ 403: ForbiddenError;
4500
+ /**
4501
+ * ResourceNotFoundError
4502
+ */
4503
+ 404: ResourceNotFoundError;
4504
+ /**
4505
+ * ValidationError
4506
+ */
4507
+ 422: ValidationError;
4508
+ /**
4509
+ * InternalError
4510
+ */
4511
+ 500: InternalError;
4512
+ };
4513
+ export type MediaDownloadUrlError = MediaDownloadUrlErrors[keyof MediaDownloadUrlErrors];
4514
+ export type MediaDownloadUrlResponses = {
4515
+ /**
4516
+ * MediaDownloadUrl
4517
+ */
4518
+ 200: MediaDownloadUrl;
4519
+ };
4520
+ export type MediaDownloadUrlResponse = MediaDownloadUrlResponses[keyof MediaDownloadUrlResponses];
4574
4521
  export type ConversationsListData = {
4575
4522
  body?: never;
4576
4523
  path?: never;
@@ -4578,7 +4525,7 @@ export type ConversationsListData = {
4578
4525
  page?: string | null | undefined;
4579
4526
  limit?: string | null | undefined;
4580
4527
  status?: "active" | "waiting" | "resolved" | "escalated" | "archived" | null | undefined;
4581
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
4528
+ channel?: "email" | null | undefined;
4582
4529
  contactId?: ContactId | null | undefined;
4583
4530
  startDate?: string | null | undefined;
4584
4531
  endDate?: string | null | undefined;
@@ -4616,8 +4563,8 @@ export type ConversationsCreateData = {
4616
4563
  description?: string | null | undefined;
4617
4564
  externalId?: string | null | undefined;
4618
4565
  parentConversationId?: ConversationId | null | undefined;
4619
- channels: Array<"sms" | "whatsapp" | "email">;
4620
- primaryChannel: "sms" | "whatsapp" | "email";
4566
+ channels: Array<"email">;
4567
+ primaryChannel: "email";
4621
4568
  status?: "active" | "waiting" | "resolved" | "escalated" | "archived" | null | undefined;
4622
4569
  statusReason?: string | null | undefined;
4623
4570
  priority?: number | null | undefined;
@@ -4703,7 +4650,7 @@ export type ConversationsUpdateData = {
4703
4650
  description?: string | null | null | undefined;
4704
4651
  externalId?: string | null | null | undefined;
4705
4652
  parentConversationId?: ConversationId | null | null | undefined;
4706
- primaryChannel?: "sms" | "whatsapp" | "email" | null | undefined;
4653
+ primaryChannel?: "email" | null | undefined;
4707
4654
  status?: "active" | "waiting" | "resolved" | "escalated" | "archived" | null | undefined;
4708
4655
  statusReason?: string | null | null | undefined;
4709
4656
  priority?: number | null | undefined;
@@ -4713,7 +4660,7 @@ export type ConversationsUpdateData = {
4713
4660
  metadata?: ConversationMetadata | null | null | undefined;
4714
4661
  metrics?: ConversationMetrics | null | undefined;
4715
4662
  actorTracking?: ActorTracking | null | undefined;
4716
- channels?: Array<"sms" | "whatsapp" | "email"> | null | undefined;
4663
+ channels?: Array<"email"> | null | undefined;
4717
4664
  tags?: Array<string> | null | undefined;
4718
4665
  categories?: Array<string> | null | undefined;
4719
4666
  isTest?: boolean | null | undefined;
@@ -4977,7 +4924,6 @@ export type ContactsFindData = {
4977
4924
  body: {
4978
4925
  email?: string | null | undefined;
4979
4926
  phone?: string | null | undefined;
4980
- whatsapp?: string | null | undefined;
4981
4927
  externalId?: string | null | undefined;
4982
4928
  };
4983
4929
  path?: never;
@@ -5018,7 +4964,6 @@ export type ContactsFindOrCreateData = {
5018
4964
  body: {
5019
4965
  email?: string | null | undefined;
5020
4966
  phone?: string | null | undefined;
5021
- whatsapp?: string | null | undefined;
5022
4967
  externalId?: string | null | undefined;
5023
4968
  name?: string | null | undefined;
5024
4969
  displayName?: string | null | null | undefined;
@@ -5468,7 +5413,7 @@ export type ContactsGetActivityTimelineData = {
5468
5413
  query?: {
5469
5414
  page?: string | null | undefined;
5470
5415
  limit?: string | null | undefined;
5471
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
5416
+ channel?: "email" | null | undefined;
5472
5417
  };
5473
5418
  url: "/v1/contacts/{id}/activity";
5474
5419
  };
@@ -5559,7 +5504,7 @@ export type TemplatesListData = {
5559
5504
  page?: string | null | undefined;
5560
5505
  limit?: string | null | undefined;
5561
5506
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | undefined;
5562
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
5507
+ channel?: "email" | null | undefined;
5563
5508
  status?: "draft" | "pending" | "approved" | "published" | "rejected" | "archived" | null | undefined;
5564
5509
  search?: string | null | undefined;
5565
5510
  sortBy?: "name" | "createdAt" | "updatedAt" | "usageCount" | "lastUsedAt" | null | undefined;
@@ -5595,22 +5540,13 @@ export type TemplatesListResponse = TemplatesListResponses[keyof TemplatesListRe
5595
5540
  export type TemplatesCreateData = {
5596
5541
  body: {
5597
5542
  name: string;
5543
+ projectName?: string | null | undefined;
5598
5544
  slug?: string | null | undefined;
5599
- origin?: "dashboard" | "tsx" | null | undefined;
5545
+ galleryTemplateId?: string | null | undefined;
5600
5546
  description?: string | null | null | undefined;
5601
5547
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | null | undefined;
5602
- source: string;
5603
- subject?: string | null | undefined;
5604
- headers?: {
5605
- [key: string]: string;
5606
- } | null | null | undefined;
5607
- variableSchema?: Array<TemplateVariable> | null | null | undefined;
5608
- compliance?: TemplateCompliance | null | null | undefined;
5609
- performance?: TemplatePerformance | null | null | undefined;
5610
- designOverrides?: Design | null | null | undefined;
5611
5548
  isActive?: boolean | null | undefined;
5612
- isDefault?: boolean | null | undefined;
5613
- version?: number | null | undefined;
5549
+ idempotencyKey: string;
5614
5550
  };
5615
5551
  path?: never;
5616
5552
  query?: never;
@@ -5652,9 +5588,9 @@ export type TemplatesListDashboardData = {
5652
5588
  query: {
5653
5589
  page?: string | null | undefined;
5654
5590
  limit?: string | null | undefined;
5655
- allowedChannels: "sms" | "whatsapp" | "email" | Array<"sms" | "whatsapp" | "email">;
5591
+ allowedChannels: "email" | Array<"email">;
5656
5592
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | undefined;
5657
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
5593
+ channel?: "email" | null | undefined;
5658
5594
  status?: "draft" | "pending" | "approved" | "published" | "rejected" | "archived" | null | undefined;
5659
5595
  search?: string | null | undefined;
5660
5596
  sortBy?: "name" | "createdAt" | "updatedAt" | "usageCount" | "lastUsedAt" | null | undefined;
@@ -6001,49 +5937,6 @@ export type TemplatesAttachFamilyMemberResponses = {
6001
5937
  200: TemplateFamily;
6002
5938
  };
6003
5939
  export type TemplatesAttachFamilyMemberResponse = TemplatesAttachFamilyMemberResponses[keyof TemplatesAttachFamilyMemberResponses];
6004
- export type TemplatesAddFamilyChannelData = {
6005
- body?: never;
6006
- path: {
6007
- familyId: TemplateFamilyId;
6008
- channel: "sms" | "whatsapp" | "email";
6009
- };
6010
- query?: never;
6011
- url: "/v1/templates/families/{familyId}/channels/{channel}";
6012
- };
6013
- export type TemplatesAddFamilyChannelErrors = {
6014
- /**
6015
- * UnauthorizedError
6016
- */
6017
- 401: UnauthorizedError;
6018
- /**
6019
- * ForbiddenError
6020
- */
6021
- 403: ForbiddenError;
6022
- /**
6023
- * ResourceNotFoundError
6024
- */
6025
- 404: ResourceNotFoundError;
6026
- /**
6027
- * ConflictError
6028
- */
6029
- 409: ConflictError;
6030
- /**
6031
- * ValidationError
6032
- */
6033
- 422: ValidationError;
6034
- /**
6035
- * InternalError
6036
- */
6037
- 500: InternalError;
6038
- };
6039
- export type TemplatesAddFamilyChannelError = TemplatesAddFamilyChannelErrors[keyof TemplatesAddFamilyChannelErrors];
6040
- export type TemplatesAddFamilyChannelResponses = {
6041
- /**
6042
- * Success
6043
- */
6044
- 201: TemplateFamily;
6045
- };
6046
- export type TemplatesAddFamilyChannelResponse = TemplatesAddFamilyChannelResponses[keyof TemplatesAddFamilyChannelResponses];
6047
5940
  export type TemplatesRemoveData = {
6048
5941
  body?: never;
6049
5942
  path: {
@@ -6117,18 +6010,11 @@ export type TemplatesUpdateData = {
6117
6010
  data: {
6118
6011
  name?: string | null | undefined;
6119
6012
  slug?: string | null | undefined;
6120
- origin?: "dashboard" | "tsx" | null | undefined;
6121
6013
  description?: string | null | null | undefined;
6122
6014
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | null | undefined;
6123
6015
  fromDefault?: TemplateFromDefault | null | null | undefined;
6124
6016
  replyToDefault?: Array<string> | null | null | undefined;
6125
- variableSchema?: Array<TemplateVariable> | null | null | undefined;
6126
- compliance?: TemplateCompliance | null | null | undefined;
6127
- performance?: TemplatePerformance | null | null | undefined;
6128
- designOverrides?: Design | null | null | undefined;
6129
6017
  isActive?: boolean | null | undefined;
6130
- isDefault?: boolean | null | undefined;
6131
- version?: number | null | undefined;
6132
6018
  };
6133
6019
  };
6134
6020
  path: {
@@ -6171,19 +6057,140 @@ export type TemplatesUpdateResponses = {
6171
6057
  200: Template;
6172
6058
  };
6173
6059
  export type TemplatesUpdateResponse = TemplatesUpdateResponses[keyof TemplatesUpdateResponses];
6174
- export type TemplatesApproveData = {
6060
+ export type TemplatesPatchWorkspaceData = {
6175
6061
  body: {
6176
- data: {
6177
- notes?: string | null | undefined;
6062
+ expectedRevision: string;
6063
+ patches: Array<{
6064
+ path: string;
6065
+ content: string | null;
6066
+ }>;
6067
+ idempotencyKey: string;
6068
+ };
6069
+ path: {
6070
+ id: TemplateId;
6071
+ };
6072
+ query?: never;
6073
+ url: "/v1/templates/{id}/workspace";
6074
+ };
6075
+ export type TemplatesPatchWorkspaceErrors = {
6076
+ /**
6077
+ * UnauthorizedError
6078
+ */
6079
+ 401: UnauthorizedError;
6080
+ /**
6081
+ * ForbiddenError
6082
+ */
6083
+ 403: ForbiddenError;
6084
+ /**
6085
+ * ResourceNotFoundError
6086
+ */
6087
+ 404: ResourceNotFoundError;
6088
+ /**
6089
+ * ConflictError
6090
+ */
6091
+ 409: ConflictError;
6092
+ /**
6093
+ * InternalError
6094
+ */
6095
+ 500: InternalError;
6096
+ };
6097
+ export type TemplatesPatchWorkspaceError = TemplatesPatchWorkspaceErrors[keyof TemplatesPatchWorkspaceErrors];
6098
+ export type TemplatesPatchWorkspaceResponses = {
6099
+ /**
6100
+ * Success
6101
+ */
6102
+ 200: {
6103
+ workspace: {
6104
+ projectId: TemplateProjectId;
6105
+ organizationId: OrganizationId | null;
6106
+ ownerEpoch: number;
6107
+ repositoryName: string;
6108
+ defaultBranch: string;
6109
+ baseCommit: string;
6110
+ remoteHead: string;
6111
+ pendingRemoteHead: string | null;
6112
+ revision: string;
6113
+ overlay: {
6114
+ [key: string]: string | null;
6115
+ };
6116
+ assetChanges: Array<{
6117
+ path: string;
6118
+ status: "added" | "modified" | "deleted";
6119
+ }>;
6120
+ conflicts: Array<{
6121
+ path: string;
6122
+ base: string | null;
6123
+ draft: string | null;
6124
+ main: string | null;
6125
+ }>;
6126
+ provenance: {
6127
+ references: Array<{
6128
+ kind: string;
6129
+ digest: string;
6130
+ locator?: string | undefined;
6131
+ }>;
6132
+ };
6133
+ mounts: Array<{
6134
+ kind: "project";
6135
+ root: "/project";
6136
+ access: "read-write";
6137
+ } | {
6138
+ root: string;
6139
+ digest: string;
6140
+ fileCount: number;
6141
+ byteSize: number;
6142
+ kind: "started-from";
6143
+ access: "read-only";
6144
+ templateId: string;
6145
+ slug: string;
6146
+ name: string;
6147
+ } | {
6148
+ root: string;
6149
+ digest: string;
6150
+ fileCount: number;
6151
+ byteSize: number;
6152
+ kind: "resource";
6153
+ access: "read-only";
6154
+ resourceId: string;
6155
+ name: string;
6156
+ } | {
6157
+ root: string;
6158
+ digest: string;
6159
+ fileCount: number;
6160
+ byteSize: number;
6161
+ kind: "library-template";
6162
+ access: "read-only";
6163
+ templateId: string;
6164
+ slug: string;
6165
+ name: string;
6166
+ }>;
6167
+ libraryManifestDigest: string;
6168
+ createdAt: string;
6169
+ updatedAt: string;
6170
+ createdBy: {
6171
+ userId: UserId;
6172
+ via: "api" | "mcp" | "agent";
6173
+ };
6174
+ updatedBy: {
6175
+ userId: UserId;
6176
+ via: "api" | "mcp" | "agent";
6177
+ };
6178
+ };
6179
+ files: {
6180
+ [key: string]: string;
6178
6181
  };
6179
6182
  };
6183
+ };
6184
+ export type TemplatesPatchWorkspaceResponse = TemplatesPatchWorkspaceResponses[keyof TemplatesPatchWorkspaceResponses];
6185
+ export type TemplatesOpenWorkspaceData = {
6186
+ body?: never;
6180
6187
  path: {
6181
6188
  id: TemplateId;
6182
6189
  };
6183
6190
  query?: never;
6184
- url: "/v1/templates/{id}/approve";
6191
+ url: "/v1/templates/{id}/workspace";
6185
6192
  };
6186
- export type TemplatesApproveErrors = {
6193
+ export type TemplatesOpenWorkspaceErrors = {
6187
6194
  /**
6188
6195
  * UnauthorizedError
6189
6196
  */
@@ -6196,28 +6203,114 @@ export type TemplatesApproveErrors = {
6196
6203
  * ResourceNotFoundError
6197
6204
  */
6198
6205
  404: ResourceNotFoundError;
6206
+ /**
6207
+ * ConflictError
6208
+ */
6209
+ 409: ConflictError;
6199
6210
  /**
6200
6211
  * InternalError
6201
6212
  */
6202
6213
  500: InternalError;
6203
6214
  };
6204
- export type TemplatesApproveError = TemplatesApproveErrors[keyof TemplatesApproveErrors];
6205
- export type TemplatesApproveResponses = {
6215
+ export type TemplatesOpenWorkspaceError = TemplatesOpenWorkspaceErrors[keyof TemplatesOpenWorkspaceErrors];
6216
+ export type TemplatesOpenWorkspaceResponses = {
6206
6217
  /**
6207
- * Template
6218
+ * Success
6208
6219
  */
6209
- 200: Template;
6220
+ 200: {
6221
+ workspace: {
6222
+ projectId: TemplateProjectId;
6223
+ organizationId: OrganizationId | null;
6224
+ ownerEpoch: number;
6225
+ repositoryName: string;
6226
+ defaultBranch: string;
6227
+ baseCommit: string;
6228
+ remoteHead: string;
6229
+ pendingRemoteHead: string | null;
6230
+ revision: string;
6231
+ overlay: {
6232
+ [key: string]: string | null;
6233
+ };
6234
+ assetChanges: Array<{
6235
+ path: string;
6236
+ status: "added" | "modified" | "deleted";
6237
+ }>;
6238
+ conflicts: Array<{
6239
+ path: string;
6240
+ base: string | null;
6241
+ draft: string | null;
6242
+ main: string | null;
6243
+ }>;
6244
+ provenance: {
6245
+ references: Array<{
6246
+ kind: string;
6247
+ digest: string;
6248
+ locator?: string | undefined;
6249
+ }>;
6250
+ };
6251
+ mounts: Array<{
6252
+ kind: "project";
6253
+ root: "/project";
6254
+ access: "read-write";
6255
+ } | {
6256
+ root: string;
6257
+ digest: string;
6258
+ fileCount: number;
6259
+ byteSize: number;
6260
+ kind: "started-from";
6261
+ access: "read-only";
6262
+ templateId: string;
6263
+ slug: string;
6264
+ name: string;
6265
+ } | {
6266
+ root: string;
6267
+ digest: string;
6268
+ fileCount: number;
6269
+ byteSize: number;
6270
+ kind: "resource";
6271
+ access: "read-only";
6272
+ resourceId: string;
6273
+ name: string;
6274
+ } | {
6275
+ root: string;
6276
+ digest: string;
6277
+ fileCount: number;
6278
+ byteSize: number;
6279
+ kind: "library-template";
6280
+ access: "read-only";
6281
+ templateId: string;
6282
+ slug: string;
6283
+ name: string;
6284
+ }>;
6285
+ libraryManifestDigest: string;
6286
+ createdAt: string;
6287
+ updatedAt: string;
6288
+ createdBy: {
6289
+ userId: UserId;
6290
+ via: "api" | "mcp" | "agent";
6291
+ };
6292
+ updatedBy: {
6293
+ userId: UserId;
6294
+ via: "api" | "mcp" | "agent";
6295
+ };
6296
+ };
6297
+ files: {
6298
+ [key: string]: string;
6299
+ };
6300
+ };
6210
6301
  };
6211
- export type TemplatesApproveResponse = TemplatesApproveResponses[keyof TemplatesApproveResponses];
6212
- export type TemplateDocumentsBootstrapData = {
6302
+ export type TemplatesOpenWorkspaceResponse = TemplatesOpenWorkspaceResponses[keyof TemplatesOpenWorkspaceResponses];
6303
+ export type TemplatesDiffWorkspaceData = {
6213
6304
  body: {
6214
- templateId: TemplateId;
6305
+ expectedRevision: string;
6306
+ };
6307
+ path: {
6308
+ id: TemplateId;
6215
6309
  };
6216
- path?: never;
6217
6310
  query?: never;
6218
- url: "/v1/template-documents/bootstrap";
6311
+ url: "/v1/templates/{id}/workspace/diff";
6219
6312
  };
6220
- export type TemplateDocumentsBootstrapErrors = {
6313
+ export type TemplatesDiffWorkspaceErrors = {
6221
6314
  /**
6222
6315
  * UnauthorizedError
6223
6316
  */
@@ -6235,31 +6328,171 @@ export type TemplateDocumentsBootstrapErrors = {
6235
6328
  */
6236
6329
  409: ConflictError;
6237
6330
  /**
6238
- * ValidationError
6331
+ * InternalError
6239
6332
  */
6240
- 422: ValidationError;
6333
+ 500: InternalError;
6334
+ };
6335
+ export type TemplatesDiffWorkspaceError = TemplatesDiffWorkspaceErrors[keyof TemplatesDiffWorkspaceErrors];
6336
+ export type TemplatesDiffWorkspaceResponses = {
6337
+ /**
6338
+ * Success
6339
+ */
6340
+ 200: {
6341
+ projectId: TemplateProjectId;
6342
+ baseCommit: string;
6343
+ revision: string;
6344
+ changes: Array<{
6345
+ path: string;
6346
+ before: string | null;
6347
+ after: string | null;
6348
+ status: "added" | "modified" | "deleted";
6349
+ }>;
6350
+ assetChanges: Array<{
6351
+ path: string;
6352
+ status: "added" | "modified" | "deleted";
6353
+ }>;
6354
+ };
6355
+ };
6356
+ export type TemplatesDiffWorkspaceResponse = TemplatesDiffWorkspaceResponses[keyof TemplatesDiffWorkspaceResponses];
6357
+ export type TemplatesReconcileWorkspaceData = {
6358
+ body: {
6359
+ expectedRevision: string;
6360
+ assetResolution?: "draft" | "remote" | undefined;
6361
+ expectedRemoteHead?: string | undefined;
6362
+ idempotencyKey: string;
6363
+ };
6364
+ path: {
6365
+ id: TemplateId;
6366
+ };
6367
+ query?: never;
6368
+ url: "/v1/templates/{id}/workspace/reconcile";
6369
+ };
6370
+ export type TemplatesReconcileWorkspaceErrors = {
6371
+ /**
6372
+ * UnauthorizedError
6373
+ */
6374
+ 401: UnauthorizedError;
6375
+ /**
6376
+ * ForbiddenError
6377
+ */
6378
+ 403: ForbiddenError;
6379
+ /**
6380
+ * ResourceNotFoundError
6381
+ */
6382
+ 404: ResourceNotFoundError;
6383
+ /**
6384
+ * ConflictError
6385
+ */
6386
+ 409: ConflictError;
6241
6387
  /**
6242
6388
  * InternalError
6243
6389
  */
6244
6390
  500: InternalError;
6245
6391
  };
6246
- export type TemplateDocumentsBootstrapError = TemplateDocumentsBootstrapErrors[keyof TemplateDocumentsBootstrapErrors];
6247
- export type TemplateDocumentsBootstrapResponses = {
6392
+ export type TemplatesReconcileWorkspaceError = TemplatesReconcileWorkspaceErrors[keyof TemplatesReconcileWorkspaceErrors];
6393
+ export type TemplatesReconcileWorkspaceResponses = {
6248
6394
  /**
6249
6395
  * Success
6250
6396
  */
6251
- 200: Objects;
6397
+ 200: {
6398
+ workspace: {
6399
+ projectId: TemplateProjectId;
6400
+ organizationId: OrganizationId | null;
6401
+ ownerEpoch: number;
6402
+ repositoryName: string;
6403
+ defaultBranch: string;
6404
+ baseCommit: string;
6405
+ remoteHead: string;
6406
+ pendingRemoteHead: string | null;
6407
+ revision: string;
6408
+ overlay: {
6409
+ [key: string]: string | null;
6410
+ };
6411
+ assetChanges: Array<{
6412
+ path: string;
6413
+ status: "added" | "modified" | "deleted";
6414
+ }>;
6415
+ conflicts: Array<{
6416
+ path: string;
6417
+ base: string | null;
6418
+ draft: string | null;
6419
+ main: string | null;
6420
+ }>;
6421
+ provenance: {
6422
+ references: Array<{
6423
+ kind: string;
6424
+ digest: string;
6425
+ locator?: string | undefined;
6426
+ }>;
6427
+ };
6428
+ mounts: Array<{
6429
+ kind: "project";
6430
+ root: "/project";
6431
+ access: "read-write";
6432
+ } | {
6433
+ root: string;
6434
+ digest: string;
6435
+ fileCount: number;
6436
+ byteSize: number;
6437
+ kind: "started-from";
6438
+ access: "read-only";
6439
+ templateId: string;
6440
+ slug: string;
6441
+ name: string;
6442
+ } | {
6443
+ root: string;
6444
+ digest: string;
6445
+ fileCount: number;
6446
+ byteSize: number;
6447
+ kind: "resource";
6448
+ access: "read-only";
6449
+ resourceId: string;
6450
+ name: string;
6451
+ } | {
6452
+ root: string;
6453
+ digest: string;
6454
+ fileCount: number;
6455
+ byteSize: number;
6456
+ kind: "library-template";
6457
+ access: "read-only";
6458
+ templateId: string;
6459
+ slug: string;
6460
+ name: string;
6461
+ }>;
6462
+ libraryManifestDigest: string;
6463
+ createdAt: string;
6464
+ updatedAt: string;
6465
+ createdBy: {
6466
+ userId: UserId;
6467
+ via: "api" | "mcp" | "agent";
6468
+ };
6469
+ updatedBy: {
6470
+ userId: UserId;
6471
+ via: "api" | "mcp" | "agent";
6472
+ };
6473
+ };
6474
+ files: {
6475
+ [key: string]: string;
6476
+ };
6477
+ };
6252
6478
  };
6253
- export type TemplateDocumentsBootstrapResponse = TemplateDocumentsBootstrapResponses[keyof TemplateDocumentsBootstrapResponses];
6254
- export type TemplateDocumentsGetData = {
6255
- body?: never;
6479
+ export type TemplatesReconcileWorkspaceResponse = TemplatesReconcileWorkspaceResponses[keyof TemplatesReconcileWorkspaceResponses];
6480
+ export type TemplatesResolveWorkspaceConflictData = {
6481
+ body: {
6482
+ expectedRevision: string;
6483
+ path: string;
6484
+ resolution: "draft" | "main" | {
6485
+ content: string | null;
6486
+ };
6487
+ idempotencyKey: string;
6488
+ };
6256
6489
  path: {
6257
- templateId: TemplateId;
6490
+ id: TemplateId;
6258
6491
  };
6259
6492
  query?: never;
6260
- url: "/v1/template-documents/{templateId}";
6493
+ url: "/v1/templates/{id}/workspace/conflicts";
6261
6494
  };
6262
- export type TemplateDocumentsGetErrors = {
6495
+ export type TemplatesResolveWorkspaceConflictErrors = {
6263
6496
  /**
6264
6497
  * UnauthorizedError
6265
6498
  */
@@ -6277,34 +6510,208 @@ export type TemplateDocumentsGetErrors = {
6277
6510
  */
6278
6511
  409: ConflictError;
6279
6512
  /**
6280
- * ValidationError
6513
+ * InternalError
6281
6514
  */
6282
- 422: ValidationError;
6515
+ 500: InternalError;
6516
+ };
6517
+ export type TemplatesResolveWorkspaceConflictError = TemplatesResolveWorkspaceConflictErrors[keyof TemplatesResolveWorkspaceConflictErrors];
6518
+ export type TemplatesResolveWorkspaceConflictResponses = {
6519
+ /**
6520
+ * Success
6521
+ */
6522
+ 200: {
6523
+ workspace: {
6524
+ projectId: TemplateProjectId;
6525
+ organizationId: OrganizationId | null;
6526
+ ownerEpoch: number;
6527
+ repositoryName: string;
6528
+ defaultBranch: string;
6529
+ baseCommit: string;
6530
+ remoteHead: string;
6531
+ pendingRemoteHead: string | null;
6532
+ revision: string;
6533
+ overlay: {
6534
+ [key: string]: string | null;
6535
+ };
6536
+ assetChanges: Array<{
6537
+ path: string;
6538
+ status: "added" | "modified" | "deleted";
6539
+ }>;
6540
+ conflicts: Array<{
6541
+ path: string;
6542
+ base: string | null;
6543
+ draft: string | null;
6544
+ main: string | null;
6545
+ }>;
6546
+ provenance: {
6547
+ references: Array<{
6548
+ kind: string;
6549
+ digest: string;
6550
+ locator?: string | undefined;
6551
+ }>;
6552
+ };
6553
+ mounts: Array<{
6554
+ kind: "project";
6555
+ root: "/project";
6556
+ access: "read-write";
6557
+ } | {
6558
+ root: string;
6559
+ digest: string;
6560
+ fileCount: number;
6561
+ byteSize: number;
6562
+ kind: "started-from";
6563
+ access: "read-only";
6564
+ templateId: string;
6565
+ slug: string;
6566
+ name: string;
6567
+ } | {
6568
+ root: string;
6569
+ digest: string;
6570
+ fileCount: number;
6571
+ byteSize: number;
6572
+ kind: "resource";
6573
+ access: "read-only";
6574
+ resourceId: string;
6575
+ name: string;
6576
+ } | {
6577
+ root: string;
6578
+ digest: string;
6579
+ fileCount: number;
6580
+ byteSize: number;
6581
+ kind: "library-template";
6582
+ access: "read-only";
6583
+ templateId: string;
6584
+ slug: string;
6585
+ name: string;
6586
+ }>;
6587
+ libraryManifestDigest: string;
6588
+ createdAt: string;
6589
+ updatedAt: string;
6590
+ createdBy: {
6591
+ userId: UserId;
6592
+ via: "api" | "mcp" | "agent";
6593
+ };
6594
+ updatedBy: {
6595
+ userId: UserId;
6596
+ via: "api" | "mcp" | "agent";
6597
+ };
6598
+ };
6599
+ files: {
6600
+ [key: string]: string;
6601
+ };
6602
+ };
6603
+ };
6604
+ export type TemplatesResolveWorkspaceConflictResponse = TemplatesResolveWorkspaceConflictResponses[keyof TemplatesResolveWorkspaceConflictResponses];
6605
+ export type TemplatesSaveWorkspaceData = {
6606
+ body: {
6607
+ expectedRevision: string;
6608
+ expectedHead: string;
6609
+ message: string;
6610
+ idempotencyKey: string;
6611
+ };
6612
+ path: {
6613
+ id: TemplateId;
6614
+ };
6615
+ query?: never;
6616
+ url: "/v1/templates/{id}/workspace/save";
6617
+ };
6618
+ export type TemplatesSaveWorkspaceErrors = {
6619
+ /**
6620
+ * UnauthorizedError
6621
+ */
6622
+ 401: UnauthorizedError;
6623
+ /**
6624
+ * ForbiddenError
6625
+ */
6626
+ 403: ForbiddenError;
6627
+ /**
6628
+ * ResourceNotFoundError
6629
+ */
6630
+ 404: ResourceNotFoundError;
6631
+ /**
6632
+ * ConflictError
6633
+ */
6634
+ 409: ConflictError;
6283
6635
  /**
6284
6636
  * InternalError
6285
6637
  */
6286
6638
  500: InternalError;
6287
6639
  };
6288
- export type TemplateDocumentsGetError = TemplateDocumentsGetErrors[keyof TemplateDocumentsGetErrors];
6289
- export type TemplateDocumentsGetResponses = {
6640
+ export type TemplatesSaveWorkspaceError = TemplatesSaveWorkspaceErrors[keyof TemplatesSaveWorkspaceErrors];
6641
+ export type TemplatesSaveWorkspaceResponses = {
6290
6642
  /**
6291
6643
  * Success
6292
6644
  */
6293
- 200: Objects;
6645
+ 200: {
6646
+ commit: string;
6647
+ parentCommit: string;
6648
+ tree: string;
6649
+ revision: string;
6650
+ changedPaths: Array<string>;
6651
+ sourceDigest: string;
6652
+ buildDigest: string;
6653
+ warnings: Array<{
6654
+ code: string;
6655
+ severity: "error" | "warning" | "info";
6656
+ message: string;
6657
+ origins: Array<{
6658
+ fileName: string;
6659
+ lineNumber: number;
6660
+ columnNumber: number;
6661
+ }>;
6662
+ clients?: Array<string> | null | undefined;
6663
+ notes?: string | null | undefined;
6664
+ provenance?: string | null | undefined;
6665
+ fixtures?: Array<string> | null | undefined;
6666
+ occurrences?: Array<Array<{
6667
+ fileName: string;
6668
+ lineNumber: number;
6669
+ columnNumber: number;
6670
+ }>> | null | undefined;
6671
+ compatibility?: {
6672
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
6673
+ title: string;
6674
+ } | null | undefined;
6675
+ }>;
6676
+ incompatibilities: Array<{
6677
+ code: string;
6678
+ severity: "error" | "warning" | "info";
6679
+ message: string;
6680
+ origins: Array<{
6681
+ fileName: string;
6682
+ lineNumber: number;
6683
+ columnNumber: number;
6684
+ }>;
6685
+ clients?: Array<string> | null | undefined;
6686
+ notes?: string | null | undefined;
6687
+ provenance?: string | null | undefined;
6688
+ fixtures?: Array<string> | null | undefined;
6689
+ occurrences?: Array<Array<{
6690
+ fileName: string;
6691
+ lineNumber: number;
6692
+ columnNumber: number;
6693
+ }>> | null | undefined;
6694
+ compatibility?: {
6695
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
6696
+ title: string;
6697
+ } | null | undefined;
6698
+ }>;
6699
+ };
6294
6700
  };
6295
- export type TemplateDocumentsGetResponse = TemplateDocumentsGetResponses[keyof TemplateDocumentsGetResponses];
6296
- export type TemplateDocumentsReplaceData = {
6701
+ export type TemplatesSaveWorkspaceResponse = TemplatesSaveWorkspaceResponses[keyof TemplatesSaveWorkspaceResponses];
6702
+ export type TemplatesRestoreWorkspaceData = {
6297
6703
  body: {
6298
6704
  expectedRevision: string;
6299
- source: string;
6705
+ commit: string;
6706
+ idempotencyKey: string;
6300
6707
  };
6301
6708
  path: {
6302
- templateId: TemplateId;
6709
+ id: TemplateId;
6303
6710
  };
6304
6711
  query?: never;
6305
- url: "/v1/template-documents/{templateId}/source";
6712
+ url: "/v1/templates/{id}/workspace/restore";
6306
6713
  };
6307
- export type TemplateDocumentsReplaceErrors = {
6714
+ export type TemplatesRestoreWorkspaceErrors = {
6308
6715
  /**
6309
6716
  * UnauthorizedError
6310
6717
  */
@@ -6322,33 +6729,169 @@ export type TemplateDocumentsReplaceErrors = {
6322
6729
  */
6323
6730
  409: ConflictError;
6324
6731
  /**
6325
- * ValidationError
6732
+ * InternalError
6326
6733
  */
6327
- 422: ValidationError;
6734
+ 500: InternalError;
6735
+ };
6736
+ export type TemplatesRestoreWorkspaceError = TemplatesRestoreWorkspaceErrors[keyof TemplatesRestoreWorkspaceErrors];
6737
+ export type TemplatesRestoreWorkspaceResponses = {
6738
+ /**
6739
+ * Success
6740
+ */
6741
+ 200: {
6742
+ view: {
6743
+ workspace: {
6744
+ projectId: TemplateProjectId;
6745
+ organizationId: OrganizationId | null;
6746
+ ownerEpoch: number;
6747
+ repositoryName: string;
6748
+ defaultBranch: string;
6749
+ baseCommit: string;
6750
+ remoteHead: string;
6751
+ pendingRemoteHead: string | null;
6752
+ revision: string;
6753
+ overlay: {
6754
+ [key: string]: string | null;
6755
+ };
6756
+ assetChanges: Array<{
6757
+ path: string;
6758
+ status: "added" | "modified" | "deleted";
6759
+ }>;
6760
+ conflicts: Array<{
6761
+ path: string;
6762
+ base: string | null;
6763
+ draft: string | null;
6764
+ main: string | null;
6765
+ }>;
6766
+ provenance: {
6767
+ references: Array<{
6768
+ kind: string;
6769
+ digest: string;
6770
+ locator?: string | undefined;
6771
+ }>;
6772
+ };
6773
+ mounts: Array<{
6774
+ kind: "project";
6775
+ root: "/project";
6776
+ access: "read-write";
6777
+ } | {
6778
+ root: string;
6779
+ digest: string;
6780
+ fileCount: number;
6781
+ byteSize: number;
6782
+ kind: "started-from";
6783
+ access: "read-only";
6784
+ templateId: string;
6785
+ slug: string;
6786
+ name: string;
6787
+ } | {
6788
+ root: string;
6789
+ digest: string;
6790
+ fileCount: number;
6791
+ byteSize: number;
6792
+ kind: "resource";
6793
+ access: "read-only";
6794
+ resourceId: string;
6795
+ name: string;
6796
+ } | {
6797
+ root: string;
6798
+ digest: string;
6799
+ fileCount: number;
6800
+ byteSize: number;
6801
+ kind: "library-template";
6802
+ access: "read-only";
6803
+ templateId: string;
6804
+ slug: string;
6805
+ name: string;
6806
+ }>;
6807
+ libraryManifestDigest: string;
6808
+ createdAt: string;
6809
+ updatedAt: string;
6810
+ createdBy: {
6811
+ userId: UserId;
6812
+ via: "api" | "mcp" | "agent";
6813
+ };
6814
+ updatedBy: {
6815
+ userId: UserId;
6816
+ via: "api" | "mcp" | "agent";
6817
+ };
6818
+ };
6819
+ files: {
6820
+ [key: string]: string;
6821
+ };
6822
+ };
6823
+ source: {
6824
+ digest: string;
6825
+ content: string;
6826
+ };
6827
+ };
6828
+ };
6829
+ export type TemplatesRestoreWorkspaceResponse = TemplatesRestoreWorkspaceResponses[keyof TemplatesRestoreWorkspaceResponses];
6830
+ export type TemplatesWorkspaceHistoryData = {
6831
+ body?: never;
6832
+ path: {
6833
+ id: TemplateId;
6834
+ };
6835
+ query?: {
6836
+ limit?: string | null | undefined;
6837
+ };
6838
+ url: "/v1/templates/{id}/workspace/history";
6839
+ };
6840
+ export type TemplatesWorkspaceHistoryErrors = {
6841
+ /**
6842
+ * UnauthorizedError
6843
+ */
6844
+ 401: UnauthorizedError;
6845
+ /**
6846
+ * ForbiddenError
6847
+ */
6848
+ 403: ForbiddenError;
6849
+ /**
6850
+ * ResourceNotFoundError
6851
+ */
6852
+ 404: ResourceNotFoundError;
6853
+ /**
6854
+ * ConflictError
6855
+ */
6856
+ 409: ConflictError;
6328
6857
  /**
6329
6858
  * InternalError
6330
6859
  */
6331
6860
  500: InternalError;
6332
6861
  };
6333
- export type TemplateDocumentsReplaceError = TemplateDocumentsReplaceErrors[keyof TemplateDocumentsReplaceErrors];
6334
- export type TemplateDocumentsReplaceResponses = {
6862
+ export type TemplatesWorkspaceHistoryError = TemplatesWorkspaceHistoryErrors[keyof TemplatesWorkspaceHistoryErrors];
6863
+ export type TemplatesWorkspaceHistoryResponses = {
6335
6864
  /**
6336
6865
  * Success
6337
6866
  */
6338
- 200: Objects;
6867
+ 200: {
6868
+ projectId: TemplateProjectId;
6869
+ head: string;
6870
+ commits: Array<{
6871
+ commit: string;
6872
+ tree: string;
6873
+ parentCommit: string | null;
6874
+ message: string;
6875
+ committedAt: string;
6876
+ }>;
6877
+ publication: {
6878
+ id: TemplatePublicationId;
6879
+ commit: string;
6880
+ } | null;
6881
+ };
6339
6882
  };
6340
- export type TemplateDocumentsReplaceResponse = TemplateDocumentsReplaceResponses[keyof TemplateDocumentsReplaceResponses];
6341
- export type TemplateDocumentsSaveData = {
6883
+ export type TemplatesWorkspaceHistoryResponse = TemplatesWorkspaceHistoryResponses[keyof TemplatesWorkspaceHistoryResponses];
6884
+ export type TemplatesCheckWorkspaceData = {
6342
6885
  body: {
6343
- revision: string;
6886
+ expectedRevision: string;
6344
6887
  };
6345
6888
  path: {
6346
- templateId: TemplateId;
6889
+ id: TemplateId;
6347
6890
  };
6348
6891
  query?: never;
6349
- url: "/v1/template-documents/{templateId}/save";
6892
+ url: "/v1/templates/{id}/workspace/check";
6350
6893
  };
6351
- export type TemplateDocumentsSaveErrors = {
6894
+ export type TemplatesCheckWorkspaceErrors = {
6352
6895
  /**
6353
6896
  * UnauthorizedError
6354
6897
  */
@@ -6365,45 +6908,97 @@ export type TemplateDocumentsSaveErrors = {
6365
6908
  * ConflictError
6366
6909
  */
6367
6910
  409: ConflictError;
6368
- /**
6369
- * ValidationError
6370
- */
6371
- 422: ValidationError;
6372
6911
  /**
6373
6912
  * InternalError
6374
6913
  */
6375
6914
  500: InternalError;
6376
6915
  };
6377
- export type TemplateDocumentsSaveError = TemplateDocumentsSaveErrors[keyof TemplateDocumentsSaveErrors];
6378
- export type TemplateDocumentsSaveResponses = {
6916
+ export type TemplatesCheckWorkspaceError = TemplatesCheckWorkspaceErrors[keyof TemplatesCheckWorkspaceErrors];
6917
+ export type TemplatesCheckWorkspaceResponses = {
6379
6918
  /**
6380
6919
  * Success
6381
6920
  */
6382
6921
  200: {
6383
- id: string;
6384
- templateId: TemplateId;
6385
- documentRevision: string;
6386
- sourceDigest: string;
6387
- compilerVersion: string;
6388
- createdAt: string;
6389
- versionId: string;
6922
+ projectId: TemplateProjectId;
6923
+ revision: string;
6924
+ entryPath: string;
6925
+ declaration: {
6926
+ codeDigest: string;
6927
+ templateId: string;
6928
+ input: {
6929
+ schema: {
6930
+ [key: string]: JsonValue;
6931
+ };
6932
+ schemaDigest: string;
6933
+ contractDigest: string;
6934
+ };
6935
+ runtime: {
6936
+ now?: number | undefined;
6937
+ randomSeed?: number | undefined;
6938
+ };
6939
+ fixtures: Array<string>;
6940
+ } | null;
6941
+ diagnostics: Array<{
6942
+ code: string;
6943
+ severity: "error" | "warning" | "info";
6944
+ message: string;
6945
+ origins: Array<{
6946
+ fileName: string;
6947
+ lineNumber: number;
6948
+ columnNumber: number;
6949
+ }>;
6950
+ clients?: Array<string> | null | undefined;
6951
+ notes?: string | null | undefined;
6952
+ provenance?: string | null | undefined;
6953
+ fixtures?: Array<string> | null | undefined;
6954
+ occurrences?: Array<Array<{
6955
+ fileName: string;
6956
+ lineNumber: number;
6957
+ columnNumber: number;
6958
+ }>> | null | undefined;
6959
+ compatibility?: {
6960
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
6961
+ title: string;
6962
+ } | null | undefined;
6963
+ }>;
6964
+ incompatibilities: Array<{
6965
+ code: string;
6966
+ severity: "error" | "warning" | "info";
6967
+ message: string;
6968
+ origins: Array<{
6969
+ fileName: string;
6970
+ lineNumber: number;
6971
+ columnNumber: number;
6972
+ }>;
6973
+ clients?: Array<string> | null | undefined;
6974
+ notes?: string | null | undefined;
6975
+ provenance?: string | null | undefined;
6976
+ fixtures?: Array<string> | null | undefined;
6977
+ occurrences?: Array<Array<{
6978
+ fileName: string;
6979
+ lineNumber: number;
6980
+ columnNumber: number;
6981
+ }>> | null | undefined;
6982
+ compatibility?: {
6983
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
6984
+ title: string;
6985
+ } | null | undefined;
6986
+ }>;
6390
6987
  };
6391
6988
  };
6392
- export type TemplateDocumentsSaveResponse = TemplateDocumentsSaveResponses[keyof TemplateDocumentsSaveResponses];
6393
- export type TemplateDocumentsRenderData = {
6989
+ export type TemplatesCheckWorkspaceResponse = TemplatesCheckWorkspaceResponses[keyof TemplatesCheckWorkspaceResponses];
6990
+ export type TemplatesRenderWorkspaceFixtureData = {
6394
6991
  body: {
6395
- revision: string;
6396
- variables?: {
6397
- [key: string]: JsonValue;
6398
- } | null | undefined;
6992
+ expectedRevision: string;
6993
+ fixture: string;
6399
6994
  };
6400
6995
  path: {
6401
- templateId: TemplateId;
6996
+ id: TemplateId;
6402
6997
  };
6403
6998
  query?: never;
6404
- url: "/v1/template-documents/{templateId}/render";
6999
+ url: "/v1/templates/{id}/workspace/fixtures";
6405
7000
  };
6406
- export type TemplateDocumentsRenderErrors = {
7001
+ export type TemplatesRenderWorkspaceFixtureErrors = {
6407
7002
  /**
6408
7003
  * UnauthorizedError
6409
7004
  */
@@ -6420,37 +7015,121 @@ export type TemplateDocumentsRenderErrors = {
6420
7015
  * ConflictError
6421
7016
  */
6422
7017
  409: ConflictError;
6423
- /**
6424
- * ValidationError
6425
- */
6426
- 422: ValidationError;
6427
7018
  /**
6428
7019
  * InternalError
6429
7020
  */
6430
7021
  500: InternalError;
6431
7022
  };
6432
- export type TemplateDocumentsRenderError = TemplateDocumentsRenderErrors[keyof TemplateDocumentsRenderErrors];
6433
- export type TemplateDocumentsRenderResponses = {
7023
+ export type TemplatesRenderWorkspaceFixtureError = TemplatesRenderWorkspaceFixtureErrors[keyof TemplatesRenderWorkspaceFixtureErrors];
7024
+ export type TemplatesRenderWorkspaceFixtureResponses = {
6434
7025
  /**
6435
7026
  * Success
6436
7027
  */
6437
- 200: Objects3;
7028
+ 200: {
7029
+ projectId: TemplateProjectId;
7030
+ revision: string;
7031
+ entryPath: string;
7032
+ declaration: {
7033
+ codeDigest: string;
7034
+ templateId: string;
7035
+ input: {
7036
+ schema: {
7037
+ [key: string]: JsonValue;
7038
+ };
7039
+ schemaDigest: string;
7040
+ contractDigest: string;
7041
+ };
7042
+ runtime: {
7043
+ now?: number | undefined;
7044
+ randomSeed?: number | undefined;
7045
+ };
7046
+ fixtures: Array<string>;
7047
+ } | null;
7048
+ diagnostics: Array<{
7049
+ code: string;
7050
+ severity: "error" | "warning" | "info";
7051
+ message: string;
7052
+ origins: Array<{
7053
+ fileName: string;
7054
+ lineNumber: number;
7055
+ columnNumber: number;
7056
+ }>;
7057
+ clients?: Array<string> | null | undefined;
7058
+ notes?: string | null | undefined;
7059
+ provenance?: string | null | undefined;
7060
+ fixtures?: Array<string> | null | undefined;
7061
+ occurrences?: Array<Array<{
7062
+ fileName: string;
7063
+ lineNumber: number;
7064
+ columnNumber: number;
7065
+ }>> | null | undefined;
7066
+ compatibility?: {
7067
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
7068
+ title: string;
7069
+ } | null | undefined;
7070
+ }>;
7071
+ incompatibilities: Array<{
7072
+ code: string;
7073
+ severity: "error" | "warning" | "info";
7074
+ message: string;
7075
+ origins: Array<{
7076
+ fileName: string;
7077
+ lineNumber: number;
7078
+ columnNumber: number;
7079
+ }>;
7080
+ clients?: Array<string> | null | undefined;
7081
+ notes?: string | null | undefined;
7082
+ provenance?: string | null | undefined;
7083
+ fixtures?: Array<string> | null | undefined;
7084
+ occurrences?: Array<Array<{
7085
+ fileName: string;
7086
+ lineNumber: number;
7087
+ columnNumber: number;
7088
+ }>> | null | undefined;
7089
+ compatibility?: {
7090
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
7091
+ title: string;
7092
+ } | null | undefined;
7093
+ }>;
7094
+ fixture: string;
7095
+ rendered: {
7096
+ subject: string;
7097
+ preheader?: string | undefined;
7098
+ html: string;
7099
+ text: string;
7100
+ selections: Array<{
7101
+ instancePath: string;
7102
+ tag: string;
7103
+ origins: Array<{
7104
+ fileName: string;
7105
+ lineNumber: number;
7106
+ columnNumber: number;
7107
+ }>;
7108
+ authored: boolean;
7109
+ occurrence: number;
7110
+ occurrences: number;
7111
+ parentPath?: string | undefined;
7112
+ start: number;
7113
+ end: number;
7114
+ }>;
7115
+ } | null;
7116
+ };
6438
7117
  };
6439
- export type TemplateDocumentsRenderResponse = TemplateDocumentsRenderResponses[keyof TemplateDocumentsRenderResponses];
6440
- export type TemplateDocumentsSpamCheckData = {
7118
+ export type TemplatesRenderWorkspaceFixtureResponse = TemplatesRenderWorkspaceFixtureResponses[keyof TemplatesRenderWorkspaceFixtureResponses];
7119
+ export type TemplatesPublishData = {
6441
7120
  body: {
6442
- revision: string;
6443
- variables?: {
6444
- [key: string]: JsonValue;
6445
- } | null | undefined;
7121
+ projectId: TemplateProjectId;
7122
+ commitSha: string;
7123
+ entryPath: string;
7124
+ expectedWorkspaceRevision: string;
6446
7125
  };
6447
7126
  path: {
6448
- templateId: TemplateId;
7127
+ id: TemplateId;
6449
7128
  };
6450
7129
  query?: never;
6451
- url: "/v1/template-documents/{templateId}/spam-check";
7130
+ url: "/v1/templates/{id}/publications";
6452
7131
  };
6453
- export type TemplateDocumentsSpamCheckErrors = {
7132
+ export type TemplatesPublishErrors = {
6454
7133
  /**
6455
7134
  * UnauthorizedError
6456
7135
  */
@@ -6476,47 +7155,140 @@ export type TemplateDocumentsSpamCheckErrors = {
6476
7155
  */
6477
7156
  500: InternalError;
6478
7157
  };
6479
- export type TemplateDocumentsSpamCheckError = TemplateDocumentsSpamCheckErrors[keyof TemplateDocumentsSpamCheckErrors];
6480
- export type TemplateDocumentsSpamCheckResponses = {
7158
+ export type TemplatesPublishError = TemplatesPublishErrors[keyof TemplatesPublishErrors];
7159
+ export type TemplatesPublishResponses = {
6481
7160
  /**
6482
7161
  * Success
6483
7162
  */
6484
- 200: {
6485
- score: number;
6486
- severity: "low" | "medium" | "high";
6487
- issues: Array<{
6488
- rule: string;
6489
- description: string;
6490
- severity: "low" | "medium" | "high";
6491
- score: number;
7163
+ 201: {
7164
+ id: TemplatePublicationId;
7165
+ organizationId: OrganizationId;
7166
+ projectId: TemplateProjectId;
7167
+ templateId: TemplateId;
7168
+ inputContractId: TemplateInputContractId;
7169
+ commitSha: string;
7170
+ treeSha: string;
7171
+ entryPath: string;
7172
+ buildIdentity: string;
7173
+ manifest: {
7174
+ templateKey: string;
7175
+ executable: {
7176
+ codeDigest: string;
7177
+ bytes: number;
7178
+ };
7179
+ input: {
7180
+ schemaDigest: string;
7181
+ contractDigest: string;
7182
+ };
7183
+ environment: {
7184
+ locale: string;
7185
+ timeZone: "UTC";
7186
+ now?: number | undefined;
7187
+ randomSeed?: number | undefined;
7188
+ compiler: string;
7189
+ runtime: string;
7190
+ checker: string;
7191
+ lockKind: "bun" | "npm";
7192
+ lockDigest: string;
7193
+ digest: string;
7194
+ };
7195
+ assets: {
7196
+ base: string;
7197
+ entries: Array<{
7198
+ path: string;
7199
+ fileName: string;
7200
+ digest: string;
7201
+ bytes: number;
7202
+ contentType: string;
7203
+ url: string;
7204
+ }>;
7205
+ };
7206
+ source: {
7207
+ commitSha: string;
7208
+ treeSha: string;
7209
+ entryPath: string;
7210
+ treeDigest: string;
7211
+ };
7212
+ };
7213
+ executable: {
7214
+ key: string;
7215
+ digest: string;
7216
+ };
7217
+ assets: Array<{
7218
+ path: string;
7219
+ fileName: string;
7220
+ digest: string;
7221
+ bytes: number;
7222
+ contentType: string;
7223
+ url: string;
7224
+ }>;
7225
+ warnings: Array<{
7226
+ code: string;
7227
+ severity: "error" | "warning" | "info";
7228
+ message: string;
7229
+ origins: Array<{
7230
+ fileName: string;
7231
+ lineNumber: number;
7232
+ columnNumber: number;
7233
+ }>;
7234
+ clients?: Array<string> | null | undefined;
7235
+ notes?: string | null | undefined;
7236
+ provenance?: string | null | undefined;
7237
+ fixtures?: Array<string> | null | undefined;
7238
+ occurrences?: Array<Array<{
7239
+ fileName: string;
7240
+ lineNumber: number;
7241
+ columnNumber: number;
7242
+ }>> | null | undefined;
7243
+ compatibility?: {
7244
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
7245
+ title: string;
7246
+ } | null | undefined;
7247
+ }>;
7248
+ incompatibilities: Array<{
7249
+ code: string;
7250
+ severity: "error" | "warning" | "info";
7251
+ message: string;
7252
+ origins: Array<{
7253
+ fileName: string;
7254
+ lineNumber: number;
7255
+ columnNumber: number;
7256
+ }>;
7257
+ clients?: Array<string> | null | undefined;
7258
+ notes?: string | null | undefined;
7259
+ provenance?: string | null | undefined;
7260
+ fixtures?: Array<string> | null | undefined;
7261
+ occurrences?: Array<Array<{
7262
+ fileName: string;
7263
+ lineNumber: number;
7264
+ columnNumber: number;
7265
+ }>> | null | undefined;
7266
+ compatibility?: {
7267
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
7268
+ title: string;
7269
+ } | null | undefined;
6492
7270
  }>;
6493
- recommendations: Array<string>;
7271
+ status: string;
7272
+ publishedAt: string;
7273
+ publishedBy: string | null;
7274
+ createdAt: string;
6494
7275
  };
6495
7276
  };
6496
- export type TemplateDocumentsSpamCheckResponse = TemplateDocumentsSpamCheckResponses[keyof TemplateDocumentsSpamCheckResponses];
6497
- export type TemplateDocumentsTestSendData = {
6498
- body: {
6499
- revision: string;
6500
- to: string;
6501
- variables?: {
6502
- [key: string]: JsonValue;
6503
- } | null | undefined;
6504
- };
7277
+ export type TemplatesPublishResponse = TemplatesPublishResponses[keyof TemplatesPublishResponses];
7278
+ export type TemplatesGetPublicationData = {
7279
+ body?: never;
6505
7280
  path: {
6506
- templateId: TemplateId;
7281
+ id: TemplateId;
7282
+ publicationId: TemplatePublicationId;
6507
7283
  };
6508
7284
  query?: never;
6509
- url: "/v1/template-documents/{templateId}/send-test";
7285
+ url: "/v1/templates/{id}/publications/{publicationId}";
6510
7286
  };
6511
- export type TemplateDocumentsTestSendErrors = {
7287
+ export type TemplatesGetPublicationErrors = {
6512
7288
  /**
6513
7289
  * UnauthorizedError
6514
7290
  */
6515
7291
  401: UnauthorizedError;
6516
- /**
6517
- * PaymentRequiredError
6518
- */
6519
- 402: PaymentRequiredError;
6520
7292
  /**
6521
7293
  * ForbiddenError
6522
7294
  */
@@ -6526,115 +7298,228 @@ export type TemplateDocumentsTestSendErrors = {
6526
7298
  */
6527
7299
  404: ResourceNotFoundError;
6528
7300
  /**
6529
- * ConflictError
6530
- */
6531
- 409: ConflictError;
6532
- /**
6533
- * ValidationError
6534
- */
6535
- 422: ValidationError;
6536
- /**
6537
- * InternalError | WebhookEnqueueError
6538
- */
6539
- 500: InternalError | WebhookEnqueueError;
6540
- /**
6541
- * BillingProviderError
7301
+ * InternalError
6542
7302
  */
6543
- 502: BillingProviderError;
7303
+ 500: InternalError;
6544
7304
  };
6545
- export type TemplateDocumentsTestSendError = TemplateDocumentsTestSendErrors[keyof TemplateDocumentsTestSendErrors];
6546
- export type TemplateDocumentsTestSendResponses = {
7305
+ export type TemplatesGetPublicationError = TemplatesGetPublicationErrors[keyof TemplatesGetPublicationErrors];
7306
+ export type TemplatesGetPublicationResponses = {
6547
7307
  /**
6548
7308
  * Success
6549
7309
  */
6550
7310
  200: {
6551
- messageId: string;
7311
+ id: TemplatePublicationId;
7312
+ organizationId: OrganizationId;
7313
+ projectId: TemplateProjectId;
7314
+ templateId: TemplateId;
7315
+ inputContractId: TemplateInputContractId;
7316
+ commitSha: string;
7317
+ treeSha: string;
7318
+ entryPath: string;
7319
+ buildIdentity: string;
7320
+ manifest: {
7321
+ templateKey: string;
7322
+ executable: {
7323
+ codeDigest: string;
7324
+ bytes: number;
7325
+ };
7326
+ input: {
7327
+ schemaDigest: string;
7328
+ contractDigest: string;
7329
+ };
7330
+ environment: {
7331
+ locale: string;
7332
+ timeZone: "UTC";
7333
+ now?: number | undefined;
7334
+ randomSeed?: number | undefined;
7335
+ compiler: string;
7336
+ runtime: string;
7337
+ checker: string;
7338
+ lockKind: "bun" | "npm";
7339
+ lockDigest: string;
7340
+ digest: string;
7341
+ };
7342
+ assets: {
7343
+ base: string;
7344
+ entries: Array<{
7345
+ path: string;
7346
+ fileName: string;
7347
+ digest: string;
7348
+ bytes: number;
7349
+ contentType: string;
7350
+ url: string;
7351
+ }>;
7352
+ };
7353
+ source: {
7354
+ commitSha: string;
7355
+ treeSha: string;
7356
+ entryPath: string;
7357
+ treeDigest: string;
7358
+ };
7359
+ };
7360
+ executable: {
7361
+ key: string;
7362
+ digest: string;
7363
+ };
7364
+ assets: Array<{
7365
+ path: string;
7366
+ fileName: string;
7367
+ digest: string;
7368
+ bytes: number;
7369
+ contentType: string;
7370
+ url: string;
7371
+ }>;
7372
+ warnings: Array<{
7373
+ code: string;
7374
+ severity: "error" | "warning" | "info";
7375
+ message: string;
7376
+ origins: Array<{
7377
+ fileName: string;
7378
+ lineNumber: number;
7379
+ columnNumber: number;
7380
+ }>;
7381
+ clients?: Array<string> | null | undefined;
7382
+ notes?: string | null | undefined;
7383
+ provenance?: string | null | undefined;
7384
+ fixtures?: Array<string> | null | undefined;
7385
+ occurrences?: Array<Array<{
7386
+ fileName: string;
7387
+ lineNumber: number;
7388
+ columnNumber: number;
7389
+ }>> | null | undefined;
7390
+ compatibility?: {
7391
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
7392
+ title: string;
7393
+ } | null | undefined;
7394
+ }>;
7395
+ incompatibilities: Array<{
7396
+ code: string;
7397
+ severity: "error" | "warning" | "info";
7398
+ message: string;
7399
+ origins: Array<{
7400
+ fileName: string;
7401
+ lineNumber: number;
7402
+ columnNumber: number;
7403
+ }>;
7404
+ clients?: Array<string> | null | undefined;
7405
+ notes?: string | null | undefined;
7406
+ provenance?: string | null | undefined;
7407
+ fixtures?: Array<string> | null | undefined;
7408
+ occurrences?: Array<Array<{
7409
+ fileName: string;
7410
+ lineNumber: number;
7411
+ columnNumber: number;
7412
+ }>> | null | undefined;
7413
+ compatibility?: {
7414
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
7415
+ title: string;
7416
+ } | null | undefined;
7417
+ }>;
6552
7418
  status: string;
6553
- rendered: Objects3;
7419
+ publishedAt: string;
7420
+ publishedBy: string | null;
7421
+ createdAt: string;
6554
7422
  };
6555
7423
  };
6556
- export type TemplateDocumentsTestSendResponse = TemplateDocumentsTestSendResponses[keyof TemplateDocumentsTestSendResponses];
6557
- export type TemplateDocumentsSendData = {
6558
- body: {
6559
- revision: string;
6560
- to: Array<{
6561
- address: string;
6562
- name?: string | null | undefined;
6563
- }>;
6564
- variables?: {
6565
- [key: string]: JsonValue;
6566
- } | null | undefined;
6567
- schedule?: string | null | null | undefined;
6568
- };
7424
+ export type TemplatesGetPublicationResponse = TemplatesGetPublicationResponses[keyof TemplatesGetPublicationResponses];
7425
+ export type TemplatesListInputContractsData = {
7426
+ body?: never;
6569
7427
  path: {
6570
- templateId: TemplateId;
7428
+ id: TemplateId;
6571
7429
  };
6572
7430
  query?: never;
6573
- url: "/v1/template-documents/{templateId}/send";
7431
+ url: "/v1/templates/{id}/input-contracts";
6574
7432
  };
6575
- export type TemplateDocumentsSendErrors = {
7433
+ export type TemplatesListInputContractsErrors = {
6576
7434
  /**
6577
7435
  * UnauthorizedError
6578
7436
  */
6579
7437
  401: UnauthorizedError;
6580
7438
  /**
6581
- * PaymentRequiredError
6582
- */
6583
- 402: PaymentRequiredError;
6584
- /**
6585
- * ForbiddenError | FlagDisabledError
7439
+ * ForbiddenError
6586
7440
  */
6587
- 403: ForbiddenError | FlagDisabledError;
7441
+ 403: ForbiddenError;
6588
7442
  /**
6589
7443
  * ResourceNotFoundError
6590
7444
  */
6591
7445
  404: ResourceNotFoundError;
6592
7446
  /**
6593
- * ConflictError
7447
+ * InternalError
6594
7448
  */
6595
- 409: ConflictError;
7449
+ 500: InternalError;
7450
+ };
7451
+ export type TemplatesListInputContractsError = TemplatesListInputContractsErrors[keyof TemplatesListInputContractsErrors];
7452
+ export type TemplatesListInputContractsResponses = {
6596
7453
  /**
6597
- * ValidationError
7454
+ * Success
6598
7455
  */
6599
- 422: ValidationError;
7456
+ 200: Array<{
7457
+ id: TemplateInputContractId;
7458
+ organizationId: OrganizationId;
7459
+ templateId: TemplateId;
7460
+ version: number;
7461
+ validationDigest: string;
7462
+ schema: {
7463
+ [key: string]: JsonValue;
7464
+ };
7465
+ createdAt: string;
7466
+ }>;
7467
+ };
7468
+ export type TemplatesListInputContractsResponse = TemplatesListInputContractsResponses[keyof TemplatesListInputContractsResponses];
7469
+ export type TemplatesGetInputContractData = {
7470
+ body?: never;
7471
+ path: {
7472
+ id: TemplateId;
7473
+ inputContractId: TemplateInputContractId;
7474
+ };
7475
+ query?: never;
7476
+ url: "/v1/templates/{id}/input-contracts/{inputContractId}";
7477
+ };
7478
+ export type TemplatesGetInputContractErrors = {
6600
7479
  /**
6601
- * RateLimitedError
7480
+ * UnauthorizedError
6602
7481
  */
6603
- 429: RateLimitedError;
7482
+ 401: UnauthorizedError;
6604
7483
  /**
6605
- * InternalError | WebhookEnqueueError
7484
+ * ForbiddenError
6606
7485
  */
6607
- 500: InternalError | WebhookEnqueueError;
7486
+ 403: ForbiddenError;
7487
+ /**
7488
+ * ResourceNotFoundError
7489
+ */
7490
+ 404: ResourceNotFoundError;
6608
7491
  /**
6609
- * ExternalServiceError | BillingProviderError
7492
+ * InternalError
6610
7493
  */
6611
- 502: ExternalServiceError | BillingProviderError;
7494
+ 500: InternalError;
6612
7495
  };
6613
- export type TemplateDocumentsSendError = TemplateDocumentsSendErrors[keyof TemplateDocumentsSendErrors];
6614
- export type TemplateDocumentsSendResponses = {
7496
+ export type TemplatesGetInputContractError = TemplatesGetInputContractErrors[keyof TemplatesGetInputContractErrors];
7497
+ export type TemplatesGetInputContractResponses = {
6615
7498
  /**
6616
7499
  * Success
6617
7500
  */
6618
7501
  200: {
6619
- kind: "sent";
6620
- messageId: string;
6621
- acceptedAt: string;
6622
- } | {
6623
- kind: "scheduled";
6624
- scheduledMessageId: string;
6625
- scheduledFor: string;
7502
+ id: TemplateInputContractId;
7503
+ organizationId: OrganizationId;
7504
+ templateId: TemplateId;
7505
+ version: number;
7506
+ validationDigest: string;
7507
+ schema: {
7508
+ [key: string]: JsonValue;
7509
+ };
7510
+ createdAt: string;
6626
7511
  };
6627
7512
  };
6628
- export type TemplateDocumentsSendResponse = TemplateDocumentsSendResponses[keyof TemplateDocumentsSendResponses];
6629
- export type TemplateDocumentsVersionsData = {
7513
+ export type TemplatesGetInputContractResponse = TemplatesGetInputContractResponses[keyof TemplatesGetInputContractResponses];
7514
+ export type TemplatesGetGitRepositoryData = {
6630
7515
  body?: never;
6631
7516
  path: {
6632
- templateId: TemplateId;
7517
+ id: TemplateId;
6633
7518
  };
6634
7519
  query?: never;
6635
- url: "/v1/template-documents/{templateId}/versions";
7520
+ url: "/v1/templates/{id}/repository";
6636
7521
  };
6637
- export type TemplateDocumentsVersionsErrors = {
7522
+ export type TemplatesGetGitRepositoryErrors = {
6638
7523
  /**
6639
7524
  * UnauthorizedError
6640
7525
  */
@@ -6651,46 +7536,33 @@ export type TemplateDocumentsVersionsErrors = {
6651
7536
  * ConflictError
6652
7537
  */
6653
7538
  409: ConflictError;
6654
- /**
6655
- * ValidationError
6656
- */
6657
- 422: ValidationError;
6658
7539
  /**
6659
7540
  * InternalError
6660
7541
  */
6661
7542
  500: InternalError;
6662
7543
  };
6663
- export type TemplateDocumentsVersionsError = TemplateDocumentsVersionsErrors[keyof TemplateDocumentsVersionsErrors];
6664
- export type TemplateDocumentsVersionsResponses = {
7544
+ export type TemplatesGetGitRepositoryError = TemplatesGetGitRepositoryErrors[keyof TemplatesGetGitRepositoryErrors];
7545
+ export type TemplatesGetGitRepositoryResponses = {
6665
7546
  /**
6666
7547
  * Success
6667
7548
  */
6668
7549
  200: {
6669
- versions: Array<{
6670
- versionId: TemplateSourceVersionId;
6671
- version: number;
6672
- status: string;
6673
- isCurrent: boolean;
6674
- materializationId: string;
6675
- documentRevision: string;
6676
- sourceDigest: string;
6677
- compilerVersion: string;
6678
- publishedAt: string | null;
6679
- archivedAt: string | null;
6680
- createdAt: string;
6681
- }>;
7550
+ remote: string;
7551
+ defaultBranch: string;
6682
7552
  };
6683
7553
  };
6684
- export type TemplateDocumentsVersionsResponse = TemplateDocumentsVersionsResponses[keyof TemplateDocumentsVersionsResponses];
6685
- export type TemplateDocumentsPublishData = {
6686
- body?: never;
7554
+ export type TemplatesGetGitRepositoryResponse = TemplatesGetGitRepositoryResponses[keyof TemplatesGetGitRepositoryResponses];
7555
+ export type TemplatesIssueGitCredentialData = {
7556
+ body: {
7557
+ scope: "read" | "write";
7558
+ };
6687
7559
  path: {
6688
- templateId: TemplateId;
7560
+ id: TemplateId;
6689
7561
  };
6690
7562
  query?: never;
6691
- url: "/v1/template-documents/{templateId}/publish";
7563
+ url: "/v1/templates/{id}/repository/credentials";
6692
7564
  };
6693
- export type TemplateDocumentsPublishErrors = {
7565
+ export type TemplatesIssueGitCredentialErrors = {
6694
7566
  /**
6695
7567
  * UnauthorizedError
6696
7568
  */
@@ -6707,32 +7579,45 @@ export type TemplateDocumentsPublishErrors = {
6707
7579
  * ConflictError
6708
7580
  */
6709
7581
  409: ConflictError;
6710
- /**
6711
- * ValidationError
6712
- */
6713
- 422: ValidationError;
6714
7582
  /**
6715
7583
  * InternalError
6716
7584
  */
6717
7585
  500: InternalError;
6718
7586
  };
6719
- export type TemplateDocumentsPublishError = TemplateDocumentsPublishErrors[keyof TemplateDocumentsPublishErrors];
6720
- export type TemplateDocumentsPublishResponses = {
7587
+ export type TemplatesIssueGitCredentialError = TemplatesIssueGitCredentialErrors[keyof TemplatesIssueGitCredentialErrors];
7588
+ export type TemplatesIssueGitCredentialResponses = {
6721
7589
  /**
6722
7590
  * Success
6723
7591
  */
6724
- 200: Objects4;
7592
+ 200: {
7593
+ remote: string;
7594
+ username: "x-access-token";
7595
+ password: string;
7596
+ expiresAt: string;
7597
+ };
6725
7598
  };
6726
- export type TemplateDocumentsPublishResponse = TemplateDocumentsPublishResponses[keyof TemplateDocumentsPublishResponses];
6727
- export type TemplateDocumentsUnpublishData = {
6728
- body?: never;
7599
+ export type TemplatesIssueGitCredentialResponse = TemplatesIssueGitCredentialResponses[keyof TemplatesIssueGitCredentialResponses];
7600
+ export type TemplatesAttachWorkspaceResourceData = {
7601
+ body: {
7602
+ expectedRevision: string;
7603
+ resource: {
7604
+ resourceId: string;
7605
+ name: string;
7606
+ files: Array<{
7607
+ path: string;
7608
+ mediaType: string;
7609
+ contentBase64: string;
7610
+ }>;
7611
+ };
7612
+ idempotencyKey: string;
7613
+ };
6729
7614
  path: {
6730
- templateId: TemplateId;
7615
+ id: TemplateId;
6731
7616
  };
6732
7617
  query?: never;
6733
- url: "/v1/template-documents/{templateId}/unpublish";
7618
+ url: "/v1/templates/{id}/workspace/resources";
6734
7619
  };
6735
- export type TemplateDocumentsUnpublishErrors = {
7620
+ export type TemplatesAttachWorkspaceResourceErrors = {
6736
7621
  /**
6737
7622
  * UnauthorizedError
6738
7623
  */
@@ -6749,35 +7634,107 @@ export type TemplateDocumentsUnpublishErrors = {
6749
7634
  * ConflictError
6750
7635
  */
6751
7636
  409: ConflictError;
6752
- /**
6753
- * ValidationError
6754
- */
6755
- 422: ValidationError;
6756
7637
  /**
6757
7638
  * InternalError
6758
7639
  */
6759
7640
  500: InternalError;
6760
7641
  };
6761
- export type TemplateDocumentsUnpublishError = TemplateDocumentsUnpublishErrors[keyof TemplateDocumentsUnpublishErrors];
6762
- export type TemplateDocumentsUnpublishResponses = {
7642
+ export type TemplatesAttachWorkspaceResourceError = TemplatesAttachWorkspaceResourceErrors[keyof TemplatesAttachWorkspaceResourceErrors];
7643
+ export type TemplatesAttachWorkspaceResourceResponses = {
6763
7644
  /**
6764
7645
  * Success
6765
7646
  */
6766
- 200: Objects4;
7647
+ 200: {
7648
+ projectId: TemplateProjectId;
7649
+ organizationId: OrganizationId | null;
7650
+ ownerEpoch: number;
7651
+ repositoryName: string;
7652
+ defaultBranch: string;
7653
+ baseCommit: string;
7654
+ remoteHead: string;
7655
+ pendingRemoteHead: string | null;
7656
+ revision: string;
7657
+ overlay: {
7658
+ [key: string]: string | null;
7659
+ };
7660
+ assetChanges: Array<{
7661
+ path: string;
7662
+ status: "added" | "modified" | "deleted";
7663
+ }>;
7664
+ conflicts: Array<{
7665
+ path: string;
7666
+ base: string | null;
7667
+ draft: string | null;
7668
+ main: string | null;
7669
+ }>;
7670
+ provenance: {
7671
+ references: Array<{
7672
+ kind: string;
7673
+ digest: string;
7674
+ locator?: string | undefined;
7675
+ }>;
7676
+ };
7677
+ mounts: Array<{
7678
+ kind: "project";
7679
+ root: "/project";
7680
+ access: "read-write";
7681
+ } | {
7682
+ root: string;
7683
+ digest: string;
7684
+ fileCount: number;
7685
+ byteSize: number;
7686
+ kind: "started-from";
7687
+ access: "read-only";
7688
+ templateId: string;
7689
+ slug: string;
7690
+ name: string;
7691
+ } | {
7692
+ root: string;
7693
+ digest: string;
7694
+ fileCount: number;
7695
+ byteSize: number;
7696
+ kind: "resource";
7697
+ access: "read-only";
7698
+ resourceId: string;
7699
+ name: string;
7700
+ } | {
7701
+ root: string;
7702
+ digest: string;
7703
+ fileCount: number;
7704
+ byteSize: number;
7705
+ kind: "library-template";
7706
+ access: "read-only";
7707
+ templateId: string;
7708
+ slug: string;
7709
+ name: string;
7710
+ }>;
7711
+ libraryManifestDigest: string;
7712
+ createdAt: string;
7713
+ updatedAt: string;
7714
+ createdBy: {
7715
+ userId: UserId;
7716
+ via: "api" | "mcp" | "agent";
7717
+ };
7718
+ updatedBy: {
7719
+ userId: UserId;
7720
+ via: "api" | "mcp" | "agent";
7721
+ };
7722
+ };
6767
7723
  };
6768
- export type TemplateDocumentsUnpublishResponse = TemplateDocumentsUnpublishResponses[keyof TemplateDocumentsUnpublishResponses];
6769
- export type TemplateDocumentsRestoreData = {
7724
+ export type TemplatesAttachWorkspaceResourceResponse = TemplatesAttachWorkspaceResourceResponses[keyof TemplatesAttachWorkspaceResourceResponses];
7725
+ export type TemplatesRemoveWorkspaceResourceData = {
6770
7726
  body: {
6771
7727
  expectedRevision: string;
7728
+ idempotencyKey: string;
6772
7729
  };
6773
7730
  path: {
6774
- templateId: TemplateId;
6775
- versionId: TemplateSourceVersionId;
7731
+ id: TemplateId;
7732
+ resourceId: string;
6776
7733
  };
6777
7734
  query?: never;
6778
- url: "/v1/template-documents/{templateId}/versions/{versionId}/restore";
7735
+ url: "/v1/templates/{id}/workspace/resources/{resourceId}/remove";
6779
7736
  };
6780
- export type TemplateDocumentsRestoreErrors = {
7737
+ export type TemplatesRemoveWorkspaceResourceErrors = {
6781
7738
  /**
6782
7739
  * UnauthorizedError
6783
7740
  */
@@ -6794,23 +7751,94 @@ export type TemplateDocumentsRestoreErrors = {
6794
7751
  * ConflictError
6795
7752
  */
6796
7753
  409: ConflictError;
6797
- /**
6798
- * ValidationError
6799
- */
6800
- 422: ValidationError;
6801
7754
  /**
6802
7755
  * InternalError
6803
7756
  */
6804
7757
  500: InternalError;
6805
7758
  };
6806
- export type TemplateDocumentsRestoreError = TemplateDocumentsRestoreErrors[keyof TemplateDocumentsRestoreErrors];
6807
- export type TemplateDocumentsRestoreResponses = {
7759
+ export type TemplatesRemoveWorkspaceResourceError = TemplatesRemoveWorkspaceResourceErrors[keyof TemplatesRemoveWorkspaceResourceErrors];
7760
+ export type TemplatesRemoveWorkspaceResourceResponses = {
6808
7761
  /**
6809
7762
  * Success
6810
7763
  */
6811
- 200: Objects;
7764
+ 200: {
7765
+ projectId: TemplateProjectId;
7766
+ organizationId: OrganizationId | null;
7767
+ ownerEpoch: number;
7768
+ repositoryName: string;
7769
+ defaultBranch: string;
7770
+ baseCommit: string;
7771
+ remoteHead: string;
7772
+ pendingRemoteHead: string | null;
7773
+ revision: string;
7774
+ overlay: {
7775
+ [key: string]: string | null;
7776
+ };
7777
+ assetChanges: Array<{
7778
+ path: string;
7779
+ status: "added" | "modified" | "deleted";
7780
+ }>;
7781
+ conflicts: Array<{
7782
+ path: string;
7783
+ base: string | null;
7784
+ draft: string | null;
7785
+ main: string | null;
7786
+ }>;
7787
+ provenance: {
7788
+ references: Array<{
7789
+ kind: string;
7790
+ digest: string;
7791
+ locator?: string | undefined;
7792
+ }>;
7793
+ };
7794
+ mounts: Array<{
7795
+ kind: "project";
7796
+ root: "/project";
7797
+ access: "read-write";
7798
+ } | {
7799
+ root: string;
7800
+ digest: string;
7801
+ fileCount: number;
7802
+ byteSize: number;
7803
+ kind: "started-from";
7804
+ access: "read-only";
7805
+ templateId: string;
7806
+ slug: string;
7807
+ name: string;
7808
+ } | {
7809
+ root: string;
7810
+ digest: string;
7811
+ fileCount: number;
7812
+ byteSize: number;
7813
+ kind: "resource";
7814
+ access: "read-only";
7815
+ resourceId: string;
7816
+ name: string;
7817
+ } | {
7818
+ root: string;
7819
+ digest: string;
7820
+ fileCount: number;
7821
+ byteSize: number;
7822
+ kind: "library-template";
7823
+ access: "read-only";
7824
+ templateId: string;
7825
+ slug: string;
7826
+ name: string;
7827
+ }>;
7828
+ libraryManifestDigest: string;
7829
+ createdAt: string;
7830
+ updatedAt: string;
7831
+ createdBy: {
7832
+ userId: UserId;
7833
+ via: "api" | "mcp" | "agent";
7834
+ };
7835
+ updatedBy: {
7836
+ userId: UserId;
7837
+ via: "api" | "mcp" | "agent";
7838
+ };
7839
+ };
6812
7840
  };
6813
- export type TemplateDocumentsRestoreResponse = TemplateDocumentsRestoreResponses[keyof TemplateDocumentsRestoreResponses];
7841
+ export type TemplatesRemoveWorkspaceResourceResponse = TemplatesRemoveWorkspaceResourceResponses[keyof TemplatesRemoveWorkspaceResourceResponses];
6814
7842
  export type DesignGetData = {
6815
7843
  body?: never;
6816
7844
  path?: never;
@@ -6913,7 +7941,7 @@ export type WebhooksCreateData = {
6913
7941
  name: string;
6914
7942
  url: string;
6915
7943
  eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated">;
6916
- channels?: Array<"sms" | "whatsapp" | "email"> | null | undefined;
7944
+ channels?: Array<"email"> | null | undefined;
6917
7945
  headers?: {
6918
7946
  [key: string]: string;
6919
7947
  } | null | undefined;
@@ -6940,6 +7968,10 @@ export type WebhooksCreateErrors = {
6940
7968
  * ConflictError
6941
7969
  */
6942
7970
  409: ConflictError;
7971
+ /**
7972
+ * ValidationError
7973
+ */
7974
+ 422: ValidationError;
6943
7975
  /**
6944
7976
  * InternalError
6945
7977
  */
@@ -7037,7 +8069,7 @@ export type WebhooksUpdateData = {
7037
8069
  name?: string | null | undefined;
7038
8070
  url?: string | null | undefined;
7039
8071
  eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated"> | null | undefined;
7040
- channels?: Array<"sms" | "whatsapp" | "email"> | null | null | undefined;
8072
+ channels?: Array<"email"> | null | null | undefined;
7041
8073
  headers?: {
7042
8074
  [key: string]: string;
7043
8075
  } | null | undefined;
@@ -7066,6 +8098,10 @@ export type WebhooksUpdateErrors = {
7066
8098
  * ConflictError
7067
8099
  */
7068
8100
  409: ConflictError;
8101
+ /**
8102
+ * ValidationError
8103
+ */
8104
+ 422: ValidationError;
7069
8105
  /**
7070
8106
  * InternalError
7071
8107
  */
@@ -7176,7 +8212,6 @@ export type WebhooksGetLogsResponses = {
7176
8212
  responseHeaders: {
7177
8213
  [key: string]: string;
7178
8214
  } | null;
7179
- responseBody: string | null;
7180
8215
  durationMs: number | null;
7181
8216
  errorCode: string | null;
7182
8217
  errorMessage: string | null;
@@ -7467,9 +8502,7 @@ export type OrganizationsGetUsageResponses = {
7467
8502
  usage: {
7468
8503
  periodStart: string;
7469
8504
  periodEnd: string;
7470
- smsCount: number;
7471
8505
  emailCount: number;
7472
- whatsappCount: number;
7473
8506
  totalMessages: number;
7474
8507
  };
7475
8508
  billing: {
@@ -7625,6 +8658,10 @@ export type ApiKeysCreateErrors = {
7625
8658
  * ResourceNotFoundError
7626
8659
  */
7627
8660
  404: ResourceNotFoundError;
8661
+ /**
8662
+ * ValidationError
8663
+ */
8664
+ 422: ValidationError;
7628
8665
  /**
7629
8666
  * InternalError
7630
8667
  */
@@ -7772,6 +8809,10 @@ export type ApiKeysRotateErrors = {
7772
8809
  * ResourceNotFoundError
7773
8810
  */
7774
8811
  404: ResourceNotFoundError;
8812
+ /**
8813
+ * ValidationError
8814
+ */
8815
+ 422: ValidationError;
7775
8816
  /**
7776
8817
  * InternalError
7777
8818
  */