@joai/core 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,229 @@ 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
+ isSubscription: boolean;
399
+ };
400
+ type Coupon = {
401
+ code: string;
402
+ amount: number;
403
+ percent: number;
404
+ expiresAt: string | null;
405
+ };
406
+ type PurchaseResult = {
407
+ order_id?: string;
408
+ message?: string;
409
+ subscription_active?: boolean;
410
+ };
411
+ type PurchaseOptions = {
412
+ forceProvider?: PaymentProvider;
413
+ billingAddress?: BillingAddress | null;
414
+ meta?: Record<string, string>;
415
+ };
416
+ //#endregion
417
+ //#region src/team/types.d.ts
418
+ type TeamMember = User & {
419
+ role: UserRole | null;
420
+ roleAcceptedAt: string | null;
421
+ email: string | null;
422
+ };
423
+ type Team = {
424
+ slug: string;
425
+ name: string;
426
+ personal: boolean;
427
+ description: string | null;
428
+ locale: WarpLocale;
429
+ timezone: string;
430
+ logo: string | null;
431
+ public: boolean;
432
+ createdAt: string;
433
+ blueprints?: Blueprint[];
434
+ flows?: Flow[];
435
+ };
436
+ type TeamBrand = {
437
+ bg?: string;
438
+ fg?: string;
439
+ label?: string;
440
+ logo?: string;
441
+ bankName?: string;
442
+ bankIban?: string;
443
+ bankBic?: string;
444
+ invoiceAddress?: string;
445
+ invoiceVat?: string;
446
+ invoiceCity?: string;
447
+ invoiceZip?: string;
448
+ invoiceCountry?: string;
449
+ };
450
+ type TeamPrivate = {
451
+ slug: string;
452
+ name: string;
453
+ personal: boolean;
454
+ description: string | null;
455
+ balance: number;
456
+ locale: WarpLocale;
457
+ timezone: string;
458
+ logo: string | null;
459
+ subscription: {
460
+ premium: boolean;
461
+ lifetime: boolean;
462
+ plan: Plan;
463
+ provider: PaymentProvider | null;
464
+ payer: User | null;
465
+ gracePeriod: boolean;
466
+ autoRenew: boolean;
467
+ uncapped: boolean;
468
+ cycleEndsAt: string | null;
469
+ resetsAt: string | null;
470
+ startedAt: string | null;
471
+ renewedAt: string | null;
472
+ expiresAt: string | null;
473
+ };
474
+ settings: TeamSettings;
475
+ branding: TeamBrand;
476
+ createdAt: string;
477
+ justCreated: boolean;
478
+ };
479
+ type ByokProviderConfig = {
480
+ apiKey?: string;
481
+ accessKey?: string;
482
+ secretKey?: string;
483
+ };
484
+ type ByokProviders = {
485
+ openai?: ByokProviderConfig;
486
+ anthropic?: ByokProviderConfig;
487
+ google?: ByokProviderConfig;
488
+ xai?: ByokProviderConfig;
489
+ klingai?: ByokProviderConfig;
611
490
  };
612
491
  type ByokProviderName = keyof ByokProviders;
613
492
  type TeamSettings = {
614
493
  'extra.messages': number;
615
494
  'limit.spending': number | null;
495
+ 'currency'?: string;
616
496
  'extra.usage.enabled'?: boolean;
617
497
  'auto.reload.enabled'?: boolean;
618
498
  'auto.reload.threshold_cents'?: number | null;
@@ -620,6 +500,9 @@ type TeamSettings = {
620
500
  'llm.provider'?: 'openai' | 'anthropic' | 'google' | 'xai' | null;
621
501
  'byok.providers'?: ByokProviders | null;
622
502
  'board.auto.enabled'?: boolean;
503
+ 'payments.online'?: boolean;
504
+ 'payments.coupons'?: boolean;
505
+ 'branding'?: TeamBrand | null;
623
506
  };
624
507
  type TeamUsage = Partial<Record<PlanFeature, TeamFeatureUsage>> & {
625
508
  extraUsageEnabled?: boolean;
@@ -675,132 +558,560 @@ type AiCostsResponse = {
675
558
  };
676
559
  };
677
560
  };
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;
561
+ //#endregion
562
+ //#region src/flow/types.d.ts
563
+ type FlowCategory = 'none' | 'defi' | 'nft' | 'social' | 'devtools' | 'productivity' | 'trading' | 'portfolio';
564
+ type FlowStatus = 'draft' | 'published';
565
+ type Flow = {
566
+ slug: string;
567
+ team: Team;
568
+ name: string;
569
+ description: string | null;
570
+ category: FlowCategory;
571
+ status: FlowStatus;
572
+ publishedAt: string | null;
573
+ createdAt: string;
574
+ updatedAt: string;
575
+ steps: FlowStep[];
576
+ locales: WarpLocale[];
577
+ marketplace: MarketplaceInfo;
578
+ screenshots: string[];
579
+ };
580
+ type FlowStep = {
581
+ stepId: string;
582
+ order: number;
583
+ type: 'warp' | 'condition' | 'delay';
584
+ warpIdentifier: string | null;
585
+ dependsOn: string[] | null;
586
+ inputMappings: FlowInputMapping[] | null;
587
+ staticInputs: Record<string, any> | null;
588
+ condition: Record<string, any> | null;
589
+ };
590
+ type FlowInputMapping = {
591
+ sourceStepId: string;
592
+ sourceKey: string;
593
+ targetInput: string;
594
+ transform?: string;
595
+ };
596
+ //#endregion
597
+ //#region src/skill/types.d.ts
598
+ declare const SkillType: {
599
+ readonly Knowledge: "knowledge";
600
+ readonly ContentTemplate: "content-template";
601
+ readonly PersonalityClone: "personality-clone";
602
+ readonly BrandKit: "brand-kit";
603
+ readonly VideoTemplate: "video-template";
604
+ readonly VisualKit: "visual-kit";
605
+ };
606
+ type SkillTypeValue = (typeof SkillType)[keyof typeof SkillType];
607
+ declare const SkillMediaBindingRole: {
608
+ readonly Subject: "subject";
609
+ readonly Style: "style";
610
+ readonly Logo: "logo";
611
+ readonly Product: "product";
612
+ readonly Motion: "motion";
613
+ readonly FirstFrame: "first_frame";
614
+ readonly LastFrame: "last_frame";
615
+ };
616
+ type SkillMediaBindingRoleValue = (typeof SkillMediaBindingRole)[keyof typeof SkillMediaBindingRole];
617
+ declare const SkillScope: {
618
+ readonly Agent: "agent";
619
+ readonly Team: "team";
620
+ };
621
+ type SkillScopeValue = (typeof SkillScope)[keyof typeof SkillScope];
622
+ type Skill = {
623
+ id: string;
624
+ name: string;
625
+ description: string;
626
+ content: string;
627
+ meta: Record<string, unknown> | null;
628
+ license: string | null;
629
+ compatibility: string | null;
630
+ allowedTools: string | null;
631
+ source: string;
632
+ sourcePath: string | null;
633
+ scope?: SkillScopeValue;
634
+ active: boolean;
635
+ marketplace: MarketplaceInfo;
636
+ createdAt: string;
637
+ media?: Media[];
638
+ screenshots: string[];
639
+ };
640
+ //#endregion
641
+ //#region src/warp/types.d.ts
642
+ type WarpExtrasFaq = {
643
+ question: string;
644
+ answer: string;
645
+ };
646
+ type WarpExtras = {
647
+ keywords?: Record<string, string[]>;
648
+ useCases?: Record<string, string[]>;
649
+ category?: string;
650
+ faq?: Record<string, WarpExtrasFaq[]>;
651
+ };
652
+ type WarpBackend = {
653
+ hash: string;
654
+ identifier: string;
655
+ chain: WarpChainName | null;
656
+ alias: string;
657
+ name: string;
658
+ title: string;
659
+ description: string;
660
+ preview: string | null;
661
+ creator: string;
662
+ status: WarpBackendStatus;
663
+ active: boolean;
664
+ category: WarpBackendCategory;
665
+ featured: boolean;
666
+ price?: number | null;
667
+ primaryAddress: string | null;
668
+ primaryFunc: string | null;
669
+ locales: WarpLocale[];
670
+ brand: BrandBackend | null;
671
+ definition?: Record<string, any> | null;
672
+ extras?: WarpExtras | null;
673
+ };
674
+ type WarpBackendStatus = 'unverified' | 'verified' | 'blacklisted';
675
+ type WarpBackendCategory = 'none';
676
+ type BrandSourceConfig = {
677
+ type: string;
678
+ chain?: string;
679
+ url?: string;
680
+ contract?: string;
681
+ endpoints?: string[];
682
+ };
683
+ type BrandIntegrationProvider = 'claude' | 'codex' | 'cursor' | 'openai';
684
+ type BrandIntegrationAction = {
685
+ type: 'copy' | 'link' | 'deeplink';
686
+ label: string;
687
+ value: string;
688
+ };
689
+ type BrandIntegration = {
690
+ provider: BrandIntegrationProvider;
691
+ available: boolean;
692
+ status: 'disabled' | 'planned' | 'ready' | 'runtime_ready' | 'submission_ready';
693
+ title: string;
694
+ description: string;
695
+ primaryAction: BrandIntegrationAction;
696
+ secondaryAction?: BrandIntegrationAction | null;
697
+ sourceUrl?: string | null;
698
+ fallbackUrl?: string | null;
699
+ notes?: string[];
700
+ };
701
+ type BrandBackend = {
702
+ hash: string;
703
+ slug: string;
704
+ name: string;
705
+ description: string;
706
+ logo: string;
707
+ colors: string;
708
+ urls: WarpBrandUrls;
709
+ locales: WarpLocale[];
710
+ warps: WarpBackend[];
711
+ isTeamOwned?: boolean;
712
+ inviteCode?: string;
713
+ source?: BrandSourceConfig | null;
714
+ contract?: string;
715
+ isContractBrand?: boolean;
716
+ meta?: {
717
+ rating?: number;
718
+ reviewCount?: number;
719
+ };
720
+ external?: {
721
+ mcp?: string | null;
722
+ integrations?: Partial<Record<BrandIntegrationProvider, BrandIntegration>>;
723
+ };
724
+ };
725
+ type BrandSearchHit = {
726
+ slug: string;
727
+ hash: string;
728
+ name: string;
729
+ description: string;
730
+ logo: string;
731
+ colors: string;
732
+ urls: string;
733
+ };
734
+ type WarpSearchHit = {
735
+ hash: string;
736
+ chain: WarpChainName | null;
737
+ alias: string;
738
+ name: string;
739
+ title: string;
740
+ description: string;
741
+ preview: string | null;
742
+ creator: string;
743
+ status: WarpBackendStatus;
744
+ active: boolean;
745
+ featured: boolean;
746
+ price?: number | null;
747
+ brandSlug: string | null;
748
+ brandName: string | null;
749
+ brandLogo: string | Record<string, string> | null;
750
+ };
751
+ //#endregion
752
+ //#region src/marketplace/types.d.ts
753
+ type MarketplaceEntityType = 'skill' | 'flow' | 'blueprint' | 'agent' | 'service';
754
+ type PricingModel = 'free' | 'one-time' | 'monthly' | 'per-run';
755
+ type MarketplacePricing = {
756
+ model: PricingModel;
757
+ amount: string;
758
+ currency: string;
759
+ chain?: WarpChainName | null;
760
+ planSku?: string | null;
761
+ freeTier?: {
762
+ runs?: number;
763
+ trialDays?: number;
764
+ } | null;
765
+ };
766
+ type MarketplaceInfo = {
767
+ price: number | null;
768
+ purchased: boolean;
769
+ uses: number;
770
+ public: boolean;
771
+ pricing: MarketplacePricing;
772
+ };
773
+ type MarketplaceListing = {
774
+ entityType: MarketplaceEntityType;
775
+ entityId: string;
776
+ name: string;
777
+ description: string | null;
778
+ pricing: MarketplacePricing;
779
+ seller: {
780
+ team: string;
781
+ name: string;
782
+ wallet?: string | null;
783
+ };
784
+ };
785
+ type MarketplaceAgent = {
786
+ uuid: string;
787
+ name: string;
788
+ description: string | null;
789
+ avatar: string | null;
790
+ wallets: {
791
+ address: string;
792
+ chain: WarpChainName;
793
+ }[];
794
+ character: {
795
+ name: string | null;
796
+ bio: string | null;
797
+ } | null;
798
+ marketplace: MarketplaceInfo;
799
+ screenshots: string[];
800
+ };
801
+ type MarketplaceItem = {
802
+ type: 'agent';
803
+ item: MarketplaceAgent;
804
+ } | {
805
+ type: 'blueprint';
806
+ item: Blueprint;
807
+ } | {
808
+ type: 'flow';
809
+ item: Flow;
810
+ } | {
811
+ type: 'skill';
812
+ item: Skill;
813
+ };
814
+ type MarketplaceData = {
815
+ blueprints: Blueprint[];
816
+ skills: Skill[];
817
+ flows: Flow[];
818
+ creators: BrandBackend[];
819
+ agents: MarketplaceAgent[];
820
+ items: MarketplaceItem[];
821
+ };
822
+ type MarketplacePriceTier = {
823
+ sku: string;
824
+ priceCents: number;
825
+ label: string;
826
+ };
827
+ /**
828
+ * Normalized representation of any marketplace entity for use in checkout flows.
829
+ * All marketplace entities share a `.marketplace: MarketplaceInfo` property —
830
+ * combine that with the entity type and ID to construct this.
831
+ */
832
+ type MarketplaceCheckoutItem = {
833
+ entityType: MarketplaceEntityType;
834
+ entityId: string;
835
+ name: string;
836
+ marketplace: MarketplaceInfo;
837
+ };
838
+ type MarketplacePurchaseResult = {
839
+ purchased: boolean;
840
+ pricePaid: number;
841
+ entityType: string;
842
+ entityId: string;
843
+ paymentMethod: string;
844
+ };
845
+ //#endregion
846
+ //#region src/blueprint/types.d.ts
847
+ type BlueprintTeam = {
848
+ slug: string;
849
+ name: string;
850
+ logo: string | null;
851
+ };
852
+ type Blueprint = {
853
+ slug: string;
854
+ team: BlueprintTeam;
855
+ name: string;
856
+ description: string | null;
857
+ avatar: string | null;
858
+ settings: BlueprintSettings;
859
+ documentCount: number;
860
+ verified: boolean;
861
+ createdAt: string;
862
+ locales: WarpLocale[];
863
+ marketplace: MarketplaceInfo;
864
+ tags: string[];
865
+ screenshots: string[];
866
+ };
867
+ type BlueprintSettings = {
868
+ wallets: WarpChainName[];
869
+ character: Character | null;
870
+ tasks: BlueprintTask[];
871
+ shortcuts: BlueprintShortcut[];
872
+ 'messages.initial': string | null;
873
+ 'messages.general': string[];
874
+ onboarding: BlueprintOnboardingStep[];
875
+ redirect: BlueprintRedirect;
876
+ };
877
+ type BlueprintOnboardingStep = 'wallet' | 'fund' | `@${string}`;
878
+ type BlueprintRedirect = 'interact' | null;
879
+ type BlueprintTask = {
880
+ warp: string;
881
+ cronExpression: string;
882
+ active: boolean;
883
+ };
884
+ type BlueprintShortcut = {
885
+ name: string;
886
+ description: string | null;
887
+ warp: string;
888
+ chat: boolean;
889
+ };
890
+ //#endregion
891
+ //#region src/helpers/string.d.ts
892
+ declare const sanitizeAlphanumeric: (val: string) => string;
893
+ declare const sanitizeNumeric: (val: string) => string;
894
+ declare const toNameInitials: (name?: string) => string;
895
+ declare const toPreviewText: (text: string, maxChars?: number) => string;
896
+ //#endregion
897
+ //#region src/helpers/number.d.ts
898
+ declare const abbreviateNumber: (val: number) => string | number;
899
+ declare const toCurrencyDisplay: (valueInCents: number, currency?: string) => string;
900
+ declare const toHexEncodedNonce: (nonce: number) => string;
901
+ declare const toNftId: (collection: string, nonce: number) => string;
902
+ //#endregion
903
+ //#region src/helpers/file.d.ts
904
+ declare const isFileFormatImage: (filename: string | null) => boolean;
905
+ declare const isFileFormatVideo: (filename: string | null) => boolean;
906
+ declare const isFileFormatAudio: (filename: string | null) => boolean;
907
+ //#endregion
908
+ //#region src/helpers/async.d.ts
909
+ declare const withRetry: <T>(fn: () => Promise<T>, validate: (result: T) => boolean, {
910
+ maxRetries,
911
+ retryDelay
912
+ }?: {
913
+ maxRetries?: number | undefined;
914
+ retryDelay?: number | undefined;
915
+ }) => Promise<T>;
916
+ //#endregion
917
+ //#region src/helpers/asset.d.ts
918
+ declare const getAssetAppLogoUrl: (name: string) => string;
919
+ declare const getAssetChainLogoUrl: (name: string) => string;
920
+ declare const getAssetTokenLogoUrl: (name: string) => string;
921
+ declare const getAssetWalletLogoUrl: (name: string) => string;
922
+ declare const getAssetPartnerLogoUrl: (name: string) => string;
923
+ type WarpScreenshotVariant = 'light' | 'dark' | 'preview' | 'rendered' | 'rendered-dark';
924
+ declare const getWarpScreenshotUrl: (brandSlug: string, warpAlias: string, variant?: WarpScreenshotVariant) => string;
925
+ //#endregion
926
+ //#region src/helpers/warp.d.ts
927
+ declare function resolveWarpText(text?: WarpText | null, locale?: string): string;
928
+ //#endregion
929
+ //#region src/integration/types.d.ts
930
+ type IntegrationType = 'none' | 'webhook' | 'api-token' | 'telegram' | 'slack' | 'whatsapp' | 'twilio' | 'n8n' | 'ai-nexus' | 'apple-health' | 'mcp' | 'x' | 'email' | 'calendar' | 'embed' | 'discord' | 'github' | 'sentry' | 'readwise';
931
+ type IntegrationDetails = {
932
+ type: IntegrationType;
933
+ name: string;
934
+ description?: string;
935
+ logoUrl?: string;
936
+ logoUrlDark?: string;
937
+ slug?: string;
938
+ category?: string;
939
+ [key: string]: unknown;
940
+ };
941
+ type Integration = {
942
+ id: string;
943
+ type: IntegrationType;
944
+ name: string;
945
+ active: boolean;
946
+ createdAt: string;
947
+ details?: IntegrationDetails;
948
+ };
949
+ type SocialPlatform = 'telegram' | 'slack' | 'whatsapp' | 'twilio' | 'discord' | 'github';
950
+ type SocialBot = {
951
+ name: string;
952
+ createdAt: string;
953
+ phoneNumberId?: string;
954
+ phoneNumber?: string;
955
+ applicationId?: string;
956
+ appId?: string;
957
+ installationId?: string;
958
+ };
959
+ type XIntegrationStatus = {
960
+ enabled: boolean;
961
+ integrationId: string | null;
962
+ xAccountLinked: boolean;
963
+ currentAgentName: string | null;
687
964
  };
688
- type PlanExtra = {
689
- amount: number;
690
- price: number;
691
- unitName: string;
965
+ type EmbedStatus = {
966
+ integrationId: string;
967
+ agentName: string;
968
+ agentAvatar: string | null;
969
+ active: boolean;
970
+ allowedDomains: string[];
692
971
  };
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;
972
+ type EmailProvider = 'resend' | 'mailgun' | 'sendgrid';
973
+ type CalendarProvider = 'google' | 'apple' | 'microsoft';
974
+ type CalendarStatus = {
975
+ connected: boolean;
976
+ provider?: CalendarProvider;
977
+ providerDisplayName?: string;
978
+ accountEmail?: string;
979
+ lastSynced?: string;
980
+ tokenHealthy?: boolean;
981
+ upcomingEvents?: {
982
+ title: string;
983
+ startAt: string;
984
+ endAt: string;
985
+ allDay: boolean;
986
+ }[];
703
987
  };
704
- type PlanInterval = 'weekly' | 'monthly' | 'yearly' | 'lifetime';
705
- type Plan = {
706
- sku: string;
988
+ //#endregion
989
+ //#region src/room/types.d.ts
990
+ type RoomId = string;
991
+ type RoomKind = 'default' | 'phone' | 'meeting';
992
+ type Room = {
993
+ id: string;
707
994
  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;
995
+ description: string | null;
996
+ public: boolean;
997
+ default: boolean;
998
+ active: boolean;
999
+ kind?: RoomKind | null;
1000
+ archivedAt?: string | null;
1001
+ secKey: string | null;
1002
+ createdAt: string | null;
1003
+ contactId?: string | null;
1004
+ agent: AgentSimple;
1005
+ integration: Integration | null;
724
1006
  };
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;
1007
+ //#endregion
1008
+ //#region src/agent/types.d.ts
1009
+ type AgentCharacter = {
1010
+ name: string | null;
1011
+ system: string | null;
1012
+ bio: string | null;
1013
+ };
1014
+ type Agent = {
1015
+ uuid: string;
1016
+ name: string;
733
1017
  description: string;
734
- benefits: Record<PlanFeature, PlanBenefit>;
735
- extras: Record<PlanFeature, PlanExtra>;
736
- mostPopular: boolean;
737
- mostRecommended: boolean;
738
- cta?: string;
739
- plan: Plan;
1018
+ avatar: string;
1019
+ wallets: Wallet[];
1020
+ settings: AgentSettings;
1021
+ marketplace: MarketplaceInfo;
1022
+ character?: AgentCharacter | null;
1023
+ room: Room;
1024
+ role: string | null;
1025
+ blueprint: Blueprint | null;
1026
+ team: string;
740
1027
  };
741
- type TierFeature = {
1028
+ type AgentPrivate = {
1029
+ uuid: string;
742
1030
  name: string;
743
- tiers: Record<TierName, boolean | string>;
1031
+ description: string;
1032
+ avatar: string;
1033
+ wallets: Wallet[];
1034
+ settings: AgentSettings;
1035
+ marketplace: MarketplaceInfo;
1036
+ password: string | null;
1037
+ authKey: string | null;
1038
+ secKey: string;
1039
+ emailAddress: string | null;
1040
+ phoneNumber: string | null;
1041
+ room: Room;
1042
+ role: string | null;
1043
+ blueprint: Blueprint | null;
1044
+ justCreated?: boolean;
1045
+ team: string;
744
1046
  };
745
- type ProductRating = {
746
- average: number;
747
- count: number;
1047
+ type AgentActionHistoryEntry = {
1048
+ id: string;
1049
+ action: string | null;
1050
+ outcome: 'succeeded' | 'failed';
1051
+ outcomeDetail: string | null;
1052
+ warpIdentifier: string | null;
1053
+ meta: Record<string, unknown> | null;
1054
+ createdAt: string | null;
748
1055
  };
749
- type ProductPieces = {
750
- amount: number;
1056
+ type AgentSimple = {
1057
+ uuid: string;
751
1058
  name: string;
752
1059
  };
753
- type ProductDiscount = {
754
- original: number;
755
- percent: number;
1060
+ type AgentWalletMode = 'local' | 'cloud' | 'external';
1061
+ type AgentEngine = 'cortex' | 'openclaw';
1062
+ type AgentGender = 'male' | 'female' | 'neutral';
1063
+ type AgentSettings = {
1064
+ auto: boolean;
1065
+ 'model.url': string;
1066
+ 'voice.output': boolean;
1067
+ 'voice.id': string;
1068
+ 'agent.gender'?: AgentGender;
1069
+ 'proactivity.enabled': boolean;
1070
+ 'proactivity.quietHoursStart'?: number;
1071
+ 'proactivity.quietHoursEnd'?: number;
1072
+ 'proactivity.maxMessagesPerDay'?: number;
1073
+ 'proactivity.timezone'?: string;
1074
+ 'proactivity.blockedBehaviors'?: string[];
1075
+ engine: AgentEngine;
1076
+ 'training.url'?: string | null;
1077
+ 'training.status'?: 'idle' | 'training' | 'completed' | 'failed' | null;
1078
+ 'training.recrawlInterval'?: number | null;
1079
+ 'email_provider'?: EmailProvider | null;
756
1080
  };
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;
1081
+ type LocalAgentWallet = {
1082
+ provider: WarpWalletProvider;
1083
+ address: string;
1084
+ mnemonic?: string | null;
1085
+ privateKey?: string | null;
775
1086
  };
776
- type Product = {
777
- slug: string;
778
- name: string;
779
- description?: Partial<Record<WarpLocale, string>>;
780
- variations: ProductVariation[];
781
- rating: ProductRating;
1087
+ type AgentExecuteHandler = (prompt: string, options?: AgentExecuteOptions) => void;
1088
+ type AgentExecuteOptions = {
1089
+ audio?: File;
1090
+ sender?: string;
1091
+ media?: Media[];
1092
+ ghost?: boolean;
1093
+ context?: Record<string, unknown>;
782
1094
  };
783
- type Order = {
1095
+ //#endregion
1096
+ //#region src/alert/types.d.ts
1097
+ type Alert = {
784
1098
  id: string;
785
- total: number;
786
- provider: PaymentProvider;
787
- status: OrderStatus;
788
- invoiceUrl: string;
1099
+ chain: string;
1100
+ warp: string;
1101
+ key: string;
1102
+ event: string;
1103
+ contract: string;
1104
+ active: boolean;
789
1105
  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;
1106
+ agent: Agent | null;
799
1107
  };
800
- type PurchaseOptions = {
801
- forceProvider?: PaymentProvider;
802
- billingAddress?: BillingAddress | null;
803
- meta?: Record<string, string>;
1108
+ //#endregion
1109
+ //#region src/api/types.d.ts
1110
+ type ApiToken = {
1111
+ id: number;
1112
+ name: string;
1113
+ createdAt: string;
1114
+ token?: string;
804
1115
  };
805
1116
  //#endregion
806
1117
  //#region src/budget/types.d.ts
@@ -880,9 +1191,11 @@ type Contact = {
880
1191
  title: string | null;
881
1192
  birthday: string | null;
882
1193
  website: string | null;
1194
+ location: string | null;
883
1195
  socials: Record<string, string> | null;
884
1196
  notes: string | null;
885
1197
  tags: string[] | null;
1198
+ props?: Record<string, string> | null;
886
1199
  };
887
1200
  type ContactActivity = {
888
1201
  id: string;
@@ -900,9 +1213,11 @@ type ContactFormData = {
900
1213
  title?: string | null;
901
1214
  birthday?: string | null;
902
1215
  website?: string | null;
1216
+ location?: string | null;
903
1217
  socials?: Record<string, string> | null;
904
1218
  notes?: string | null;
905
1219
  tags?: string[] | null;
1220
+ props?: Record<string, string> | null;
906
1221
  };
907
1222
  //#endregion
908
1223
  //#region src/contract/types.d.ts
@@ -998,6 +1313,59 @@ type Desk = {
998
1313
  updatedAt: number;
999
1314
  };
1000
1315
  //#endregion
1316
+ //#region src/element/types.d.ts
1317
+ type ElementType = 'character' | 'environment' | 'style' | 'product' | 'brand';
1318
+ type ElementSpec = {
1319
+ baseColor?: string | null;
1320
+ material?: string | null;
1321
+ texture?: string | null;
1322
+ pattern?: string | null;
1323
+ finish?: string | null;
1324
+ condition?: string | null;
1325
+ setting?: string | null;
1326
+ background?: string | null;
1327
+ surface?: string | null;
1328
+ weather?: string | null;
1329
+ timeOfDay?: string | null;
1330
+ season?: string | null;
1331
+ lightingType?: string | null;
1332
+ lightingColor?: string | null;
1333
+ lightingDirection?: string | null;
1334
+ mood?: string | null;
1335
+ atmosphere?: string | null;
1336
+ colorPalette?: string | null;
1337
+ style?: string | null;
1338
+ rendering?: string | null;
1339
+ colorGrade?: string | null;
1340
+ shotType?: string | null;
1341
+ cameraAngle?: string | null;
1342
+ lens?: string | null;
1343
+ depthOfField?: string | null;
1344
+ framing?: string | null;
1345
+ avoid?: string | null;
1346
+ };
1347
+ type ElementVariation = {
1348
+ id: string;
1349
+ label: string | null;
1350
+ overrides: ElementSpec | null;
1351
+ model: string | null;
1352
+ aspectRatio: string;
1353
+ primaryMediaId: string | null;
1354
+ primaryImage: Media | null;
1355
+ images: Media[];
1356
+ createdAt: string;
1357
+ };
1358
+ type Element = {
1359
+ id: string;
1360
+ name: string;
1361
+ type: ElementType;
1362
+ description: string | null;
1363
+ spec: ElementSpec | null;
1364
+ media: Media[];
1365
+ variations: ElementVariation[];
1366
+ createdAt: string;
1367
+ };
1368
+ //#endregion
1001
1369
  //#region src/document/types.d.ts
1002
1370
  type Document = {
1003
1371
  id: string;
@@ -1104,6 +1472,8 @@ type Item = {
1104
1472
  goalId: string | null;
1105
1473
  order: number | null;
1106
1474
  assignedAgents: string[];
1475
+ assignedContacts: string[];
1476
+ assignedToUserIds: string[];
1107
1477
  executionStatus: ItemExecutionStatus | null;
1108
1478
  createdAt: string;
1109
1479
  updatedAt: string;
@@ -1116,6 +1486,21 @@ type ItemCreatePayload = {
1116
1486
  dueDate?: string;
1117
1487
  goalId?: string;
1118
1488
  status?: ItemStatus;
1489
+ agents?: string[];
1490
+ contactIds?: string[];
1491
+ assignedToIds?: string[];
1492
+ };
1493
+ type ItemUpdatePayload = {
1494
+ title?: string;
1495
+ description?: string | null;
1496
+ status?: ItemStatus;
1497
+ priority?: ItemPriority;
1498
+ tags?: string[];
1499
+ dueDate?: string | null;
1500
+ goalId?: string | null;
1501
+ agents?: string[];
1502
+ contactIds?: string[];
1503
+ assignedToIds?: string[];
1119
1504
  };
1120
1505
  //#endregion
1121
1506
  //#region src/marketing/types.d.ts
@@ -1140,191 +1525,6 @@ type DemoFlow = {
1140
1525
  messages: DemoMessage[];
1141
1526
  };
1142
1527
  //#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
1528
  //#region src/mcp/types.d.ts
1329
1529
  type McpToolCallStatus = 'pending' | 'success' | 'error';
1330
1530
  type McpToolCall = {
@@ -1361,40 +1561,68 @@ type TranscriptEntry = {
1361
1561
  text: string;
1362
1562
  isFinal: boolean;
1363
1563
  timestamp: number;
1564
+ speakerId?: number;
1565
+ speakerName?: string;
1364
1566
  };
1365
1567
  type BookmarkEntry = {
1366
1568
  id: string;
1367
1569
  timestamp: number;
1368
1570
  transcriptEntryId: string;
1369
1571
  };
1370
- type MeetingBotStatus = 'joining' | 'in_meeting' | 'left' | 'failed';
1371
1572
  type MeetingParticipant = {
1372
1573
  name: string | null;
1373
1574
  profileImageUrl: string | null;
1374
1575
  };
1576
+ type MeetingSpeakerAssignment = {
1577
+ speakerId: number;
1578
+ name: string;
1579
+ contactId: string | null;
1580
+ };
1375
1581
  type Meeting = {
1376
1582
  id: string;
1377
1583
  code: string;
1378
1584
  name: string | null;
1379
1585
  room: Room | null;
1380
1586
  inviteUrl: string;
1381
- status: 'active' | 'completed' | 'analyzed';
1382
- botStatus: MeetingBotStatus | null;
1587
+ status: MeetingStatus;
1588
+ conferenceProvider: MeetingConferenceProvider | null;
1589
+ conferenceUrl: string | null;
1590
+ conferenceExternalId: string | null;
1591
+ captureMode: 'desktop_local' | null;
1383
1592
  transcriptUrl: string | null;
1384
1593
  summaryUrl: string | null;
1385
1594
  participants?: MeetingParticipant[];
1386
- startedAt: string;
1595
+ speakerAssignments?: MeetingSpeakerAssignment[] | null;
1596
+ scheduledAt: string | null;
1597
+ calendarEventId: number | null;
1598
+ startedAt: string | null;
1387
1599
  endedAt: string | null;
1388
1600
  createdAt: string;
1389
1601
  };
1602
+ type MeetingStatus = 'active' | 'completed' | 'analyzed' | 'scheduled' | 'cancelled';
1603
+ type MeetingConferenceProvider = 'google_meet' | 'teams' | 'zoom';
1604
+ type MeetingFeature = 'transcription' | 'summary' | 'insights' | 'actions';
1605
+ type MeetingJoinTeam = {
1606
+ name: string;
1607
+ logo: string | null;
1608
+ };
1390
1609
  type MeetingJoinInfo = {
1391
1610
  id: string;
1392
1611
  code: string;
1393
1612
  name: string | null;
1394
1613
  inviteUrl: string;
1395
1614
  agentName: string;
1396
- status: 'active' | 'completed' | 'analyzed';
1615
+ team: MeetingJoinTeam;
1616
+ status: MeetingStatus;
1617
+ isPhysical: boolean;
1618
+ scheduledAt: string | null;
1619
+ scheduledEndAt: string | null;
1620
+ timezone: string;
1621
+ conferenceUrl: string | null;
1622
+ conferenceProvider: MeetingConferenceProvider | null;
1397
1623
  endedAt: string | null;
1624
+ canCancel: boolean;
1625
+ features: Record<MeetingFeature, boolean>;
1398
1626
  };
1399
1627
  type MeetingTranscriptEntry = {
1400
1628
  speaker: 'user' | 'agent';
@@ -1606,7 +1834,7 @@ type PermissionConfigType = {
1606
1834
  //#endregion
1607
1835
  //#region src/protocol/types.d.ts
1608
1836
  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';
1837
+ 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
1838
  type ChatClientThought = 'processing' | 'searching' | 'evaluating' | 'transcribing' | 'generating' | 'reflecting' | 'text-transform' | 'finished';
1611
1839
  type AgentMessageOptions = {
1612
1840
  delay?: number;
@@ -1624,7 +1852,8 @@ type AgentMessageMeta = {
1624
1852
  proactive?: boolean;
1625
1853
  timeSavedSeconds?: number;
1626
1854
  currentUsage?: number;
1627
- limit?: number;
1855
+ limit?: number; /** Room ID to navigate to — renders a room-change card inline below the message. */
1856
+ roomChange?: string;
1628
1857
  };
1629
1858
  type ChatStreamData = {
1630
1859
  message: MessageId | undefined;
@@ -1637,6 +1866,7 @@ type ChatStreamData = {
1637
1866
  media?: Media[];
1638
1867
  desk?: Desk;
1639
1868
  timeSavedSeconds?: number;
1869
+ roomChange?: string;
1640
1870
  } | null;
1641
1871
  options?: {
1642
1872
  error?: boolean;
@@ -2023,12 +2253,82 @@ declare const OgImageColors: {
2023
2253
  };
2024
2254
  };
2025
2255
  //#endregion
2256
+ //#region src/ogimage/helpers.d.ts
2257
+ type OgResourceType = 'meeting';
2258
+ type OgResourceParams = {
2259
+ meeting: {
2260
+ code: string;
2261
+ };
2262
+ };
2263
+ declare function ogImageUrl<T extends OgResourceType>(type: T, params: OgResourceParams[T]): string;
2264
+ //#endregion
2026
2265
  //#region src/project/types.d.ts
2027
2266
  type ProjectStatus = 'draft' | 'planned' | 'render-ready' | 'rendered' | 'composed' | 'exported';
2028
2267
  type ProjectOutputPreset = '9:16 social' | '16:9 launch' | '1:1 square teaser';
2268
+ type ProjectOutputType = 'video' | 'slideshow' | 'clips';
2029
2269
  type ProjectRenderMode = 'draft' | 'final';
2030
2270
  type ProjectAspectRatio = '16:9' | '9:16' | '1:1';
2031
- type ProjectStudioStage = 'questions' | 'concept' | 'draft-ready';
2271
+ type ProjectStudioStage = 'questions' | 'concept' | 'draft-ready' | 'source-processing' | 'candidates-ready';
2272
+ type ProjectSourceMedia = {
2273
+ id?: string | null;
2274
+ name?: string | null;
2275
+ mime?: string | null;
2276
+ url: string;
2277
+ };
2278
+ type ProjectTranscriptSegment = {
2279
+ id: string;
2280
+ startMs: number;
2281
+ endMs: number;
2282
+ text: string;
2283
+ };
2284
+ type ProjectTranscript = {
2285
+ text: string;
2286
+ language?: string | null;
2287
+ durationSeconds?: number | null;
2288
+ segments?: ProjectTranscriptSegment[];
2289
+ };
2290
+ type ProjectClipCandidate = {
2291
+ id: string;
2292
+ title: string;
2293
+ excerpt: string;
2294
+ startMs: number;
2295
+ endMs: number;
2296
+ durationMs: number;
2297
+ score: number;
2298
+ reason: string;
2299
+ platformFit?: string[] | null;
2300
+ selected?: boolean;
2301
+ viralityScore?: number | null;
2302
+ thumbnailUrl?: string | null;
2303
+ };
2304
+ type ProjectSelectedClip = {
2305
+ id: string;
2306
+ candidateId?: string | null;
2307
+ title: string;
2308
+ excerpt?: string | null;
2309
+ startMs: number;
2310
+ endMs: number;
2311
+ durationMs: number;
2312
+ captionsEnabled?: boolean;
2313
+ captionText?: string | null;
2314
+ viralityScore?: number | null;
2315
+ };
2316
+ type ProjectCaptionStyle = {
2317
+ preset?: 'bold' | 'subtitle' | 'minimal' | 'brand' | null;
2318
+ fontSize?: number | null;
2319
+ primaryColor?: string | null;
2320
+ highlightColor?: string | null;
2321
+ position?: 'bottom' | 'center' | null;
2322
+ };
2323
+ type ProjectClips = {
2324
+ sourceMedia?: ProjectSourceMedia[];
2325
+ sourceUrl?: string | null;
2326
+ transcript?: ProjectTranscript | null;
2327
+ candidates?: ProjectClipCandidate[];
2328
+ selected?: ProjectSelectedClip[];
2329
+ captionStyle?: ProjectCaptionStyle | null;
2330
+ targetLanguage?: string | null;
2331
+ };
2032
2332
  type ProjectStudioHistoryEntry = {
2033
2333
  role: 'user' | 'assistant';
2034
2334
  content: string;
@@ -2104,25 +2404,31 @@ type Project = {
2104
2404
  status: ProjectStatus;
2105
2405
  brief: string | null;
2106
2406
  outputPreset: ProjectOutputPreset;
2407
+ outputType: ProjectOutputType;
2107
2408
  selectedSkills: string[];
2108
2409
  targetPlatforms: string[];
2109
2410
  script: Record<string, any> | null;
2110
2411
  storyboard: ProjectShot[];
2111
2412
  referenceImages: Array<Record<string, any>>;
2413
+ clips?: ProjectClips | null;
2112
2414
  generatedImages: Array<Record<string, any>>;
2113
2415
  generatedVideos: Array<Record<string, any>>;
2114
2416
  generatedAudio: Array<Record<string, any>>;
2115
2417
  assembly: Record<string, any> | null;
2116
2418
  soundtrack: Record<string, any> | null;
2117
2419
  finalAsset: Record<string, any> | null;
2420
+ nsfw: boolean;
2118
2421
  studioState?: ProjectStudioState | null;
2119
2422
  revisions: Array<Record<string, any>>;
2423
+ elements: Element[];
2424
+ latestExport?: ProjectExport | null;
2120
2425
  team: string | null;
2121
2426
  createdAt: string;
2122
2427
  updatedAt: string;
2123
2428
  };
2124
- type ProjectMutation = Partial<Pick<Project, 'name' | 'brief' | 'status' | 'outputPreset' | 'selectedSkills' | 'targetPlatforms' | 'storyboard' | 'assembly' | 'soundtrack' | 'finalAsset' | 'referenceImages' | 'generatedImages' | 'generatedVideos' | 'generatedAudio'>> & {
2429
+ type ProjectMutation = Partial<Pick<Project, 'name' | 'brief' | 'status' | 'outputPreset' | 'outputType' | 'selectedSkills' | 'targetPlatforms' | 'storyboard' | 'assembly' | 'soundtrack' | 'finalAsset' | 'referenceImages' | 'clips' | 'generatedImages' | 'generatedVideos' | 'generatedAudio' | 'nsfw' | 'studioState'>> & {
2125
2430
  script?: Record<string, any> | null;
2431
+ outputAssets?: Record<string, any> | null;
2126
2432
  };
2127
2433
  type ProjectPlan = {
2128
2434
  summary: {
@@ -2204,16 +2510,29 @@ type ProjectSoundtrack = {
2204
2510
  soundtrackAsset?: Record<string, any> | null;
2205
2511
  };
2206
2512
  };
2513
+ type ProjectExportAsset = {
2514
+ id: string;
2515
+ url: string;
2516
+ name: string;
2517
+ mimeType: string;
2518
+ thumbnailUrl?: string | null;
2519
+ };
2207
2520
  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;
2521
+ uuid: string;
2522
+ name: string;
2523
+ assets: ProjectExportAsset[];
2524
+ script: Record<string, any> | null;
2525
+ clientName: string | null;
2526
+ message: string | null;
2527
+ views: number;
2528
+ expiresAt: string | null;
2529
+ url: string;
2530
+ createdAt: string;
2531
+ };
2532
+ type ProjectExportResponse = {
2533
+ project: Project;
2534
+ export: ProjectExport;
2535
+ exportUrl: string;
2217
2536
  };
2218
2537
  type ProjectStudioResponse = {
2219
2538
  project: Project;
@@ -2235,6 +2554,22 @@ type Reminder = {
2235
2554
  createdAt: string;
2236
2555
  };
2237
2556
  //#endregion
2557
+ //#region src/service/types.d.ts
2558
+ type Service = {
2559
+ id: string;
2560
+ slug: string;
2561
+ name: string;
2562
+ price: number;
2563
+ durationMinutes: number;
2564
+ category: string | null;
2565
+ description: string | null;
2566
+ active: boolean;
2567
+ digital: boolean;
2568
+ public: boolean;
2569
+ createdAt: string;
2570
+ updatedAt: string;
2571
+ };
2572
+ //#endregion
2238
2573
  //#region src/shortcut/types.d.ts
2239
2574
  type Shortcut = {
2240
2575
  id: string;
@@ -2243,10 +2578,57 @@ type Shortcut = {
2243
2578
  warp: string;
2244
2579
  inputs: string[];
2245
2580
  chat: boolean;
2581
+ tag: boolean;
2246
2582
  createdAt: string;
2247
2583
  agent: Agent | null;
2248
2584
  };
2249
2585
  //#endregion
2586
+ //#region src/site/types.d.ts
2587
+ type SiteTeam = {
2588
+ name: string;
2589
+ slug: string;
2590
+ logoUrl: string | null;
2591
+ };
2592
+ type SiteAgent = {
2593
+ uuid: string | null;
2594
+ };
2595
+ type Site = {
2596
+ id: number;
2597
+ brandSlug: string;
2598
+ customDomain: string | null;
2599
+ enabled: boolean;
2600
+ team: SiteTeam | null;
2601
+ agent: SiteAgent | null;
2602
+ settings: Record<string, unknown>;
2603
+ };
2604
+ type SiteRoute = {
2605
+ path: string;
2606
+ warp: string;
2607
+ label: WarpI18nText;
2608
+ nav?: boolean;
2609
+ hiddenFields?: string[];
2610
+ };
2611
+ type BrandSiteConfig = {
2612
+ enabled: boolean;
2613
+ auth?: boolean;
2614
+ indexPath: string;
2615
+ routes: SiteRoute[];
2616
+ name?: string;
2617
+ logoUrl?: string | null;
2618
+ };
2619
+ type SiteBrand = {
2620
+ slug: string;
2621
+ configureRoute: Pick<SiteRoute, 'path' | 'label'> | null;
2622
+ };
2623
+ type AggregatedRoute = {
2624
+ path: string;
2625
+ warp: string;
2626
+ label: WarpI18nText;
2627
+ nav?: boolean;
2628
+ hiddenFields?: string[];
2629
+ moduleSlug?: string;
2630
+ };
2631
+ //#endregion
2250
2632
  //#region src/stats/types.d.ts
2251
2633
  type UserStats = {
2252
2634
  totalMessages: number;
@@ -2314,6 +2696,7 @@ type Task = {
2314
2696
  runs: number;
2315
2697
  createdAt: string;
2316
2698
  agent: Agent | null;
2699
+ inputs: Record<string, string> | null;
2317
2700
  };
2318
2701
  type SchedulePreset = {
2319
2702
  label: string;
@@ -2455,4 +2838,4 @@ type CliSessionStatus = {
2455
2838
  meta: CliSessionMeta | null;
2456
2839
  };
2457
2840
  //#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 };
2841
+ 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, 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 };