@joai/core 4.5.0 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,4 +1,3 @@
1
- import { n as IHttpService, r as IRequestOptions, t as IAppResponse } from "./types-CWSaEVa7.mjs";
2
1
  import { Warp, WarpActionInput, WarpBrandUrls, WarpChainInfo, WarpChainName, WarpI18nText, WarpLocale, WarpNativeValue, WarpSecret, WarpText, WarpWalletProvider } from "@joai/warps";
3
2
 
4
3
  //#region src/auth/types.d.ts
@@ -24,6 +23,7 @@ declare const getFormsBaseUrl: (env: AppEnv) => "http://forms.joai--api.test:300
24
23
  declare const getDigestBaseUrl: (env: AppEnv) => "http://localhost:3005" | "https://devnet-digests.joai.ai" | "https://testnet-digests.joai.ai" | "https://digests.joai.ai";
25
24
  declare const getStoreBaseUrl: (env: AppEnv) => "http://localhost:3005" | "https://devnet-store.joai.ai" | "https://testnet-store.joai.ai" | "https://store.joai.ai";
26
25
  declare const getAgentsBaseUrl: (env: AppEnv) => "http://localhost:3007" | "https://devnet-agents.joai.ai" | "https://testnet-agents.joai.ai" | "https://agents.joai.ai";
26
+ declare const getMcpServerUrl: (env: AppEnv) => string;
27
27
  declare const getMcpServerAgentUrl: (env: AppEnv, agent: string) => string;
28
28
  declare const getSitesBaseUrl: (env: AppEnv) => "http://sites.joai--api.test:3007" | "https://devnet-sites.joai.ai" | "https://testnet-sites.joai.ai" | "https://sites.joai.ai";
29
29
  declare const getSitesRootDomain: (env: AppEnv) => string;
@@ -43,6 +43,37 @@ declare const JoaiUrls: {
43
43
  readonly PlayStore: "https://play.google.com/store/apps/details?id=ai.joai.app";
44
44
  };
45
45
  //#endregion
46
+ //#region src/http/types.d.ts
47
+ interface IHttpService {
48
+ readonly baseUrl: string;
49
+ readonly authToken: string | null;
50
+ onNetworkError: (error: Error) => void;
51
+ onUnauthorized: (response: IAppResponse<any>) => void;
52
+ onSuccessfulResponse: (response: IAppResponse<any>) => void;
53
+ onMaintenanceMode: (response: IAppResponse<any>) => void;
54
+ get: <T>(url: string, options?: IRequestOptions) => Promise<IAppResponse<T>>;
55
+ post: <T>(url: string, data?: any, options?: IRequestOptions) => Promise<IAppResponse<T>>;
56
+ put: <T>(url: string, data?: any, options?: IRequestOptions) => Promise<IAppResponse<T>>;
57
+ patch: <T>(url: string, data?: any, options?: IRequestOptions) => Promise<IAppResponse<T>>;
58
+ delete: <T>(url: string, options?: IRequestOptions) => Promise<IAppResponse<T>>;
59
+ }
60
+ interface IAppResponse<T> {
61
+ data: T;
62
+ meta?: any;
63
+ body: any;
64
+ errors: any;
65
+ ok: boolean;
66
+ paymentRequired: boolean;
67
+ noContent: boolean;
68
+ original: Response;
69
+ }
70
+ interface IRequestOptions {
71
+ isJson?: boolean;
72
+ headers?: {
73
+ [name: string]: string;
74
+ };
75
+ }
76
+ //#endregion
46
77
  //#region src/http/service.d.ts
47
78
  declare class HttpService implements IHttpService {
48
79
  readonly baseUrl: string;
@@ -148,39 +179,202 @@ type Character = {
148
179
  bio: WarpText | null;
149
180
  };
150
181
  //#endregion
151
- //#region src/flow/types.d.ts
152
- type FlowCategory = 'none' | 'defi' | 'nft' | 'social' | 'devtools' | 'productivity' | 'trading' | 'portfolio';
153
- type FlowStatus = 'draft' | 'published';
154
- type Flow = {
155
- slug: string;
156
- team: Team;
182
+ //#region src/address/enums.d.ts
183
+ declare const AddressTypes: {
184
+ readonly Billing: "billing";
185
+ readonly Shipping: "shipping";
186
+ };
187
+ type AddressType = (typeof AddressTypes)[keyof typeof AddressTypes];
188
+ declare const addressTypeValues: [AddressType, ...AddressType[]];
189
+ //#endregion
190
+ //#region src/address/types.d.ts
191
+ type Address = {
192
+ id: string;
193
+ type: AddressType;
157
194
  name: string;
158
- description: string | null;
159
- category: FlowCategory;
160
- status: FlowStatus;
161
- publishedAt: string | null;
162
- createdAt: string;
163
- updatedAt: string;
164
- steps: FlowStep[];
165
- locales: WarpLocale[];
166
- store: StoreInfo;
167
- screenshots: string[];
195
+ company: string | null;
196
+ addressOne: string;
197
+ addressTwo: string | null;
198
+ city: string;
199
+ state: string | null;
200
+ zipCode: string;
201
+ country: string;
202
+ phone: string | null;
203
+ isDefault: boolean;
204
+ business: boolean;
205
+ vatId: string | null;
206
+ isEU: boolean;
207
+ isEEA: boolean;
168
208
  };
169
- type FlowStep = {
170
- stepId: string;
171
- order: number;
172
- type: 'warp' | 'condition' | 'delay';
173
- warpIdentifier: string | null;
174
- dependsOn: string[] | null;
175
- inputMappings: FlowInputMapping[] | null;
176
- staticInputs: Record<string, any> | null;
177
- condition: Record<string, any> | null;
209
+ type AddressSnapshot = Pick<Address, 'name' | 'company' | 'addressOne' | 'addressTwo' | 'city' | 'state' | 'zipCode' | 'country' | 'phone' | 'business' | 'vatId'>;
210
+ type AddressInput = {
211
+ name: string;
212
+ addressOne: string;
213
+ city: string;
214
+ zipCode: string;
215
+ country: string;
216
+ type?: AddressType;
217
+ company?: string | null;
218
+ addressTwo?: string | null;
219
+ state?: string | null;
220
+ phone?: string | null;
221
+ business?: boolean;
222
+ vatId?: string | null;
178
223
  };
179
- type FlowInputMapping = {
180
- sourceStepId: string;
181
- sourceKey: string;
182
- targetInput: string;
183
- transform?: string;
224
+ type AddressCreatePayload = {
225
+ name: string;
226
+ country: string;
227
+ type?: AddressType;
228
+ email?: string | null;
229
+ company?: string | null;
230
+ addressOne?: string | null;
231
+ addressTwo?: string | null;
232
+ city?: string | null;
233
+ state?: string | null;
234
+ zipCode?: string | null;
235
+ vatId?: string | null;
236
+ phone?: string | null;
237
+ isDefault?: boolean;
238
+ contact?: string;
239
+ team?: string;
240
+ };
241
+ type AddressUpdatePayload = Partial<Omit<AddressCreatePayload, 'contact' | 'team'>>;
242
+ //#endregion
243
+ //#region src/commerce/enums.d.ts
244
+ declare const FulfillmentStatuses: {
245
+ readonly Pending: "pending";
246
+ readonly ReadyForPickup: "ready_for_pickup";
247
+ readonly Shipped: "shipped";
248
+ readonly Delivered: "delivered";
249
+ readonly Cancelled: "cancelled";
250
+ };
251
+ type FulfillmentStatus = (typeof FulfillmentStatuses)[keyof typeof FulfillmentStatuses];
252
+ declare const fulfillmentStatusValues: [FulfillmentStatus, ...FulfillmentStatus[]];
253
+ declare const FulfillmentMethods: {
254
+ readonly Shipping: "shipping";
255
+ readonly Pickup: "pickup";
256
+ };
257
+ type FulfillmentMethod = (typeof FulfillmentMethods)[keyof typeof FulfillmentMethods];
258
+ declare const fulfillmentMethodValues: [FulfillmentMethod, ...FulfillmentMethod[]];
259
+ declare const ReturnStatuses: {
260
+ readonly Requested: "requested";
261
+ readonly Approved: "approved";
262
+ readonly Rejected: "rejected";
263
+ readonly Received: "received";
264
+ readonly Closed: "closed";
265
+ };
266
+ type ReturnStatus = (typeof ReturnStatuses)[keyof typeof ReturnStatuses];
267
+ declare const returnStatusValues: [ReturnStatus, ...ReturnStatus[]];
268
+ declare const ReturnUpdateStatuses: {
269
+ readonly Approved: "approved";
270
+ readonly Rejected: "rejected";
271
+ readonly Received: "received";
272
+ readonly Closed: "closed";
273
+ };
274
+ type ReturnUpdateStatus = (typeof ReturnUpdateStatuses)[keyof typeof ReturnUpdateStatuses];
275
+ declare const returnUpdateStatusValues: [ReturnUpdateStatus, ...ReturnUpdateStatus[]];
276
+ //#endregion
277
+ //#region src/commerce/types.d.ts
278
+ type ShippingRate = {
279
+ id: number;
280
+ name: string;
281
+ price: number;
282
+ fee?: number;
283
+ freeShippingThreshold?: number | null;
284
+ minOrderValue?: number | null;
285
+ maxOrderValue?: number | null;
286
+ minWeight?: number | null;
287
+ maxWeight?: number | null;
288
+ estimatedMinDays?: number | null;
289
+ estimatedMaxDays?: number | null;
290
+ active?: boolean;
291
+ position?: number;
292
+ };
293
+ type CheckoutSnapshot = {
294
+ id: string;
295
+ fulfillmentMethod: FulfillmentMethod;
296
+ totals: {
297
+ subtotal: number;
298
+ shippingFee: number;
299
+ total: number;
300
+ };
301
+ expiresAt: string;
302
+ accessToken?: string | null;
303
+ };
304
+ type GuestBuyer = {
305
+ name: string;
306
+ email: string;
307
+ };
308
+ type CheckoutSnapshotRequest = {
309
+ fulfillmentMethod: FulfillmentMethod;
310
+ items: {
311
+ id: string;
312
+ type: 'product' | 'service' | 'coupon';
313
+ quantity: number;
314
+ }[];
315
+ billingAddressId?: number | null;
316
+ shippingAddressId?: number | null;
317
+ billingAddress?: AddressInput;
318
+ shippingAddress?: AddressInput;
319
+ shippingRateId?: number | null;
320
+ fulfillmentLocationId?: number | null;
321
+ };
322
+ type ShippingZone = {
323
+ id: number;
324
+ name: string;
325
+ countries: string[];
326
+ postalCodeRules: string[] | null;
327
+ active: boolean;
328
+ position: number;
329
+ rates: ShippingRate[];
330
+ };
331
+ type FulfillmentLocation = {
332
+ id: number;
333
+ name: string;
334
+ addressId: number | null;
335
+ address: Address | null;
336
+ instructions: string | null;
337
+ active: boolean;
338
+ };
339
+ type Fulfillment = {
340
+ id: string;
341
+ orderId: number;
342
+ method: FulfillmentMethod;
343
+ status: FulfillmentStatus;
344
+ carrierCode: string | null;
345
+ trackingNumber: string | null;
346
+ trackingUrl: string | null;
347
+ items: {
348
+ orderItemId: number;
349
+ quantity: number;
350
+ }[];
351
+ shippedAt: string | null;
352
+ readyForPickupAt: string | null;
353
+ deliveredAt: string | null;
354
+ };
355
+ type Return = {
356
+ id: string;
357
+ orderId: number;
358
+ status: ReturnStatus;
359
+ reason: string;
360
+ merchantNote: string | null;
361
+ items: {
362
+ orderItemId: number;
363
+ quantity: number;
364
+ condition: string | null;
365
+ }[];
366
+ refundAmount: number | null;
367
+ };
368
+ type SubscriptionDelivery = {
369
+ fulfillmentMethod: FulfillmentMethod | null;
370
+ nextOrderAt: string | null;
371
+ pausedAt: string | null;
372
+ shippingAddress?: AddressSnapshot | null;
373
+ shippingRate?: Pick<ShippingRate, 'name' | 'price'> | null;
374
+ fulfillmentLocation?: {
375
+ name: string;
376
+ instructions: string | null;
377
+ } | null;
184
378
  };
185
379
  //#endregion
186
380
  //#region src/wallet/types.d.ts
@@ -197,22 +391,181 @@ type WalletList = Partial<Record<WarpChainName, {
197
391
  address?: string;
198
392
  }>>;
199
393
  //#endregion
200
- //#region src/user/permissions.d.ts
201
- /** Permission string values — must match joai--api `UserPermission::value`. */
202
- declare const UserPermissions: {
203
- readonly BillingManage: "billing-manage";
204
- readonly TeamManage: "team-manage";
205
- readonly TeamView: "team-view";
206
- readonly TeamMemberInvite: "team-member-invite";
207
- readonly TeamMemberRemove: "team-member-remove";
208
- readonly TeamSecretView: "team-secret-view";
209
- readonly TeamSecretManage: "team-secret-manage";
210
- readonly AgentExecute: "agent-execute";
211
- readonly AgentWalletManage: "agent-wallet-manage";
212
- readonly SwarmCreate: "swarm-create";
394
+ //#region src/json/types.d.ts
395
+ type JsonValue = string | number | boolean | null | JsonValue[] | {
396
+ [key: string]: JsonValue;
213
397
  };
214
- type UserPermission = (typeof UserPermissions)[keyof typeof UserPermissions];
215
- declare const userPermissionValues: [UserPermission, ...UserPermission[]];
398
+ //#endregion
399
+ //#region src/contact/types.d.ts
400
+ type ContactHealth = 'active' | 'lukewarm' | 'cold' | 'stale' | 'unknown';
401
+ type ContactConsentStatus = 'pending' | 'confirmed' | 'superseded' | 'unsubscribed';
402
+ type ContactConsent = {
403
+ id: string;
404
+ purpose: string;
405
+ status: ContactConsentStatus;
406
+ email: string;
407
+ consentText: {
408
+ label?: string | Record<string, string>;
409
+ description?: string | Record<string, string> | null;
410
+ };
411
+ privacyUrl: string | null;
412
+ source: {
413
+ formIdentifier?: string | null;
414
+ formTitle?: string | Record<string, string> | null;
415
+ };
416
+ requestedAt: string;
417
+ confirmedAt: string | null;
418
+ unsubscribedAt: string | null;
419
+ };
420
+ type Contact = {
421
+ id: string;
422
+ name: string;
423
+ wallets: Wallet[];
424
+ email: string | null;
425
+ phone: string | null;
426
+ company: string | null;
427
+ title: string | null;
428
+ birthday: string | null;
429
+ website: string | null;
430
+ location: string | null;
431
+ socials: Record<string, string> | null;
432
+ notes: string | null;
433
+ tags: string[] | null;
434
+ userId: string | null;
435
+ locale?: string | null;
436
+ props?: Record<string, string> | null;
437
+ settings?: {
438
+ marketingOptOut?: boolean;
439
+ } | null;
440
+ consents?: ContactConsent[];
441
+ lastActivityAt?: string | null;
442
+ health?: ContactHealth;
443
+ nextFollowUpAt?: string | null;
444
+ followUpNote?: string | null;
445
+ };
446
+ type ContactActivityType = 'note' | 'call' | 'meeting' | 'task' | 'update' | 'custom' | 'form' | 'loyalty' | 'follow_up';
447
+ type ContactActivityAuthor = {
448
+ name: string;
449
+ imageUrl: string | null;
450
+ };
451
+ type ContactActivity = {
452
+ id: string;
453
+ type: ContactActivityType;
454
+ description: string | null;
455
+ meta: Record<string, JsonValue> | null;
456
+ agentName: string | null;
457
+ createdAt: string;
458
+ author?: ContactActivityAuthor | null;
459
+ };
460
+ type ContactFormData = {
461
+ name?: string;
462
+ email?: string | null;
463
+ phone?: string | null;
464
+ company?: string | null;
465
+ title?: string | null;
466
+ birthday?: string | null;
467
+ website?: string | null;
468
+ location?: string | null;
469
+ socials?: Record<string, string> | null;
470
+ notes?: string | null;
471
+ tags?: string[] | null;
472
+ locale?: string | null;
473
+ props?: Record<string, string> | null;
474
+ settings?: {
475
+ marketingOptOut?: boolean;
476
+ };
477
+ nextFollowUpAt?: string | null;
478
+ followUpNote?: string | null;
479
+ };
480
+ type ContactCreatePayload = ContactFormData & {
481
+ name: string;
482
+ wallets?: WalletList;
483
+ };
484
+ //#endregion
485
+ //#region src/media/types.d.ts
486
+ type AppFileType = 'abi' | 'pdf' | 'image' | 'video' | 'json';
487
+ type AppFile = {
488
+ type: AppFileType;
489
+ original: File;
490
+ };
491
+ type MediaLibraryAttributes = {
492
+ uuid: string;
493
+ order: number;
494
+ name: string;
495
+ custom_properties: {
496
+ [key: string]: JsonValue;
497
+ };
498
+ preview_url: null | string;
499
+ original_url: null | string;
500
+ extension?: string;
501
+ size?: number;
502
+ };
503
+ type MediaMime = 'image/png' | 'image/jpeg' | 'image/gif' | 'image/webp' | 'video/mp4' | 'video/webm' | 'video/quicktime' | 'video/x-msvideo' | 'audio/mpeg' | 'audio/mp3' | 'audio/ogg' | 'audio/wav' | 'audio/webm' | 'audio/aac' | 'audio/m4a' | 'audio/m4b' | 'audio/m4p' | 'audio/m4v' | 'application/pdf' | 'application/json';
504
+ type MediaAspectRatio = 'free' | '1:1' | '16:9' | '9:16' | '4:3' | '3:4';
505
+ type Media = {
506
+ id: string;
507
+ name: string;
508
+ mime: MediaMime;
509
+ url: string;
510
+ library: MediaLibraryAttributes;
511
+ tags?: string[];
512
+ copyright?: string | null;
513
+ aiGenerated?: boolean;
514
+ };
515
+ //#endregion
516
+ //#region src/flow/types.d.ts
517
+ type FlowCategory = 'none' | 'defi' | 'nft' | 'social' | 'devtools' | 'productivity' | 'trading' | 'portfolio';
518
+ type FlowStatus = 'draft' | 'published';
519
+ type Flow = {
520
+ slug: string;
521
+ team: Team;
522
+ name: string;
523
+ description: string | null;
524
+ category: FlowCategory;
525
+ status: FlowStatus;
526
+ publishedAt: string | null;
527
+ createdAt: string;
528
+ updatedAt: string;
529
+ steps: FlowStep[];
530
+ locales: WarpLocale[];
531
+ store: StoreInfo;
532
+ screenshots: string[];
533
+ };
534
+ type FlowStep = {
535
+ stepId: string;
536
+ order: number;
537
+ type: 'warp' | 'condition' | 'delay';
538
+ warpIdentifier: string | null;
539
+ dependsOn: string[] | null;
540
+ inputMappings: FlowInputMapping[] | null;
541
+ staticInputs: Record<string, any> | null;
542
+ condition: Record<string, any> | null;
543
+ };
544
+ type FlowInputMapping = {
545
+ sourceStepId: string;
546
+ sourceKey: string;
547
+ targetInput: string;
548
+ transform?: string;
549
+ };
550
+ //#endregion
551
+ //#region src/user/permissions.d.ts
552
+ /** Permission string values — must match joai--api `UserPermission::value`. */
553
+ declare const UserPermissions: {
554
+ readonly BillingManage: "billing-manage";
555
+ readonly TeamManage: "team-manage";
556
+ readonly TeamView: "team-view";
557
+ readonly ContentEdit: "content-edit";
558
+ readonly ContentPublish: "content-publish";
559
+ readonly TeamMemberInvite: "team-member-invite";
560
+ readonly TeamMemberRemove: "team-member-remove";
561
+ readonly TeamSecretView: "team-secret-view";
562
+ readonly TeamSecretManage: "team-secret-manage";
563
+ readonly AgentExecute: "agent-execute";
564
+ readonly AgentWalletManage: "agent-wallet-manage";
565
+ readonly SwarmCreate: "swarm-create";
566
+ };
567
+ type UserPermission = (typeof UserPermissions)[keyof typeof UserPermissions];
568
+ declare const userPermissionValues: [UserPermission, ...UserPermission[]];
216
569
  declare const hasPermission: (granted: readonly UserPermission[] | undefined, required: UserPermission) => boolean;
217
570
  declare const hasAllPermissions: (granted: readonly UserPermission[] | undefined, required: readonly UserPermission[]) => boolean;
218
571
  declare const hasAnyPermissions: (granted: readonly UserPermission[] | undefined, required: readonly UserPermission[]) => boolean;
@@ -424,498 +777,178 @@ type TeamMeta = {
424
777
  branding?: TeamBrand | null;
425
778
  settings: Record<string, unknown> & {
426
779
  apps?: NativeApp[];
427
- };
428
- };
429
- type TeamPlace = {
430
- provider: 'google';
431
- sourceId: string;
432
- name: string | null;
433
- address: string | null;
434
- location: {
435
- lat: number | null;
436
- lng: number | null;
437
- };
438
- rating?: number | null;
439
- reviewCount?: number | null;
440
- websiteUrl?: string | null;
441
- mapsUrl?: string | null;
442
- businessStatus?: string | null;
443
- };
444
- type Team = {
445
- slug: string;
446
- name: string;
447
- personal: boolean;
448
- category: TeamCategory;
449
- tags?: string[] | null;
450
- description: TranslatableValue | null;
451
- locale: WarpLocale;
452
- timezone: string;
453
- place?: TeamPlace | null;
454
- meta?: TeamMeta;
455
- features?: TeamFeature[];
456
- cover?: string | null;
457
- logo: string | null;
458
- tagline?: TranslatableValue | null;
459
- public: boolean;
460
- createdAt: string;
461
- blueprints?: Blueprint[];
462
- flows?: Flow[];
463
- coupons?: Coupon[];
464
- };
465
- type TeamBrand = {
466
- bg?: string;
467
- fg?: string;
468
- label?: string;
469
- logo?: string;
470
- bankAccountHolder?: string;
471
- bankIban?: string;
472
- bankBic?: string;
473
- invoiceAddress?: string;
474
- invoiceVat?: string;
475
- invoiceCity?: string;
476
- invoiceZip?: string;
477
- invoiceCountry?: string;
478
- };
479
- type TeamPrivate = {
480
- slug: string;
481
- name: string;
482
- personal: boolean;
483
- description: TranslatableValue | null;
484
- tags?: string[] | null;
485
- tagline: TranslatableValue | null;
486
- balance: number;
487
- locale: WarpLocale;
488
- timezone: string;
489
- place?: TeamPlace | null;
490
- logo: string | null;
491
- cover: string | null;
492
- subscription: {
493
- premium: boolean;
494
- lifetime: boolean;
495
- plan: Plan;
496
- provider: PaymentProvider | null;
497
- payer: User | null;
498
- gracePeriod: boolean;
499
- autoRenew: boolean;
500
- cycleEndsAt: string | null;
501
- resetsAt: string | null;
502
- startedAt: string | null;
503
- renewedAt: string | null;
504
- expiresAt: string | null;
505
- };
506
- meta: TeamMeta;
507
- branding: TeamBrand;
508
- category: TeamCategory;
509
- createdAt: string;
510
- justCreated: boolean;
511
- role?: UserRole | null;
512
- permissions?: UserPermission[];
513
- access?: TeamFeatureAccess;
514
- accessCatalog?: TeamAccessCatalog;
515
- };
516
- type ByokProviderConfig = {
517
- apiKey?: string;
518
- accessKey?: string;
519
- secretKey?: string;
520
- };
521
- type ByokProviders = {
522
- openai?: ByokProviderConfig;
523
- anthropic?: ByokProviderConfig;
524
- google?: ByokProviderConfig;
525
- xai?: ByokProviderConfig;
526
- klingai?: ByokProviderConfig;
527
- };
528
- type ByokProviderName = keyof ByokProviders;
529
- type TeamSettings = {
530
- 'extra.messages': number;
531
- 'limit.spending': number | null;
532
- currency: string;
533
- 'extra.usage.enabled'?: boolean;
534
- 'auto.reload.enabled'?: boolean;
535
- 'auto.reload.threshold_cents'?: number | null;
536
- 'auto.reload.amount_cents'?: number | null;
537
- 'llm.provider'?: 'openai' | 'anthropic' | 'google' | 'xai' | null;
538
- 'byok.providers'?: ByokProviders | null;
539
- 'board.auto.enabled'?: boolean;
540
- 'payments.online'?: boolean;
541
- 'payments.coupons'?: boolean;
542
- 'kiosk.enabled'?: boolean;
543
- 'stock.enabled'?: boolean;
544
- branding?: TeamBrand | null;
545
- };
546
- type TeamUsage = Partial<Record<PlanFeature, TeamFeatureUsage>> & {
547
- extraUsageEnabled?: boolean;
548
- currentSpending?: number;
549
- walletCloudUsed?: number;
550
- walletCloudPremiumUsed?: number;
551
- spendingLimit?: number | null;
552
- cycleEndsAt?: string | null;
553
- resetsAt?: string | null;
554
- autoReload?: {
555
- enabled: boolean;
556
- thresholdCents: number | null;
557
- amountCents: number | null;
558
- };
559
- };
560
- type TeamFeatureUsage = {
561
- current: number;
562
- limit: number;
563
- reached?: boolean;
564
- };
565
- type AiCostEntry = {
566
- id: number;
567
- model: string | null;
568
- agent: {
569
- name: string;
570
- uuid: string;
571
- } | null;
572
- inputTokens: number;
573
- outputTokens: number;
574
- totalTokens: number;
575
- costCents: number | null;
576
- createdAt: string;
577
- };
578
- type AiCostsSummary = {
579
- totalCostCents: number;
580
- totalTokens: number;
581
- totalRequests: number;
582
- byModel: Record<string, {
583
- costCents: number;
584
- tokens: number;
585
- count: number;
586
- }>;
587
- };
588
- type AiCostsResponse = {
589
- summary: AiCostsSummary;
590
- usages: {
591
- data: AiCostEntry[];
592
- pagination: {
593
- currentPage: number;
594
- lastPage: number;
595
- perPage: number;
596
- total: number;
597
- };
598
- };
599
- };
600
- //#endregion
601
- //#region src/address/enums.d.ts
602
- declare const AddressTypes: {
603
- readonly Billing: "billing";
604
- readonly Shipping: "shipping";
605
- };
606
- type AddressType = (typeof AddressTypes)[keyof typeof AddressTypes];
607
- declare const addressTypeValues: [AddressType, ...AddressType[]];
608
- //#endregion
609
- //#region src/address/types.d.ts
610
- type Address = {
611
- id: string;
612
- type: AddressType;
613
- name: string;
614
- company: string | null;
615
- addressOne: string;
616
- addressTwo: string | null;
617
- city: string;
618
- state: string | null;
619
- zipCode: string;
620
- country: string;
621
- phone: string | null;
622
- isDefault: boolean;
623
- business: boolean;
624
- vatId: string | null;
625
- isEU: boolean;
626
- isEEA: boolean;
627
- };
628
- type AddressSnapshot = Pick<Address, 'name' | 'company' | 'addressOne' | 'addressTwo' | 'city' | 'state' | 'zipCode' | 'country' | 'phone' | 'business' | 'vatId'>;
629
- type AddressInput = {
630
- name: string;
631
- addressOne: string;
632
- city: string;
633
- zipCode: string;
634
- country: string;
635
- type?: AddressType;
636
- company?: string | null;
637
- addressTwo?: string | null;
638
- state?: string | null;
639
- phone?: string | null;
640
- business?: boolean;
641
- vatId?: string | null;
642
- };
643
- type AddressCreatePayload = {
644
- name: string;
645
- country: string;
646
- type?: AddressType;
647
- email?: string | null;
648
- company?: string | null;
649
- addressOne?: string | null;
650
- addressTwo?: string | null;
651
- city?: string | null;
652
- state?: string | null;
653
- zipCode?: string | null;
654
- vatId?: string | null;
655
- phone?: string | null;
656
- isDefault?: boolean;
657
- contact?: string;
658
- team?: string;
659
- };
660
- type AddressUpdatePayload = Partial<Omit<AddressCreatePayload, 'contact' | 'team'>>;
661
- //#endregion
662
- //#region src/commerce/enums.d.ts
663
- declare const FulfillmentStatuses: {
664
- readonly Pending: "pending";
665
- readonly ReadyForPickup: "ready_for_pickup";
666
- readonly Shipped: "shipped";
667
- readonly Delivered: "delivered";
668
- readonly Cancelled: "cancelled";
669
- };
670
- type FulfillmentStatus = (typeof FulfillmentStatuses)[keyof typeof FulfillmentStatuses];
671
- declare const fulfillmentStatusValues: [FulfillmentStatus, ...FulfillmentStatus[]];
672
- declare const FulfillmentMethods: {
673
- readonly Shipping: "shipping";
674
- readonly Pickup: "pickup";
675
- };
676
- type FulfillmentMethod = (typeof FulfillmentMethods)[keyof typeof FulfillmentMethods];
677
- declare const fulfillmentMethodValues: [FulfillmentMethod, ...FulfillmentMethod[]];
678
- declare const ReturnStatuses: {
679
- readonly Requested: "requested";
680
- readonly Approved: "approved";
681
- readonly Rejected: "rejected";
682
- readonly Received: "received";
683
- readonly Closed: "closed";
684
- };
685
- type ReturnStatus = (typeof ReturnStatuses)[keyof typeof ReturnStatuses];
686
- declare const returnStatusValues: [ReturnStatus, ...ReturnStatus[]];
687
- declare const ReturnUpdateStatuses: {
688
- readonly Approved: "approved";
689
- readonly Rejected: "rejected";
690
- readonly Received: "received";
691
- readonly Closed: "closed";
692
- };
693
- type ReturnUpdateStatus = (typeof ReturnUpdateStatuses)[keyof typeof ReturnUpdateStatuses];
694
- declare const returnUpdateStatusValues: [ReturnUpdateStatus, ...ReturnUpdateStatus[]];
695
- //#endregion
696
- //#region src/commerce/types.d.ts
697
- type ShippingRate = {
698
- id: number;
699
- name: string;
700
- price: number;
701
- fee?: number;
702
- freeShippingThreshold?: number | null;
703
- minOrderValue?: number | null;
704
- maxOrderValue?: number | null;
705
- minWeight?: number | null;
706
- maxWeight?: number | null;
707
- estimatedMinDays?: number | null;
708
- estimatedMaxDays?: number | null;
709
- active?: boolean;
710
- position?: number;
711
- };
712
- type CheckoutSnapshot = {
713
- id: string;
714
- fulfillmentMethod: FulfillmentMethod;
715
- totals: {
716
- subtotal: number;
717
- shippingFee: number;
718
- total: number;
719
- };
720
- expiresAt: string;
721
- accessToken?: string | null;
722
- };
723
- type GuestBuyer = {
724
- name: string;
725
- email: string;
726
- };
727
- type CheckoutSnapshotRequest = {
728
- fulfillmentMethod: FulfillmentMethod;
729
- items: {
730
- id: string;
731
- type: 'product' | 'service' | 'coupon';
732
- quantity: number;
733
- }[];
734
- billingAddressId?: number | null;
735
- shippingAddressId?: number | null;
736
- billingAddress?: AddressInput;
737
- shippingAddress?: AddressInput;
738
- shippingRateId?: number | null;
739
- fulfillmentLocationId?: number | null;
740
- };
741
- type ShippingZone = {
742
- id: number;
743
- name: string;
744
- countries: string[];
745
- postal_code_rules: string[] | null;
746
- active: boolean;
747
- position: number;
748
- rates: ShippingRate[];
749
- };
750
- type FulfillmentLocation = {
751
- id: number;
752
- name: string;
753
- address_id: number | null;
754
- address: Address | null;
755
- instructions: string | null;
756
- active: boolean;
757
- };
758
- type Fulfillment = {
759
- id: string;
760
- orderId: number;
761
- method: FulfillmentMethod;
762
- status: FulfillmentStatus;
763
- carrierCode: string | null;
764
- trackingNumber: string | null;
765
- trackingUrl: string | null;
766
- items: {
767
- orderItemId: number;
768
- quantity: number;
769
- }[];
770
- shippedAt: string | null;
771
- readyForPickupAt: string | null;
772
- deliveredAt: string | null;
773
- };
774
- type Return = {
775
- id: string;
776
- orderId: number;
777
- status: ReturnStatus;
778
- reason: string;
779
- merchantNote: string | null;
780
- items: {
781
- orderItemId: number;
782
- quantity: number;
783
- condition: string | null;
784
- }[];
785
- refundAmount: number | null;
786
- };
787
- type SubscriptionDelivery = {
788
- fulfillmentMethod: FulfillmentMethod | null;
789
- nextOrderAt: string | null;
790
- pausedAt: string | null;
791
- shippingAddress?: AddressSnapshot | null;
792
- shippingRate?: Pick<ShippingRate, 'name' | 'price'> | null;
793
- fulfillmentLocation?: {
794
- name: string;
795
- instructions: string | null;
796
- } | null;
797
- };
798
- //#endregion
799
- //#region src/json/types.d.ts
800
- type JsonValue = string | number | boolean | null | JsonValue[] | {
801
- [key: string]: JsonValue;
802
- };
803
- //#endregion
804
- //#region src/contact/types.d.ts
805
- type ContactHealth = 'active' | 'lukewarm' | 'cold' | 'stale' | 'unknown';
806
- type ContactConsentStatus = 'pending' | 'confirmed' | 'superseded' | 'unsubscribed';
807
- type ContactConsent = {
808
- id: string;
809
- purpose: string;
810
- status: ContactConsentStatus;
811
- email: string;
812
- consentText: {
813
- label?: string | Record<string, string>;
814
- description?: string | Record<string, string> | null;
815
- };
816
- privacyUrl: string | null;
817
- source: {
818
- formIdentifier?: string | null;
819
- formTitle?: string | Record<string, string> | null;
820
- };
821
- requestedAt: string;
822
- confirmedAt: string | null;
823
- unsubscribedAt: string | null;
824
- };
825
- type Contact = {
826
- id: string;
827
- name: string;
828
- wallets: Wallet[];
829
- email: string | null;
830
- phone: string | null;
831
- company: string | null;
832
- title: string | null;
833
- birthday: string | null;
834
- website: string | null;
835
- location: string | null;
836
- socials: Record<string, string> | null;
837
- notes: string | null;
838
- tags: string[] | null;
839
- userId: string | null;
840
- locale?: string | null;
841
- props?: Record<string, string> | null;
842
- settings?: {
843
- marketingOptOut?: boolean;
844
- } | null;
845
- consents?: ContactConsent[];
846
- lastActivityAt?: string | null;
847
- health?: ContactHealth;
848
- nextFollowUpAt?: string | null;
849
- followUpNote?: string | null;
780
+ };
850
781
  };
851
- type ContactActivityType = 'note' | 'call' | 'meeting' | 'task' | 'update' | 'custom' | 'form' | 'loyalty' | 'follow_up';
852
- type ContactActivityAuthor = {
853
- name: string;
854
- imageUrl: string | null;
782
+ type TeamPlace = {
783
+ provider: 'google';
784
+ sourceId: string;
785
+ name: string | null;
786
+ address: string | null;
787
+ location: {
788
+ lat: number | null;
789
+ lng: number | null;
790
+ };
791
+ rating?: number | null;
792
+ reviewCount?: number | null;
793
+ websiteUrl?: string | null;
794
+ mapsUrl?: string | null;
795
+ businessStatus?: string | null;
855
796
  };
856
- type ContactActivity = {
857
- id: string;
858
- type: ContactActivityType;
859
- description: string | null;
860
- meta: Record<string, JsonValue> | null;
861
- agentName: string | null;
797
+ type Team = {
798
+ slug: string;
799
+ name: string;
800
+ personal: boolean;
801
+ category: TeamCategory;
802
+ tags?: string[] | null;
803
+ description: TranslatableValue | null;
804
+ locale: WarpLocale;
805
+ timezone: string;
806
+ place?: TeamPlace | null;
807
+ meta?: TeamMeta;
808
+ features?: TeamFeature[];
809
+ cover?: string | null;
810
+ logo: string | null;
811
+ tagline?: TranslatableValue | null;
812
+ public: boolean;
862
813
  createdAt: string;
863
- author?: ContactActivityAuthor | null;
814
+ blueprints?: Blueprint[];
815
+ flows?: Flow[];
816
+ coupons?: Coupon[];
864
817
  };
865
- type ContactFormData = {
866
- name?: string;
867
- email?: string | null;
868
- phone?: string | null;
869
- company?: string | null;
870
- title?: string | null;
871
- birthday?: string | null;
872
- website?: string | null;
873
- location?: string | null;
874
- socials?: Record<string, string> | null;
875
- notes?: string | null;
818
+ type TeamBrand = {
819
+ bg?: string;
820
+ fg?: string;
821
+ label?: string;
822
+ logo?: string;
823
+ bankAccountHolder?: string;
824
+ bankIban?: string;
825
+ bankBic?: string;
826
+ invoiceAddress?: string;
827
+ invoiceVat?: string;
828
+ invoiceCity?: string;
829
+ invoiceZip?: string;
830
+ invoiceCountry?: string;
831
+ };
832
+ type TeamPrivate = {
833
+ slug: string;
834
+ name: string;
835
+ personal: boolean;
836
+ description: TranslatableValue | null;
876
837
  tags?: string[] | null;
877
- locale?: string | null;
878
- props?: Record<string, string> | null;
879
- settings?: {
880
- marketingOptOut?: boolean;
838
+ tagline: TranslatableValue | null;
839
+ balance: number;
840
+ locale: WarpLocale;
841
+ timezone: string;
842
+ place?: TeamPlace | null;
843
+ logo: string | null;
844
+ cover: string | null;
845
+ subscription: {
846
+ premium: boolean;
847
+ lifetime: boolean;
848
+ plan: Plan;
849
+ provider: PaymentProvider | null;
850
+ payer: User | null;
851
+ gracePeriod: boolean;
852
+ autoRenew: boolean;
853
+ cycleEndsAt: string | null;
854
+ resetsAt: string | null;
855
+ startedAt: string | null;
856
+ renewedAt: string | null;
857
+ expiresAt: string | null;
881
858
  };
882
- nextFollowUpAt?: string | null;
883
- followUpNote?: string | null;
859
+ meta: TeamMeta;
860
+ branding: TeamBrand;
861
+ category: TeamCategory;
862
+ createdAt: string;
863
+ justCreated: boolean;
864
+ role?: UserRole | null;
865
+ permissions?: UserPermission[];
866
+ access?: TeamFeatureAccess;
867
+ accessCatalog?: TeamAccessCatalog;
884
868
  };
885
- type ContactCreatePayload = ContactFormData & {
886
- name: string;
887
- wallets?: WalletList;
869
+ type ByokProviderConfig = {
870
+ apiKey?: string;
871
+ accessKey?: string;
872
+ secretKey?: string;
888
873
  };
889
- //#endregion
890
- //#region src/media/types.d.ts
891
- type AppFileType = 'abi' | 'pdf' | 'image' | 'video' | 'json';
892
- type AppFile = {
893
- type: AppFileType;
894
- original: File;
874
+ type ByokProviders = {
875
+ openai?: ByokProviderConfig;
876
+ anthropic?: ByokProviderConfig;
877
+ google?: ByokProviderConfig;
878
+ xai?: ByokProviderConfig;
879
+ klingai?: ByokProviderConfig;
895
880
  };
896
- type MediaLibraryAttributes = {
897
- uuid: string;
898
- order: number;
899
- name: string;
900
- custom_properties: {
901
- [key: string]: JsonValue;
881
+ type ByokProviderName = keyof ByokProviders;
882
+ type TeamSettings = {
883
+ 'extra.messages': number;
884
+ 'limit.spending': number | null;
885
+ currency: string;
886
+ 'extra.usage.enabled'?: boolean;
887
+ 'auto.reload.enabled'?: boolean;
888
+ 'auto.reload.threshold_cents'?: number | null;
889
+ 'auto.reload.amount_cents'?: number | null;
890
+ 'llm.provider'?: 'openai' | 'anthropic' | 'google' | 'xai' | null;
891
+ 'byok.providers'?: ByokProviders | null;
892
+ 'board.auto.enabled'?: boolean;
893
+ 'payments.online'?: boolean;
894
+ 'payments.coupons'?: boolean;
895
+ 'kiosk.enabled'?: boolean;
896
+ 'stock.enabled'?: boolean;
897
+ branding?: TeamBrand | null;
898
+ };
899
+ type TeamUsage = Partial<Record<PlanFeature, TeamFeatureUsage>> & {
900
+ extraUsageEnabled?: boolean;
901
+ currentSpending?: number;
902
+ walletCloudUsed?: number;
903
+ walletCloudPremiumUsed?: number;
904
+ spendingLimit?: number | null;
905
+ cycleEndsAt?: string | null;
906
+ resetsAt?: string | null;
907
+ autoReload?: {
908
+ enabled: boolean;
909
+ thresholdCents: number | null;
910
+ amountCents: number | null;
902
911
  };
903
- preview_url: null | string;
904
- original_url: null | string;
905
- extension?: string;
906
- size?: number;
907
912
  };
908
- type MediaMime = 'image/png' | 'image/jpeg' | 'image/gif' | 'image/webp' | 'video/mp4' | 'video/webm' | 'video/quicktime' | 'video/x-msvideo' | 'audio/mpeg' | 'audio/mp3' | 'audio/ogg' | 'audio/wav' | 'audio/webm' | 'audio/aac' | 'audio/m4a' | 'audio/m4b' | 'audio/m4p' | 'audio/m4v' | 'application/pdf' | 'application/json';
909
- type MediaAspectRatio = 'free' | '1:1' | '16:9' | '9:16' | '4:3' | '3:4';
910
- type Media = {
911
- id: string;
912
- name: string;
913
- mime: MediaMime;
914
- url: string;
915
- library: MediaLibraryAttributes;
916
- tags?: string[];
917
- copyright?: string | null;
918
- aiGenerated?: boolean;
913
+ type TeamFeatureUsage = {
914
+ current: number;
915
+ limit: number;
916
+ reached?: boolean;
917
+ };
918
+ type AiCostEntry = {
919
+ id: number;
920
+ model: string | null;
921
+ agent: {
922
+ name: string;
923
+ uuid: string;
924
+ } | null;
925
+ inputTokens: number;
926
+ outputTokens: number;
927
+ totalTokens: number;
928
+ costCents: number | null;
929
+ createdAt: string;
930
+ };
931
+ type AiCostsSummary = {
932
+ totalCostCents: number;
933
+ totalTokens: number;
934
+ totalRequests: number;
935
+ byModel: Record<string, {
936
+ costCents: number;
937
+ tokens: number;
938
+ count: number;
939
+ }>;
940
+ };
941
+ type AiCostsResponse = {
942
+ summary: AiCostsSummary;
943
+ usages: {
944
+ data: AiCostEntry[];
945
+ pagination: {
946
+ currentPage: number;
947
+ lastPage: number;
948
+ perPage: number;
949
+ total: number;
950
+ };
951
+ };
919
952
  };
920
953
  //#endregion
921
954
  //#region src/billing/types.d.ts
@@ -1176,7 +1209,7 @@ type Order = {
1176
1209
  coupon?: Coupon | null;
1177
1210
  plan: Plan | null;
1178
1211
  user: UserPrivate | null;
1179
- team: TeamPrivate | null;
1212
+ team: Team | TeamPrivate | null;
1180
1213
  isSubscription: boolean;
1181
1214
  };
1182
1215
  type CartItem = {
@@ -1429,6 +1462,7 @@ type AgentSimple = {
1429
1462
  team?: {
1430
1463
  slug: string;
1431
1464
  } | null;
1465
+ settings?: Pick<AgentSettings, 'auto'>;
1432
1466
  };
1433
1467
  type AgentWalletMode = 'local' | 'cloud' | 'external';
1434
1468
  type AgentEngine = 'cortex' | 'openclaw';
@@ -2118,6 +2152,66 @@ type AppointmentRequest = {
2118
2152
  createdAt: string;
2119
2153
  };
2120
2154
  //#endregion
2155
+ //#region src/content/types.d.ts
2156
+ type ContentStatus = 'draft' | 'published' | 'archived';
2157
+ type ContentFieldType = 'text' | 'richText' | 'number' | 'boolean' | 'url' | 'image' | 'media' | 'list' | 'object' | 'reference';
2158
+ type ContentField = {
2159
+ key: string;
2160
+ type: ContentFieldType;
2161
+ label?: string;
2162
+ required?: boolean;
2163
+ };
2164
+ type ContentDefinition = {
2165
+ fields: ContentField[];
2166
+ };
2167
+ type ContentValue = string | number | boolean | null | ContentValue[] | {
2168
+ [key: string]: ContentValue;
2169
+ };
2170
+ type ContentEntry = {
2171
+ key: string;
2172
+ value: ContentValue;
2173
+ updatedAt: string;
2174
+ };
2175
+ type ContentVersion = {
2176
+ id: string;
2177
+ number: number;
2178
+ status: ContentStatus;
2179
+ entries: ContentEntry[];
2180
+ snapshotHash: string;
2181
+ origin: string;
2182
+ createdAt: string;
2183
+ updatedAt: string;
2184
+ publishedAt: string | null;
2185
+ };
2186
+ type Content = {
2187
+ id: string;
2188
+ name: string;
2189
+ slug: string;
2190
+ schema: string | null;
2191
+ definition: ContentDefinition;
2192
+ metadata: Record<string, ContentValue>;
2193
+ version: ContentVersion | null;
2194
+ createdAt: string;
2195
+ updatedAt: string;
2196
+ };
2197
+ type ContentPatch = {
2198
+ key: string;
2199
+ value: ContentValue;
2200
+ };
2201
+ type CreateContentInput = {
2202
+ team: string;
2203
+ name: string;
2204
+ slug: string;
2205
+ schema?: string | null;
2206
+ definition: ContentDefinition;
2207
+ metadata?: Record<string, ContentValue>;
2208
+ };
2209
+ type PatchContentInput = {
2210
+ expectedVersion: number;
2211
+ patches: ContentPatch[];
2212
+ origin?: 'api' | 'inlineEditor' | 'joai' | 'mcp';
2213
+ };
2214
+ //#endregion
2121
2215
  //#region src/commerce/helpers.d.ts
2122
2216
  type CartLine = {
2123
2217
  price: number;
@@ -2581,10 +2675,15 @@ type AppSetupTarget = {
2581
2675
  appSlug: string;
2582
2676
  mcpUrl: string;
2583
2677
  };
2678
+ declare const UNIFIED_MCP_SERVER_NAME = "joai";
2679
+ declare const isUnifiedMcpUrl: (mcpUrl: string) => boolean;
2584
2680
  declare const getAgentSetupPromptUrl: (env: AppEnv) => string;
2585
2681
  declare const buildAgentSetupClipboardText: (env: AppEnv, target: AgentSetupTarget) => string;
2586
2682
  declare const buildAppSetupClipboardText: (env: AppEnv, target: AppSetupTarget) => string;
2587
2683
  declare const createCursorMcpInstallLink: (mcpServerUrl: string, serverName: string) => string;
2684
+ /** Default owner/connect MCP URL. Optional agent UUID soft-prefills OAuth via `?agent=`. */
2685
+ declare const resolveConnectMcpUrl: (env: AppEnv, mcpEndpoint?: string | null, preferredAgentUuid?: string | null) => string;
2686
+ /** Agent-scoped MCP URL for public/direct addressing (Agent0, x402, marketplace). */
2588
2687
  declare const resolveAgentMcpUrl: (env: AppEnv, agentUuid: string, mcpEndpoint?: string | null) => string;
2589
2688
  declare const slugifyMcpSegment: (value: string) => string;
2590
2689
  declare const buildMcpServerName: (slug: string, teamName?: string) => string;
@@ -3746,7 +3845,7 @@ type SegmentGroup = {
3746
3845
  type Segment = {
3747
3846
  id: string;
3748
3847
  name: string;
3749
- conditions: SegmentGroup[];
3848
+ conditions: SegmentGroup[] | SegmentCondition[];
3750
3849
  count: number;
3751
3850
  campaignsCount: number;
3752
3851
  createdAt: string;
@@ -3769,11 +3868,20 @@ type SegmentCountResult = {
3769
3868
  type CampaignChannel = 'email' | 'whatsapp' | 'sms' | 'push';
3770
3869
  type CampaignStatus = 'draft' | 'pending' | 'approved' | 'rejected' | 'sending' | 'completed' | 'failed';
3771
3870
  type CampaignCategory = 'MARKETING' | 'UTILITY' | 'AUTHENTICATION';
3871
+ type CampaignSkipReason = 'pending_consent' | 'opted_out' | 'missing_channel' | 'approval_skipped';
3872
+ type CampaignSkipReasons = Record<CampaignSkipReason, number>;
3873
+ type CampaignAudiencePreview = {
3874
+ total: number;
3875
+ sendable: number;
3876
+ willSkip: number;
3877
+ reasons: CampaignSkipReasons;
3878
+ };
3772
3879
  type CampaignApproval = {
3773
3880
  language: string | null;
3774
3881
  category: CampaignCategory | null;
3775
3882
  placeholders: string[];
3776
3883
  templateParams: Record<string, string>;
3884
+ aiParams: Record<string, string>;
3777
3885
  externalStatus: string | null;
3778
3886
  rejectionReason: string | null;
3779
3887
  };
@@ -3784,6 +3892,7 @@ type Campaign = {
3784
3892
  subject: string | null;
3785
3893
  content: string;
3786
3894
  approval: CampaignApproval;
3895
+ agent: AgentSimple | null;
3787
3896
  tags: string[];
3788
3897
  status: CampaignStatus;
3789
3898
  totalCount: number;
@@ -3791,6 +3900,7 @@ type Campaign = {
3791
3900
  sentCount: number;
3792
3901
  failedCount: number;
3793
3902
  skippedCount: number;
3903
+ skipReasons?: CampaignSkipReasons;
3794
3904
  createdAt: string;
3795
3905
  updatedAt: string;
3796
3906
  };
@@ -3802,6 +3912,8 @@ type CampaignCreatePayload = {
3802
3912
  language?: string;
3803
3913
  category?: CampaignCategory;
3804
3914
  templateParams?: Record<string, string>;
3915
+ aiParams?: Record<string, string>;
3916
+ agentId?: string;
3805
3917
  tags?: string[];
3806
3918
  contactIds?: string[];
3807
3919
  segmentId?: string;
@@ -3813,6 +3925,16 @@ type CampaignUpdatePayload = {
3813
3925
  language?: string;
3814
3926
  category?: CampaignCategory;
3815
3927
  templateParams?: Record<string, string>;
3928
+ aiParams?: Record<string, string>;
3929
+ agentId?: string;
3930
+ };
3931
+ type CampaignAudiencePreviewPayload = {
3932
+ campaignId: string;
3933
+ } | {
3934
+ channel: CampaignChannel;
3935
+ tags?: string[];
3936
+ contactIds?: string[];
3937
+ segmentId?: string;
3816
3938
  };
3817
3939
  type CampaignStats = {
3818
3940
  totalCampaigns: number;
@@ -4134,4 +4256,4 @@ type CliSessionStatus = {
4134
4256
  meta: CliSessionMeta | null;
4135
4257
  };
4136
4258
  //#endregion
4137
- export { Achievement, Address, AddressCreatePayload, AddressInput, AddressSnapshot, type AddressType, AddressTypes, AddressUpdatePayload, Affiliate, AffiliateStatus, AffiliateTier, AffiliateTierName, Agent, AgentActionHistoryEntry, AgentCharacter, AgentDelegatable, AgentEngine, AgentExecuteHandler, AgentExecuteOptions, AgentGender, AgentMessageMeta, AgentMessageOptions, AgentPrivate, AgentSettings, AgentSetupTarget, AgentSimple, AgentToolingAccess, AgentWalletMode, AggregatedRoute, AiCostEntry, AiCostsResponse, AiCostsSummary, Alert, ApiToken, AppAccessRule, AppEnv, AppFile, AppFileType, AppIngestion, AppSetupTarget, AppendKvEntryResult, AppointmentAvailability, AppointmentAvailabilityService, AppointmentAvailabilitySlot, AppointmentBooking, AppointmentBookingContext, AppointmentPolicy, AppointmentPolicySync, AppointmentRequest, AppointmentSlot, AuthUser, BillingManageAccess, Blueprint, BlueprintOnboardingStep, BlueprintRedirect, BlueprintSettings, BlueprintShortcut, BlueprintTask, BlueprintTeam, BoardSummaryViewable, BookmarkEntry, BrandBackend, BrandIntegration, BrandIntegrationAction, BrandIntegrationProvider, BrandSearchHit, BrandSiteConfig, BrandSourceConfig, Budget, ByokProviderConfig, ByokProviderName, ByokProviders, CalendarProvider, CalendarStatus, Campaign, CampaignApproval, CampaignCategory, CampaignChannel, CampaignCreatePayload, CampaignStats, CampaignStatus, CampaignUpdatePayload, Card, Cart, CartItem, CartLine, Challenge, Challenges, ChangelogEntry, Character, ChatClientAction, ChatClientThought, ChatStreamData, ChatStreamEventType, CheckoutSnapshot, CheckoutSnapshotRequest, CliSessionMeta, CliSessionStatus, CommissionAgreement, Configuration, Contact, ContactActivity, ContactActivityAuthor, ContactActivityType, ContactConsent, ContactConsentStatus, ContactCreatePayload, ContactFormData, ContactHealth, ContactViewable, Contract, ContractCategoryDisplayNames, ContractCategoryName, ContractCodeMetadata, ContractEntity, ContractOnNetwork, ContractVersion, ContractsAddressConfig, CortexExecuteOptions, Coupon, CouponCondition, CouponRestrictedItem, CouponRestrictedItemType, CreateHookPayload, CreateInboundHookPayload, CreateInternalHookPayload, CreateKvFieldPayload, CreateWarpLinkedHookPayload, CreateWebHookPayload, DefaultCodeMetadata, DefaultInviteTeamRole, DemoFlow, DemoMessage, Desk, DeskItem, DeskItemRole, Document, EarnResponse, Earning, Element, ElementSpec, ElementType, ElementVariation, EmailProvider, EmbedStatus, EncryptionStatus, Entity, EntityDirectExecuteRequest, EntityProposable, EntitySignable, EntityTemplate, Experience, FileInfo, FileMetadata, Flow, FlowCategory, FlowInputMapping, FlowStatus, FlowStep, Fulfillment, FulfillmentLocation, type FulfillmentMethod, FulfillmentMethods, type FulfillmentStatus, FulfillmentStatuses, GamificationData, GamificationEventType, Goal, GoalCreatePayload, GoalPriority, GoalProgressViewable, GoalStatus, GuestBuyer, HintOptions, HintPosition, Hook, HookSample, HookTrigger, HookTriggerCondition, HookTriggerInput, HttpService, IAppResponse, IHttpService, IRequestOptions, IngestionSourceType, IngestionStatus, Inquiry, InquiryStatus, InquiryType, Integration, IntegrationConnectionDetails, IntegrationDetails, IntegrationMeta, IntegrationType, Intent, InviteableTeamRoles, Item, ItemCreatePayload, ItemExecutionStatus, ItemPriority, ItemStatus, ItemUpdatePayload, ItemViewable, JoaiUrls, JsonValue, KvEntry, KvEntryPayload, KvField, KvFieldWithEntries, KvValue, Kyc, KycStatus, Link, LinkCreatePayload, LinkScanHistory, LinkStats, LinkUpdatePayload, LinkVariation, LinkVariationBatchCreatePayload, LinkVariationCreatePayload, LocalAgentWallet, LoyaltyAccount, LoyaltyMember, LoyaltyNextTier, LoyaltyProgram, LoyaltyPromotion, LoyaltyReward, LoyaltyStatus, LoyaltyTier, LoyaltyTierInfo, LoyaltyTransaction, McpToolCall, McpToolCallBroadcast, McpToolCallStatus, Media, MediaAspectRatio, MediaAttributes, MediaItems, MediaLibraryAttributes, MediaMime, Meeting, MeetingConferenceProvider, MeetingFeature, MeetingJoinInfo, MeetingJoinTeam, MeetingParticipant, MeetingSessionState, MeetingSpeakerAssignment, MeetingStatus, MeetingSummary, MeetingTranscriptEntry, MeetingUsage, Memory, Message, MessageId, MessageRole, Milestone, MilestoneType, Mission, MissionBudget, MissionCreatePayload, MissionPlan, MissionPriority, MissionSchedule, MissionStatus, MissionViewable, MollieTerminalPaymentResult, MultimodalContent, MultimodalFile, NATIVE_AUTH_TOKEN_PARAM, NativeApp, NativeApps, Notification, NotificationAction, NotificationAgent, NotificationChannel, NotificationSetting, OG_IMAGE_CONFIG, OG_IMAGE_HEIGHT, OG_IMAGE_WIDTH, OfficeAgent, OfficeEntity, OfficeEntityKind, OfficeLiveOverrides, OfficeMember, OfficeSnapshot, OfficeStatus, OfficeStatusFilter, OfficeTypeFilter, OgImageColors, OgImageParams, OgImageType, Order, OrderConfigurationItem, OrderContext, OrderItem, OrderSource, OrderStatus, OrderType, PaginatedResponse, Pass, PaymentAccount, PaymentAccountOnboarding, PaymentProvider, PayoutEntry, PeriodTypeLabels, PeriodTypeOptions, PermissionConfigType, PermissionPresetName, PermissionPresetNames, PersonaQuestionable, Plan, PlanBenefit, PlanExtra, PlanFeature, PlanInterval, PolicyMethod, PolicySetting, PricingModel, Product, ProductDiscount, ProductMeta, ProductPieces, ProductRating, ProductRelation, ProductRelationType, ProductVariation, ProductVariationMeta, ProductVariationType, ProgramSettings, Project, ProjectAspectRatio, ProjectAssembly, ProjectCaptionStyle, ProjectClipCandidate, ProjectClips, ProjectExport, ProjectExportAsset, ProjectExportResponse, ProjectImages, ProjectInputAssistIntent, ProjectInputAssistResponse, ProjectMutation, ProjectOutputPreset, ProjectOutputType, ProjectPlan, ProjectRender, ProjectRenderMode, ProjectSelectedClip, ProjectShot, ProjectSoundtrack, ProjectSourceMedia, ProjectStatus, ProjectStudioHistoryEntry, ProjectStudioQuestion, ProjectStudioResponse, ProjectStudioStage, ProjectStudioState, ProjectStudioSummary, ProjectStyleDirection, ProjectTranscript, ProjectTranscriptSegment, Proposal, ProposalAction, ProposalActionPayment, ProposalActionPaymentSerializable, ProposalActionSerializable, ProposalPollOption, ProposalStatus, PublicFormResults, PurchaseOptions, PurchaseResult, RampProvider, RampProviderInfo, Reactions, RecentExperience, RedeemResponse, Reminder, Return, type ReturnStatus, ReturnStatuses, ReturnUpdateStatus, ReturnUpdateStatuses, Room, RoomId, RoomKind, ScInfo, SchedulePreset, SecretAuthorizable, SecretSettable, Segment, SegmentCondition, SegmentConditionType, SegmentCountPayload, SegmentCountResult, SegmentCreatePayload, SegmentGroup, SendableActivityUpdate, SendableAgentAction, SendableAgentMessage, SendableAgentThought, SendableMedia, SendableUserMessage, Service, SetKvEntryResult, ShippingRate, ShippingZone, Shortcut, Site, SiteAgent, SiteBrand, SiteRoute, SiteTeam, Skill, SkillMediaBindingRole, SkillMediaBindingRoleValue, SkillScope, SkillScopeValue, SkillType, SkillTypeValue, SocialAuthProvider, SocialBot, SocialPlatform, StampResponse, StoreAgent, StoreCheckoutItem, StoreData, StoreEntityType, StoreInfo, StoreItem, StoreListing, StorePriceTier, StorePricing, StorePurchasable, StorePurchaseResult, Streak, Subscription, SubscriptionDelivery, SubscriptionInterval, SubscriptionPlan, SubscriptionStatus, Swarm, Tag, TagType, Task, Team, TeamAccessCatalog, TeamAccessConfig, TeamBrand, TeamCategory, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureAccess, TeamFeatureArea, TeamFeatureUsage, TeamManageAccess, TeamMember, TeamMeta, TeamPayout, TeamPayoutAddress, TeamPlace, TeamPrivate, TeamSettings, TeamUsage, TeamViewAccess, TerminalConnectionToken, TerminalPaymentIntent, Tier, TierFeature, TierName, ToggleKvFieldResult, TranscriptEntry, TranscriptionCorrection, TranscriptionResponse, TranslatableValue, Update, UpdateCreatePayload, UpdateRelation, UpdateStats, UpdateStatus, UpdateType, UpdateUpdatePayload, Upgrade, UpgradeSourceType, UpgradeStatus, User, UserInterest, UserMode, type UserPermission, UserPermissions, UserPrivate, type UserRole, UserRoles, UserSettings, UserSocialAccount, UserStats, VolumePrice, Wallet, WalletList, WarpApprovable, WarpBackend, WarpBackendStatus, WarpBatchItem, WarpBatchable, WarpCloudExecutable, WarpCreateable, WarpExecutable, WarpExecutionBackend, WarpExtras, WarpExtrasFaq, WarpInputable, WarpScreenshotVariant, WarpSearchHit, WarpSelectable, WarpSelectableDetails, WarpSuggestion, WarpTestable, WarpViewable, WebHookTriggerEvent, WorkspaceCloudFile, WorkspaceContext, WorkspaceInfo, WorkspaceSettings, XIntegrationStatus, abbreviateNumber, addressTypeValues, buildAgentMcpServerName, buildAgentSetupClipboardText, buildAppSetupClipboardText, buildMcpServerName, cartLineTotal, createCursorMcpInstallLink, defaultInviteTeamRole, fulfillmentMethodValues, fulfillmentStatusValues, getAgentSetupPromptUrl, getAgentsBaseUrl, getApiBaseUrl, getAppBaseUrl, getAssetAppLogoUrl, getAssetChainLogoUrl, getAssetPartnerLogoUrl, getAssetTokenLogoUrl, getAssetWalletLogoUrl, getCortexBaseUrl, getDigestBaseUrl, getFormsBaseUrl, getLoginUrl, getMcpServerAgentUrl, getSiteUrl, getSitesBaseUrl, getSitesRootDomain, getStoreBaseUrl, getWarpScreenshotUrl, hasAllPermissions, hasAllTeamPermissions, hasAnyPermissions, hasPermission, hasTeamPermission, inviteableTeamRoles, isCompleteAddressInput, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, isNativeApp, isNativeAppAccessible, isNativeAppGated, isNativeAppLocked, isTeamFeatureAccessible, isTeamFeatureGated, isTeamFeatureLocked, isUserRole, localize, nativeAppSlugs, ogImageUrl, permissionPresetRules, resolveAccessCatalog, resolveAgentMcpUrl, resolveWarpText, returnStatusValues, returnUpdateStatusValues, sanitizeAlphanumeric, sanitizeNumeric, slugifyMcpSegment, teamCategories, toCurrencyDisplay, toHexEncodedNonce, toNameInitials, toNftId, toPreviewText, userPermissionValues, userRoleValues, withRetry };
4259
+ export { Achievement, Address, AddressCreatePayload, AddressInput, AddressSnapshot, type AddressType, AddressTypes, AddressUpdatePayload, Affiliate, AffiliateStatus, AffiliateTier, AffiliateTierName, Agent, AgentActionHistoryEntry, AgentCharacter, AgentDelegatable, AgentEngine, AgentExecuteHandler, AgentExecuteOptions, AgentGender, AgentMessageMeta, AgentMessageOptions, AgentPrivate, AgentSettings, AgentSetupTarget, AgentSimple, AgentToolingAccess, AgentWalletMode, AggregatedRoute, AiCostEntry, AiCostsResponse, AiCostsSummary, Alert, ApiToken, AppAccessRule, AppEnv, AppFile, AppFileType, AppIngestion, AppSetupTarget, AppendKvEntryResult, AppointmentAvailability, AppointmentAvailabilityService, AppointmentAvailabilitySlot, AppointmentBooking, AppointmentBookingContext, AppointmentPolicy, AppointmentPolicySync, AppointmentRequest, AppointmentSlot, AuthUser, BillingManageAccess, Blueprint, BlueprintOnboardingStep, BlueprintRedirect, BlueprintSettings, BlueprintShortcut, BlueprintTask, BlueprintTeam, BoardSummaryViewable, BookmarkEntry, BrandBackend, BrandIntegration, BrandIntegrationAction, BrandIntegrationProvider, BrandSearchHit, BrandSiteConfig, BrandSourceConfig, Budget, ByokProviderConfig, ByokProviderName, ByokProviders, CalendarProvider, CalendarStatus, Campaign, CampaignApproval, CampaignAudiencePreview, CampaignAudiencePreviewPayload, CampaignCategory, CampaignChannel, CampaignCreatePayload, CampaignSkipReason, CampaignSkipReasons, CampaignStats, CampaignStatus, CampaignUpdatePayload, Card, Cart, CartItem, CartLine, Challenge, Challenges, ChangelogEntry, Character, ChatClientAction, ChatClientThought, ChatStreamData, ChatStreamEventType, CheckoutSnapshot, CheckoutSnapshotRequest, CliSessionMeta, CliSessionStatus, CommissionAgreement, Configuration, Contact, ContactActivity, ContactActivityAuthor, ContactActivityType, ContactConsent, ContactConsentStatus, ContactCreatePayload, ContactFormData, ContactHealth, ContactViewable, Content, ContentDefinition, ContentEntry, ContentField, ContentFieldType, ContentPatch, ContentStatus, ContentValue, ContentVersion, Contract, ContractCategoryDisplayNames, ContractCategoryName, ContractCodeMetadata, ContractEntity, ContractOnNetwork, ContractVersion, ContractsAddressConfig, CortexExecuteOptions, Coupon, CouponCondition, CouponRestrictedItem, CouponRestrictedItemType, CreateContentInput, CreateHookPayload, CreateInboundHookPayload, CreateInternalHookPayload, CreateKvFieldPayload, CreateWarpLinkedHookPayload, CreateWebHookPayload, DefaultCodeMetadata, DefaultInviteTeamRole, DemoFlow, DemoMessage, Desk, DeskItem, DeskItemRole, Document, EarnResponse, Earning, Element, ElementSpec, ElementType, ElementVariation, EmailProvider, EmbedStatus, EncryptionStatus, Entity, EntityDirectExecuteRequest, EntityProposable, EntitySignable, EntityTemplate, Experience, FileInfo, FileMetadata, Flow, FlowCategory, FlowInputMapping, FlowStatus, FlowStep, Fulfillment, FulfillmentLocation, type FulfillmentMethod, FulfillmentMethods, type FulfillmentStatus, FulfillmentStatuses, GamificationData, GamificationEventType, Goal, GoalCreatePayload, GoalPriority, GoalProgressViewable, GoalStatus, GuestBuyer, HintOptions, HintPosition, Hook, HookSample, HookTrigger, HookTriggerCondition, HookTriggerInput, HttpService, IAppResponse, IHttpService, IRequestOptions, IngestionSourceType, IngestionStatus, Inquiry, InquiryStatus, InquiryType, Integration, IntegrationConnectionDetails, IntegrationDetails, IntegrationMeta, IntegrationType, Intent, InviteableTeamRoles, Item, ItemCreatePayload, ItemExecutionStatus, ItemPriority, ItemStatus, ItemUpdatePayload, ItemViewable, JoaiUrls, JsonValue, KvEntry, KvEntryPayload, KvField, KvFieldWithEntries, KvValue, Kyc, KycStatus, Link, LinkCreatePayload, LinkScanHistory, LinkStats, LinkUpdatePayload, LinkVariation, LinkVariationBatchCreatePayload, LinkVariationCreatePayload, LocalAgentWallet, LoyaltyAccount, LoyaltyMember, LoyaltyNextTier, LoyaltyProgram, LoyaltyPromotion, LoyaltyReward, LoyaltyStatus, LoyaltyTier, LoyaltyTierInfo, LoyaltyTransaction, McpToolCall, McpToolCallBroadcast, McpToolCallStatus, Media, MediaAspectRatio, MediaAttributes, MediaItems, MediaLibraryAttributes, MediaMime, Meeting, MeetingConferenceProvider, MeetingFeature, MeetingJoinInfo, MeetingJoinTeam, MeetingParticipant, MeetingSessionState, MeetingSpeakerAssignment, MeetingStatus, MeetingSummary, MeetingTranscriptEntry, MeetingUsage, Memory, Message, MessageId, MessageRole, Milestone, MilestoneType, Mission, MissionBudget, MissionCreatePayload, MissionPlan, MissionPriority, MissionSchedule, MissionStatus, MissionViewable, MollieTerminalPaymentResult, MultimodalContent, MultimodalFile, NATIVE_AUTH_TOKEN_PARAM, NativeApp, NativeApps, Notification, NotificationAction, NotificationAgent, NotificationChannel, NotificationSetting, OG_IMAGE_CONFIG, OG_IMAGE_HEIGHT, OG_IMAGE_WIDTH, OfficeAgent, OfficeEntity, OfficeEntityKind, OfficeLiveOverrides, OfficeMember, OfficeSnapshot, OfficeStatus, OfficeStatusFilter, OfficeTypeFilter, OgImageColors, OgImageParams, OgImageType, Order, OrderConfigurationItem, OrderContext, OrderItem, OrderSource, OrderStatus, OrderType, PaginatedResponse, Pass, PatchContentInput, PaymentAccount, PaymentAccountOnboarding, PaymentProvider, PayoutEntry, PeriodTypeLabels, PeriodTypeOptions, PermissionConfigType, PermissionPresetName, PermissionPresetNames, PersonaQuestionable, Plan, PlanBenefit, PlanExtra, PlanFeature, PlanInterval, PolicyMethod, PolicySetting, PricingModel, Product, ProductDiscount, ProductMeta, ProductPieces, ProductRating, ProductRelation, ProductRelationType, ProductVariation, ProductVariationMeta, ProductVariationType, ProgramSettings, Project, ProjectAspectRatio, ProjectAssembly, ProjectCaptionStyle, ProjectClipCandidate, ProjectClips, ProjectExport, ProjectExportAsset, ProjectExportResponse, ProjectImages, ProjectInputAssistIntent, ProjectInputAssistResponse, ProjectMutation, ProjectOutputPreset, ProjectOutputType, ProjectPlan, ProjectRender, ProjectRenderMode, ProjectSelectedClip, ProjectShot, ProjectSoundtrack, ProjectSourceMedia, ProjectStatus, ProjectStudioHistoryEntry, ProjectStudioQuestion, ProjectStudioResponse, ProjectStudioStage, ProjectStudioState, ProjectStudioSummary, ProjectStyleDirection, ProjectTranscript, ProjectTranscriptSegment, Proposal, ProposalAction, ProposalActionPayment, ProposalActionPaymentSerializable, ProposalActionSerializable, ProposalPollOption, ProposalStatus, PublicFormResults, PurchaseOptions, PurchaseResult, RampProvider, RampProviderInfo, Reactions, RecentExperience, RedeemResponse, Reminder, Return, type ReturnStatus, ReturnStatuses, ReturnUpdateStatus, ReturnUpdateStatuses, Room, RoomId, RoomKind, ScInfo, SchedulePreset, SecretAuthorizable, SecretSettable, Segment, SegmentCondition, SegmentConditionType, SegmentCountPayload, SegmentCountResult, SegmentCreatePayload, SegmentGroup, SendableActivityUpdate, SendableAgentAction, SendableAgentMessage, SendableAgentThought, SendableMedia, SendableUserMessage, Service, SetKvEntryResult, ShippingRate, ShippingZone, Shortcut, Site, SiteAgent, SiteBrand, SiteRoute, SiteTeam, Skill, SkillMediaBindingRole, SkillMediaBindingRoleValue, SkillScope, SkillScopeValue, SkillType, SkillTypeValue, SocialAuthProvider, SocialBot, SocialPlatform, StampResponse, StoreAgent, StoreCheckoutItem, StoreData, StoreEntityType, StoreInfo, StoreItem, StoreListing, StorePriceTier, StorePricing, StorePurchasable, StorePurchaseResult, Streak, Subscription, SubscriptionDelivery, SubscriptionInterval, SubscriptionPlan, SubscriptionStatus, Swarm, Tag, TagType, Task, Team, TeamAccessCatalog, TeamAccessConfig, TeamBrand, TeamCategory, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureAccess, TeamFeatureArea, TeamFeatureUsage, TeamManageAccess, TeamMember, TeamMeta, TeamPayout, TeamPayoutAddress, TeamPlace, TeamPrivate, TeamSettings, TeamUsage, TeamViewAccess, TerminalConnectionToken, TerminalPaymentIntent, Tier, TierFeature, TierName, ToggleKvFieldResult, TranscriptEntry, TranscriptionCorrection, TranscriptionResponse, TranslatableValue, UNIFIED_MCP_SERVER_NAME, Update, UpdateCreatePayload, UpdateRelation, UpdateStats, UpdateStatus, UpdateType, UpdateUpdatePayload, Upgrade, UpgradeSourceType, UpgradeStatus, User, UserInterest, UserMode, type UserPermission, UserPermissions, UserPrivate, type UserRole, UserRoles, UserSettings, UserSocialAccount, UserStats, VolumePrice, Wallet, WalletList, WarpApprovable, WarpBackend, WarpBackendStatus, WarpBatchItem, WarpBatchable, WarpCloudExecutable, WarpCreateable, WarpExecutable, WarpExecutionBackend, WarpExtras, WarpExtrasFaq, WarpInputable, WarpScreenshotVariant, WarpSearchHit, WarpSelectable, WarpSelectableDetails, WarpSuggestion, WarpTestable, WarpViewable, WebHookTriggerEvent, WorkspaceCloudFile, WorkspaceContext, WorkspaceInfo, WorkspaceSettings, XIntegrationStatus, abbreviateNumber, addressTypeValues, buildAgentMcpServerName, buildAgentSetupClipboardText, buildAppSetupClipboardText, buildMcpServerName, cartLineTotal, createCursorMcpInstallLink, defaultInviteTeamRole, fulfillmentMethodValues, fulfillmentStatusValues, getAgentSetupPromptUrl, getAgentsBaseUrl, getApiBaseUrl, getAppBaseUrl, getAssetAppLogoUrl, getAssetChainLogoUrl, getAssetPartnerLogoUrl, getAssetTokenLogoUrl, getAssetWalletLogoUrl, getCortexBaseUrl, getDigestBaseUrl, getFormsBaseUrl, getLoginUrl, getMcpServerAgentUrl, getMcpServerUrl, getSiteUrl, getSitesBaseUrl, getSitesRootDomain, getStoreBaseUrl, getWarpScreenshotUrl, hasAllPermissions, hasAllTeamPermissions, hasAnyPermissions, hasPermission, hasTeamPermission, inviteableTeamRoles, isCompleteAddressInput, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, isNativeApp, isNativeAppAccessible, isNativeAppGated, isNativeAppLocked, isTeamFeatureAccessible, isTeamFeatureGated, isTeamFeatureLocked, isUnifiedMcpUrl, isUserRole, localize, nativeAppSlugs, ogImageUrl, permissionPresetRules, resolveAccessCatalog, resolveAgentMcpUrl, resolveConnectMcpUrl, resolveWarpText, returnStatusValues, returnUpdateStatusValues, sanitizeAlphanumeric, sanitizeNumeric, slugifyMcpSegment, teamCategories, toCurrencyDisplay, toHexEncodedNonce, toNameInitials, toNftId, toPreviewText, userPermissionValues, userRoleValues, withRetry };