@joai/core 1.0.2 → 1.1.1

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
@@ -39,6 +39,7 @@ declare class HttpService implements IHttpService {
39
39
  readonly authToken: string | null;
40
40
  private readonly headers;
41
41
  private readonly fetchFn;
42
+ private readonly csrfBaseUrl;
42
43
  onNetworkError: (error: Error) => void;
43
44
  onUnauthorized: (response: IAppResponse<any>) => void;
44
45
  onSuccessfulResponse: (response: IAppResponse<any>) => void;
@@ -48,6 +49,7 @@ declare class HttpService implements IHttpService {
48
49
  refererUrl?: string;
49
50
  customFetch?: typeof globalThis.fetch;
50
51
  headers?: Record<string, string>;
52
+ csrfBaseUrl?: string;
51
53
  });
52
54
  get: <T>(url: string, options?: IRequestOptions) => Promise<IAppResponse<T>>;
53
55
  post: <T>(url: string, data?: any, options?: IRequestOptions) => Promise<IAppResponse<T>>;
@@ -136,34 +138,39 @@ type Character = {
136
138
  bio: WarpText | null;
137
139
  };
138
140
  //#endregion
139
- //#region src/media/types.d.ts
140
- type AppFileType = 'abi' | 'pdf' | 'image' | 'video' | 'json';
141
- type AppFile = {
142
- type: AppFileType;
143
- original: File;
144
- };
145
- type MediaLibraryAttributes = {
146
- uuid: string;
147
- order: number;
141
+ //#region src/flow/types.d.ts
142
+ type FlowCategory = 'none' | 'defi' | 'nft' | 'social' | 'devtools' | 'productivity' | 'trading' | 'portfolio';
143
+ type FlowStatus = 'draft' | 'published';
144
+ type Flow = {
145
+ slug: string;
146
+ team: Team;
148
147
  name: string;
149
- custom_properties: {
150
- [key: string]: any;
151
- };
152
- preview_url: null | string;
153
- original_url: null | string;
154
- extension?: string;
155
- size?: number;
148
+ description: string | null;
149
+ category: FlowCategory;
150
+ status: FlowStatus;
151
+ publishedAt: string | null;
152
+ createdAt: string;
153
+ updatedAt: string;
154
+ steps: FlowStep[];
155
+ locales: WarpLocale[];
156
+ marketplace: StoreInfo;
157
+ screenshots: string[];
156
158
  };
157
- type MediaLibraryItems = {
158
- [uuid: string]: MediaLibraryAttributes;
159
+ type FlowStep = {
160
+ stepId: string;
161
+ order: number;
162
+ type: 'warp' | 'condition' | 'delay';
163
+ warpIdentifier: string | null;
164
+ dependsOn: string[] | null;
165
+ inputMappings: FlowInputMapping[] | null;
166
+ staticInputs: Record<string, any> | null;
167
+ condition: Record<string, any> | null;
159
168
  };
160
- 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';
161
- type Media = {
162
- id: string;
163
- name: string;
164
- mime: MediaMime;
165
- url: string;
166
- library: MediaLibraryAttributes;
169
+ type FlowInputMapping = {
170
+ sourceStepId: string;
171
+ sourceKey: string;
172
+ targetInput: string;
173
+ transform?: string;
167
174
  };
168
175
  //#endregion
169
176
  //#region src/wallet/types.d.ts
@@ -188,10 +195,16 @@ type UserSettings = {
188
195
  mode: UserMode;
189
196
  interests: UserInterest[];
190
197
  hotkeys?: Record<string, string> | null;
191
- payoutAddress?: string | null;
192
- payoutChain?: string | null;
193
- voicePlaybackMode?: 'voice-control' | 'chat' | 'both' | null;
194
- withdrawalWaiverAcceptedAt?: string | null;
198
+ 'payout.address'?: string | null;
199
+ 'payout.chain'?: string | null;
200
+ 'voice.playback-mode'?: 'voice-control' | 'chat' | 'both' | null;
201
+ 'voice.corrections'?: {
202
+ wrong: string;
203
+ correct: string;
204
+ }[];
205
+ 'warp.notifications'?: Record<string, Record<string, boolean>>;
206
+ 'withdrawal.waiver.accepted-at'?: string | null;
207
+ 'active.team'?: string | null;
195
208
  };
196
209
  type KycStatus = 'pending' | 'approved' | 'rejected';
197
210
  type Kyc = {
@@ -241,60 +254,355 @@ type UserSocialAccount = {
241
254
  type User = {
242
255
  id: string;
243
256
  name: string;
244
- address: string;
245
- balance: number | null;
246
- hasProfileImage: boolean;
247
- profileImageUrl: string;
248
- swarmRole: string | null;
257
+ address: string;
258
+ balance: number | null;
259
+ hasProfileImage: boolean;
260
+ profileImageUrl: string;
261
+ swarmRole: string | null;
262
+ };
263
+ type AuthUser = {
264
+ id: string;
265
+ name: string;
266
+ phone: string | null;
267
+ email: string | null;
268
+ };
269
+ type Affiliate = {
270
+ name: string;
271
+ tier: AffiliateTier;
272
+ balance: number;
273
+ payoutAddress: string;
274
+ application: string;
275
+ status: AffiliateStatus;
276
+ createdAt: string;
277
+ inviteLinkUrl: string;
278
+ settings: {
279
+ minPayoutBalance: number;
280
+ commissionExtraPercent?: number;
281
+ customerDiscountPercent: number;
282
+ };
283
+ clicks: number;
284
+ coupons: Coupon[];
285
+ user: User | null;
286
+ };
287
+ type AffiliateTierName = 'bronze' | 'silver' | 'gold';
288
+ type AffiliateTier = {
289
+ name: AffiliateTierName;
290
+ displayName: string;
291
+ commission: number;
292
+ threshold: number;
293
+ };
294
+ type AffiliateStatus = 'pending' | 'approved' | 'rejected' | 'suspended' | 'demoted';
295
+ //#endregion
296
+ //#region src/team/constants.d.ts
297
+ declare const teamCategories: readonly ["general", "food-drink", "retail", "beauty-wellness", "health", "sports-fitness", "trades-services", "professional-services", "education-culture", "clubs-organizations", "leisure-tourism"];
298
+ //#endregion
299
+ //#region src/team/types.d.ts
300
+ type TeamCategory = typeof teamCategories[number];
301
+ type TeamFeature = 'shop' | 'appointments';
302
+ type TeamMember = User & {
303
+ role: UserRole | null;
304
+ roleAcceptedAt: string | null;
305
+ email: string | null;
306
+ };
307
+ type TeamMeta = {
308
+ 'extra.messages'?: number;
309
+ 'limit.spending'?: number | null;
310
+ 'currency'?: string;
311
+ 'extra.usage.enabled'?: boolean;
312
+ 'auto.reload.enabled'?: boolean;
313
+ 'auto.reload.threshold_cents'?: number | null;
314
+ 'auto.reload.amount_cents'?: number | null;
315
+ 'llm.provider'?: 'openai' | 'anthropic' | 'google' | 'xai' | null;
316
+ 'byok.providers'?: ByokProviders | null;
317
+ 'board.auto.enabled'?: boolean;
318
+ 'payments.online'?: boolean;
319
+ 'payments.coupons'?: boolean;
320
+ 'stock.enabled'?: boolean;
321
+ 'branding'?: TeamBrand | null;
322
+ settings: Record<string, unknown>;
323
+ };
324
+ type Team = {
325
+ slug: string;
326
+ name: string;
327
+ personal: boolean;
328
+ category: TeamCategory;
329
+ tags?: string[] | null;
330
+ description: TranslatableValue | null;
331
+ locale: WarpLocale;
332
+ timezone: string;
333
+ meta?: TeamMeta;
334
+ features?: TeamFeature[];
335
+ cover?: string | null;
336
+ logo: string | null;
337
+ tagline?: TranslatableValue | null;
338
+ public: boolean;
339
+ createdAt: string;
340
+ blueprints?: Blueprint[];
341
+ flows?: Flow[];
342
+ };
343
+ type TeamBrand = {
344
+ bg?: string;
345
+ fg?: string;
346
+ label?: string;
347
+ logo?: string;
348
+ bankName?: string;
349
+ bankIban?: string;
350
+ bankBic?: string;
351
+ invoiceAddress?: string;
352
+ invoiceVat?: string;
353
+ invoiceCity?: string;
354
+ invoiceZip?: string;
355
+ invoiceCountry?: string;
356
+ };
357
+ type TeamPrivate = {
358
+ slug: string;
359
+ name: string;
360
+ personal: boolean;
361
+ description: TranslatableValue | null;
362
+ tags?: string[] | null;
363
+ tagline: TranslatableValue | null;
364
+ balance: number;
365
+ locale: WarpLocale;
366
+ timezone: string;
367
+ logo: string | null;
368
+ cover: string | null;
369
+ subscription: {
370
+ premium: boolean;
371
+ lifetime: boolean;
372
+ plan: Plan;
373
+ provider: PaymentProvider | null;
374
+ payer: User | null;
375
+ gracePeriod: boolean;
376
+ autoRenew: boolean;
377
+ cycleEndsAt: string | null;
378
+ resetsAt: string | null;
379
+ startedAt: string | null;
380
+ renewedAt: string | null;
381
+ expiresAt: string | null;
382
+ };
383
+ meta: TeamMeta;
384
+ branding: TeamBrand;
385
+ category: TeamCategory;
386
+ createdAt: string;
387
+ justCreated: boolean;
388
+ };
389
+ type ByokProviderConfig = {
390
+ apiKey?: string;
391
+ accessKey?: string;
392
+ secretKey?: string;
393
+ };
394
+ type ByokProviders = {
395
+ openai?: ByokProviderConfig;
396
+ anthropic?: ByokProviderConfig;
397
+ google?: ByokProviderConfig;
398
+ xai?: ByokProviderConfig;
399
+ klingai?: ByokProviderConfig;
400
+ };
401
+ type ByokProviderName = keyof ByokProviders;
402
+ type TeamSettings = {
403
+ 'extra.messages': number;
404
+ 'limit.spending': number | null;
405
+ 'currency': string;
406
+ 'extra.usage.enabled'?: boolean;
407
+ 'auto.reload.enabled'?: boolean;
408
+ 'auto.reload.threshold_cents'?: number | null;
409
+ 'auto.reload.amount_cents'?: number | null;
410
+ 'llm.provider'?: 'openai' | 'anthropic' | 'google' | 'xai' | null;
411
+ 'byok.providers'?: ByokProviders | null;
412
+ 'board.auto.enabled'?: boolean;
413
+ 'payments.online'?: boolean;
414
+ 'payments.coupons'?: boolean;
415
+ 'stock.enabled'?: boolean;
416
+ 'branding'?: TeamBrand | null;
417
+ };
418
+ type TeamUsage = Partial<Record<PlanFeature, TeamFeatureUsage>> & {
419
+ extraUsageEnabled?: boolean;
420
+ currentSpending?: number;
421
+ walletCloudUsed?: number;
422
+ walletCloudPremiumUsed?: number;
423
+ spendingLimit?: number | null;
424
+ cycleEndsAt?: string | null;
425
+ resetsAt?: string | null;
426
+ autoReload?: {
427
+ enabled: boolean;
428
+ thresholdCents: number | null;
429
+ amountCents: number | null;
430
+ };
431
+ };
432
+ type TeamFeatureUsage = {
433
+ current: number;
434
+ limit: number;
435
+ reached?: boolean;
436
+ };
437
+ type AiCostEntry = {
438
+ id: number;
439
+ model: string | null;
440
+ agent: {
441
+ name: string;
442
+ uuid: string;
443
+ } | null;
444
+ inputTokens: number;
445
+ outputTokens: number;
446
+ totalTokens: number;
447
+ costCents: number | null;
448
+ createdAt: string;
449
+ };
450
+ type AiCostsSummary = {
451
+ totalCostCents: number;
452
+ totalTokens: number;
453
+ totalRequests: number;
454
+ byModel: Record<string, {
455
+ costCents: number;
456
+ tokens: number;
457
+ count: number;
458
+ }>;
459
+ };
460
+ type AiCostsResponse = {
461
+ summary: AiCostsSummary;
462
+ usages: {
463
+ data: AiCostEntry[];
464
+ pagination: {
465
+ currentPage: number;
466
+ lastPage: number;
467
+ perPage: number;
468
+ total: number;
469
+ };
470
+ };
471
+ };
472
+ //#endregion
473
+ //#region src/json/types.d.ts
474
+ type JsonValue = string | number | boolean | null | JsonValue[] | {
475
+ [key: string]: JsonValue;
476
+ };
477
+ //#endregion
478
+ //#region src/contact/types.d.ts
479
+ type Contact = {
480
+ id: string;
481
+ name: string;
482
+ wallets: Wallet[];
483
+ email: string | null;
484
+ phone: string | null;
485
+ company: string | null;
486
+ title: string | null;
487
+ birthday: string | null;
488
+ website: string | null;
489
+ location: string | null;
490
+ socials: Record<string, string> | null;
491
+ notes: string | null;
492
+ tags: string[] | null;
493
+ userId: string | null;
494
+ locale?: string | null;
495
+ props?: Record<string, string> | null;
496
+ };
497
+ type ContactActivityType = 'note' | 'call' | 'meeting' | 'task' | 'update' | 'custom' | 'form' | 'loyalty';
498
+ type ContactActivityAuthor = {
499
+ name: string;
500
+ imageUrl: string | null;
501
+ };
502
+ type ContactActivity = {
503
+ id: string;
504
+ type: ContactActivityType;
505
+ description: string | null;
506
+ meta: Record<string, JsonValue> | null;
507
+ agentName: string | null;
508
+ createdAt: string;
509
+ author?: ContactActivityAuthor | null;
510
+ };
511
+ type ContactFormData = {
512
+ name?: string;
513
+ email?: string | null;
514
+ phone?: string | null;
515
+ company?: string | null;
516
+ title?: string | null;
517
+ birthday?: string | null;
518
+ website?: string | null;
519
+ location?: string | null;
520
+ socials?: Record<string, string> | null;
521
+ notes?: string | null;
522
+ tags?: string[] | null;
523
+ locale?: string | null;
524
+ props?: Record<string, string> | null;
525
+ };
526
+ type ContactCreatePayload = ContactFormData & {
527
+ name: string;
528
+ wallets?: WalletList;
249
529
  };
250
- type Affiliate = {
530
+ //#endregion
531
+ //#region src/media/types.d.ts
532
+ type AppFileType = 'abi' | 'pdf' | 'image' | 'video' | 'json';
533
+ type AppFile = {
534
+ type: AppFileType;
535
+ original: File;
536
+ };
537
+ type MediaLibraryAttributes = {
538
+ uuid: string;
539
+ order: number;
251
540
  name: string;
252
- tier: AffiliateTier;
253
- balance: number;
254
- payoutAddress: string;
255
- application: string;
256
- status: AffiliateStatus;
257
- createdAt: string;
258
- inviteLinkUrl: string;
259
- settings: {
260
- minPayoutBalance: number;
261
- commissionExtraPercent?: number;
262
- customerDiscountPercent: number;
541
+ custom_properties: {
542
+ [key: string]: JsonValue;
263
543
  };
264
- clicks: number;
265
- coupons: Coupon[];
266
- user: User | null;
544
+ preview_url: null | string;
545
+ original_url: null | string;
546
+ extension?: string;
547
+ size?: number;
267
548
  };
268
- type AffiliateTierName = 'bronze' | 'silver' | 'gold';
269
- type AffiliateTier = {
270
- name: AffiliateTierName;
271
- displayName: string;
272
- commission: number;
273
- threshold: number;
549
+ type MediaLibraryItems = {
550
+ [uuid: string]: MediaLibraryAttributes;
551
+ };
552
+ 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';
553
+ type Media = {
554
+ id: string;
555
+ name: string;
556
+ mime: MediaMime;
557
+ url: string;
558
+ library: MediaLibraryAttributes;
559
+ tags?: string[];
274
560
  };
275
- type AffiliateStatus = 'pending' | 'approved' | 'rejected' | 'suspended' | 'demoted';
276
561
  //#endregion
277
562
  //#region src/billing/types.d.ts
278
563
  type TranslatableValue = Partial<Record<WarpLocale, string>>;
279
564
  type OrderStatus = 'pending' | 'completed' | 'delivered' | 'canceled';
565
+ type OrderSource = 'auto' | 'manual' | 'kiosk';
280
566
  type SubscriptionStatus = 'active' | 'canceled' | 'past_due';
281
- type SubscriptionInterval = 'weekly' | 'monthly' | 'yearly';
567
+ type SubscriptionInterval = 'weekly' | 'biweekly' | 'monthly' | 'quarterly' | 'yearly';
568
+ type PricingModel = 'free' | 'one-time' | 'weekly' | 'biweekly' | 'monthly' | 'quarterly' | 'yearly' | 'per-run';
282
569
  type AppSubscription = {
283
570
  id: string;
284
571
  orderId: string;
285
572
  teamId: string;
286
- contactId: string | null;
573
+ contact: Contact | null;
287
574
  status: SubscriptionStatus;
288
575
  interval: SubscriptionInterval | null;
289
576
  renewsAt: string | null;
290
577
  cancelledAt: string | null;
291
578
  locale: string | null;
292
- meta: Record<string, any> | null;
579
+ meta: Record<string, JsonValue> | null;
293
580
  createdAt: string;
294
581
  updatedAt: string;
295
582
  };
296
- type PaymentProvider = 'xmoney' | 'lemonsqueezy' | 'stripe' | 'apple' | 'google' | 'blockchain' | 'offline';
297
- type PlanFeature = 'general' | 'messages' | 'team-members' | 'teams' | 'support' | 'agent' | 'auto-mode' | 'cloud-sync' | 'wallet-cloud' | 'wallet-cloud-premium' | 'wallet-multi' | 'cards' | 'alerts' | 'advanced-commands' | 'tasks' | 'integrations' | 'message-history' | 'memory' | 'documents' | 'voice-input' | 'voice-live' | 'image-gen' | 'video-gen' | 'openclaw' | 'skills' | 'items' | 'context-length' | 'workspace-storage' | 'ingestions' | 'agent-email' | 'streak-freezes' | 'byok' | 'mcp' | 'phone-call' | 'phone-number' | 'custom-domain' | 'contacts' | 'links' | 'store-fee-rate' | 'store-fee-rate-physical';
583
+ type PaymentProvider = 'xmoney' | 'lemonsqueezy' | 'stripe' | 'stripe-connect' | 'apple' | 'google' | 'blockchain' | 'offline';
584
+ type PaymentAccount = {
585
+ provider: string;
586
+ connected: boolean;
587
+ chargesEnabled: boolean;
588
+ payoutsEnabled: boolean;
589
+ detailsSubmitted: boolean;
590
+ requirements: string[];
591
+ };
592
+ type PaymentAccountOnboarding = {
593
+ url: string;
594
+ };
595
+ type TerminalConnectionToken = {
596
+ secret: string;
597
+ locationId: string;
598
+ connectedAccountId: string;
599
+ };
600
+ type TerminalPaymentIntent = {
601
+ clientSecret: string;
602
+ paymentIntentId: string;
603
+ connectedAccountId: string;
604
+ };
605
+ type PlanFeature = 'general' | 'messages' | 'team-members' | 'teams' | 'support' | 'agent' | 'auto-mode' | 'cloud-sync' | 'wallet-cloud' | 'wallet-cloud-premium' | 'wallet-multi' | 'cards' | 'alerts' | 'advanced-commands' | 'tasks' | 'integrations' | 'message-history' | 'memory' | 'documents' | 'voice-input' | 'voice-live' | 'image-gen' | 'video-gen' | 'openclaw' | 'skills' | 'items' | 'context-length' | 'workspace-storage' | 'ingestions' | 'agent-email' | 'streak-freezes' | 'byok' | 'mcp' | 'phone-call' | 'phone-number' | 'custom-domain' | 'contacts' | 'links' | 'store-fee-rate' | 'store-fee-rate-physical' | 'tap-to-pay';
298
606
  type PlanBenefit = {
299
607
  label: Partial<Record<WarpLocale, string>>;
300
608
  tip?: Partial<Record<WarpLocale, string>>;
@@ -326,9 +634,9 @@ type Plan = {
326
634
  interval: PlanInterval;
327
635
  intervalDisplay: PlanInterval;
328
636
  features: PlanFeature[];
329
- benefits: Record<PlanFeature, PlanBenefit>;
330
- limits: Record<PlanFeature, string>;
331
- extras: Record<PlanFeature, PlanExtra>;
637
+ benefits: Partial<Record<PlanFeature, PlanBenefit>>;
638
+ limits: Partial<Record<PlanFeature, string>>;
639
+ extras: Partial<Record<PlanFeature, PlanExtra>>;
332
640
  meta: {
333
641
  appleProductId: string | null;
334
642
  googleProductId: string | null;
@@ -345,8 +653,8 @@ type Tier = {
345
653
  price: string;
346
654
  priceSuffix?: string;
347
655
  description: string;
348
- benefits: Record<PlanFeature, PlanBenefit>;
349
- extras: Record<PlanFeature, PlanExtra>;
656
+ benefits: Partial<Record<PlanFeature, PlanBenefit>>;
657
+ extras: Partial<Record<PlanFeature, PlanExtra>>;
350
658
  mostPopular: boolean;
351
659
  mostRecommended: boolean;
352
660
  cta?: string;
@@ -387,11 +695,11 @@ type VolumePrice = {
387
695
  minQty: number;
388
696
  unitPrice: number;
389
697
  };
390
- type ProductConfiguration = Record<string, WarpNativeValue>;
698
+ type Configuration = Record<string, WarpNativeValue>;
391
699
  type OrderConfigurationItem = {
392
700
  itemId: string | null;
393
701
  type: string;
394
- configuration: ProductConfiguration;
702
+ configuration: Configuration;
395
703
  };
396
704
  type ProductVariationMeta = {
397
705
  itemGroupId?: string | null;
@@ -426,7 +734,7 @@ type ProductVariation = {
426
734
  order?: number | null;
427
735
  pieces?: ProductPieces | null;
428
736
  discount?: ProductDiscount | null;
429
- settings?: Record<string, unknown> | null;
737
+ settings?: Record<string, JsonValue> | null;
430
738
  product?: Product;
431
739
  meta?: ProductVariationMeta;
432
740
  nativePriceStr?: string | null;
@@ -447,7 +755,7 @@ type Product = {
447
755
  variations: ProductVariation[];
448
756
  relatedProducts?: ProductRelation[];
449
757
  rating?: ProductRating;
450
- settings?: Record<string, unknown> | null;
758
+ settings?: Record<string, JsonValue> | null;
451
759
  volumePrices?: VolumePrice[];
452
760
  media?: Media[];
453
761
  };
@@ -457,18 +765,35 @@ type OrderItem = {
457
765
  quantity: number;
458
766
  unitPrice: number;
459
767
  type: 'product-variation' | 'service';
768
+ digital?: boolean | null;
769
+ sellerTeamId?: string | null;
770
+ };
771
+ type OrderContext = {
772
+ type: string;
773
+ label?: string | null;
774
+ value: string;
460
775
  };
461
776
  type Order = {
462
777
  resource: 'order';
463
778
  id: string;
464
779
  total: number;
465
- provider: PaymentProvider;
780
+ provider: PaymentProvider | null;
781
+ providerAccountId?: string | null;
782
+ requiresConnectedAccount?: boolean;
783
+ usesPlatformAccount?: boolean;
466
784
  status: OrderStatus;
467
785
  paymentUrl?: string | null;
468
- invoiceUrl: string;
786
+ invoiceUrl: string | null;
787
+ justCreated?: boolean;
469
788
  createdAt: string;
470
789
  invoiceDate: string;
471
- meta: Record<string, any> | null;
790
+ meta: Record<string, JsonValue> | null;
791
+ contactId: string | null;
792
+ source: OrderSource | null;
793
+ context: OrderContext | null;
794
+ paymentMode: string | null;
795
+ linkVariationId: string | null;
796
+ notes: string | null;
472
797
  configuration?: OrderConfigurationItem[];
473
798
  items: OrderItem[];
474
799
  plan: Plan | null;
@@ -483,245 +808,37 @@ type CartItem = {
483
808
  quantity: number;
484
809
  type: 'service' | 'product';
485
810
  sku: string | null;
486
- badge: string | null;
487
- configuration?: ProductConfiguration;
488
- media: Media[];
489
- product?: Product | null;
490
- };
491
- type Cart = {
492
- subtotal: number;
493
- taxes: {
494
- amount: number;
495
- percent: number;
496
- };
497
- total: number;
498
- items: CartItem[];
499
- coupon: Coupon | null;
500
- couponDiscount: number;
501
- };
502
- type Coupon = {
503
- code: string;
504
- amount: number;
505
- percent: number;
506
- expiresAt: string | null;
507
- };
508
- type PurchaseResult = {
509
- order_id?: string;
510
- message?: string;
511
- subscription_active?: boolean;
512
- };
513
- type PurchaseOptions = {
514
- forceProvider?: PaymentProvider;
515
- billingAddress?: BillingAddress | null;
516
- meta?: Record<string, string>;
517
- };
518
- //#endregion
519
- //#region src/team/types.d.ts
520
- type TeamCategory = 'general' | 'appointment' | 'restaurant' | 'service' | 'fitness' | 'beauty' | 'consultation';
521
- type TeamFeature = 'shop' | 'appointments';
522
- type TeamMember = User & {
523
- role: UserRole | null;
524
- roleAcceptedAt: string | null;
525
- email: string | null;
526
- };
527
- type TeamMeta = {
528
- 'extra.messages'?: number;
529
- 'limit.spending'?: number | null;
530
- 'currency'?: string;
531
- 'extra.usage.enabled'?: boolean;
532
- 'auto.reload.enabled'?: boolean;
533
- 'auto.reload.threshold_cents'?: number | null;
534
- 'auto.reload.amount_cents'?: number | null;
535
- 'llm.provider'?: 'openai' | 'anthropic' | 'google' | 'xai' | null;
536
- 'byok.providers'?: ByokProviders | null;
537
- 'board.auto.enabled'?: boolean;
538
- 'payments.online'?: boolean;
539
- 'payments.coupons'?: boolean;
540
- 'stock.enabled'?: boolean;
541
- 'branding'?: TeamBrand | null;
542
- settings: Record<string, unknown>;
543
- };
544
- type Team = {
545
- slug: string;
546
- name: string;
547
- personal: boolean;
548
- category?: TeamCategory;
549
- description: TranslatableValue | null;
550
- locale: WarpLocale;
551
- timezone: string;
552
- meta?: TeamMeta;
553
- features?: TeamFeature[];
554
- cover?: string | null;
555
- logo: string | null;
556
- tagline?: TranslatableValue | null;
557
- public: boolean;
558
- createdAt: string;
559
- blueprints?: Blueprint[];
560
- flows?: Flow[];
561
- };
562
- type TeamBrand = {
563
- bg?: string;
564
- fg?: string;
565
- label?: string;
566
- logo?: string;
567
- bankName?: string;
568
- bankIban?: string;
569
- bankBic?: string;
570
- invoiceAddress?: string;
571
- invoiceVat?: string;
572
- invoiceCity?: string;
573
- invoiceZip?: string;
574
- invoiceCountry?: string;
575
- };
576
- type TeamPrivate = {
577
- slug: string;
578
- name: string;
579
- personal: boolean;
580
- description: TranslatableValue | null;
581
- tagline: TranslatableValue | null;
582
- balance: number;
583
- locale: WarpLocale;
584
- timezone: string;
585
- logo: string | null;
586
- cover: string | null;
587
- subscription: {
588
- premium: boolean;
589
- lifetime: boolean;
590
- plan: Plan;
591
- provider: PaymentProvider | null;
592
- payer: User | null;
593
- gracePeriod: boolean;
594
- autoRenew: boolean;
595
- uncapped: boolean;
596
- cycleEndsAt: string | null;
597
- resetsAt: string | null;
598
- startedAt: string | null;
599
- renewedAt: string | null;
600
- expiresAt: string | null;
601
- };
602
- meta: TeamMeta;
603
- branding: TeamBrand;
604
- category?: TeamCategory;
605
- createdAt: string;
606
- justCreated: boolean;
607
- };
608
- type ByokProviderConfig = {
609
- apiKey?: string;
610
- accessKey?: string;
611
- secretKey?: string;
612
- };
613
- type ByokProviders = {
614
- openai?: ByokProviderConfig;
615
- anthropic?: ByokProviderConfig;
616
- google?: ByokProviderConfig;
617
- xai?: ByokProviderConfig;
618
- klingai?: ByokProviderConfig;
619
- };
620
- type ByokProviderName = keyof ByokProviders;
621
- type TeamSettings = {
622
- 'extra.messages': number;
623
- 'limit.spending': number | null;
624
- 'currency': string;
625
- 'extra.usage.enabled'?: boolean;
626
- 'auto.reload.enabled'?: boolean;
627
- 'auto.reload.threshold_cents'?: number | null;
628
- 'auto.reload.amount_cents'?: number | null;
629
- 'llm.provider'?: 'openai' | 'anthropic' | 'google' | 'xai' | null;
630
- 'byok.providers'?: ByokProviders | null;
631
- 'board.auto.enabled'?: boolean;
632
- 'payments.online'?: boolean;
633
- 'payments.coupons'?: boolean;
634
- 'stock.enabled'?: boolean;
635
- 'branding'?: TeamBrand | null;
636
- };
637
- type TeamUsage = Partial<Record<PlanFeature, TeamFeatureUsage>> & {
638
- extraUsageEnabled?: boolean;
639
- currentSpending?: number;
640
- walletCloudUsed?: number;
641
- walletCloudPremiumUsed?: number;
642
- spendingLimit?: number | null;
643
- cycleEndsAt?: string | null;
644
- resetsAt?: string | null;
645
- autoReload?: {
646
- enabled: boolean;
647
- thresholdCents: number | null;
648
- amountCents: number | null;
649
- };
650
- };
651
- type TeamFeatureUsage = {
652
- current: number;
653
- limit: number;
654
- reached?: boolean;
655
- };
656
- type AiCostEntry = {
657
- id: number;
658
- model: string | null;
659
- agent: {
660
- name: string;
661
- uuid: string;
662
- } | null;
663
- inputTokens: number;
664
- outputTokens: number;
665
- totalTokens: number;
666
- costCents: number | null;
667
- createdAt: string;
668
- };
669
- type AiCostsSummary = {
670
- totalCostCents: number;
671
- totalTokens: number;
672
- totalRequests: number;
673
- byModel: Record<string, {
674
- costCents: number;
675
- tokens: number;
676
- count: number;
677
- }>;
811
+ badge: string | null;
812
+ configuration?: Configuration;
813
+ media: Media[];
814
+ product?: Product | null;
678
815
  };
679
- type AiCostsResponse = {
680
- summary: AiCostsSummary;
681
- usages: {
682
- data: AiCostEntry[];
683
- pagination: {
684
- currentPage: number;
685
- lastPage: number;
686
- perPage: number;
687
- total: number;
688
- };
816
+ type Cart = {
817
+ subtotal: number;
818
+ taxes: {
819
+ amount: number;
820
+ percent: number;
689
821
  };
822
+ total: number;
823
+ items: CartItem[];
824
+ coupon: Coupon | null;
825
+ couponDiscount: number;
690
826
  };
691
- //#endregion
692
- //#region src/flow/types.d.ts
693
- type FlowCategory = 'none' | 'defi' | 'nft' | 'social' | 'devtools' | 'productivity' | 'trading' | 'portfolio';
694
- type FlowStatus = 'draft' | 'published';
695
- type Flow = {
696
- slug: string;
697
- team: Team;
698
- name: string;
699
- description: string | null;
700
- category: FlowCategory;
701
- status: FlowStatus;
702
- publishedAt: string | null;
703
- createdAt: string;
704
- updatedAt: string;
705
- steps: FlowStep[];
706
- locales: WarpLocale[];
707
- marketplace: MarketplaceInfo;
708
- screenshots: string[];
827
+ type Coupon = {
828
+ code: string;
829
+ amount: number;
830
+ percent: number;
831
+ expiresAt: string | null;
709
832
  };
710
- type FlowStep = {
711
- stepId: string;
712
- order: number;
713
- type: 'warp' | 'condition' | 'delay';
714
- warpIdentifier: string | null;
715
- dependsOn: string[] | null;
716
- inputMappings: FlowInputMapping[] | null;
717
- staticInputs: Record<string, any> | null;
718
- condition: Record<string, any> | null;
833
+ type PurchaseResult = {
834
+ order_id?: string;
835
+ message?: string;
836
+ subscription_active?: boolean;
719
837
  };
720
- type FlowInputMapping = {
721
- sourceStepId: string;
722
- sourceKey: string;
723
- targetInput: string;
724
- transform?: string;
838
+ type PurchaseOptions = {
839
+ forceProvider?: PaymentProvider;
840
+ billingAddress?: BillingAddress | null;
841
+ meta?: Record<string, string>;
725
842
  };
726
843
  //#endregion
727
844
  //#region src/skill/types.d.ts
@@ -762,14 +879,14 @@ type Skill = {
762
879
  sourcePath: string | null;
763
880
  scope?: SkillScopeValue;
764
881
  active: boolean;
765
- marketplace: MarketplaceInfo;
882
+ marketplace: StoreInfo;
766
883
  createdAt: string;
767
884
  media?: Media[];
768
885
  screenshots: string[];
769
886
  };
770
887
  //#endregion
771
888
  //#region src/integration/types.d.ts
772
- type IntegrationType = 'none' | 'webhook' | 'api-token' | 'telegram' | 'slack' | 'whatsapp' | 'twilio' | 'n8n' | 'apple-health' | 'mcp' | 'x' | 'email' | 'calendar' | 'embed' | 'discord' | 'github' | 'sentry' | 'readwise';
889
+ type IntegrationType = 'none' | 'webhook' | 'api-token' | 'telegram' | 'slack' | 'whatsapp' | 'twilio' | 'sms' | 'n8n' | 'apple-health' | 'mcp' | 'x' | 'email' | 'calendar' | 'embed' | 'discord' | 'github' | 'sentry' | 'readwise';
773
890
  type IntegrationDetails = {
774
891
  type: IntegrationType;
775
892
  name: string;
@@ -860,7 +977,7 @@ type Agent = {
860
977
  avatar: string;
861
978
  wallets: Wallet[];
862
979
  settings: AgentSettings;
863
- marketplace: MarketplaceInfo;
980
+ marketplace: StoreInfo;
864
981
  character?: AgentCharacter | null;
865
982
  room: Room;
866
983
  role: string | null;
@@ -874,7 +991,7 @@ type AgentPrivate = {
874
991
  avatar: string;
875
992
  wallets: Wallet[];
876
993
  settings: AgentSettings;
877
- marketplace: MarketplaceInfo;
994
+ marketplace: StoreInfo;
878
995
  password: string | null;
879
996
  authKey: string | null;
880
997
  secKey: string;
@@ -898,6 +1015,11 @@ type AgentActionHistoryEntry = {
898
1015
  type AgentSimple = {
899
1016
  uuid: string;
900
1017
  name: string;
1018
+ avatar?: string | null;
1019
+ authKey?: string | null;
1020
+ team?: {
1021
+ slug: string;
1022
+ } | null;
901
1023
  };
902
1024
  type AgentWalletMode = 'local' | 'cloud' | 'external';
903
1025
  type AgentEngine = 'cortex' | 'openclaw';
@@ -1048,10 +1170,52 @@ type WarpSearchHit = {
1048
1170
  brandLogo: string | Record<string, string> | null;
1049
1171
  };
1050
1172
  //#endregion
1051
- //#region src/marketplace/types.d.ts
1052
- type MarketplaceEntityType = 'skill' | 'flow' | 'blueprint' | 'agent' | 'service';
1053
- type PricingModel = 'free' | 'one-time' | 'monthly' | 'per-run';
1054
- type MarketplacePricing = {
1173
+ //#region src/store/types.d.ts
1174
+ type StoreVisibility = 'private' | 'team' | 'public';
1175
+ type StoreEntry = {
1176
+ value: number | string | boolean;
1177
+ label?: string;
1178
+ at: string;
1179
+ };
1180
+ type Store = {
1181
+ name: string;
1182
+ description: string;
1183
+ valueType: 'scalar' | 'series';
1184
+ unit?: string;
1185
+ visibility: StoreVisibility;
1186
+ entryCount: number;
1187
+ lastValue?: number | string | boolean;
1188
+ lastAt?: string;
1189
+ };
1190
+ type StoreWithEntries = {
1191
+ name: string;
1192
+ description: string;
1193
+ unit?: string;
1194
+ entries: StoreEntry[];
1195
+ };
1196
+ type StoreCreatePayload = {
1197
+ name: string;
1198
+ description?: string;
1199
+ valueType?: 'scalar' | 'series';
1200
+ unit?: string;
1201
+ visibility?: StoreVisibility;
1202
+ };
1203
+ type StoreEntryPayload = {
1204
+ storeName?: string;
1205
+ value: number | string | boolean;
1206
+ label?: string;
1207
+ };
1208
+ type StoreEntryResult = {
1209
+ name: string;
1210
+ entryCount: number;
1211
+ };
1212
+ type StoreToggleResult = {
1213
+ name: string;
1214
+ value: number | string | boolean;
1215
+ previous: number | string | boolean;
1216
+ };
1217
+ type StoreEntityType = 'skill' | 'flow' | 'blueprint' | 'agent' | 'service';
1218
+ type StorePricing = {
1055
1219
  model: PricingModel;
1056
1220
  amount: string;
1057
1221
  currency: string;
@@ -1062,29 +1226,30 @@ type MarketplacePricing = {
1062
1226
  trialDays?: number;
1063
1227
  } | null;
1064
1228
  };
1065
- type MarketplaceInfo = {
1229
+ type StoreInfo = {
1066
1230
  price: number | null;
1067
1231
  purchased: boolean;
1068
1232
  uses: number;
1069
1233
  public: boolean;
1070
- pricing: MarketplacePricing;
1234
+ pricing: StorePricing;
1071
1235
  };
1072
- type MarketplaceListing = {
1073
- entityType: MarketplaceEntityType;
1236
+ type StoreListing = {
1237
+ entityType: StoreEntityType;
1074
1238
  entityId: string;
1075
1239
  name: string;
1076
1240
  description: string | null;
1077
- pricing: MarketplacePricing;
1241
+ pricing: StorePricing;
1078
1242
  seller: {
1079
1243
  team: string;
1080
1244
  name: string;
1081
1245
  wallet?: string | null;
1082
1246
  };
1083
1247
  };
1084
- type MarketplaceAgent = {
1248
+ type StoreAgent = {
1085
1249
  uuid: string;
1086
1250
  name: string;
1087
1251
  description: string | null;
1252
+ public: boolean;
1088
1253
  avatar: string | null;
1089
1254
  wallets: {
1090
1255
  address: string;
@@ -1094,12 +1259,15 @@ type MarketplaceAgent = {
1094
1259
  name: string | null;
1095
1260
  bio: string | null;
1096
1261
  } | null;
1097
- marketplace: MarketplaceInfo;
1262
+ marketplace: StoreInfo;
1098
1263
  screenshots: string[];
1264
+ mcpEndpoint: string;
1265
+ a2aCard: string;
1266
+ blueprint: Blueprint | null;
1099
1267
  };
1100
- type MarketplaceItem = {
1268
+ type StoreItem = {
1101
1269
  type: 'agent';
1102
- item: MarketplaceAgent;
1270
+ item: StoreAgent;
1103
1271
  } | {
1104
1272
  type: 'blueprint';
1105
1273
  item: Blueprint;
@@ -1110,37 +1278,59 @@ type MarketplaceItem = {
1110
1278
  type: 'skill';
1111
1279
  item: Skill;
1112
1280
  };
1113
- type MarketplaceData = {
1281
+ type StoreData = {
1114
1282
  blueprints: Blueprint[];
1115
1283
  skills: Skill[];
1116
1284
  flows: Flow[];
1117
1285
  creators: BrandBackend[];
1118
- agents: MarketplaceAgent[];
1119
- items: MarketplaceItem[];
1286
+ agents: StoreAgent[];
1287
+ items: StoreItem[];
1120
1288
  };
1121
- type MarketplacePriceTier = {
1289
+ type StorePriceTier = {
1122
1290
  sku: string;
1123
1291
  priceCents: number;
1124
1292
  label: string;
1125
1293
  };
1126
1294
  /**
1127
1295
  * Normalized representation of any marketplace entity for use in checkout flows.
1128
- * All marketplace entities share a `.marketplace: MarketplaceInfo` property —
1296
+ * All marketplace entities share a `.marketplace: StoreInfo` property —
1129
1297
  * combine that with the entity type and ID to construct this.
1130
1298
  */
1131
- type MarketplaceCheckoutItem = {
1132
- entityType: MarketplaceEntityType;
1299
+ type StoreCheckoutItem = {
1300
+ entityType: StoreEntityType;
1133
1301
  entityId: string;
1134
1302
  name: string;
1135
- marketplace: MarketplaceInfo;
1303
+ marketplace: StoreInfo;
1136
1304
  };
1137
- type MarketplacePurchaseResult = {
1305
+ type StorePurchaseResult = {
1138
1306
  purchased: boolean;
1139
1307
  pricePaid: number;
1140
1308
  entityType: string;
1141
1309
  entityId: string;
1142
1310
  paymentMethod: string;
1143
1311
  };
1312
+ type TeamEarning = {
1313
+ id: string;
1314
+ amount: number;
1315
+ status: 'pending' | 'paid';
1316
+ orderId: string | null;
1317
+ createdAt: string;
1318
+ };
1319
+ type TeamEarningsBalance = {
1320
+ pendingCents: number;
1321
+ paidCents: number;
1322
+ totalCents: number;
1323
+ };
1324
+ type CommissionAgreement = {
1325
+ id: number;
1326
+ rate: number;
1327
+ status: string;
1328
+ recipientTeam: {
1329
+ name: string;
1330
+ slug: string;
1331
+ };
1332
+ createdAt: string;
1333
+ };
1144
1334
  //#endregion
1145
1335
  //#region src/blueprint/types.d.ts
1146
1336
  type BlueprintTeam = {
@@ -1159,7 +1349,7 @@ type Blueprint = {
1159
1349
  verified: boolean;
1160
1350
  createdAt: string;
1161
1351
  locales: WarpLocale[];
1162
- marketplace: MarketplaceInfo;
1352
+ marketplace: StoreInfo;
1163
1353
  tags: string[];
1164
1354
  screenshots: string[];
1165
1355
  };
@@ -1306,12 +1496,12 @@ type Meeting = {
1306
1496
  conferenceProvider: MeetingConferenceProvider | null;
1307
1497
  conferenceUrl: string | null;
1308
1498
  conferenceExternalId: string | null;
1499
+ configuration?: Configuration;
1309
1500
  captureMode: 'desktop_local' | null;
1310
1501
  transcriptUrl: string | null;
1311
1502
  summaryUrl: string | null;
1312
1503
  participants?: MeetingParticipant[];
1313
1504
  speakerAssignments?: MeetingSpeakerAssignment[] | null;
1314
- configuration?: Record<string, WarpNativeValue>;
1315
1505
  scheduledAt: string | null;
1316
1506
  calendarEventId: number | null;
1317
1507
  startedAt: string | null;
@@ -1354,6 +1544,9 @@ type MeetingUsage = {
1354
1544
  reached: boolean;
1355
1545
  remainingWords: number | null;
1356
1546
  };
1547
+ type MeetingSummary = {
1548
+ content: string;
1549
+ };
1357
1550
  //#endregion
1358
1551
  //#region src/appointment/types.d.ts
1359
1552
  type AppointmentSlot = {
@@ -1418,7 +1611,7 @@ type AppointmentBooking = {
1418
1611
  status: string;
1419
1612
  attendeeEmail: string | null;
1420
1613
  attendeeName: string | null;
1421
- configuration?: Record<string, WarpNativeValue>;
1614
+ configuration?: Configuration;
1422
1615
  };
1423
1616
  type AppointmentRequest = {
1424
1617
  id: string;
@@ -1434,10 +1627,10 @@ type AppointmentRequest = {
1434
1627
  start: string;
1435
1628
  end: string;
1436
1629
  }[] | null;
1437
- configuration?: Record<string, WarpNativeValue>;
1438
1630
  service?: Service | null;
1439
1631
  meeting?: Meeting | null;
1440
1632
  agent?: Agent | null;
1633
+ configuration?: Configuration;
1441
1634
  createdAt: string;
1442
1635
  };
1443
1636
  //#endregion
@@ -1507,55 +1700,6 @@ type ChangelogEntry = {
1507
1700
  /** Emoji → array of user hashids who reacted */
1508
1701
  type Reactions = Record<string, string[]>;
1509
1702
  //#endregion
1510
- //#region src/contact/types.d.ts
1511
- type Contact = {
1512
- id: string;
1513
- name: string;
1514
- wallets: Wallet[];
1515
- email: string | null;
1516
- phone: string | null;
1517
- company: string | null;
1518
- title: string | null;
1519
- birthday: string | null;
1520
- website: string | null;
1521
- location: string | null;
1522
- socials: Record<string, string> | null;
1523
- notes: string | null;
1524
- tags: string[] | null;
1525
- userId: string | null;
1526
- locale?: string | null;
1527
- props?: Record<string, string> | null;
1528
- };
1529
- type ContactActivityType = 'note' | 'call' | 'meeting' | 'task' | 'update' | 'custom' | 'form';
1530
- type ContactActivityAuthor = {
1531
- name: string;
1532
- imageUrl: string | null;
1533
- };
1534
- type ContactActivity = {
1535
- id: string;
1536
- type: ContactActivityType;
1537
- description: string | null;
1538
- meta: Record<string, any> | null;
1539
- agentName: string | null;
1540
- createdAt: string;
1541
- author?: ContactActivityAuthor | null;
1542
- };
1543
- type ContactFormData = {
1544
- name?: string;
1545
- email?: string | null;
1546
- phone?: string | null;
1547
- company?: string | null;
1548
- title?: string | null;
1549
- birthday?: string | null;
1550
- website?: string | null;
1551
- location?: string | null;
1552
- socials?: Record<string, string> | null;
1553
- notes?: string | null;
1554
- tags?: string[] | null;
1555
- locale?: string | null;
1556
- props?: Record<string, string> | null;
1557
- };
1558
- //#endregion
1559
1703
  //#region src/contract/types.d.ts
1560
1704
  type Contract = {
1561
1705
  id: string;
@@ -2219,12 +2363,12 @@ type ContactViewable = {
2219
2363
  title?: string | null;
2220
2364
  tags?: string[] | null;
2221
2365
  wallets?: {
2222
- chain: string;
2366
+ chain: WarpChainName;
2223
2367
  address: string;
2224
2368
  }[];
2225
2369
  };
2226
- type MarketplacePurchasable = {
2227
- listing: MarketplaceListing;
2370
+ type StorePurchasable = {
2371
+ listing: StoreListing;
2228
2372
  paymentOptions: {
2229
2373
  balance: boolean;
2230
2374
  checkout: string | null;
@@ -2839,7 +2983,7 @@ type Site = {
2839
2983
  enabled: boolean;
2840
2984
  team: SiteTeam | null;
2841
2985
  agent: SiteAgent | null;
2842
- settings: Record<string, unknown>;
2986
+ settings: Record<string, JsonValue>;
2843
2987
  };
2844
2988
  type SiteRoute = {
2845
2989
  path: string;
@@ -2961,49 +3105,113 @@ type LinkStats = {
2961
3105
  scanHistory: LinkScanHistory;
2962
3106
  };
2963
3107
  //#endregion
2964
- //#region src/store/types.d.ts
2965
- type StoreVisibility = 'private' | 'team' | 'public';
2966
- type StoreEntry = {
2967
- value: number | string | boolean;
2968
- label?: string;
2969
- at: string;
3108
+ //#region src/loyalty/types.d.ts
3109
+ type ProgramSettings = {
3110
+ point_name?: string;
3111
+ 'accrual.type'?: string;
3112
+ 'accrual.value'?: number;
3113
+ 'accrual.min_spend_cents'?: number;
3114
+ 'accrual.exempt_items'?: string[];
3115
+ 'points.expire_months'?: number | null;
2970
3116
  };
2971
- type Store = {
3117
+ type LoyaltyProgram = {
2972
3118
  name: string;
2973
- description: string;
2974
- valueType: 'scalar' | 'series';
2975
- unit?: string;
2976
- visibility: StoreVisibility;
2977
- entryCount: number;
2978
- lastValue?: number | string | boolean;
2979
- lastAt?: string;
3119
+ active: boolean;
3120
+ settings: ProgramSettings;
3121
+ rewardCount: number;
3122
+ tierCount: number;
3123
+ memberCount: number;
2980
3124
  };
2981
- type StoreWithEntries = {
3125
+ type LoyaltyReward = {
3126
+ id: string;
3127
+ type: string;
2982
3128
  name: string;
2983
- description: string;
2984
- unit?: string;
2985
- entries: StoreEntry[];
3129
+ pointsCost: number;
3130
+ config: Record<string, JsonValue> | null;
3131
+ sortOrder: number;
2986
3132
  };
2987
- type StoreCreatePayload = {
3133
+ type LoyaltyTier = {
3134
+ id: string;
2988
3135
  name: string;
2989
- description?: string;
2990
- valueType?: 'scalar' | 'series';
2991
- unit?: string;
2992
- visibility?: StoreVisibility;
3136
+ minPoints: number;
3137
+ pointsMultiplier: number;
3138
+ color: string | null;
3139
+ benefits: {
3140
+ type: string;
3141
+ label: string;
3142
+ }[] | null;
2993
3143
  };
2994
- type StoreEntryPayload = {
2995
- storeName?: string;
2996
- value: number | string | boolean;
2997
- label?: string;
3144
+ type LoyaltyPromotion = {
3145
+ id: string;
3146
+ name: string;
3147
+ type: string;
3148
+ value: number;
3149
+ startsAt: string;
3150
+ endsAt: string;
3151
+ minSpendCents: number | null;
3152
+ active: boolean;
2998
3153
  };
2999
- type StoreEntryResult = {
3154
+ type LoyaltyTierInfo = {
3000
3155
  name: string;
3001
- entryCount: number;
3156
+ multiplier: number;
3157
+ benefits?: {
3158
+ type: string;
3159
+ label: string;
3160
+ }[];
3002
3161
  };
3003
- type StoreToggleResult = {
3162
+ type LoyaltyNextTier = {
3004
3163
  name: string;
3005
- value: number | string | boolean;
3006
- previous: number | string | boolean;
3164
+ pointsNeeded: number;
3165
+ multiplier: number;
3166
+ };
3167
+ type LoyaltyStatus = {
3168
+ contactName: string;
3169
+ points: number;
3170
+ lifetimePoints: number;
3171
+ tier: LoyaltyTierInfo | null;
3172
+ nextTier: LoyaltyNextTier | null;
3173
+ rewardReady: boolean;
3174
+ };
3175
+ type LoyaltyAccount = {
3176
+ contact: Contact;
3177
+ points: number;
3178
+ lifetimePoints: number;
3179
+ tier: {
3180
+ name: string;
3181
+ multiplier: number;
3182
+ } | null;
3183
+ status: LoyaltyStatus | null;
3184
+ };
3185
+ type LoyaltyTransaction = {
3186
+ id: string;
3187
+ type: string;
3188
+ points: number;
3189
+ balanceAfter: number;
3190
+ description: string | null;
3191
+ createdAt: string;
3192
+ };
3193
+ type EarnResponse = {
3194
+ contactName: string;
3195
+ points: number;
3196
+ totalPoints: number;
3197
+ tierName?: string;
3198
+ multiplier?: number;
3199
+ };
3200
+ type RedeemResponse = {
3201
+ rewardName: string;
3202
+ rewardType: string;
3203
+ pointsCost: number;
3204
+ remainingPoints: number;
3205
+ discountConfig?: JsonValue;
3206
+ };
3207
+ type LoyaltyMember = {
3208
+ id: string;
3209
+ contactId: string;
3210
+ contactName: string;
3211
+ points: number;
3212
+ lifetimePoints: number;
3213
+ tier: string | null;
3214
+ updatedAt: string;
3007
3215
  };
3008
3216
  //#endregion
3009
3217
  //#region src/update/types.d.ts
@@ -3049,6 +3257,27 @@ type UpdateStats = {
3049
3257
  creationHistory: number[];
3050
3258
  };
3051
3259
  //#endregion
3260
+ //#region src/upgrade/types.d.ts
3261
+ type UpgradeStatus = 'Pending' | 'Accepted' | 'Rejected';
3262
+ type UpgradeSourceType = 'Agent' | 'Marketplace';
3263
+ type Upgrade = {
3264
+ id: string;
3265
+ entityType: string;
3266
+ sourceType: UpgradeSourceType;
3267
+ agentUuid: string | null;
3268
+ originalContent: string | null;
3269
+ proposedContent: string;
3270
+ status: UpgradeStatus;
3271
+ changeReason: string | null;
3272
+ diff: {
3273
+ original: string;
3274
+ proposed: string;
3275
+ hasChanges: boolean;
3276
+ };
3277
+ proposedAt: string;
3278
+ respondedAt: string | null;
3279
+ };
3280
+ //#endregion
3052
3281
  //#region src/swarm/types.d.ts
3053
3282
  type Swarm = {
3054
3283
  id: string;
@@ -3105,13 +3334,41 @@ type RampProviderInfo = {
3105
3334
  };
3106
3335
  //#endregion
3107
3336
  //#region src/warp-webhooks/types.d.ts
3337
+ type AgentWebhookTriggerCondition = {
3338
+ path: string;
3339
+ operator: 'exists' | 'equals' | 'contains' | 'not_contains';
3340
+ value?: unknown;
3341
+ };
3342
+ type AgentWebhookTriggerInput = string | {
3343
+ source: 'payload';
3344
+ path: string;
3345
+ } | {
3346
+ source: 'literal';
3347
+ value: unknown;
3348
+ };
3349
+ type AgentWebhookTrigger = {
3350
+ event?: string;
3351
+ contract?: string;
3352
+ when?: AgentWebhookTriggerCondition[];
3353
+ inputs?: Record<string, AgentWebhookTriggerInput>;
3354
+ };
3108
3355
  type AgentWebhookWarp = {
3109
3356
  id: number;
3110
3357
  source: string;
3358
+ event?: string | null;
3359
+ contract?: string | null;
3111
3360
  next: string;
3361
+ active: boolean;
3362
+ managed: boolean;
3363
+ trigger?: AgentWebhookTrigger | null;
3112
3364
  warpIdentifier: string | null;
3113
3365
  createdAt: string;
3114
3366
  };
3367
+ type ActivateAgentWebhookWarpPayload = {
3368
+ warpIdentifier: string;
3369
+ source?: 'internal';
3370
+ trigger?: AgentWebhookTrigger;
3371
+ };
3115
3372
  //#endregion
3116
3373
  //#region src/webhook/types.d.ts
3117
3374
  type WebhookTriggerEvent = 'agent.action' | 'agent.message' | 'user.message';
@@ -3225,4 +3482,4 @@ type CliSessionStatus = {
3225
3482
  meta: CliSessionMeta | null;
3226
3483
  };
3227
3484
  //#endregion
3228
- export { Achievement, Affiliate, AffiliateStatus, AffiliateTier, AffiliateTierName, Agent, AgentActionHistoryEntry, AgentCharacter, AgentDelegatable, AgentEngine, AgentExecuteHandler, AgentExecuteOptions, AgentGender, AgentMessageMeta, AgentMessageOptions, AgentPrivate, AgentSettings, AgentSimple, AgentWalletMode, AgentWebhookWarp, AggregatedRoute, AiCostEntry, AiCostsResponse, AiCostsSummary, Alert, ApiToken, AppEnv, AppFile, AppFileType, AppIngestion, AppSubscription, AppointmentAvailability, AppointmentAvailabilityService, AppointmentAvailabilitySlot, AppointmentBooking, AppointmentBookingContext, AppointmentPolicy, AppointmentRequest, AppointmentSlot, BillingAddress, Blueprint, BlueprintOnboardingStep, BlueprintRedirect, BlueprintSettings, BlueprintShortcut, BlueprintTask, BlueprintTeam, BoardSummaryViewable, BookmarkEntry, BrandBackend, BrandIntegration, BrandIntegrationAction, BrandIntegrationProvider, BrandSearchHit, BrandSiteConfig, BrandSourceConfig, Budget, ByokProviderConfig, ByokProviderName, ByokProviders, CalendarProvider, CalendarStatus, Card, Cart, CartItem, Challenge, Challenges, ChangelogEntry, Character, ChatClientAction, ChatClientThought, ChatStreamData, ChatStreamEventType, CliSessionMeta, CliSessionStatus, Contact, ContactActivity, ContactActivityAuthor, ContactActivityType, ContactFormData, ContactViewable, Contract, ContractCategoryDisplayNames, ContractCategoryName, ContractCodeMetadata, ContractEntity, ContractOnNetwork, ContractVersion, ContractsAddressConfig, CortexExecuteOptions, Coupon, DefaultCodeMetadata, DemoFlow, DemoMessage, Desk, DeskItem, DeskItemRole, Document, Earning, Element, ElementSpec, ElementType, ElementVariation, EmailProvider, EmbedStatus, EncryptionStatus, Entity, EntityDirectExecuteRequest, EntityProposable, EntitySignable, EntityTemplate, Experience, FileInfo, FileMetadata, Flow, FlowCategory, FlowInputMapping, FlowStatus, FlowStep, GamificationData, GamificationEventType, Goal, GoalCreatePayload, GoalPriority, GoalProgressViewable, GoalStatus, HintOptions, HintPosition, HttpService, IAppResponse, IHttpService, IRequestOptions, IngestionSourceType, IngestionStatus, Inquiry, InquiryStatus, InquiryType, Integration, IntegrationDetails, IntegrationType, Intent, Item, ItemCreatePayload, ItemExecutionStatus, ItemPriority, ItemStatus, ItemUpdatePayload, ItemViewable, JoaiUrls, Kyc, KycStatus, Link, LinkCreatePayload, LinkScanHistory, LinkStats, LinkUpdatePayload, LinkVariation, LinkVariationBatchCreatePayload, LinkVariationCreatePayload, LocalAgentWallet, MarketplaceAgent, MarketplaceCheckoutItem, MarketplaceData, MarketplaceEntityType, MarketplaceInfo, MarketplaceItem, MarketplaceListing, MarketplacePriceTier, MarketplacePricing, MarketplacePurchasable, MarketplacePurchaseResult, McpToolCall, McpToolCallBroadcast, McpToolCallStatus, Media, MediaAttributes, MediaItems, MediaLibraryAttributes, MediaLibraryItems, MediaMime, Meeting, MeetingConferenceProvider, MeetingFeature, MeetingJoinInfo, MeetingJoinTeam, MeetingParticipant, MeetingSessionState, MeetingSpeakerAssignment, MeetingStatus, MeetingTranscriptEntry, MeetingUsage, Memory, Message, MessageId, MessageRole, Milestone, MilestoneType, Mission, MissionBudget, MissionCreatePayload, MissionPlan, MissionPriority, MissionSchedule, MissionStatus, MissionViewable, MultimodalContent, MultimodalFile, 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, OrderItem, OrderStatus, PaginatedResponse, PaymentProvider, PayoutEntry, PeriodTypeLabels, PeriodTypeOptions, PermissionConfigType, PersonaQuestionable, Plan, PlanBenefit, PlanExtra, PlanFeature, PlanInterval, PolicyMethod, PolicySetting, PricingModel, Product, ProductConfiguration, ProductDiscount, ProductMeta, ProductPieces, ProductRating, ProductRelation, ProductRelationType, ProductVariation, ProductVariationMeta, ProductVariationType, 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, PurchaseOptions, PurchaseResult, RampProvider, RampProviderInfo, Reactions, RecentExperience, Reminder, Room, RoomId, RoomKind, ScInfo, SchedulePreset, SecretAuthorizable, SecretSettable, SendableActivityUpdate, SendableAgentAction, SendableAgentMessage, SendableAgentThought, SendableMedia, SendableUserMessage, Service, Shortcut, Site, SiteAgent, SiteBrand, SiteRoute, SiteTeam, Skill, SkillMediaBindingRole, SkillMediaBindingRoleValue, SkillScope, SkillScopeValue, SkillType, SkillTypeValue, SocialAuthProvider, SocialBot, SocialPlatform, Store, StoreCreatePayload, StoreEntry, StoreEntryPayload, StoreEntryResult, StoreToggleResult, StoreVisibility, StoreWithEntries, Streak, SubscriptionInterval, SubscriptionPlan, SubscriptionStatus, Swarm, Task, Team, TeamBrand, TeamCategory, TeamFeature, TeamFeatureUsage, TeamMember, TeamMeta, TeamPrivate, TeamSettings, TeamUsage, Tier, TierFeature, TierName, TranscriptEntry, TranscriptionCorrection, TranscriptionResponse, TranslatableValue, Update, UpdateCreatePayload, UpdateRelation, UpdateStats, UpdateStatus, UpdateType, UpdateUpdatePayload, User, UserInterest, UserMode, UserPrivate, UserRole, UserSettings, UserSocialAccount, UserStats, VolumePrice, Wallet, WalletList, WarpApprovable, WarpBackend, WarpBackendCategory, WarpBackendStatus, WarpBatchItem, WarpBatchable, WarpCloudExecutable, WarpCreateable, WarpExecutable, WarpExtras, WarpExtrasFaq, WarpInputable, WarpScreenshotVariant, WarpSearchHit, WarpSelectable, WarpSelectableDetails, WarpSuggestion, WarpTestable, WarpViewable, Webhook, WebhookTriggerEvent, WorkspaceCloudFile, WorkspaceContext, WorkspaceInfo, WorkspaceSettings, XIntegrationStatus, abbreviateNumber, getAgentsBaseUrl, getApiBaseUrl, getAppBaseUrl, getAssetAppLogoUrl, getAssetChainLogoUrl, getAssetPartnerLogoUrl, getAssetTokenLogoUrl, getAssetWalletLogoUrl, getCortexBaseUrl, getDigestBaseUrl, getFormsBaseUrl, getMcpServerAgentUrl, getSiteUrl, getSitesRootDomain, getStoreBaseUrl, getWarpScreenshotUrl, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, localize, ogImageUrl, resolveWarpText, sanitizeAlphanumeric, sanitizeNumeric, toCurrencyDisplay, toHexEncodedNonce, toNameInitials, toNftId, toPreviewText, withRetry };
3485
+ export { Achievement, ActivateAgentWebhookWarpPayload, Affiliate, AffiliateStatus, AffiliateTier, AffiliateTierName, Agent, AgentActionHistoryEntry, AgentCharacter, AgentDelegatable, AgentEngine, AgentExecuteHandler, AgentExecuteOptions, AgentGender, AgentMessageMeta, AgentMessageOptions, AgentPrivate, AgentSettings, AgentSimple, AgentWalletMode, AgentWebhookTrigger, AgentWebhookTriggerCondition, AgentWebhookTriggerInput, AgentWebhookWarp, AggregatedRoute, AiCostEntry, AiCostsResponse, AiCostsSummary, Alert, ApiToken, AppEnv, AppFile, AppFileType, AppIngestion, AppSubscription, AppointmentAvailability, AppointmentAvailabilityService, AppointmentAvailabilitySlot, AppointmentBooking, AppointmentBookingContext, AppointmentPolicy, AppointmentRequest, AppointmentSlot, AuthUser, BillingAddress, Blueprint, BlueprintOnboardingStep, BlueprintRedirect, BlueprintSettings, BlueprintShortcut, BlueprintTask, BlueprintTeam, BoardSummaryViewable, BookmarkEntry, BrandBackend, BrandIntegration, BrandIntegrationAction, BrandIntegrationProvider, BrandSearchHit, BrandSiteConfig, BrandSourceConfig, Budget, ByokProviderConfig, ByokProviderName, ByokProviders, CalendarProvider, CalendarStatus, Card, Cart, CartItem, Challenge, Challenges, ChangelogEntry, Character, ChatClientAction, ChatClientThought, ChatStreamData, ChatStreamEventType, CliSessionMeta, CliSessionStatus, CommissionAgreement, Configuration, Contact, ContactActivity, ContactActivityAuthor, ContactActivityType, ContactCreatePayload, ContactFormData, ContactViewable, Contract, ContractCategoryDisplayNames, ContractCategoryName, ContractCodeMetadata, ContractEntity, ContractOnNetwork, ContractVersion, ContractsAddressConfig, CortexExecuteOptions, Coupon, DefaultCodeMetadata, 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, GamificationData, GamificationEventType, Goal, GoalCreatePayload, GoalPriority, GoalProgressViewable, GoalStatus, HintOptions, HintPosition, HttpService, IAppResponse, IHttpService, IRequestOptions, IngestionSourceType, IngestionStatus, Inquiry, InquiryStatus, InquiryType, Integration, IntegrationDetails, IntegrationType, Intent, Item, ItemCreatePayload, ItemExecutionStatus, ItemPriority, ItemStatus, ItemUpdatePayload, ItemViewable, JoaiUrls, JsonValue, 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, MediaAttributes, MediaItems, MediaLibraryAttributes, MediaLibraryItems, 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, MultimodalContent, MultimodalFile, 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, PaginatedResponse, PaymentAccount, PaymentAccountOnboarding, PaymentProvider, PayoutEntry, PeriodTypeLabels, PeriodTypeOptions, PermissionConfigType, 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, PurchaseOptions, PurchaseResult, RampProvider, RampProviderInfo, Reactions, RecentExperience, RedeemResponse, Reminder, Room, RoomId, RoomKind, ScInfo, SchedulePreset, SecretAuthorizable, SecretSettable, SendableActivityUpdate, SendableAgentAction, SendableAgentMessage, SendableAgentThought, SendableMedia, SendableUserMessage, Service, Shortcut, Site, SiteAgent, SiteBrand, SiteRoute, SiteTeam, Skill, SkillMediaBindingRole, SkillMediaBindingRoleValue, SkillScope, SkillScopeValue, SkillType, SkillTypeValue, SocialAuthProvider, SocialBot, SocialPlatform, Store, StoreAgent, StoreCheckoutItem, StoreCreatePayload, StoreData, StoreEntityType, StoreEntry, StoreEntryPayload, StoreEntryResult, StoreInfo, StoreItem, StoreListing, StorePriceTier, StorePricing, StorePurchasable, StorePurchaseResult, StoreToggleResult, StoreVisibility, StoreWithEntries, Streak, SubscriptionInterval, SubscriptionPlan, SubscriptionStatus, Swarm, Task, Team, TeamBrand, TeamCategory, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureUsage, TeamMember, TeamMeta, TeamPrivate, TeamSettings, TeamUsage, TerminalConnectionToken, TerminalPaymentIntent, Tier, TierFeature, TierName, TranscriptEntry, TranscriptionCorrection, TranscriptionResponse, TranslatableValue, Update, UpdateCreatePayload, UpdateRelation, UpdateStats, UpdateStatus, UpdateType, UpdateUpdatePayload, Upgrade, UpgradeSourceType, UpgradeStatus, User, UserInterest, UserMode, UserPrivate, UserRole, UserSettings, UserSocialAccount, UserStats, VolumePrice, Wallet, WalletList, WarpApprovable, WarpBackend, WarpBackendCategory, WarpBackendStatus, WarpBatchItem, WarpBatchable, WarpCloudExecutable, WarpCreateable, WarpExecutable, WarpExtras, WarpExtrasFaq, WarpInputable, WarpScreenshotVariant, WarpSearchHit, WarpSelectable, WarpSelectableDetails, WarpSuggestion, WarpTestable, WarpViewable, Webhook, WebhookTriggerEvent, WorkspaceCloudFile, WorkspaceContext, WorkspaceInfo, WorkspaceSettings, XIntegrationStatus, abbreviateNumber, getAgentsBaseUrl, getApiBaseUrl, getAppBaseUrl, getAssetAppLogoUrl, getAssetChainLogoUrl, getAssetPartnerLogoUrl, getAssetTokenLogoUrl, getAssetWalletLogoUrl, getCortexBaseUrl, getDigestBaseUrl, getFormsBaseUrl, getMcpServerAgentUrl, getSiteUrl, getSitesRootDomain, getStoreBaseUrl, getWarpScreenshotUrl, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, localize, ogImageUrl, resolveWarpText, sanitizeAlphanumeric, sanitizeNumeric, teamCategories, toCurrencyDisplay, toHexEncodedNonce, toNameInitials, toNftId, toPreviewText, withRetry };