@joai/core 0.2.0 → 0.3.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,5 @@
1
- import { Warp, WarpActionInput, WarpBrandUrls, WarpChainInfo, WarpChainName, WarpLocale, WarpSecret, WarpWalletProvider } from "@joai/warps";
1
+ import { n as IHttpService, r as IRequestOptions, t as IAppResponse } from "./types-C4eYYzWF.mjs";
2
+ import { Warp, WarpActionInput, WarpBrandUrls, WarpChainInfo, WarpChainName, WarpI18nText, WarpLocale, WarpSecret, WarpText, WarpWalletProvider } from "@joai/warps";
2
3
 
3
4
  //#region src/auth/types.d.ts
4
5
  type SocialAuthProvider = 'github' | 'apple' | 'google' | 'x' | 'telegram' | 'slack';
@@ -10,7 +11,12 @@ type AppEnv = 'mainnet' | 'testnet' | 'devnet' | 'local';
10
11
  declare const getApiBaseUrl: (env: AppEnv) => string;
11
12
  declare const getCortexBaseUrl: (env: AppEnv) => "http://localhost:3010" | "https://devnet-cortex.joai.ai" | "https://testnet-cortex.joai.ai" | "https://cortex.joai.ai";
12
13
  declare const getAppBaseUrl: (env: AppEnv) => "http://app.joai--api.test:3004" | "https://devnet.joai.ai" | "https://testnet.joai.ai" | "https://joai.ai";
14
+ declare const getDigestBaseUrl: (env: AppEnv) => "http://localhost:3005" | "https://devnet-digests.joai.ai" | "https://testnet-digests.joai.ai" | "https://digests.joai.ai";
15
+ declare const getMarketplaceBaseUrl: (env: AppEnv) => "http://localhost:3006" | "https://devnet-marketplace.joai.ai" | "https://testnet-marketplace.joai.ai" | "https://marketplace.joai.ai";
16
+ declare const getAgentsBaseUrl: (env: AppEnv) => "http://localhost:3007" | "https://devnet-agents.joai.ai" | "https://testnet-agents.joai.ai" | "https://agents.joai.ai";
13
17
  declare const getMcpServerAgentUrl: (env: AppEnv, agent: string) => string;
18
+ declare const getSitesRootDomain: (env: AppEnv) => string;
19
+ declare const getSiteUrl: (env: AppEnv, teamSlug: string, brandSlug: string) => string;
14
20
  //#endregion
15
21
  //#region src/config/constants.d.ts
16
22
  declare const JoaiUrls: {
@@ -26,36 +32,6 @@ declare const JoaiUrls: {
26
32
  readonly PlayStore: "https://play.google.com/store/apps/details?id=ai.joai.app";
27
33
  };
28
34
  //#endregion
29
- //#region src/http/types.d.ts
30
- interface IHttpService {
31
- readonly baseUrl: string;
32
- readonly authToken: string | null;
33
- onNetworkError: (error: Error) => void;
34
- onUnauthorized: (response: IAppResponse<any>) => void;
35
- onSuccessfulResponse: (response: IAppResponse<any>) => void;
36
- onMaintenanceMode: (response: IAppResponse<any>) => void;
37
- get: <T>(url: string, options?: IRequestOptions) => Promise<IAppResponse<T>>;
38
- post: <T>(url: string, data?: any, options?: IRequestOptions) => Promise<IAppResponse<T>>;
39
- put: <T>(url: string, data?: any, options?: IRequestOptions) => Promise<IAppResponse<T>>;
40
- delete: <T>(url: string, options?: IRequestOptions) => Promise<IAppResponse<T>>;
41
- }
42
- interface IAppResponse<T> {
43
- data: T;
44
- meta?: any;
45
- body: any;
46
- errors: any;
47
- ok: boolean;
48
- paymentRequired: boolean;
49
- noContent: boolean;
50
- original: Response;
51
- }
52
- interface IRequestOptions {
53
- isJson?: boolean;
54
- headers?: {
55
- [name: string]: string;
56
- };
57
- }
58
- //#endregion
59
35
  //#region src/http/service.d.ts
60
36
  declare class HttpService implements IHttpService {
61
37
  readonly baseUrl: string;
@@ -94,7 +70,8 @@ type IngestionSourceType = 'note' | 'meeting' | 'article' | 'email' | 'chat' | '
94
70
  type IngestionStatus = 'pending' | 'processing' | 'completed' | 'failed' | 'dead_lettered';
95
71
  type AppIngestion = {
96
72
  id: string;
97
- shareToken: string | null;
73
+ slug: string | null;
74
+ isPublic: boolean;
98
75
  sourceUrl: string | null;
99
76
  viewCount: number;
100
77
  signupCount: number;
@@ -106,6 +83,43 @@ type AppIngestion = {
106
83
  summary: string | null;
107
84
  hook: string | null;
108
85
  primitivesCreated: Record<string, number>;
86
+ extracted?: {
87
+ memories?: Array<{
88
+ content: string;
89
+ thought?: string;
90
+ category?: string;
91
+ tags?: string[];
92
+ }>;
93
+ actionItems?: Array<{
94
+ title: string;
95
+ description?: string;
96
+ thought?: string;
97
+ priority?: string;
98
+ dueDate?: string;
99
+ }>;
100
+ reminders?: Array<{
101
+ text: string;
102
+ thought?: string;
103
+ scheduledAt?: string;
104
+ }>;
105
+ contacts?: Array<{
106
+ name: string;
107
+ company?: string;
108
+ thought?: string;
109
+ email?: string;
110
+ phone?: string;
111
+ tags?: string[];
112
+ }>;
113
+ goals?: Array<{
114
+ title: string;
115
+ description?: string;
116
+ thought?: string;
117
+ }>;
118
+ documents?: Array<{
119
+ title: string;
120
+ thought?: string;
121
+ }>;
122
+ };
109
123
  failureReason: string | null;
110
124
  lastError: string | null;
111
125
  processedAt: string | null;
@@ -117,84 +131,8 @@ type Character = {
117
131
  id: string;
118
132
  name: string;
119
133
  system: string;
120
- bio: string;
121
- };
122
- //#endregion
123
- //#region src/blueprint/types.d.ts
124
- type BlueprintTeam = {
125
- slug: string;
126
- name: string;
127
- logo: string | null;
128
- };
129
- type Blueprint = {
130
- slug: string;
131
- team: BlueprintTeam;
132
- name: string;
133
- description: string | null;
134
- avatar: string | null;
135
- settings: BlueprintSettings;
136
- verified: boolean;
137
- public: boolean;
138
- createdAt: string;
139
- locales: WarpLocale[];
140
- price: number | null;
141
- purchased: boolean;
142
- };
143
- type BlueprintSettings = {
144
- wallets: WarpChainName[];
145
- character: Character | null;
146
- tasks: BlueprintTask[];
147
- shortcuts: BlueprintShortcut[];
148
- 'messages.initial': string | null;
149
- 'messages.general': string[];
150
- onboarding: BlueprintOnboardingStep[];
151
- redirect: BlueprintRedirect;
152
- };
153
- type BlueprintOnboardingStep = 'wallet' | 'fund';
154
- type BlueprintRedirect = 'interact' | null;
155
- type BlueprintTask = {
156
- warp: string;
157
- cronExpression: string;
158
- active: boolean;
134
+ bio: WarpText | null;
159
135
  };
160
- type BlueprintShortcut = {
161
- name: string;
162
- description: string | null;
163
- warp: string;
164
- chat: boolean;
165
- };
166
- //#endregion
167
- //#region src/helpers/string.d.ts
168
- declare const sanitizeAlphanumeric: (val: string) => string;
169
- declare const sanitizeNumeric: (val: string) => string;
170
- declare const toNameInitials: (name: string) => string;
171
- declare const toPreviewText: (text: string, maxChars?: number) => string;
172
- //#endregion
173
- //#region src/helpers/number.d.ts
174
- declare const abbreviateNumber: (val: number) => string | number;
175
- declare const toHexEncodedNonce: (nonce: number) => string;
176
- declare const toNftId: (collection: string, nonce: number) => string;
177
- //#endregion
178
- //#region src/helpers/file.d.ts
179
- declare const isFileFormatImage: (filename: string | null) => boolean;
180
- declare const isFileFormatVideo: (filename: string | null) => boolean;
181
- declare const isFileFormatAudio: (filename: string | null) => boolean;
182
- //#endregion
183
- //#region src/helpers/async.d.ts
184
- declare const withRetry: <T>(fn: () => Promise<T>, validate: (result: T) => boolean, {
185
- maxRetries,
186
- retryDelay
187
- }?: {
188
- maxRetries?: number | undefined;
189
- retryDelay?: number | undefined;
190
- }) => Promise<T>;
191
- //#endregion
192
- //#region src/helpers/asset.d.ts
193
- declare const getAssetAppLogoUrl: (name: string) => string;
194
- declare const getAssetChainLogoUrl: (name: string) => string;
195
- declare const getAssetTokenLogoUrl: (name: string) => string;
196
- declare const getAssetWalletLogoUrl: (name: string) => string;
197
- declare const getAssetPartnerLogoUrl: (name: string) => string;
198
136
  //#endregion
199
137
  //#region src/media/types.d.ts
200
138
  type AppFileType = 'abi' | 'pdf' | 'image' | 'video' | 'json';
@@ -217,7 +155,7 @@ type MediaLibraryAttributes = {
217
155
  type MediaLibraryItems = {
218
156
  [uuid: string]: MediaLibraryAttributes;
219
157
  };
220
- 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';
158
+ 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';
221
159
  type Media = {
222
160
  id: string;
223
161
  name: string;
@@ -226,81 +164,6 @@ type Media = {
226
164
  library: MediaLibraryAttributes;
227
165
  };
228
166
  //#endregion
229
- //#region src/integration/types.d.ts
230
- type IntegrationType = 'none' | 'webhook' | 'api-token' | 'telegram' | 'slack' | 'whatsapp' | 'twilio' | 'n8n' | 'ai-nexus' | 'apple-health' | 'mcp' | 'x' | 'email' | 'calendar' | 'embed' | 'discord' | 'github' | 'sentry' | 'readwise';
231
- type IntegrationDetails = {
232
- type: IntegrationType;
233
- name: string;
234
- description?: string;
235
- logoUrl?: string;
236
- logoUrlDark?: string;
237
- slug?: string;
238
- category?: string;
239
- [key: string]: unknown;
240
- };
241
- type Integration = {
242
- id: string;
243
- type: IntegrationType;
244
- name: string;
245
- active: boolean;
246
- createdAt: string;
247
- details?: IntegrationDetails;
248
- };
249
- type SocialPlatform = 'telegram' | 'slack' | 'whatsapp' | 'twilio' | 'discord' | 'github';
250
- type SocialBot = {
251
- name: string;
252
- createdAt: string;
253
- phoneNumberId?: string;
254
- phoneNumber?: string;
255
- applicationId?: string;
256
- appId?: string;
257
- installationId?: string;
258
- };
259
- type XIntegrationStatus = {
260
- enabled: boolean;
261
- integrationId: string | null;
262
- xAccountLinked: boolean;
263
- currentAgentName: string | null;
264
- };
265
- type EmbedStatus = {
266
- integrationId: string;
267
- agentName: string;
268
- agentAvatar: string | null;
269
- active: boolean;
270
- allowedDomains: string[];
271
- };
272
- type CalendarProvider = 'google' | 'apple';
273
- type CalendarStatus = {
274
- connected: boolean;
275
- provider?: CalendarProvider;
276
- accountEmail?: string;
277
- lastSynced?: string;
278
- tokenHealthy?: boolean;
279
- upcomingEvents?: {
280
- title: string;
281
- startAt: string;
282
- endAt: string;
283
- allDay: boolean;
284
- }[];
285
- };
286
- //#endregion
287
- //#region src/room/types.d.ts
288
- type RoomId = string;
289
- type RoomKind = 'default' | 'phone' | 'meeting';
290
- type Room = {
291
- id: string;
292
- name: string;
293
- description: string | null;
294
- public: boolean;
295
- default: boolean;
296
- kind?: RoomKind | null;
297
- archivedAt?: string | null;
298
- secKey: string | null;
299
- createdAt: string | null;
300
- agent: AgentSimple;
301
- integration: Integration | null;
302
- };
303
- //#endregion
304
167
  //#region src/wallet/types.d.ts
305
168
  type Wallet = {
306
169
  chain: WarpChainName;
@@ -315,202 +178,60 @@ type WalletList = Partial<Record<WarpChainName, {
315
178
  address?: string;
316
179
  }>>;
317
180
  //#endregion
318
- //#region src/agent/types.d.ts
319
- type AgentMpp = {
320
- price: number;
321
- currency?: string;
322
- chain?: string;
181
+ //#region src/user/types.d.ts
182
+ type UserRole = 'owner' | 'member';
183
+ type UserMode = 'simple' | 'advanced';
184
+ type UserInterest = 'payments' | 'health' | 'content' | 'business' | 'finance' | 'research' | 'shopping' | 'web3' | 'developer' | 'fitness' | 'ecommerce';
185
+ type UserSettings = {
186
+ mode: UserMode;
187
+ interests: UserInterest[];
188
+ hotkeys?: Record<string, string> | null;
189
+ payoutAddress?: string | null;
190
+ payoutChain?: string | null;
191
+ voicePlaybackMode?: 'voice-control' | 'chat' | 'both' | null;
192
+ withdrawalWaiverAcceptedAt?: string | null;
323
193
  };
324
- type AgentCharacter = {
325
- name: string | null;
326
- system: string | null;
327
- bio: string | null;
194
+ type KycStatus = 'pending' | 'approved' | 'rejected';
195
+ type Kyc = {
196
+ status: KycStatus;
328
197
  };
329
- type Agent = {
330
- uuid: string;
198
+ type UserPrivate = {
199
+ id: string;
331
200
  name: string;
332
- description: string;
333
- avatar: string;
201
+ email: string;
202
+ hasVerifiedEmail: boolean;
203
+ balance: number;
334
204
  wallets: Wallet[];
335
- settings: AgentSettings;
336
- mpp?: AgentMpp | null;
337
- character?: AgentCharacter | null;
338
- room: Room;
339
- role: string | null;
340
- blueprint: Blueprint | null;
341
- team: string;
205
+ hasProfileImage: boolean;
206
+ profileImageUrl: string;
207
+ country: string | null;
208
+ timezone: string | null;
209
+ socials: UserSocialAccount[];
210
+ justCreated: boolean;
211
+ affiliate: Affiliate | null;
212
+ billingAddress: BillingAddress | null;
213
+ betaRestricted: boolean;
214
+ kyc?: Kyc | null;
215
+ settings: UserSettings;
342
216
  };
343
- type AgentPrivate = {
344
- uuid: string;
345
- name: string;
346
- description: string;
347
- avatar: string;
348
- wallets: Wallet[];
349
- settings: AgentSettings;
350
- mpp?: AgentMpp | null;
351
- password: string | null;
352
- authKey: string | null;
353
- secKey: string;
354
- emailAddress: string | null;
355
- phoneNumber: string | null;
356
- room: Room;
357
- role: string | null;
358
- blueprint: Blueprint | null;
359
- justCreated?: boolean;
360
- team: string;
217
+ type Earning = {
218
+ id: number;
219
+ amount: number;
220
+ type: string;
221
+ description: string | null;
222
+ createdAt: string;
361
223
  };
362
- type AgentActionHistoryEntry = {
363
- id: string;
364
- action: string | null;
365
- outcome: 'succeeded' | 'failed';
366
- outcomeDetail: string | null;
367
- warpIdentifier: string | null;
368
- meta: Record<string, unknown> | null;
369
- createdAt: string | null;
370
- };
371
- type AgentSimple = {
372
- uuid: string;
373
- name: string;
374
- };
375
- type AgentWalletMode = 'local' | 'cloud' | 'external';
376
- type AgentEngine = 'cortex' | 'openclaw';
377
- type AgentGender = 'male' | 'female' | 'neutral';
378
- type AgentSettings = {
379
- auto: boolean;
380
- 'model.url': string;
381
- 'voice.output': boolean;
382
- 'voice.id': string;
383
- 'agent.gender'?: AgentGender;
384
- 'proactivity.enabled': boolean;
385
- 'proactivity.quietHoursStart'?: number;
386
- 'proactivity.quietHoursEnd'?: number;
387
- 'proactivity.maxMessagesPerDay'?: number;
388
- 'proactivity.timezone'?: string;
389
- 'proactivity.blockedBehaviors'?: string[];
390
- engine: AgentEngine;
391
- 'training.url'?: string | null;
392
- 'training.status'?: 'idle' | 'training' | 'completed' | 'failed' | null;
393
- 'training.recrawlInterval'?: number | null;
394
- };
395
- type LocalAgentWallet = {
396
- provider: WarpWalletProvider;
397
- address: string;
398
- mnemonic?: string | null;
399
- privateKey?: string | null;
400
- };
401
- type AgentExecuteHandler = (prompt: string, options?: AgentExecuteOptions) => void;
402
- type AgentExecuteOptions = {
403
- audio?: File;
404
- sender?: string;
405
- media?: Media[];
406
- ghost?: boolean;
407
- context?: Record<string, unknown>;
408
- };
409
- //#endregion
410
- //#region src/alert/types.d.ts
411
- type Alert = {
412
- id: string;
413
- chain: string;
414
- warp: string;
415
- key: string;
416
- event: string;
417
- contract: string;
418
- active: boolean;
419
- createdAt: string;
420
- agent: Agent | null;
421
- };
422
- //#endregion
423
- //#region src/api/types.d.ts
424
- type ApiToken = {
425
- id: number;
426
- name: string;
427
- createdAt: string;
428
- token?: string;
429
- };
430
- //#endregion
431
- //#region src/flow/types.d.ts
432
- type FlowCategory = 'none' | 'defi' | 'nft' | 'social' | 'devtools' | 'productivity' | 'trading' | 'portfolio';
433
- type FlowStatus = 'draft' | 'published';
434
- type Flow = {
435
- slug: string;
436
- team: Team;
437
- name: string;
438
- description: string | null;
439
- category: FlowCategory;
440
- status: FlowStatus;
441
- publishedAt: string | null;
442
- createdAt: string;
443
- updatedAt: string;
444
- steps: FlowStep[];
445
- locales: WarpLocale[];
446
- price: number | null;
447
- purchased: boolean;
448
- };
449
- type FlowStep = {
450
- stepId: string;
451
- order: number;
452
- type: 'warp' | 'condition' | 'delay';
453
- warpIdentifier: string | null;
454
- dependsOn: string[] | null;
455
- inputMappings: FlowInputMapping[] | null;
456
- staticInputs: Record<string, any> | null;
457
- condition: Record<string, any> | null;
458
- };
459
- type FlowInputMapping = {
460
- sourceStepId: string;
461
- sourceKey: string;
462
- targetInput: string;
463
- transform?: string;
464
- };
465
- //#endregion
466
- //#region src/user/types.d.ts
467
- type UserRole = 'owner' | 'member';
468
- type UserMode = 'simple' | 'advanced';
469
- type UserInterest = 'payments' | 'health' | 'content' | 'business' | 'finance' | 'research' | 'shopping' | 'web3' | 'developer' | 'fitness' | 'ecommerce';
470
- type UserSettings = {
471
- mode: UserMode;
472
- interests: UserInterest[];
473
- hotkeys?: Record<string, string> | null;
474
- payoutAddress?: string | null;
475
- payoutChain?: string | null;
476
- voicePlaybackMode?: 'voice-control' | 'chat' | 'both' | null;
477
- };
478
- type UserPrivate = {
479
- id: string;
480
- name: string;
481
- email: string;
482
- hasVerifiedEmail: boolean;
483
- balance: number;
484
- wallets: Wallet[];
485
- hasProfileImage: boolean;
486
- profileImageUrl: string;
487
- country: string | null;
488
- timezone: string | null;
489
- socials: UserSocialAccount[];
490
- justCreated: boolean;
491
- affiliate: Affiliate | null;
492
- billingAddress: BillingAddress | null;
493
- betaRestricted: boolean;
494
- settings: UserSettings;
495
- };
496
- type Earning = {
497
- id: number;
498
- amount: number;
499
- type: string;
500
- description: string | null;
501
- createdAt: string;
502
- };
503
- type PayoutEntry = {
504
- id: number;
505
- amount: number;
506
- status: string;
507
- tx: string | null;
508
- failureReason: string | null;
509
- processedAt: string | null;
510
- createdAt: string;
511
- };
512
- type UserSocialAccount = {
513
- platform: string;
224
+ type PayoutEntry = {
225
+ id: number;
226
+ amount: number;
227
+ status: string;
228
+ tx: string | null;
229
+ failureReason: string | null;
230
+ processedAt: string | null;
231
+ createdAt: string;
232
+ };
233
+ type UserSocialAccount = {
234
+ platform: string;
514
235
  id: string;
515
236
  username: string;
516
237
  profileUrl: string;
@@ -528,7 +249,6 @@ type Affiliate = {
528
249
  name: string;
529
250
  tier: AffiliateTier;
530
251
  balance: number;
531
- code: string;
532
252
  payoutAddress: string;
533
253
  application: string;
534
254
  status: AffiliateStatus;
@@ -536,10 +256,11 @@ type Affiliate = {
536
256
  inviteLinkUrl: string;
537
257
  settings: {
538
258
  minPayoutBalance: number;
539
- hasRequestedGroupInvite: boolean;
540
- commissionExtraPercent: number;
259
+ commissionExtraPercent?: number;
260
+ customerDiscountPercent: number;
541
261
  };
542
262
  clicks: number;
263
+ coupons: Coupon[];
543
264
  user: User | null;
544
265
  };
545
266
  type AffiliateTierName = 'bronze' | 'silver' | 'gold';
@@ -549,70 +270,223 @@ type AffiliateTier = {
549
270
  commission: number;
550
271
  threshold: number;
551
272
  };
552
- type AffiliateStatus = 'pending' | 'approved' | 'rejected' | 'suspended';
273
+ type AffiliateStatus = 'pending' | 'approved' | 'rejected' | 'suspended' | 'demoted';
553
274
  //#endregion
554
- //#region src/team/types.d.ts
555
- type TeamMember = User & {
556
- role: UserRole | null;
557
- roleAcceptedAt: string | null;
275
+ //#region src/billing/types.d.ts
276
+ type OrderStatus = 'pending' | 'completed' | 'delivered' | 'canceled';
277
+ type PaymentProvider = 'xmoney' | 'lemonsqueezy' | 'stripe' | 'apple' | 'google' | 'blockchain' | 'offline';
278
+ 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' | 'marketplace-fee-rate' | 'marketplace-fee-rate-physical';
279
+ type PlanBenefit = {
280
+ label: Partial<Record<WarpLocale, string>>;
281
+ tip?: Partial<Record<WarpLocale, string>>;
282
+ secondary?: boolean;
558
283
  };
559
- type Team = {
560
- slug: string;
561
- name: string;
562
- personal: boolean;
563
- description: string | null;
564
- locale: WarpLocale;
565
- timezone: string;
566
- logo: string | null;
567
- public: boolean;
568
- createdAt: string;
569
- blueprints?: Blueprint[];
570
- flows?: Flow[];
284
+ type PlanExtra = {
285
+ amount: number;
286
+ price: number;
287
+ unitName: string;
571
288
  };
572
- type TeamPrivate = {
573
- slug: string;
289
+ type BillingAddress = {
290
+ firstName: string;
291
+ lastName: string;
292
+ addressOne: string | null;
293
+ city: string | null;
294
+ state: string | null;
295
+ zipCode: string | null;
296
+ country: string;
297
+ vatId: string | null;
298
+ isEU: boolean;
299
+ };
300
+ type PlanInterval = 'weekly' | 'monthly' | 'yearly' | 'lifetime';
301
+ type Plan = {
302
+ resource: 'plan';
303
+ sku: string;
574
304
  name: string;
575
- personal: boolean;
576
- description: string | null;
577
- balance: number;
578
- locale: WarpLocale;
579
- timezone: string;
580
- logo: string | null;
581
- subscription: {
582
- premium: boolean;
583
- lifetime: boolean;
584
- plan: Plan;
585
- provider: PaymentProvider | null;
586
- payer: User | null;
587
- gracePeriod: boolean;
588
- autoRenew: boolean;
589
- uncapped: boolean;
590
- cycleEndsAt: string | null;
591
- resetsAt: string | null;
592
- startedAt: string | null;
593
- renewedAt: string | null;
594
- expiresAt: string | null;
305
+ description: Partial<Record<WarpLocale, string>>;
306
+ price: number;
307
+ priceDisplay: string;
308
+ interval: PlanInterval;
309
+ intervalDisplay: PlanInterval;
310
+ features: PlanFeature[];
311
+ benefits: Record<PlanFeature, PlanBenefit>;
312
+ limits: Record<PlanFeature, string>;
313
+ extras: Record<PlanFeature, PlanExtra>;
314
+ meta: {
315
+ appleProductId: string | null;
316
+ googleProductId: string | null;
317
+ trialPeriodDays: number;
318
+ isLifetime: boolean;
595
319
  };
596
- settings: TeamSettings;
597
- createdAt: string;
598
- justCreated: boolean;
599
320
  };
600
- type ByokProviderConfig = {
601
- apiKey?: string;
602
- accessKey?: string;
603
- secretKey?: string;
321
+ type TierName = string;
322
+ type Tier = {
323
+ name: TierName;
324
+ id: string;
325
+ href: string;
326
+ free: boolean;
327
+ price: string;
328
+ priceSuffix?: string;
329
+ description: string;
330
+ benefits: Record<PlanFeature, PlanBenefit>;
331
+ extras: Record<PlanFeature, PlanExtra>;
332
+ mostPopular: boolean;
333
+ mostRecommended: boolean;
334
+ cta?: string;
335
+ plan: Plan;
604
336
  };
605
- type ByokProviders = {
606
- openai?: ByokProviderConfig;
607
- anthropic?: ByokProviderConfig;
608
- google?: ByokProviderConfig;
609
- xai?: ByokProviderConfig;
610
- klingai?: ByokProviderConfig;
337
+ type TierFeature = {
338
+ name: string;
339
+ tiers: Record<TierName, boolean | string>;
340
+ };
341
+ type ProductRating = {
342
+ average: number;
343
+ count: number;
344
+ };
345
+ type ProductPieces = {
346
+ amount: number;
347
+ name: string;
348
+ };
349
+ type ProductDiscount = {
350
+ original: number;
351
+ percent: number;
352
+ };
353
+ type ProductVariation = {
354
+ resource: 'product-variation';
355
+ sku: string;
356
+ name: string;
357
+ description?: Partial<Record<WarpLocale, string>>;
358
+ price: number;
359
+ badge?: string;
360
+ quantity?: number;
361
+ media?: Media[];
362
+ preorder: boolean;
363
+ availableAt?: string;
364
+ pieces?: ProductPieces;
365
+ discount?: ProductDiscount;
366
+ product?: Product;
367
+ meta?: {
368
+ appleProductId: string | null;
369
+ googleProductId: string | null;
370
+ };
371
+ nativePriceStr?: string | null;
372
+ };
373
+ type Product = {
374
+ slug: string;
375
+ name: string;
376
+ description?: Partial<Record<WarpLocale, string>>;
377
+ variations: ProductVariation[];
378
+ rating: ProductRating;
379
+ };
380
+ type OrderItem = {
381
+ name: string;
382
+ quantity: number;
383
+ unitPrice: number;
384
+ type: 'product-variation' | 'service';
385
+ };
386
+ type Order = {
387
+ resource: 'order';
388
+ id: string;
389
+ total: number;
390
+ provider: PaymentProvider;
391
+ status: OrderStatus;
392
+ invoiceUrl: string;
393
+ createdAt: string;
394
+ items: OrderItem[];
395
+ plan: Plan | null;
396
+ user: UserPrivate | null;
397
+ team: TeamPrivate | null;
398
+ };
399
+ type Coupon = {
400
+ code: string;
401
+ amount: number;
402
+ percent: number;
403
+ expiresAt: string | null;
404
+ };
405
+ type PurchaseResult = {
406
+ order_id?: string;
407
+ message?: string;
408
+ subscription_active?: boolean;
409
+ };
410
+ type PurchaseOptions = {
411
+ forceProvider?: PaymentProvider;
412
+ billingAddress?: BillingAddress | null;
413
+ meta?: Record<string, string>;
414
+ };
415
+ //#endregion
416
+ //#region src/team/types.d.ts
417
+ type TeamMember = User & {
418
+ role: UserRole | null;
419
+ roleAcceptedAt: string | null;
420
+ email: string | null;
421
+ };
422
+ type Team = {
423
+ slug: string;
424
+ name: string;
425
+ personal: boolean;
426
+ description: string | null;
427
+ locale: WarpLocale;
428
+ timezone: string;
429
+ logo: string | null;
430
+ public: boolean;
431
+ createdAt: string;
432
+ blueprints?: Blueprint[];
433
+ flows?: Flow[];
434
+ };
435
+ type TeamBrand = {
436
+ bg?: string;
437
+ fg?: string;
438
+ label?: string;
439
+ logo?: string;
440
+ bankName?: string;
441
+ bankIban?: string;
442
+ bankBic?: string;
443
+ };
444
+ type TeamPrivate = {
445
+ slug: string;
446
+ name: string;
447
+ personal: boolean;
448
+ description: string | null;
449
+ balance: number;
450
+ locale: WarpLocale;
451
+ timezone: string;
452
+ logo: string | null;
453
+ subscription: {
454
+ premium: boolean;
455
+ lifetime: boolean;
456
+ plan: Plan;
457
+ provider: PaymentProvider | null;
458
+ payer: User | null;
459
+ gracePeriod: boolean;
460
+ autoRenew: boolean;
461
+ uncapped: boolean;
462
+ cycleEndsAt: string | null;
463
+ resetsAt: string | null;
464
+ startedAt: string | null;
465
+ renewedAt: string | null;
466
+ expiresAt: string | null;
467
+ };
468
+ settings: TeamSettings;
469
+ branding: TeamBrand;
470
+ createdAt: string;
471
+ justCreated: boolean;
472
+ };
473
+ type ByokProviderConfig = {
474
+ apiKey?: string;
475
+ accessKey?: string;
476
+ secretKey?: string;
477
+ };
478
+ type ByokProviders = {
479
+ openai?: ByokProviderConfig;
480
+ anthropic?: ByokProviderConfig;
481
+ google?: ByokProviderConfig;
482
+ xai?: ByokProviderConfig;
483
+ klingai?: ByokProviderConfig;
611
484
  };
612
485
  type ByokProviderName = keyof ByokProviders;
613
486
  type TeamSettings = {
614
487
  'extra.messages': number;
615
488
  'limit.spending': number | null;
489
+ 'currency'?: string;
616
490
  'extra.usage.enabled'?: boolean;
617
491
  'auto.reload.enabled'?: boolean;
618
492
  'auto.reload.threshold_cents'?: number | null;
@@ -620,6 +494,9 @@ type TeamSettings = {
620
494
  'llm.provider'?: 'openai' | 'anthropic' | 'google' | 'xai' | null;
621
495
  'byok.providers'?: ByokProviders | null;
622
496
  'board.auto.enabled'?: boolean;
497
+ 'payments.online'?: boolean;
498
+ 'payments.coupons'?: boolean;
499
+ 'branding'?: TeamBrand | null;
623
500
  };
624
501
  type TeamUsage = Partial<Record<PlanFeature, TeamFeatureUsage>> & {
625
502
  extraUsageEnabled?: boolean;
@@ -675,132 +552,559 @@ type AiCostsResponse = {
675
552
  };
676
553
  };
677
554
  };
678
- //#endregion
679
- //#region src/billing/types.d.ts
680
- type OrderStatus = 'pending' | 'completed' | 'delivered' | 'canceled';
681
- type PaymentProvider = 'xmoney' | 'lemonsqueezy' | 'stripe' | 'apple' | 'google' | 'blockchain' | 'offline';
682
- 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';
683
- type PlanBenefit = {
684
- label: Partial<Record<WarpLocale, string>>;
685
- tip?: Partial<Record<WarpLocale, string>>;
686
- secondary?: boolean;
555
+ //#endregion
556
+ //#region src/flow/types.d.ts
557
+ type FlowCategory = 'none' | 'defi' | 'nft' | 'social' | 'devtools' | 'productivity' | 'trading' | 'portfolio';
558
+ type FlowStatus = 'draft' | 'published';
559
+ type Flow = {
560
+ slug: string;
561
+ team: Team;
562
+ name: string;
563
+ description: string | null;
564
+ category: FlowCategory;
565
+ status: FlowStatus;
566
+ publishedAt: string | null;
567
+ createdAt: string;
568
+ updatedAt: string;
569
+ steps: FlowStep[];
570
+ locales: WarpLocale[];
571
+ marketplace: MarketplaceInfo;
572
+ screenshots: string[];
573
+ };
574
+ type FlowStep = {
575
+ stepId: string;
576
+ order: number;
577
+ type: 'warp' | 'condition' | 'delay';
578
+ warpIdentifier: string | null;
579
+ dependsOn: string[] | null;
580
+ inputMappings: FlowInputMapping[] | null;
581
+ staticInputs: Record<string, any> | null;
582
+ condition: Record<string, any> | null;
583
+ };
584
+ type FlowInputMapping = {
585
+ sourceStepId: string;
586
+ sourceKey: string;
587
+ targetInput: string;
588
+ transform?: string;
589
+ };
590
+ //#endregion
591
+ //#region src/skill/types.d.ts
592
+ declare const SkillType: {
593
+ readonly Knowledge: "knowledge";
594
+ readonly ContentTemplate: "content-template";
595
+ readonly PersonalityClone: "personality-clone";
596
+ readonly BrandKit: "brand-kit";
597
+ readonly VideoTemplate: "video-template";
598
+ readonly VisualKit: "visual-kit";
599
+ };
600
+ type SkillTypeValue = (typeof SkillType)[keyof typeof SkillType];
601
+ declare const SkillMediaBindingRole: {
602
+ readonly Subject: "subject";
603
+ readonly Style: "style";
604
+ readonly Logo: "logo";
605
+ readonly Product: "product";
606
+ readonly Motion: "motion";
607
+ readonly FirstFrame: "first_frame";
608
+ readonly LastFrame: "last_frame";
609
+ };
610
+ type SkillMediaBindingRoleValue = (typeof SkillMediaBindingRole)[keyof typeof SkillMediaBindingRole];
611
+ declare const SkillScope: {
612
+ readonly Agent: "agent";
613
+ readonly Team: "team";
614
+ };
615
+ type SkillScopeValue = (typeof SkillScope)[keyof typeof SkillScope];
616
+ type Skill = {
617
+ id: string;
618
+ name: string;
619
+ description: string;
620
+ content: string;
621
+ meta: Record<string, unknown> | null;
622
+ license: string | null;
623
+ compatibility: string | null;
624
+ allowedTools: string | null;
625
+ source: string;
626
+ sourcePath: string | null;
627
+ scope?: SkillScopeValue;
628
+ active: boolean;
629
+ marketplace: MarketplaceInfo;
630
+ createdAt: string;
631
+ media?: Media[];
632
+ screenshots: string[];
633
+ };
634
+ //#endregion
635
+ //#region src/warp/types.d.ts
636
+ type WarpExtrasFaq = {
637
+ question: string;
638
+ answer: string;
639
+ };
640
+ type WarpExtras = {
641
+ keywords?: Record<string, string[]>;
642
+ useCases?: Record<string, string[]>;
643
+ category?: string;
644
+ faq?: Record<string, WarpExtrasFaq[]>;
645
+ };
646
+ type WarpBackend = {
647
+ hash: string;
648
+ identifier: string;
649
+ chain: WarpChainName | null;
650
+ alias: string;
651
+ name: string;
652
+ title: string;
653
+ description: string;
654
+ preview: string | null;
655
+ creator: string;
656
+ status: WarpBackendStatus;
657
+ active: boolean;
658
+ category: WarpBackendCategory;
659
+ featured: boolean;
660
+ price?: number | null;
661
+ primaryAddress: string | null;
662
+ primaryFunc: string | null;
663
+ locales: WarpLocale[];
664
+ brand: BrandBackend | null;
665
+ definition?: Record<string, any> | null;
666
+ extras?: WarpExtras | null;
667
+ };
668
+ type WarpBackendStatus = 'unverified' | 'verified' | 'blacklisted';
669
+ type WarpBackendCategory = 'none';
670
+ type BrandSourceConfig = {
671
+ type: string;
672
+ chain?: string;
673
+ url?: string;
674
+ contract?: string;
675
+ endpoints?: string[];
676
+ };
677
+ type BrandIntegrationProvider = 'claude' | 'codex' | 'cursor' | 'openai';
678
+ type BrandIntegrationAction = {
679
+ type: 'copy' | 'link' | 'deeplink';
680
+ label: string;
681
+ value: string;
682
+ };
683
+ type BrandIntegration = {
684
+ provider: BrandIntegrationProvider;
685
+ available: boolean;
686
+ status: 'disabled' | 'planned' | 'ready' | 'runtime_ready' | 'submission_ready';
687
+ title: string;
688
+ description: string;
689
+ primaryAction: BrandIntegrationAction;
690
+ secondaryAction?: BrandIntegrationAction | null;
691
+ sourceUrl?: string | null;
692
+ fallbackUrl?: string | null;
693
+ notes?: string[];
694
+ };
695
+ type BrandBackend = {
696
+ hash: string;
697
+ slug: string;
698
+ name: string;
699
+ description: string;
700
+ logo: string;
701
+ colors: string;
702
+ urls: WarpBrandUrls;
703
+ locales: WarpLocale[];
704
+ warps: WarpBackend[];
705
+ isTeamOwned?: boolean;
706
+ inviteCode?: string;
707
+ source?: BrandSourceConfig | null;
708
+ contract?: string;
709
+ isContractBrand?: boolean;
710
+ meta?: {
711
+ rating?: number;
712
+ reviewCount?: number;
713
+ };
714
+ external?: {
715
+ mcp?: string | null;
716
+ integrations?: Partial<Record<BrandIntegrationProvider, BrandIntegration>>;
717
+ };
718
+ };
719
+ type BrandSearchHit = {
720
+ slug: string;
721
+ hash: string;
722
+ name: string;
723
+ description: string;
724
+ logo: string;
725
+ colors: string;
726
+ urls: string;
727
+ };
728
+ type WarpSearchHit = {
729
+ hash: string;
730
+ chain: WarpChainName | null;
731
+ alias: string;
732
+ name: string;
733
+ title: string;
734
+ description: string;
735
+ preview: string | null;
736
+ creator: string;
737
+ status: WarpBackendStatus;
738
+ active: boolean;
739
+ featured: boolean;
740
+ price?: number | null;
741
+ brandSlug: string | null;
742
+ brandName: string | null;
743
+ brandLogo: string | Record<string, string> | null;
744
+ };
745
+ //#endregion
746
+ //#region src/marketplace/types.d.ts
747
+ type MarketplaceEntityType = 'skill' | 'flow' | 'blueprint' | 'agent' | 'service';
748
+ type PricingModel = 'free' | 'one-time' | 'monthly' | 'per-run';
749
+ type MarketplacePricing = {
750
+ model: PricingModel;
751
+ amount: string;
752
+ currency: string;
753
+ chain?: WarpChainName | null;
754
+ planSku?: string | null;
755
+ freeTier?: {
756
+ runs?: number;
757
+ trialDays?: number;
758
+ } | null;
759
+ };
760
+ type MarketplaceInfo = {
761
+ price: number | null;
762
+ purchased: boolean;
763
+ uses: number;
764
+ public: boolean;
765
+ pricing: MarketplacePricing;
766
+ };
767
+ type MarketplaceListing = {
768
+ entityType: MarketplaceEntityType;
769
+ entityId: string;
770
+ name: string;
771
+ description: string | null;
772
+ pricing: MarketplacePricing;
773
+ seller: {
774
+ team: string;
775
+ name: string;
776
+ wallet?: string | null;
777
+ };
778
+ };
779
+ type MarketplaceAgent = {
780
+ uuid: string;
781
+ name: string;
782
+ description: string | null;
783
+ avatar: string | null;
784
+ wallets: {
785
+ address: string;
786
+ chain: WarpChainName;
787
+ }[];
788
+ character: {
789
+ name: string | null;
790
+ bio: string | null;
791
+ } | null;
792
+ marketplace: MarketplaceInfo;
793
+ screenshots: string[];
794
+ };
795
+ type MarketplaceItem = {
796
+ type: 'agent';
797
+ item: MarketplaceAgent;
798
+ } | {
799
+ type: 'blueprint';
800
+ item: Blueprint;
801
+ } | {
802
+ type: 'flow';
803
+ item: Flow;
804
+ } | {
805
+ type: 'skill';
806
+ item: Skill;
807
+ };
808
+ type MarketplaceData = {
809
+ blueprints: Blueprint[];
810
+ skills: Skill[];
811
+ flows: Flow[];
812
+ creators: BrandBackend[];
813
+ agents: MarketplaceAgent[];
814
+ items: MarketplaceItem[];
815
+ };
816
+ type MarketplacePriceTier = {
817
+ sku: string;
818
+ priceCents: number;
819
+ label: string;
820
+ };
821
+ /**
822
+ * Normalized representation of any marketplace entity for use in checkout flows.
823
+ * All marketplace entities share a `.marketplace: MarketplaceInfo` property —
824
+ * combine that with the entity type and ID to construct this.
825
+ */
826
+ type MarketplaceCheckoutItem = {
827
+ entityType: MarketplaceEntityType;
828
+ entityId: string;
829
+ name: string;
830
+ marketplace: MarketplaceInfo;
831
+ };
832
+ type MarketplacePurchaseResult = {
833
+ purchased: boolean;
834
+ pricePaid: number;
835
+ entityType: string;
836
+ entityId: string;
837
+ paymentMethod: string;
838
+ };
839
+ //#endregion
840
+ //#region src/blueprint/types.d.ts
841
+ type BlueprintTeam = {
842
+ slug: string;
843
+ name: string;
844
+ logo: string | null;
845
+ };
846
+ type Blueprint = {
847
+ slug: string;
848
+ team: BlueprintTeam;
849
+ name: string;
850
+ description: string | null;
851
+ avatar: string | null;
852
+ settings: BlueprintSettings;
853
+ verified: boolean;
854
+ createdAt: string;
855
+ locales: WarpLocale[];
856
+ marketplace: MarketplaceInfo;
857
+ tags: string[];
858
+ screenshots: string[];
859
+ };
860
+ type BlueprintSettings = {
861
+ wallets: WarpChainName[];
862
+ character: Character | null;
863
+ tasks: BlueprintTask[];
864
+ shortcuts: BlueprintShortcut[];
865
+ 'messages.initial': string | null;
866
+ 'messages.general': string[];
867
+ onboarding: BlueprintOnboardingStep[];
868
+ redirect: BlueprintRedirect;
869
+ };
870
+ type BlueprintOnboardingStep = 'wallet' | 'fund' | `@${string}`;
871
+ type BlueprintRedirect = 'interact' | null;
872
+ type BlueprintTask = {
873
+ warp: string;
874
+ cronExpression: string;
875
+ active: boolean;
876
+ };
877
+ type BlueprintShortcut = {
878
+ name: string;
879
+ description: string | null;
880
+ warp: string;
881
+ chat: boolean;
882
+ };
883
+ //#endregion
884
+ //#region src/helpers/string.d.ts
885
+ declare const sanitizeAlphanumeric: (val: string) => string;
886
+ declare const sanitizeNumeric: (val: string) => string;
887
+ declare const toNameInitials: (name?: string) => string;
888
+ declare const toPreviewText: (text: string, maxChars?: number) => string;
889
+ //#endregion
890
+ //#region src/helpers/number.d.ts
891
+ declare const abbreviateNumber: (val: number) => string | number;
892
+ declare const toCurrencyDisplay: (valueInCents: number, currency?: string) => string;
893
+ declare const toHexEncodedNonce: (nonce: number) => string;
894
+ declare const toNftId: (collection: string, nonce: number) => string;
895
+ //#endregion
896
+ //#region src/helpers/file.d.ts
897
+ declare const isFileFormatImage: (filename: string | null) => boolean;
898
+ declare const isFileFormatVideo: (filename: string | null) => boolean;
899
+ declare const isFileFormatAudio: (filename: string | null) => boolean;
900
+ //#endregion
901
+ //#region src/helpers/async.d.ts
902
+ declare const withRetry: <T>(fn: () => Promise<T>, validate: (result: T) => boolean, {
903
+ maxRetries,
904
+ retryDelay
905
+ }?: {
906
+ maxRetries?: number | undefined;
907
+ retryDelay?: number | undefined;
908
+ }) => Promise<T>;
909
+ //#endregion
910
+ //#region src/helpers/asset.d.ts
911
+ declare const getAssetAppLogoUrl: (name: string) => string;
912
+ declare const getAssetChainLogoUrl: (name: string) => string;
913
+ declare const getAssetTokenLogoUrl: (name: string) => string;
914
+ declare const getAssetWalletLogoUrl: (name: string) => string;
915
+ declare const getAssetPartnerLogoUrl: (name: string) => string;
916
+ type WarpScreenshotVariant = 'light' | 'dark' | 'preview' | 'rendered' | 'rendered-dark';
917
+ declare const getWarpScreenshotUrl: (brandSlug: string, warpAlias: string, variant?: WarpScreenshotVariant) => string;
918
+ //#endregion
919
+ //#region src/helpers/warp.d.ts
920
+ declare function resolveWarpText(text?: WarpText | null, locale?: string): string;
921
+ //#endregion
922
+ //#region src/integration/types.d.ts
923
+ type IntegrationType = 'none' | 'webhook' | 'api-token' | 'telegram' | 'slack' | 'whatsapp' | 'twilio' | 'n8n' | 'ai-nexus' | 'apple-health' | 'mcp' | 'x' | 'email' | 'calendar' | 'embed' | 'discord' | 'github' | 'sentry' | 'readwise';
924
+ type IntegrationDetails = {
925
+ type: IntegrationType;
926
+ name: string;
927
+ description?: string;
928
+ logoUrl?: string;
929
+ logoUrlDark?: string;
930
+ slug?: string;
931
+ category?: string;
932
+ [key: string]: unknown;
933
+ };
934
+ type Integration = {
935
+ id: string;
936
+ type: IntegrationType;
937
+ name: string;
938
+ active: boolean;
939
+ createdAt: string;
940
+ details?: IntegrationDetails;
941
+ };
942
+ type SocialPlatform = 'telegram' | 'slack' | 'whatsapp' | 'twilio' | 'discord' | 'github';
943
+ type SocialBot = {
944
+ name: string;
945
+ createdAt: string;
946
+ phoneNumberId?: string;
947
+ phoneNumber?: string;
948
+ applicationId?: string;
949
+ appId?: string;
950
+ installationId?: string;
951
+ };
952
+ type XIntegrationStatus = {
953
+ enabled: boolean;
954
+ integrationId: string | null;
955
+ xAccountLinked: boolean;
956
+ currentAgentName: string | null;
687
957
  };
688
- type PlanExtra = {
689
- amount: number;
690
- price: number;
691
- unitName: string;
958
+ type EmbedStatus = {
959
+ integrationId: string;
960
+ agentName: string;
961
+ agentAvatar: string | null;
962
+ active: boolean;
963
+ allowedDomains: string[];
692
964
  };
693
- type BillingAddress = {
694
- firstName: string;
695
- lastName: string;
696
- addressOne: string | null;
697
- city: string | null;
698
- state: string | null;
699
- zipCode: string | null;
700
- country: string;
701
- vatId: string | null;
702
- isEU: boolean;
965
+ type EmailProvider = 'resend' | 'mailgun' | 'sendgrid';
966
+ type CalendarProvider = 'google' | 'apple' | 'microsoft';
967
+ type CalendarStatus = {
968
+ connected: boolean;
969
+ provider?: CalendarProvider;
970
+ providerDisplayName?: string;
971
+ accountEmail?: string;
972
+ lastSynced?: string;
973
+ tokenHealthy?: boolean;
974
+ upcomingEvents?: {
975
+ title: string;
976
+ startAt: string;
977
+ endAt: string;
978
+ allDay: boolean;
979
+ }[];
703
980
  };
704
- type PlanInterval = 'weekly' | 'monthly' | 'yearly' | 'lifetime';
705
- type Plan = {
706
- sku: string;
981
+ //#endregion
982
+ //#region src/room/types.d.ts
983
+ type RoomId = string;
984
+ type RoomKind = 'default' | 'phone' | 'meeting';
985
+ type Room = {
986
+ id: string;
707
987
  name: string;
708
- description: Partial<Record<WarpLocale, string>>;
709
- price: number;
710
- priceDisplay: number;
711
- interval: PlanInterval;
712
- intervalDisplay: PlanInterval;
713
- features: PlanFeature[];
714
- benefits: Record<PlanFeature, PlanBenefit>;
715
- limits: Record<PlanFeature, string>;
716
- extras: Record<PlanFeature, PlanExtra>;
717
- meta: {
718
- appleProductId: string | null;
719
- googleProductId: string | null;
720
- trialPeriodDays: number;
721
- isLifetime: boolean;
722
- };
723
- nativePriceStr?: string | null;
988
+ description: string | null;
989
+ public: boolean;
990
+ default: boolean;
991
+ active: boolean;
992
+ kind?: RoomKind | null;
993
+ archivedAt?: string | null;
994
+ secKey: string | null;
995
+ createdAt: string | null;
996
+ contactId?: string | null;
997
+ agent: AgentSimple;
998
+ integration: Integration | null;
724
999
  };
725
- type TierName = string;
726
- type Tier = {
727
- name: TierName;
728
- id: string;
729
- href: string;
730
- free: boolean;
731
- price: string;
732
- priceSuffix?: string;
1000
+ //#endregion
1001
+ //#region src/agent/types.d.ts
1002
+ type AgentCharacter = {
1003
+ name: string | null;
1004
+ system: string | null;
1005
+ bio: string | null;
1006
+ };
1007
+ type Agent = {
1008
+ uuid: string;
1009
+ name: string;
733
1010
  description: string;
734
- benefits: Record<PlanFeature, PlanBenefit>;
735
- extras: Record<PlanFeature, PlanExtra>;
736
- mostPopular: boolean;
737
- mostRecommended: boolean;
738
- cta?: string;
739
- plan: Plan;
1011
+ avatar: string;
1012
+ wallets: Wallet[];
1013
+ settings: AgentSettings;
1014
+ marketplace: MarketplaceInfo;
1015
+ character?: AgentCharacter | null;
1016
+ room: Room;
1017
+ role: string | null;
1018
+ blueprint: Blueprint | null;
1019
+ team: string;
740
1020
  };
741
- type TierFeature = {
1021
+ type AgentPrivate = {
1022
+ uuid: string;
742
1023
  name: string;
743
- tiers: Record<TierName, boolean | string>;
1024
+ description: string;
1025
+ avatar: string;
1026
+ wallets: Wallet[];
1027
+ settings: AgentSettings;
1028
+ marketplace: MarketplaceInfo;
1029
+ password: string | null;
1030
+ authKey: string | null;
1031
+ secKey: string;
1032
+ emailAddress: string | null;
1033
+ phoneNumber: string | null;
1034
+ room: Room;
1035
+ role: string | null;
1036
+ blueprint: Blueprint | null;
1037
+ justCreated?: boolean;
1038
+ team: string;
744
1039
  };
745
- type ProductRating = {
746
- average: number;
747
- count: number;
1040
+ type AgentActionHistoryEntry = {
1041
+ id: string;
1042
+ action: string | null;
1043
+ outcome: 'succeeded' | 'failed';
1044
+ outcomeDetail: string | null;
1045
+ warpIdentifier: string | null;
1046
+ meta: Record<string, unknown> | null;
1047
+ createdAt: string | null;
748
1048
  };
749
- type ProductPieces = {
750
- amount: number;
1049
+ type AgentSimple = {
1050
+ uuid: string;
751
1051
  name: string;
752
1052
  };
753
- type ProductDiscount = {
754
- original: number;
755
- percent: number;
1053
+ type AgentWalletMode = 'local' | 'cloud' | 'external';
1054
+ type AgentEngine = 'cortex' | 'openclaw';
1055
+ type AgentGender = 'male' | 'female' | 'neutral';
1056
+ type AgentSettings = {
1057
+ auto: boolean;
1058
+ 'model.url': string;
1059
+ 'voice.output': boolean;
1060
+ 'voice.id': string;
1061
+ 'agent.gender'?: AgentGender;
1062
+ 'proactivity.enabled': boolean;
1063
+ 'proactivity.quietHoursStart'?: number;
1064
+ 'proactivity.quietHoursEnd'?: number;
1065
+ 'proactivity.maxMessagesPerDay'?: number;
1066
+ 'proactivity.timezone'?: string;
1067
+ 'proactivity.blockedBehaviors'?: string[];
1068
+ engine: AgentEngine;
1069
+ 'training.url'?: string | null;
1070
+ 'training.status'?: 'idle' | 'training' | 'completed' | 'failed' | null;
1071
+ 'training.recrawlInterval'?: number | null;
1072
+ 'email_provider'?: EmailProvider | null;
756
1073
  };
757
- type ProductVariation = {
758
- sku: string;
759
- name: string;
760
- description?: Partial<Record<WarpLocale, string>>;
761
- price: number;
762
- badge?: string;
763
- quantity?: number;
764
- media?: Media[];
765
- preorder: boolean;
766
- availableAt?: string;
767
- pieces?: ProductPieces;
768
- discount?: ProductDiscount;
769
- product?: Product;
770
- meta?: {
771
- appleProductId: string | null;
772
- googleProductId: string | null;
773
- };
774
- nativePriceStr?: string | null;
1074
+ type LocalAgentWallet = {
1075
+ provider: WarpWalletProvider;
1076
+ address: string;
1077
+ mnemonic?: string | null;
1078
+ privateKey?: string | null;
775
1079
  };
776
- type Product = {
777
- slug: string;
778
- name: string;
779
- description?: Partial<Record<WarpLocale, string>>;
780
- variations: ProductVariation[];
781
- rating: ProductRating;
1080
+ type AgentExecuteHandler = (prompt: string, options?: AgentExecuteOptions) => void;
1081
+ type AgentExecuteOptions = {
1082
+ audio?: File;
1083
+ sender?: string;
1084
+ media?: Media[];
1085
+ ghost?: boolean;
1086
+ context?: Record<string, unknown>;
782
1087
  };
783
- type Order = {
1088
+ //#endregion
1089
+ //#region src/alert/types.d.ts
1090
+ type Alert = {
784
1091
  id: string;
785
- total: number;
786
- provider: PaymentProvider;
787
- status: OrderStatus;
788
- invoiceUrl: string;
1092
+ chain: string;
1093
+ warp: string;
1094
+ key: string;
1095
+ event: string;
1096
+ contract: string;
1097
+ active: boolean;
789
1098
  createdAt: string;
790
- productVariations: ProductVariation[];
791
- plan: Plan | null;
792
- user: UserPrivate | null;
793
- team: TeamPrivate | null;
794
- };
795
- type PurchaseResult = {
796
- order_id?: string;
797
- message?: string;
798
- subscription_active?: boolean;
1099
+ agent: Agent | null;
799
1100
  };
800
- type PurchaseOptions = {
801
- forceProvider?: PaymentProvider;
802
- billingAddress?: BillingAddress | null;
803
- meta?: Record<string, string>;
1101
+ //#endregion
1102
+ //#region src/api/types.d.ts
1103
+ type ApiToken = {
1104
+ id: number;
1105
+ name: string;
1106
+ createdAt: string;
1107
+ token?: string;
804
1108
  };
805
1109
  //#endregion
806
1110
  //#region src/budget/types.d.ts
@@ -880,9 +1184,11 @@ type Contact = {
880
1184
  title: string | null;
881
1185
  birthday: string | null;
882
1186
  website: string | null;
1187
+ location: string | null;
883
1188
  socials: Record<string, string> | null;
884
1189
  notes: string | null;
885
1190
  tags: string[] | null;
1191
+ props?: Record<string, string> | null;
886
1192
  };
887
1193
  type ContactActivity = {
888
1194
  id: string;
@@ -900,9 +1206,11 @@ type ContactFormData = {
900
1206
  title?: string | null;
901
1207
  birthday?: string | null;
902
1208
  website?: string | null;
1209
+ location?: string | null;
903
1210
  socials?: Record<string, string> | null;
904
1211
  notes?: string | null;
905
1212
  tags?: string[] | null;
1213
+ props?: Record<string, string> | null;
906
1214
  };
907
1215
  //#endregion
908
1216
  //#region src/contract/types.d.ts
@@ -998,6 +1306,59 @@ type Desk = {
998
1306
  updatedAt: number;
999
1307
  };
1000
1308
  //#endregion
1309
+ //#region src/element/types.d.ts
1310
+ type ElementType = 'character' | 'environment' | 'style' | 'product' | 'brand';
1311
+ type ElementSpec = {
1312
+ baseColor?: string | null;
1313
+ material?: string | null;
1314
+ texture?: string | null;
1315
+ pattern?: string | null;
1316
+ finish?: string | null;
1317
+ condition?: string | null;
1318
+ setting?: string | null;
1319
+ background?: string | null;
1320
+ surface?: string | null;
1321
+ weather?: string | null;
1322
+ timeOfDay?: string | null;
1323
+ season?: string | null;
1324
+ lightingType?: string | null;
1325
+ lightingColor?: string | null;
1326
+ lightingDirection?: string | null;
1327
+ mood?: string | null;
1328
+ atmosphere?: string | null;
1329
+ colorPalette?: string | null;
1330
+ style?: string | null;
1331
+ rendering?: string | null;
1332
+ colorGrade?: string | null;
1333
+ shotType?: string | null;
1334
+ cameraAngle?: string | null;
1335
+ lens?: string | null;
1336
+ depthOfField?: string | null;
1337
+ framing?: string | null;
1338
+ avoid?: string | null;
1339
+ };
1340
+ type ElementVariation = {
1341
+ id: string;
1342
+ label: string | null;
1343
+ overrides: ElementSpec | null;
1344
+ model: string | null;
1345
+ aspectRatio: string;
1346
+ primaryMediaId: string | null;
1347
+ primaryImage: Media | null;
1348
+ images: Media[];
1349
+ createdAt: string;
1350
+ };
1351
+ type Element = {
1352
+ id: string;
1353
+ name: string;
1354
+ type: ElementType;
1355
+ description: string | null;
1356
+ spec: ElementSpec | null;
1357
+ media: Media[];
1358
+ variations: ElementVariation[];
1359
+ createdAt: string;
1360
+ };
1361
+ //#endregion
1001
1362
  //#region src/document/types.d.ts
1002
1363
  type Document = {
1003
1364
  id: string;
@@ -1104,6 +1465,8 @@ type Item = {
1104
1465
  goalId: string | null;
1105
1466
  order: number | null;
1106
1467
  assignedAgents: string[];
1468
+ assignedContacts: string[];
1469
+ assignedToUserIds: string[];
1107
1470
  executionStatus: ItemExecutionStatus | null;
1108
1471
  createdAt: string;
1109
1472
  updatedAt: string;
@@ -1113,9 +1476,24 @@ type ItemCreatePayload = {
1113
1476
  description?: string;
1114
1477
  priority?: ItemPriority;
1115
1478
  tags?: string[];
1116
- dueDate?: string;
1117
- goalId?: string;
1118
- status?: ItemStatus;
1479
+ dueDate?: string;
1480
+ goalId?: string;
1481
+ status?: ItemStatus;
1482
+ agents?: string[];
1483
+ contactIds?: string[];
1484
+ assignedToIds?: string[];
1485
+ };
1486
+ type ItemUpdatePayload = {
1487
+ title?: string;
1488
+ description?: string | null;
1489
+ status?: ItemStatus;
1490
+ priority?: ItemPriority;
1491
+ tags?: string[];
1492
+ dueDate?: string | null;
1493
+ goalId?: string | null;
1494
+ agents?: string[];
1495
+ contactIds?: string[];
1496
+ assignedToIds?: string[];
1119
1497
  };
1120
1498
  //#endregion
1121
1499
  //#region src/marketing/types.d.ts
@@ -1140,191 +1518,6 @@ type DemoFlow = {
1140
1518
  messages: DemoMessage[];
1141
1519
  };
1142
1520
  //#endregion
1143
- //#region src/skill/types.d.ts
1144
- declare const SkillType: {
1145
- readonly Knowledge: "knowledge";
1146
- readonly ContentTemplate: "content-template";
1147
- readonly PersonalityClone: "personality-clone";
1148
- readonly BrandKit: "brand-kit";
1149
- readonly VideoTemplate: "video-template";
1150
- readonly VisualKit: "visual-kit";
1151
- };
1152
- type SkillTypeValue = (typeof SkillType)[keyof typeof SkillType];
1153
- declare const SkillMediaBindingRole: {
1154
- readonly Subject: "subject";
1155
- readonly Style: "style";
1156
- readonly Logo: "logo";
1157
- readonly Product: "product";
1158
- readonly Motion: "motion";
1159
- readonly FirstFrame: "first_frame";
1160
- readonly LastFrame: "last_frame";
1161
- };
1162
- type SkillMediaBindingRoleValue = (typeof SkillMediaBindingRole)[keyof typeof SkillMediaBindingRole];
1163
- declare const SkillScope: {
1164
- readonly Agent: "agent";
1165
- readonly Team: "team";
1166
- };
1167
- type SkillScopeValue = (typeof SkillScope)[keyof typeof SkillScope];
1168
- type Skill = {
1169
- id: string;
1170
- name: string;
1171
- description: string;
1172
- content: string;
1173
- meta: Record<string, unknown> | null;
1174
- license: string | null;
1175
- compatibility: string | null;
1176
- allowedTools: string | null;
1177
- source: string;
1178
- sourcePath: string | null;
1179
- scope?: SkillScopeValue;
1180
- active: boolean;
1181
- public: boolean;
1182
- price: number | null;
1183
- createdAt: string;
1184
- media?: Media[];
1185
- };
1186
- //#endregion
1187
- //#region src/warp/types.d.ts
1188
- type WarpBackend = {
1189
- hash: string;
1190
- identifier: string;
1191
- chain: WarpChainName | null;
1192
- alias: string;
1193
- name: string;
1194
- title: string;
1195
- description: string;
1196
- preview: string | null;
1197
- creator: string;
1198
- status: WarpBackendStatus;
1199
- active: boolean;
1200
- category: WarpBackendCategory;
1201
- featured: boolean;
1202
- price?: number | null;
1203
- primaryAddress: string | null;
1204
- primaryFunc: string | null;
1205
- locales: WarpLocale[];
1206
- brand: BrandBackend | null;
1207
- definition?: Record<string, any> | null;
1208
- };
1209
- type WarpBackendStatus = 'unverified' | 'verified' | 'blacklisted';
1210
- type WarpBackendCategory = 'none';
1211
- type BrandSourceConfig = {
1212
- type: string;
1213
- chain?: string;
1214
- url?: string;
1215
- contract?: string;
1216
- endpoints?: string[];
1217
- };
1218
- type BrandBackend = {
1219
- hash: string;
1220
- slug: string;
1221
- name: string;
1222
- description: string;
1223
- logo: string;
1224
- colors: string;
1225
- urls: WarpBrandUrls;
1226
- locales: WarpLocale[];
1227
- warps: WarpBackend[];
1228
- isPrivate?: boolean;
1229
- inviteCode?: string;
1230
- source?: BrandSourceConfig | null;
1231
- contract?: string;
1232
- isContractBrand?: boolean;
1233
- external?: {
1234
- mcp?: string | null;
1235
- };
1236
- };
1237
- type BrandSearchHit = {
1238
- slug: string;
1239
- hash: string;
1240
- name: string;
1241
- description: string;
1242
- logo: string;
1243
- colors: string;
1244
- urls: string;
1245
- };
1246
- type WarpSearchHit = {
1247
- hash: string;
1248
- chain: WarpChainName | null;
1249
- alias: string;
1250
- name: string;
1251
- title: string;
1252
- description: string;
1253
- preview: string | null;
1254
- creator: string;
1255
- status: WarpBackendStatus;
1256
- active: boolean;
1257
- featured: boolean;
1258
- price?: number | null;
1259
- brandSlug: string | null;
1260
- brandName: string | null;
1261
- brandLogo: string | Record<string, string> | null;
1262
- };
1263
- //#endregion
1264
- //#region src/marketplace/types.d.ts
1265
- type MarketplaceEntityType = 'skill' | 'flow' | 'blueprint' | 'agent';
1266
- type PricingModel = 'free' | 'one-time' | 'per-run';
1267
- type MarketplacePricing = {
1268
- model: PricingModel;
1269
- amount: string;
1270
- currency: string;
1271
- chain?: string;
1272
- freeTier?: {
1273
- runs?: number;
1274
- trialDays?: number;
1275
- } | null;
1276
- };
1277
- type MarketplaceListing = {
1278
- entityType: MarketplaceEntityType;
1279
- entityId: string;
1280
- name: string;
1281
- description: string | null;
1282
- pricing: MarketplacePricing;
1283
- seller: {
1284
- team: string;
1285
- name: string;
1286
- wallet?: string | null;
1287
- };
1288
- };
1289
- type MarketplaceAgent = {
1290
- uuid: string;
1291
- name: string;
1292
- description: string | null;
1293
- avatar: string | null;
1294
- mpp: {
1295
- price: string;
1296
- currency: string;
1297
- chain: string;
1298
- } | null;
1299
- wallets: {
1300
- address: string;
1301
- chain: string;
1302
- }[];
1303
- character: {
1304
- name: string | null;
1305
- bio: string | null;
1306
- } | null;
1307
- };
1308
- type MarketplaceData = {
1309
- blueprints: Blueprint[];
1310
- skills: Skill[];
1311
- flows: Flow[];
1312
- creators: BrandBackend[];
1313
- agents: MarketplaceAgent[];
1314
- };
1315
- type MarketplacePriceTier = {
1316
- sku: string;
1317
- priceCents: number;
1318
- label: string;
1319
- };
1320
- type MarketplacePurchaseResult = {
1321
- purchased: boolean;
1322
- pricePaid: number;
1323
- entityType: string;
1324
- entityId: string;
1325
- paymentMethod: string;
1326
- };
1327
- //#endregion
1328
1521
  //#region src/mcp/types.d.ts
1329
1522
  type McpToolCallStatus = 'pending' | 'success' | 'error';
1330
1523
  type McpToolCall = {
@@ -1361,40 +1554,68 @@ type TranscriptEntry = {
1361
1554
  text: string;
1362
1555
  isFinal: boolean;
1363
1556
  timestamp: number;
1557
+ speakerId?: number;
1558
+ speakerName?: string;
1364
1559
  };
1365
1560
  type BookmarkEntry = {
1366
1561
  id: string;
1367
1562
  timestamp: number;
1368
1563
  transcriptEntryId: string;
1369
1564
  };
1370
- type MeetingBotStatus = 'joining' | 'in_meeting' | 'left' | 'failed';
1371
1565
  type MeetingParticipant = {
1372
1566
  name: string | null;
1373
1567
  profileImageUrl: string | null;
1374
1568
  };
1569
+ type MeetingSpeakerAssignment = {
1570
+ speakerId: number;
1571
+ name: string;
1572
+ contactId: string | null;
1573
+ };
1375
1574
  type Meeting = {
1376
1575
  id: string;
1377
1576
  code: string;
1378
1577
  name: string | null;
1379
1578
  room: Room | null;
1380
1579
  inviteUrl: string;
1381
- status: 'active' | 'completed' | 'analyzed';
1382
- botStatus: MeetingBotStatus | null;
1580
+ status: MeetingStatus;
1581
+ conferenceProvider: MeetingConferenceProvider | null;
1582
+ conferenceUrl: string | null;
1583
+ conferenceExternalId: string | null;
1584
+ captureMode: 'desktop_local' | null;
1383
1585
  transcriptUrl: string | null;
1384
1586
  summaryUrl: string | null;
1385
1587
  participants?: MeetingParticipant[];
1386
- startedAt: string;
1588
+ speakerAssignments?: MeetingSpeakerAssignment[] | null;
1589
+ scheduledAt: string | null;
1590
+ calendarEventId: number | null;
1591
+ startedAt: string | null;
1387
1592
  endedAt: string | null;
1388
1593
  createdAt: string;
1389
1594
  };
1595
+ type MeetingStatus = 'active' | 'completed' | 'analyzed' | 'scheduled' | 'cancelled';
1596
+ type MeetingConferenceProvider = 'google_meet' | 'teams' | 'zoom';
1597
+ type MeetingFeature = 'transcription' | 'summary' | 'insights' | 'actions';
1598
+ type MeetingJoinTeam = {
1599
+ name: string;
1600
+ logo: string | null;
1601
+ };
1390
1602
  type MeetingJoinInfo = {
1391
1603
  id: string;
1392
1604
  code: string;
1393
1605
  name: string | null;
1394
1606
  inviteUrl: string;
1395
1607
  agentName: string;
1396
- status: 'active' | 'completed' | 'analyzed';
1608
+ team: MeetingJoinTeam;
1609
+ status: MeetingStatus;
1610
+ isPhysical: boolean;
1611
+ scheduledAt: string | null;
1612
+ scheduledEndAt: string | null;
1613
+ timezone: string;
1614
+ conferenceUrl: string | null;
1615
+ conferenceProvider: MeetingConferenceProvider | null;
1397
1616
  endedAt: string | null;
1617
+ canCancel: boolean;
1618
+ features: Record<MeetingFeature, boolean>;
1398
1619
  };
1399
1620
  type MeetingTranscriptEntry = {
1400
1621
  speaker: 'user' | 'agent';
@@ -1606,7 +1827,7 @@ type PermissionConfigType = {
1606
1827
  //#endregion
1607
1828
  //#region src/protocol/types.d.ts
1608
1829
  type ChatStreamEventType = 'user' | 'external' | `thought:${ChatClientThought}` | 'response' | 'response:chunk' | 'action' | 'complete' | 'payment-required' | 'desk' | 'project:progress' | 'project:step:complete';
1609
- type ChatClientAction = 'AGENT_DELEGATE' | 'WARP_EXECUTE' | 'WARP_VIEW' | 'WARP_CREATE' | 'WARP_TEST' | 'WARP_INPUT' | 'WARP_APPROVE' | 'WARP_SELECT' | 'WARP_BATCH' | 'WARP_BULK' | 'ENTITY_PROPOSE' | 'ENTITY_SIGN' | 'SECRET_SET' | 'SECRET_AUTHORIZE' | 'HEALTH_QUERY' | 'HEALTH_WRITE' | 'ITEM_VIEW' | 'BOARD_SUMMARY' | 'GOAL_PROGRESS' | 'CONTACT_VIEW' | 'MARKETPLACE_PURCHASE' | 'WARP_CLOUD_EXECUTE' | 'MISSION_VIEW' | 'ACTIVITY' | 'PERSONA_QUESTION' | 'twilio.call' | 'twilio.sms';
1830
+ type ChatClientAction = 'AGENT_DELEGATE' | 'WARP_EXECUTE' | 'WARP_VIEW' | 'WARP_CREATE' | 'WARP_TEST' | 'WARP_INPUT' | 'WARP_APPROVE' | 'WARP_SELECT' | 'WARP_BATCH' | 'WARP_BULK' | 'ENTITY_PROPOSE' | 'ENTITY_SIGN' | 'SECRET_SET' | 'SECRET_AUTHORIZE' | 'HEALTH_QUERY' | 'HEALTH_WRITE' | 'ITEM_VIEW' | 'BOARD_SUMMARY' | 'GOAL_PROGRESS' | 'CONTACT_VIEW' | 'MARKETPLACE_PURCHASE' | 'WARP_CLOUD_EXECUTE' | 'MISSION_VIEW' | 'ACTIVITY' | 'PERSONA_QUESTION' | 'NFC_WRITE' | 'twilio.sms';
1610
1831
  type ChatClientThought = 'processing' | 'searching' | 'evaluating' | 'transcribing' | 'generating' | 'reflecting' | 'text-transform' | 'finished';
1611
1832
  type AgentMessageOptions = {
1612
1833
  delay?: number;
@@ -1624,7 +1845,8 @@ type AgentMessageMeta = {
1624
1845
  proactive?: boolean;
1625
1846
  timeSavedSeconds?: number;
1626
1847
  currentUsage?: number;
1627
- limit?: number;
1848
+ limit?: number; /** Room ID to navigate to — renders a room-change card inline below the message. */
1849
+ roomChange?: string;
1628
1850
  };
1629
1851
  type ChatStreamData = {
1630
1852
  message: MessageId | undefined;
@@ -1637,6 +1859,7 @@ type ChatStreamData = {
1637
1859
  media?: Media[];
1638
1860
  desk?: Desk;
1639
1861
  timeSavedSeconds?: number;
1862
+ roomChange?: string;
1640
1863
  } | null;
1641
1864
  options?: {
1642
1865
  error?: boolean;
@@ -2023,12 +2246,82 @@ declare const OgImageColors: {
2023
2246
  };
2024
2247
  };
2025
2248
  //#endregion
2249
+ //#region src/ogimage/helpers.d.ts
2250
+ type OgResourceType = 'meeting';
2251
+ type OgResourceParams = {
2252
+ meeting: {
2253
+ code: string;
2254
+ };
2255
+ };
2256
+ declare function ogImageUrl<T extends OgResourceType>(type: T, params: OgResourceParams[T]): string;
2257
+ //#endregion
2026
2258
  //#region src/project/types.d.ts
2027
2259
  type ProjectStatus = 'draft' | 'planned' | 'render-ready' | 'rendered' | 'composed' | 'exported';
2028
2260
  type ProjectOutputPreset = '9:16 social' | '16:9 launch' | '1:1 square teaser';
2261
+ type ProjectOutputType = 'video' | 'slideshow' | 'clips';
2029
2262
  type ProjectRenderMode = 'draft' | 'final';
2030
2263
  type ProjectAspectRatio = '16:9' | '9:16' | '1:1';
2031
- type ProjectStudioStage = 'questions' | 'concept' | 'draft-ready';
2264
+ type ProjectStudioStage = 'questions' | 'concept' | 'draft-ready' | 'source-processing' | 'candidates-ready';
2265
+ type ProjectSourceMedia = {
2266
+ id?: string | null;
2267
+ name?: string | null;
2268
+ mime?: string | null;
2269
+ url: string;
2270
+ };
2271
+ type ProjectTranscriptSegment = {
2272
+ id: string;
2273
+ startMs: number;
2274
+ endMs: number;
2275
+ text: string;
2276
+ };
2277
+ type ProjectTranscript = {
2278
+ text: string;
2279
+ language?: string | null;
2280
+ durationSeconds?: number | null;
2281
+ segments?: ProjectTranscriptSegment[];
2282
+ };
2283
+ type ProjectClipCandidate = {
2284
+ id: string;
2285
+ title: string;
2286
+ excerpt: string;
2287
+ startMs: number;
2288
+ endMs: number;
2289
+ durationMs: number;
2290
+ score: number;
2291
+ reason: string;
2292
+ platformFit?: string[] | null;
2293
+ selected?: boolean;
2294
+ viralityScore?: number | null;
2295
+ thumbnailUrl?: string | null;
2296
+ };
2297
+ type ProjectSelectedClip = {
2298
+ id: string;
2299
+ candidateId?: string | null;
2300
+ title: string;
2301
+ excerpt?: string | null;
2302
+ startMs: number;
2303
+ endMs: number;
2304
+ durationMs: number;
2305
+ captionsEnabled?: boolean;
2306
+ captionText?: string | null;
2307
+ viralityScore?: number | null;
2308
+ };
2309
+ type ProjectCaptionStyle = {
2310
+ preset?: 'bold' | 'subtitle' | 'minimal' | 'brand' | null;
2311
+ fontSize?: number | null;
2312
+ primaryColor?: string | null;
2313
+ highlightColor?: string | null;
2314
+ position?: 'bottom' | 'center' | null;
2315
+ };
2316
+ type ProjectClips = {
2317
+ sourceMedia?: ProjectSourceMedia[];
2318
+ sourceUrl?: string | null;
2319
+ transcript?: ProjectTranscript | null;
2320
+ candidates?: ProjectClipCandidate[];
2321
+ selected?: ProjectSelectedClip[];
2322
+ captionStyle?: ProjectCaptionStyle | null;
2323
+ targetLanguage?: string | null;
2324
+ };
2032
2325
  type ProjectStudioHistoryEntry = {
2033
2326
  role: 'user' | 'assistant';
2034
2327
  content: string;
@@ -2104,25 +2397,31 @@ type Project = {
2104
2397
  status: ProjectStatus;
2105
2398
  brief: string | null;
2106
2399
  outputPreset: ProjectOutputPreset;
2400
+ outputType: ProjectOutputType;
2107
2401
  selectedSkills: string[];
2108
2402
  targetPlatforms: string[];
2109
2403
  script: Record<string, any> | null;
2110
2404
  storyboard: ProjectShot[];
2111
2405
  referenceImages: Array<Record<string, any>>;
2406
+ clips?: ProjectClips | null;
2112
2407
  generatedImages: Array<Record<string, any>>;
2113
2408
  generatedVideos: Array<Record<string, any>>;
2114
2409
  generatedAudio: Array<Record<string, any>>;
2115
2410
  assembly: Record<string, any> | null;
2116
2411
  soundtrack: Record<string, any> | null;
2117
2412
  finalAsset: Record<string, any> | null;
2413
+ nsfw: boolean;
2118
2414
  studioState?: ProjectStudioState | null;
2119
2415
  revisions: Array<Record<string, any>>;
2416
+ elements: Element[];
2417
+ latestExport?: ProjectExport | null;
2120
2418
  team: string | null;
2121
2419
  createdAt: string;
2122
2420
  updatedAt: string;
2123
2421
  };
2124
- type ProjectMutation = Partial<Pick<Project, 'name' | 'brief' | 'status' | 'outputPreset' | 'selectedSkills' | 'targetPlatforms' | 'storyboard' | 'assembly' | 'soundtrack' | 'finalAsset' | 'referenceImages' | 'generatedImages' | 'generatedVideos' | 'generatedAudio'>> & {
2422
+ type ProjectMutation = Partial<Pick<Project, 'name' | 'brief' | 'status' | 'outputPreset' | 'outputType' | 'selectedSkills' | 'targetPlatforms' | 'storyboard' | 'assembly' | 'soundtrack' | 'finalAsset' | 'referenceImages' | 'clips' | 'generatedImages' | 'generatedVideos' | 'generatedAudio' | 'nsfw' | 'studioState'>> & {
2125
2423
  script?: Record<string, any> | null;
2424
+ outputAssets?: Record<string, any> | null;
2126
2425
  };
2127
2426
  type ProjectPlan = {
2128
2427
  summary: {
@@ -2204,16 +2503,29 @@ type ProjectSoundtrack = {
2204
2503
  soundtrackAsset?: Record<string, any> | null;
2205
2504
  };
2206
2505
  };
2506
+ type ProjectExportAsset = {
2507
+ id: string;
2508
+ url: string;
2509
+ name: string;
2510
+ mimeType: string;
2511
+ thumbnailUrl?: string | null;
2512
+ };
2207
2513
  type ProjectExport = {
2208
- project: {
2209
- id: string;
2210
- name: string;
2211
- status: ProjectStatus;
2212
- outputPreset: ProjectOutputPreset;
2213
- };
2214
- plan: ProjectPlan;
2215
- soundtrack: ProjectSoundtrack;
2216
- assembly: ProjectAssembly;
2514
+ uuid: string;
2515
+ name: string;
2516
+ assets: ProjectExportAsset[];
2517
+ script: Record<string, any> | null;
2518
+ clientName: string | null;
2519
+ message: string | null;
2520
+ views: number;
2521
+ expiresAt: string | null;
2522
+ url: string;
2523
+ createdAt: string;
2524
+ };
2525
+ type ProjectExportResponse = {
2526
+ project: Project;
2527
+ export: ProjectExport;
2528
+ exportUrl: string;
2217
2529
  };
2218
2530
  type ProjectStudioResponse = {
2219
2531
  project: Project;
@@ -2235,6 +2547,22 @@ type Reminder = {
2235
2547
  createdAt: string;
2236
2548
  };
2237
2549
  //#endregion
2550
+ //#region src/service/types.d.ts
2551
+ type Service = {
2552
+ id: string;
2553
+ slug: string;
2554
+ name: string;
2555
+ price: number;
2556
+ durationMinutes: number;
2557
+ category: string | null;
2558
+ description: string | null;
2559
+ active: boolean;
2560
+ digital: boolean;
2561
+ public: boolean;
2562
+ createdAt: string;
2563
+ updatedAt: string;
2564
+ };
2565
+ //#endregion
2238
2566
  //#region src/shortcut/types.d.ts
2239
2567
  type Shortcut = {
2240
2568
  id: string;
@@ -2243,10 +2571,49 @@ type Shortcut = {
2243
2571
  warp: string;
2244
2572
  inputs: string[];
2245
2573
  chat: boolean;
2574
+ tag: boolean;
2246
2575
  createdAt: string;
2247
2576
  agent: Agent | null;
2248
2577
  };
2249
2578
  //#endregion
2579
+ //#region src/site/types.d.ts
2580
+ type SiteTeam = {
2581
+ name: string;
2582
+ slug: string;
2583
+ logoUrl: string | null;
2584
+ };
2585
+ type SiteAgent = {
2586
+ uuid: string | null;
2587
+ };
2588
+ type Site = {
2589
+ id: number;
2590
+ brandSlug: string;
2591
+ customDomain: string | null;
2592
+ enabled: boolean;
2593
+ team: SiteTeam | null;
2594
+ agent: SiteAgent | null;
2595
+ settings: Record<string, unknown>;
2596
+ };
2597
+ type SiteRoute = {
2598
+ path: string;
2599
+ warp: string;
2600
+ label: WarpI18nText;
2601
+ nav?: boolean;
2602
+ hiddenFields?: string[];
2603
+ };
2604
+ type BrandSiteConfig = {
2605
+ enabled: boolean;
2606
+ auth?: boolean;
2607
+ indexPath: string;
2608
+ routes: SiteRoute[];
2609
+ name?: string;
2610
+ logoUrl?: string | null;
2611
+ };
2612
+ type SiteBrand = {
2613
+ slug: string;
2614
+ configureRoute: Pick<SiteRoute, 'path' | 'label'> | null;
2615
+ };
2616
+ //#endregion
2250
2617
  //#region src/stats/types.d.ts
2251
2618
  type UserStats = {
2252
2619
  totalMessages: number;
@@ -2314,6 +2681,7 @@ type Task = {
2314
2681
  runs: number;
2315
2682
  createdAt: string;
2316
2683
  agent: Agent | null;
2684
+ inputs: Record<string, string> | null;
2317
2685
  };
2318
2686
  type SchedulePreset = {
2319
2687
  label: string;
@@ -2455,4 +2823,4 @@ type CliSessionStatus = {
2455
2823
  meta: CliSessionMeta | null;
2456
2824
  };
2457
2825
  //#endregion
2458
- export { Achievement, Affiliate, AffiliateStatus, AffiliateTier, AffiliateTierName, Agent, AgentActionHistoryEntry, AgentCharacter, AgentDelegatable, AgentEngine, AgentExecuteHandler, AgentExecuteOptions, AgentGender, AgentMessageMeta, AgentMessageOptions, AgentMpp, AgentPrivate, AgentSettings, AgentSimple, AgentWalletMode, AgentWebhookWarp, AiCostEntry, AiCostsResponse, AiCostsSummary, Alert, ApiToken, AppEnv, AppFile, AppFileType, AppIngestion, BillingAddress, Blueprint, BlueprintOnboardingStep, BlueprintRedirect, BlueprintSettings, BlueprintShortcut, BlueprintTask, BlueprintTeam, BoardSummaryViewable, BookmarkEntry, BrandBackend, BrandSearchHit, BrandSourceConfig, Budget, ByokProviderConfig, ByokProviderName, ByokProviders, CalendarProvider, CalendarStatus, Card, Challenge, Challenges, ChangelogEntry, Character, ChatClientAction, ChatClientThought, ChatStreamData, ChatStreamEventType, CliSessionMeta, CliSessionStatus, Contact, ContactActivity, ContactFormData, ContactViewable, Contract, ContractCategoryDisplayNames, ContractCategoryName, ContractCodeMetadata, ContractEntity, ContractOnNetwork, ContractVersion, ContractsAddressConfig, CortexExecuteOptions, DefaultCodeMetadata, DemoFlow, DemoMessage, Desk, DeskItem, DeskItemRole, Document, Earning, 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, ItemViewable, JoaiUrls, LocalAgentWallet, MarketplaceAgent, MarketplaceData, MarketplaceEntityType, MarketplaceListing, MarketplacePriceTier, MarketplacePricing, MarketplacePurchasable, MarketplacePurchaseResult, McpToolCall, McpToolCallBroadcast, McpToolCallStatus, Media, MediaAttributes, MediaItems, MediaLibraryAttributes, MediaLibraryItems, MediaMime, Meeting, MeetingBotStatus, MeetingJoinInfo, MeetingParticipant, MeetingSessionState, 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, OrderStatus, PaymentProvider, PayoutEntry, PeriodTypeLabels, PeriodTypeOptions, PermissionConfigType, PersonaQuestionable, Plan, PlanBenefit, PlanExtra, PlanFeature, PlanInterval, PolicyMethod, PolicySetting, PricingModel, Product, ProductDiscount, ProductPieces, ProductRating, ProductVariation, Project, ProjectAspectRatio, ProjectAssembly, ProjectExport, ProjectImages, ProjectInputAssistIntent, ProjectInputAssistResponse, ProjectMutation, ProjectOutputPreset, ProjectPlan, ProjectRender, ProjectRenderMode, ProjectShot, ProjectSoundtrack, ProjectStatus, ProjectStudioHistoryEntry, ProjectStudioQuestion, ProjectStudioResponse, ProjectStudioStage, ProjectStudioState, ProjectStudioSummary, ProjectStyleDirection, 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, Shortcut, Skill, SkillMediaBindingRole, SkillMediaBindingRoleValue, SkillScope, SkillScopeValue, SkillType, SkillTypeValue, SocialAuthProvider, SocialBot, SocialPlatform, Streak, SubscriptionPlan, Swarm, Task, Team, TeamFeatureUsage, TeamMember, TeamPrivate, TeamSettings, TeamUsage, Tier, TierFeature, TierName, TranscriptEntry, TranscriptionCorrection, TranscriptionResponse, User, UserInterest, UserMode, UserPrivate, UserRole, UserSettings, UserSocialAccount, UserStats, Wallet, WalletList, WarpApprovable, WarpBackend, WarpBackendCategory, WarpBackendStatus, WarpBatchItem, WarpBatchable, WarpCloudExecutable, WarpCreateable, WarpExecutable, WarpInputable, WarpSearchHit, WarpSelectable, WarpSelectableDetails, WarpSuggestion, WarpTestable, WarpViewable, Webhook, WebhookTriggerEvent, WorkspaceCloudFile, WorkspaceContext, WorkspaceInfo, WorkspaceSettings, XIntegrationStatus, abbreviateNumber, getApiBaseUrl, getAppBaseUrl, getAssetAppLogoUrl, getAssetChainLogoUrl, getAssetPartnerLogoUrl, getAssetTokenLogoUrl, getAssetWalletLogoUrl, getCortexBaseUrl, getMcpServerAgentUrl, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, sanitizeAlphanumeric, sanitizeNumeric, toHexEncodedNonce, toNameInitials, toNftId, toPreviewText, withRetry };
2826
+ export { Achievement, Affiliate, AffiliateStatus, AffiliateTier, AffiliateTierName, Agent, AgentActionHistoryEntry, AgentCharacter, AgentDelegatable, AgentEngine, AgentExecuteHandler, AgentExecuteOptions, AgentGender, AgentMessageMeta, AgentMessageOptions, AgentPrivate, AgentSettings, AgentSimple, AgentWalletMode, AgentWebhookWarp, AiCostEntry, AiCostsResponse, AiCostsSummary, Alert, ApiToken, AppEnv, AppFile, AppFileType, AppIngestion, BillingAddress, Blueprint, BlueprintOnboardingStep, BlueprintRedirect, BlueprintSettings, BlueprintShortcut, BlueprintTask, BlueprintTeam, BoardSummaryViewable, BookmarkEntry, BrandBackend, BrandIntegration, BrandIntegrationAction, BrandIntegrationProvider, BrandSearchHit, BrandSiteConfig, BrandSourceConfig, Budget, ByokProviderConfig, ByokProviderName, ByokProviders, CalendarProvider, CalendarStatus, Card, Challenge, Challenges, ChangelogEntry, Character, ChatClientAction, ChatClientThought, ChatStreamData, ChatStreamEventType, CliSessionMeta, CliSessionStatus, Contact, ContactActivity, 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, 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, OrderItem, OrderStatus, PaymentProvider, PayoutEntry, PeriodTypeLabels, PeriodTypeOptions, PermissionConfigType, PersonaQuestionable, Plan, PlanBenefit, PlanExtra, PlanFeature, PlanInterval, PolicyMethod, PolicySetting, PricingModel, Product, ProductDiscount, ProductPieces, ProductRating, ProductVariation, 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, Streak, SubscriptionPlan, Swarm, Task, Team, TeamBrand, TeamFeatureUsage, TeamMember, TeamPrivate, TeamSettings, TeamUsage, Tier, TierFeature, TierName, TranscriptEntry, TranscriptionCorrection, TranscriptionResponse, User, UserInterest, UserMode, UserPrivate, UserRole, UserSettings, UserSocialAccount, UserStats, 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, getMarketplaceBaseUrl, getMcpServerAgentUrl, getSiteUrl, getSitesRootDomain, getWarpScreenshotUrl, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, ogImageUrl, resolveWarpText, sanitizeAlphanumeric, sanitizeNumeric, toCurrencyDisplay, toHexEncodedNonce, toNameInitials, toNftId, toPreviewText, withRetry };